diff --git a/.clang-format b/.clang-format index e2749434c8..1998cab94d 100644 --- a/.clang-format +++ b/.clang-format @@ -1,10 +1,11 @@ # Generated from CLion C/C++ Code Style settings BasedOnStyle: LLVM AccessModifierOffset: -4 -AlignAfterOpenBracket: Align +AlignAfterOpenBracket: BlockIndent AlignConsecutiveAssignments: None AlignOperands: DontAlign -AllowAllParametersOfDeclarationOnNextLine: true +AllowAllArgumentsOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false AllowShortBlocksOnASingleLine: Empty AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: None @@ -14,6 +15,7 @@ AllowShortLoopsOnASingleLine: false AlwaysBreakAfterReturnType: None AlwaysBreakTemplateDeclarations: Yes BinPackArguments: false +BinPackParameters: false BreakBeforeBraces: Custom BraceWrapping: AfterCaseLabel: false @@ -39,7 +41,7 @@ ContinuationIndentWidth: 4 IndentCaseLabels: true IndentPPDirectives: None IndentWidth: 4 -InsertBraces: false +InsertBraces: true KeepEmptyLinesAtTheStartOfBlocks: true MaxEmptyLinesToKeep: 2 NamespaceIndentation: None diff --git a/.github/ISSUE_TEMPLATE/PROBLEM_REPORT.yml b/.github/ISSUE_TEMPLATE/PROBLEM_REPORT.yml index eacbe74092..d6baa51307 100644 --- a/.github/ISSUE_TEMPLATE/PROBLEM_REPORT.yml +++ b/.github/ISSUE_TEMPLATE/PROBLEM_REPORT.yml @@ -11,16 +11,6 @@ body: options: - label: I have searched the existing issues required: true - - type: dropdown - id: version - attributes: - label: Version - description: What version of FreeCAD are you running? - options: - - 0.20 (Release) - - 0.21 (Development) - validations: - required: true - type: textarea id: full_version attributes: diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c42dbeea3..d1536fbc72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,16 +10,24 @@ if (POLICY CMP0072) set(OpenGL_GL_PREFERENCE LEGACY) endif(POLICY CMP0072) -find_program(CCACHE_PROGRAM ccache) #This check should occur before project() -if(CCACHE_PROGRAM) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") +if (BUILD_WITH_CONDA AND WIN32) + option(FREECAD_USE_CCACHE "Auto detect and use ccache during compilation" OFF) +else() + option(FREECAD_USE_CCACHE "Auto detect and use ccache during compilation" ON) +endif() + +if(FREECAD_USE_CCACHE) + find_program(CCACHE_PROGRAM ccache) #This check should occur before project() + if(CCACHE_PROGRAM) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") + endif() endif() project(FreeCAD) set(PACKAGE_VERSION_NAME "Vulcan") set(PACKAGE_VERSION_MAJOR "0") -set(PACKAGE_VERSION_MINOR "21") +set(PACKAGE_VERSION_MINOR "22") set(PACKAGE_VERSION_PATCH "0") # number of patch release (e.g. "4" for the 0.18.4 release) set(PACKAGE_VERSION_SUFFIX "dev") # either "dev" for development snapshot or "" (empty string) set(PACKAGE_BUILD_VERSION "0") # used when the same FreeCAD version will be re-released (for example using an updated LibPack) @@ -97,7 +105,7 @@ if(MSVC AND FREECAD_LIBPACK_USE AND LIBPACK_FOUND) CopyLibpackDirectories() endif() -if (BUILD_TEST) +if (ENABLE_DEVELOPER_TESTS) add_subdirectory(tests) endif() diff --git a/README.md b/README.md index a932ef9829..de79530a09 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ [Blog](https://blog.freecad.org) -[![Release](https://img.shields.io/github/release/freecad/freecad.svg)](https://github.com/freecad/freecad/releases/latest) [![Master][freecad-master-status]][gitlab-branch-master] [![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad) [![Gitter](https://img.shields.io/gitter/room/freecad/freecad.svg)](https://gitter.im/freecad/freecad?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Liberapay](https://img.shields.io/liberapay/receives/FreeCAD.svg?logo=liberapay)](https://liberapay.com/FreeCAD) +[![Release](https://img.shields.io/github/release/freecad/freecad.svg)](https://github.com/freecad/freecad/releases/latest) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad) [![Liberapay](https://img.shields.io/liberapay/receives/FreeCAD.svg?logo=liberapay)](https://liberapay.com/FreeCAD) @@ -53,19 +53,6 @@ For development releases check the [weekly-builds page](https://github.com/FreeC Other options are described at the [wiki Download page](https://wiki.freecad.org/Download). -Build Status ------------- - -| Master | 0.20 | Translation | -|:------:|:----:|:-----------:| -|[![Master][freecad-master-status]][gitlab-branch-master]|[![0.20][freecad-0.20-status]][gitlab-branch-0.20]|[![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad)| - -[freecad-0.20-status]: https://gitlab.com/freecad/FreeCAD-CI/badges/releases/FreeCAD-0-20/pipeline.svg -[freecad-master-status]: https://gitlab.com/freecad/FreeCAD-CI/badges/master/pipeline.svg -[gitlab-branch-0.20]: https://gitlab.com/freecad/FreeCAD-CI/-/commits/releases/FreeCAD-0-20 -[gitlab-branch-master]: https://gitlab.com/freecad/FreeCAD-CI/-/commits/master -[travis-builds]: https://travis-ci.org/FreeCAD/FreeCAD/builds - Compiling --------- diff --git a/SECURITY.md b/SECURITY.md index 6a0ffc6c4a..6131ab73fe 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -21,9 +21,9 @@ FreeCAD implements security fixes to the current release series, and to the curr | Version | Supported | |---------| ------------------ | +| 0.22dev | :white_check_mark: | | 0.21 | :white_check_mark: | -| 0.20.2 | :white_check_mark: | -| < 0.20 | :x: | +| < 0.21 | :x: | ## Reporting a Vulnerability diff --git a/cMake/FindCoin3DDoc.cmake b/cMake/FindCoin3DDoc.cmake index c6c92f2608..70ae9e1572 100644 --- a/cMake/FindCoin3DDoc.cmake +++ b/cMake/FindCoin3DDoc.cmake @@ -54,28 +54,8 @@ IF (COIN3D_FOUND) ${CMAKE_BINARY_DIR}/src/Doc ) IF( EXISTS ${COIN3D_DOC_TAGFILE}) - SET( COIN3D_DOC_FOUND "YES" - ) - #ELSE( EXISTS ${COIN3D_DOC_TAGFILE}) - # find_program(WGET_PROG wget - # ) - # IF( EXISTS ${WGET_PROG}) - # execute_process(COMMAND ${WGET_PROG} - # -P ${CMAKE_BINARY_DIR}/src/Doc - # ${COIN3D_DOC_PATH}/coin.tag - # ) - # find_file(COIN3D_DOC_TAGFILE coin.tag - # ${CMAKE_BINARY_DIR}/src/Doc - # ) - # IF( EXISTS ${COIN3D_DOC_TAGFILE}) - # SET( COIN3D_DOC_FOUND "YES" - # ) - # ENDIF( EXISTS ${COIN3D_DOC_TAGFILE}) - # - # ENDIF( EXISTS ${WGET_PROG}) - + SET( COIN3D_DOC_FOUND "YES" ) ENDIF( EXISTS ${COIN3D_DOC_TAGFILE}) - ENDIF( EXISTS ${COIN3D_DOC_PATH}) ENDIF(APPLE) ENDIF(WIN32) diff --git a/cMake/FindOCC.cmake b/cMake/FindOCC.cmake index 48e5c98750..32078cf2de 100644 --- a/cMake/FindOCC.cmake +++ b/cMake/FindOCC.cmake @@ -160,11 +160,10 @@ if(OCC_FOUND) TKService TKV3d ) - if(OCC_VERSION_STRING VERSION_LESS 6.7.3) - list(APPEND OCC_OCAF_LIBRARIES TKAdvTools) - elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) + + if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) list(APPEND OCC_OCAF_LIBRARIES TKRWMesh) - endif(OCC_VERSION_STRING VERSION_LESS 6.7.3) + endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}") message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}") message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}") diff --git a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake index fc4344adbd..88081f2467 100644 --- a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake +++ b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake @@ -113,7 +113,7 @@ macro(InitializeFreeCADBuildOptions) option(BUILD_MATERIAL "Build the FreeCAD material module" ON) option(BUILD_MESH "Build the FreeCAD mesh module" ON) option(BUILD_MESH_PART "Build the FreeCAD mesh part module" ON) - option(BUILD_FLAT_MESH "Build the FreeCAD flat mesh module" OFF) + option(BUILD_FLAT_MESH "Build the FreeCAD flat mesh module" ON) option(BUILD_OPENSCAD "Build the FreeCAD openscad module" ON) option(BUILD_PART "Build the FreeCAD part module" ON) option(BUILD_PART_DESIGN "Build the FreeCAD part design module" ON) @@ -133,6 +133,7 @@ macro(InitializeFreeCADBuildOptions) option(BUILD_SURFACE "Build the FreeCAD surface module" ON) option(BUILD_VR "Build the FreeCAD Oculus Rift support (need Oculus SDK 4.x or higher)" OFF) option(BUILD_CLOUD "Build the FreeCAD cloud module" OFF) + option(ENABLE_DEVELOPER_TESTS "Build the FreeCAD unit tests suit" ON) if(MSVC) option(BUILD_FEM_NETGEN "Build the FreeCAD FEM module with the NETGEN mesher" ON) diff --git a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake index d248210bc5..6aaa10b587 100644 --- a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake +++ b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake @@ -76,7 +76,7 @@ macro(PrintFinalReport) value(CMAKE_CXX_STANDARD) value(CMAKE_CXX_FLAGS) value(CMAKE_BUILD_TYPE) - value(BUILD_TEST) + value(ENABLE_DEVELOPER_TESTS) value(FREECAD_USE_FREETYPE) value(FREECAD_USE_EXTERNAL_SMESH) value(BUILD_SMESH) diff --git a/cMake/FreeCAD_Helpers/SetupQt.cmake b/cMake/FreeCAD_Helpers/SetupQt.cmake index f710bb1185..567b5cd9fa 100644 --- a/cMake/FreeCAD_Helpers/SetupQt.cmake +++ b/cMake/FreeCAD_Helpers/SetupQt.cmake @@ -23,7 +23,7 @@ if(BUILD_GUI) list (APPEND FREECAD_QT_COMPONENTS Designer) endif() endif() -if (BUILD_TEST) +if (ENABLE_DEVELOPER_TESTS) list (APPEND FREECAD_QT_COMPONENTS Test) endif () @@ -38,6 +38,8 @@ set(CMAKE_AUTOMOC TRUE) set(CMAKE_AUTOUIC TRUE) set(QtCore_MOC_EXECUTABLE ${Qt${FREECAD_QT_MAJOR_VERSION}Core_MOC_EXECUTABLE}) +add_definitions(-DQT_NO_KEYWORDS) + message(STATUS "Set up to compile with Qt ${Qt${FREECAD_QT_MAJOR_VERSION}Core_VERSION}") # In Qt 5.15 they added more generic names for these functions: "backport" those new names diff --git a/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake b/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake index 43e650fe85..7556a25a89 100644 --- a/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake +++ b/cMake/FreeCAD_Helpers/SetupShibokenAndPyside.cmake @@ -120,7 +120,7 @@ macro(SetupShibokenAndPyside) option(FREECAD_USE_SHIBOKEN "Links to the shiboken library at build time. If OFF its Python module is imported at runtime" OFF) endif() - # Now try to import the shiboken Python module and print an error if it can't be loaded + # Now try to import the shiboken Python module and print a warning if it can't be loaded execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import shiboken${SHIBOKEN_MAJOR_VERSION}" RESULT_VARIABLE FAILURE @@ -128,7 +128,7 @@ macro(SetupShibokenAndPyside) ) if(FAILURE) - message(FATAL_ERROR, + message(WARNING "==================================\n" "Shiboken${SHIBOKEN_MAJOR_VERSION} Python module not found.\n" "==================================\n") @@ -148,14 +148,14 @@ macro(SetupShibokenAndPyside) option(FREECAD_USE_PYSIDE "Links to the PySide libraries at build time." OFF) endif() - # Independent of the build option PySide modules must be loaded at runtime. Print an error if it fails. + # Independent of the build option PySide modules must be loaded at runtime. Print a warning if it fails. execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import PySide${PYSIDE_MAJOR_VERSION};import os;print(os.path.dirname(PySide${PYSIDE_MAJOR_VERSION}.__file__), end='')" RESULT_VARIABLE FAILURE OUTPUT_VARIABLE PRINT_OUTPUT ) if(FAILURE) - message(FATAL_ERROR, + message(WARNING "================================\n" "PySide${PYSIDE_MAJOR_VERSION} Python module not found.\n" "================================\n") diff --git a/ci/.gitlab-ci.yml b/ci/.gitlab-ci.yml deleted file mode 100644 index 92200a8d8e..0000000000 --- a/ci/.gitlab-ci.yml +++ /dev/null @@ -1,43 +0,0 @@ -# gitlab CI config file - -# this image is on dockerhub. Dockerfile is here: https://gitlab.com/PrzemoF/FreeCAD/-/blob/gitlab-v1/ci/Dockerfile -image: freecadci/runner - -stages: # List of stages for jobs, and their order of execution - - build - - test - -before_script: - - apt-get update -yqq - # CCache Config - - mkdir -p ccache - - export CCACHE_BASEDIR=${PWD} - - export CCACHE_DIR=${PWD}/ccache - -cache: - paths: - - ccache/ - -build-job: # This job runs in the build stage, which runs first. - stage: build - - script: - - echo "Compiling the code..." - - mkdir build - - cd build - - ccache cmake ../ - - ccache cmake --build ./ -j$(nproc) - - echo "Compile complete." - - artifacts: - paths: - - build/ - -test-job: # This job runs in the test stage. - stage: test # It only starts when the job in the build stage completes successfully. - script: - - echo "Running unit tests... " - - cd build/bin/ - # Testing currently doesn't work due to problems with libraries ot being visible by the binary. - - ./FreeCADCmd -t 0 - diff --git a/ci/Dockerfile b/ci/Dockerfile deleted file mode 100644 index c91d6d6b8a..0000000000 --- a/ci/Dockerfile +++ /dev/null @@ -1,117 +0,0 @@ -FROM ubuntu:20.04 -MAINTAINER Przemo Firszt -# This is the docker image definition used to build FreeCAD. It's currently accessible on: -# https://hub.docker.com/repository/docker/freecadci/runner -# on under name freecadci/runner when using docker - -ENV DEBIAN_FRONTEND=noninteractive - -RUN apt-get update -y -RUN apt-get update -y && apt-get install -y gnupg2 -RUN echo "deb http://ppa.launchpad.net/freecad-maintainers/freecad-daily/ubuntu focal main" >> /etc/apt/sources.list.d/freecad-daily.list -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 83193AA3B52FF6FCF10A1BBF005EAE8119BB5BCA -RUN apt-get update -y - -# those 3 are for debugging purposes only. Not required to build FreeCAD -RUN apt-get install -y \ - vim \ - nano \ - bash - -# Main set of FreeCAD dependencies. To be verified. -RUN apt-get install -y \ - ccache \ - cmake \ - debhelper \ - dh-exec \ - dh-python \ - doxygen \ - git \ - graphviz \ - libboost-date-time-dev \ - libboost-dev \ - libboost-filesystem-dev \ - libboost-filesystem1.71-dev \ - libboost-graph-dev \ - libboost-iostreams-dev \ - libboost-program-options-dev \ - libboost-program-options1.71-dev \ - libboost-python1.71-dev \ - libboost-regex-dev \ - libboost-regex1.71-dev \ - libboost-serialization-dev \ - libboost-system1.71-dev \ - libboost-thread-dev \ - libboost-thread1.71-dev \ - libboost1.71-dev \ - libcoin-dev \ - libdouble-conversion-dev \ - libeigen3-dev \ - libglew-dev \ - libgts-bin \ - libgts-dev \ - libkdtree++-dev \ - liblz4-dev \ - libmedc-dev \ - libmetis-dev \ - libnglib-dev \ - libocct-data-exchange-dev \ - libocct-ocaf-dev \ - libocct-visualization-dev \ - libopencv-dev \ - libproj-dev \ - libpyside2-dev \ - libqt5opengl5 \ - libqt5opengl5-dev \ - libqt5svg5-dev \ - libqt5webkit5 \ - libqt5webkit5-dev \ - libqt5x11extras5-dev \ - libqt5xmlpatterns5-dev \ - libshiboken2-dev \ - libspnav-dev \ - libvtk7-dev \ - libvtk7.1p \ - libvtk7.1p-qt \ - libx11-dev \ - libxerces-c-dev \ - libzipios++-dev \ - lsb-release \ - nastran \ - netgen \ - netgen-headers \ - occt-draw \ - pybind11-dev \ - pyqt5-dev-tools \ - pyside2-tools \ - python3-dev \ - python3-matplotlib \ - python3-pivy \ - python3-ply \ - python3-pyside2.* \ - python3-pyside2.qtcore \ - python3-pyside2.qtgui \ - python3-pyside2.qtsvg \ - python3-pyside2.qtuitools \ - python3-pyside2.qtwidgets \ - python3-pyside2.qtxml \ - python3-requests \ - python3-yaml \ - qt5-default \ - qt5-qmake \ - qtbase5-dev \ - qttools5-dev \ - qtwebengine5-dev \ - swig - -RUN apt-get update -y --fix-missing - -# Clean -RUN apt-get clean \ - && rm /var/lib/apt/lists/* \ - /usr/share/doc/* \ - /usr/share/locale/* \ - /usr/share/man/* \ - /usr/share/info/* -fR - - diff --git a/package/fedora/freecad.spec b/package/fedora/freecad.spec index 5dda56fe3d..4e25bc37e2 100644 --- a/package/fedora/freecad.spec +++ b/package/fedora/freecad.spec @@ -7,7 +7,7 @@ # Maintainers: keep this list of plugins up to date # List plugins in %%{_libdir}/%{name}/lib, less '.so' and 'Gui.so', here -%global plugins Fem FreeCAD PathApp Import Inspection Mesh MeshPart Part Points ReverseEngineering Robot Sketcher Start Web PartDesignGui _PartDesign Path PathGui Spreadsheet SpreadsheetGui area DraftUtils DraftUtils libDriver libDriverDAT libDriverSTL libDriverUNV libE57Format libMEFISTO2 libSMDS libSMESH libSMESHDS libStdMeshers Measure TechDraw TechDrawGui libarea-native Surface SurfaceGui PathSimulator +%global plugins Fem FreeCAD PathApp Import Inspection Mesh MeshPart Part Points ReverseEngineering Robot Sketcher Start Web PartDesignGui _PartDesign Path PathGui Spreadsheet SpreadsheetGui area DraftUtils DraftUtils flatmesh libDriver libDriverDAT libDriverSTL libDriverUNV libE57Format libMEFISTO2 libSMDS libSMESH libSMESHDS libStdMeshers Measure TechDraw TechDrawGui libarea-native Surface SurfaceGui PathSimulator # Some configuration options for other environments @@ -232,7 +232,7 @@ LDFLAGS='-Wl,--as-needed -Wl,--no-undefined'; export LDFLAGS %endif -DPACKAGE_WCREF="%{release} (Git)" \ -DPACKAGE_WCURL="git://github.com/%{github_name}/FreeCAD.git master" \ - -DBUILD_TEST=FALSE \ + -DENABLE_DEVELOPER_TESTS=FALSE \ ../ make fc_version diff --git a/src/App/Application.cpp b/src/App/Application.cpp index 615e4e3f54..a85b916982 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -477,6 +477,7 @@ Document* Application::newDocument(const char * Name, const char * UserName, boo DocMap[name] = doc; _pActiveDoc = doc; + //NOLINTBEGIN // connect the signals to the application for the new document _pActiveDoc->signalBeforeChange.connect(std::bind(&App::Application::slotBeforeChangeDocument, this, sp::_1, sp::_2)); _pActiveDoc->signalChanged.connect(std::bind(&App::Application::slotChangedDocument, this, sp::_1, sp::_2)); @@ -497,6 +498,7 @@ Document* Application::newDocument(const char * Name, const char * UserName, boo _pActiveDoc->signalStartSave.connect(std::bind(&App::Application::slotStartSaveDocument, this, sp::_1, sp::_2)); _pActiveDoc->signalFinishSave.connect(std::bind(&App::Application::slotFinishSaveDocument, this, sp::_1, sp::_2)); _pActiveDoc->signalChangePropertyEditor.connect(std::bind(&App::Application::slotChangePropertyEditor, this, sp::_1, sp::_2)); + //NOLINTEND // make sure that the active document is set in case no GUI is up { @@ -1241,7 +1243,7 @@ ParameterManager * Application::GetParameterSet(const char* sName) const } const std::map> & -Application::GetParameterSetList(void) const +Application::GetParameterSetList() const { return mpcPramManager; } @@ -2478,6 +2480,7 @@ void Application::initConfig(int argc, char ** argv) App::Application::Config()["BuildVersionMajor" ] = FCVersionMajor; App::Application::Config()["BuildVersionMinor" ] = FCVersionMinor; App::Application::Config()["BuildVersionPoint" ] = FCVersionPoint; + App::Application::Config()["BuildVersionSuffix" ] = FCVersionSuffix; App::Application::Config()["BuildRevision" ] = FCRevision; App::Application::Config()["BuildRepositoryURL" ] = FCRepositoryURL; App::Application::Config()["BuildRevisionDate" ] = FCRevisionDate; @@ -2557,21 +2560,23 @@ void Application::initConfig(int argc, char ** argv) // Remove banner if FreeCAD is invoked via the -c command as regular // Python interpreter if (!(mConfig["Verbose"] == "Strict")) - Base::Console().Message("%s %s, Libs: %s.%s.%sR%s\n%s", + Base::Console().Message("%s %s, Libs: %s.%s.%s%sR%s\n%s", mConfig["ExeName"].c_str(), mConfig["ExeVersion"].c_str(), mConfig["BuildVersionMajor"].c_str(), mConfig["BuildVersionMinor"].c_str(), mConfig["BuildVersionPoint"].c_str(), + mConfig["BuildVersionSuffix"].c_str(), mConfig["BuildRevision"].c_str(), mConfig["CopyrightInfo"].c_str()); else - Base::Console().Message("%s %s, Libs: %s.%s.%sR%s\n", + Base::Console().Message("%s %s, Libs: %s.%s.%s%sR%s\n", mConfig["ExeName"].c_str(), mConfig["ExeVersion"].c_str(), mConfig["BuildVersionMajor"].c_str(), mConfig["BuildVersionMinor"].c_str(), mConfig["BuildVersionPoint"].c_str(), + mConfig["BuildVersionSuffix"].c_str(), mConfig["BuildRevision"].c_str()); } LoadParameters(); @@ -3148,7 +3153,7 @@ std::tuple getCustomPaths() } /*! - * \brief getCustomPaths + * \brief getStandardPaths * Returns a tuple of XDG-compliant standard paths names where to store config, data and cached files. * The method therefore reads the environment variables: * \list diff --git a/src/App/Application.h b/src/App/Application.h index a1616bad1a..45868f018b 100644 --- a/src/App/Application.h +++ b/src/App/Application.h @@ -332,7 +332,7 @@ public: Base::Reference GetParameterGroupByPath(const char* sName); ParameterManager * GetParameterSet(const char* sName) const; - const std::map> & GetParameterSetList(void) const; + const std::map> & GetParameterSetList() const; void AddParameterSet(const char* sName); void RemoveParameterSet(const char* sName); //@} diff --git a/src/App/AutoTransaction.h b/src/App/AutoTransaction.h index 42a52fb4b1..84476b52f7 100644 --- a/src/App/AutoTransaction.h +++ b/src/App/AutoTransaction.h @@ -24,6 +24,7 @@ #define APP_AUTOTRANSACTION_H #include +#include namespace App { diff --git a/src/App/ComplexGeoData.cpp b/src/App/ComplexGeoData.cpp index df0c78265b..4f5407461d 100644 --- a/src/App/ComplexGeoData.cpp +++ b/src/App/ComplexGeoData.cpp @@ -1,27 +1,30 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * +// SPDX-License-Identifier: LGPL-2.1-or-later +/**************************************************************************** + * * + * Copyright (c) 2002 Jürgen Riegel * + * Copyright (c) 2022 Zheng, Lei * + * Copyright (c) 2023 FreeCAD Project Association * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * ***************************************************************************/ -#include "PreCompiled.h" +#include "PreCompiled.h"// NOLINT #ifndef _PreComp_ # include @@ -30,27 +33,33 @@ #include #include "ComplexGeoData.h" +#include "ElementMap.h" +#include "ElementNamingUtils.h" #include #include #include +#include + using namespace Data; -TYPESYSTEM_SOURCE_ABSTRACT(Data::Segment , Base::BaseClass) +TYPESYSTEM_SOURCE_ABSTRACT(Data::Segment , Base::BaseClass)// NOLINT +TYPESYSTEM_SOURCE_ABSTRACT(Data::ComplexGeoData , Base::Persistence)// NOLINT +FC_LOG_LEVEL_INIT("ComplexGeoData", true,true)// NOLINT -TYPESYSTEM_SOURCE_ABSTRACT(Data::ComplexGeoData , Base::Persistence) +namespace bio = boost::iostreams; +using namespace Data; +// NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic) ComplexGeoData::ComplexGeoData() :Tag(0) { } -ComplexGeoData::~ComplexGeoData() = default; - Data::Segment* ComplexGeoData::getSubElementByName(const char* name) const { int index = 0; @@ -94,10 +103,10 @@ Base::Placement ComplexGeoData::getPlacement() const { Base::Matrix4D mat = getTransform(); - return Base::Placement(Base::Vector3d(mat[0][3], - mat[1][3], - mat[2][3]), - Base::Rotation(mat)); + return {Base::Vector3d(mat[0][3], + mat[1][3], + mat[2][3]), + Base::Rotation(mat)}; } double ComplexGeoData::getAccuracy() const @@ -105,19 +114,21 @@ double ComplexGeoData::getAccuracy() const return 0.0; } -void ComplexGeoData::getLinesFromSubElement(const Segment*, +void ComplexGeoData::getLinesFromSubElement(const Segment* segment, std::vector &Points, std::vector &lines) const { + (void)segment; (void)Points; (void)lines; } -void ComplexGeoData::getFacesFromSubElement(const Segment*, +void ComplexGeoData::getFacesFromSubElement(const Segment* segment, std::vector &Points, std::vector &PointNormals, std::vector &faces) const { + (void)segment; (void)Points; (void)PointNormals; (void)faces; @@ -161,8 +172,215 @@ void ComplexGeoData::getFaces(std::vector &Points, (void)flags; } -bool ComplexGeoData::getCenterOfGravity(Base::Vector3d&) const +bool ComplexGeoData::getCenterOfGravity(Base::Vector3d& unused) const { + (void)unused; return false; } +size_t ComplexGeoData::getElementMapSize(bool flush) const { + if (flush) { + flushElementMap(); +#ifdef _FC_MEM_TRACE + FC_MSG("memory size " << (_MemSize/1024/1024) << "MB, " << (_MemMaxSize/1024/1024)); + for (auto &unit : _MemUnits) + FC_MSG("unit " << unit.first << ": " << unit.second.count << ", " << unit.second.maxcount); +#endif + } + return _elementMap ? _elementMap->size():0; +} + +MappedName ComplexGeoData::getMappedName(const IndexedName & element, + bool allowUnmapped, + ElementIDRefs *sid) const +{ + if (!element) { + return {}; + } + flushElementMap(); + if(!_elementMap) { + if (allowUnmapped) { + return MappedName(element); + } + return {}; + } + + MappedName name = _elementMap->find(element, sid); + if (allowUnmapped && !name) { + return MappedName(element); + } + return name; +} + +IndexedName ComplexGeoData::getIndexedName(const MappedName & name, + ElementIDRefs *sid) const +{ + flushElementMap(); + if (!name) { + return IndexedName(); + } + if (!_elementMap) { + std::string str; + return {name.appendToBuffer(str), getElementTypes()}; + } + return _elementMap->find(name, sid); +} + +Data::MappedElement +ComplexGeoData::getElementName(const char *name, + ElementIDRefs *sid, + bool copy) const +{ + IndexedName element(name, getElementTypes()); + if (element) { + return {getMappedName(element, false, sid), element}; + } + + const char * mapped = isMappedElement(name); + if (mapped) { + name = mapped; + } + + MappedElement result; + // Strip out the trailing '.XXXX' if any + const char *dot = strchr(name,'.'); + if(dot) { + result.name = MappedName(name, dot - name); + } + else if (copy) { + result.name = name; + } + else { + result.name = MappedName(name); + } + result.index = getIndexedName(result.name, sid); + return result; +} + +std::vector > +ComplexGeoData::getElementMappedNames(const IndexedName & element, bool needUnmapped) const { + flushElementMap(); + if(_elementMap) { + auto res = _elementMap->findAll(element); + if (!res.empty()) { + return res; + } + } + + if (!needUnmapped) { + return {}; + } + return {std::make_pair(MappedName(element), ElementIDRefs())}; +} + +std::vector ComplexGeoData::getElementMap() const { + flushElementMap(); + if(!_elementMap) { + return {}; + } + return _elementMap->getAll(); +} + +ElementMapPtr ComplexGeoData::elementMap(bool flush) const +{ + if (flush) { + flushElementMap(); + } + return _elementMap; +} + +void ComplexGeoData::flushElementMap() const +{ +} + +void ComplexGeoData::setElementMap(const std::vector &map) { + _elementMap = std::make_shared(); // Get rid of the old one, if any, but make + // sure the memory exists for the new data. + for(auto &element : map) { + _elementMap->setElementName(element.index, element.name, Tag); + } +} + +char ComplexGeoData::elementType(const Data::MappedName &name) const +{ + if(!name) { + return 0; + } + auto indexedName = getIndexedName(name); + if (indexedName) { + return elementType(indexedName); + } + char element_type=0; + if (name.findTagInElementName(nullptr,nullptr,nullptr,&element_type) < 0) { + return elementType(name.toIndexedName()); + } + return element_type; +} + +char ComplexGeoData::elementType(const Data::IndexedName &element) const +{ + if(!element) { + return 0; + } + for(auto &type : getElementTypes()) { + if(boost::equals(element.getType(), type)) { + return type[0]; + } + } + return 0; +} + +// The elementType function can take a char *, in which case it tries a sequence of checks to +// see what it got. +// 1) Check to see if it is an indexedName, and if so directly look up the type +// 2) If not: +// a) Remove any element map prefix that is present +// b) See if the name contains a dot: +// i) If yes, create a MappedName from the part before the dot, and set the type to the +// part after the dot +// ii) If no, create a MappedName from the whole name +// c) Try to get the elementType based on the MappedName. Return it if found +// 3) Check to make sure the discovered type is in the list of types, and return its first +// character if so. +char ComplexGeoData::elementType(const char *name) const { + if(!name) { + return 0; + } + + const char *type = nullptr; + IndexedName element(name, getElementTypes()); + if (element) { + type = element.getType(); + } + else { + const char * mapped = isMappedElement(name); + if (mapped) { + name = mapped; + } + + MappedName mappedName; + const char *dot = strchr(name,'.'); + if(dot) { + mappedName = MappedName(name, dot-name); + type = dot+1; + } + else { + mappedName = MappedName::fromRawData(name); + } + char res = elementType(mappedName); + if (res != 0) { + return res; + } + } + + if(type && type[0]) { + for(auto &elementTypes : getElementTypes()) { + if(boost::starts_with(type, elementTypes)) { + return type[0]; + } + } + } + return 0; +} + +// NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic) diff --git a/src/App/ComplexGeoData.h b/src/App/ComplexGeoData.h index ae59fde241..42a1a539a5 100644 --- a/src/App/ComplexGeoData.h +++ b/src/App/ComplexGeoData.h @@ -1,33 +1,40 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * +// SPDX-License-Identifier: LGPL-2.1-or-later +/**************************************************************************** + * * + * Copyright (c) 2002 Jürgen Riegel * + * Copyright (c) 2022 Zheng, Lei * + * Copyright (c) 2023 FreeCAD Project Association * + * * + * This file is part of FreeCAD. * + * * + * FreeCAD is free software: you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * FreeCAD is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with FreeCAD. If not, see * + * . * + * * ***************************************************************************/ -#ifndef _AppComplexGeoData_h_ -#define _AppComplexGeoData_h_ +#ifndef APP_COMPLEX_GEO_DATA_H +#define APP_COMPLEX_GEO_DATA_H #include #include #include #include +#include "MappedName.h" +#include "MappedElement.h" +#include "ElementMap.h" +#include "StringHasher.h" #ifdef __GNUC__ # include @@ -38,20 +45,22 @@ namespace Base { class Placement; class Rotation; -template class BoundBox3; +template class BoundBox3;// NOLINT using BoundBox3d = BoundBox3; } namespace Data { +struct MappedChildElements; + /** Segments - * Subelement type of the ComplexGeoData type + * Sub-element type of the ComplexGeoData type * It is used to split an object in further sub-parts. */ class AppExport Segment: public Base::BaseClass { - TYPESYSTEM_HEADER_WITH_OVERRIDE(); + TYPESYSTEM_HEADER_WITH_OVERRIDE();// NOLINT public: ~Segment() override = default; @@ -63,7 +72,7 @@ public: */ class AppExport ComplexGeoData: public Base::Persistence, public Base::Handled { - TYPESYSTEM_HEADER_WITH_OVERRIDE(); + TYPESYSTEM_HEADER_WITH_OVERRIDE();// NOLINT public: struct Line {uint32_t I1; uint32_t I2;}; @@ -76,19 +85,19 @@ public: /// Constructor ComplexGeoData(); /// Destructor - ~ComplexGeoData() override; + ~ComplexGeoData() override = default; - /** @name Subelement management */ + /** @name Sub-element management */ //@{ /** Sub type list - * List of different subelement types - * its NOT a list of the subelements itself + * List of different sub-element types + * its NOT a list of the sub-elements itself */ virtual std::vector getElementTypes() const=0; virtual unsigned long countSubElements(const char* Type) const=0; - /// get the subelement by type and number + /// get the sub-element by type and number virtual Segment* getSubElement(const char* Type, unsigned long) const=0; - /// get subelement by combined name + /// get sub-element by combined name virtual Segment* getSubElementByName(const char* Name) const; /** Get lines from segment */ virtual void getLinesFromSubElement( @@ -164,6 +173,110 @@ public: virtual bool getCenterOfGravity(Base::Vector3d& center) const; //@} + + /** @name Element name mapping */ + //@{ + + /** Get element indexed name + * + * @param name: the input name + * @param sid: optional output of and App::StringID involved forming this mapped name + * + * @return Returns an indexed name. + */ + IndexedName getIndexedName(const MappedName & name, + ElementIDRefs *sid = nullptr) const; + + /** Get element mapped name + * + * @param name: the input name + * @param allowUnmapped: If the queried element is not mapped, then return + * an empty name if \c allowUnmapped is false, or + * else, return the indexed name. + * @param sid: optional output of and App::StringID involved forming this mapped name + * @return Returns the mapped name. + */ + MappedName getMappedName(const IndexedName & element, + bool allowUnmapped = false, + ElementIDRefs *sid = nullptr) const; + + /** Return a pair of indexed name and mapped name + * + * @param name: the input name. + * @param sid: optional output of any App::StringID involved in forming + * this mapped name + * @param copy: if true, copy the name string, or else use it as constant + * string, and caller must make sure the memory is not freed. + * + * @return Returns the MappedElement which contains both the indexed and + * mapped name. + * + * This function guesses whether the input name is an indexed name or + * mapped, and perform a lookup and return the names found. If the input + * name contains only alphabets and underscore followed by optional digits, + * it will be treated as indexed name. Or else, it will be treated as + * mapped name. + */ + MappedElement getElementName(const char * name, + ElementIDRefs *sid = nullptr, + bool copy = false) const; + + /** Get mapped element names + * + * @param element: original element name with \c Type + \c Index + * @param needUnmapped: if true, return the original element name if no + * mapping is found + * + * @return a list of mapped names of the give element along with their + * associated string ID references + */ + std::vector > + getElementMappedNames(const IndexedName & element, bool needUnmapped=false) const; + + /// Append the Tag (if and only if it is non zero) into the element map + virtual void reTagElementMap(long tag, + App::StringHasherRef hasher, + const char *postfix=nullptr) { + (void)tag; + (void)hasher; + (void)postfix; + } + + // NOTE: getElementHistory is now in ElementMap + + char elementType(const Data::MappedName &) const; + char elementType(const Data::IndexedName &) const; + char elementType(const char *name) const; + + /** Reset/swap the element map + * + * @param elementMap: optional new element map + * + * @return Returns the existing element map. + */ + virtual ElementMapPtr resetElementMap(ElementMapPtr elementMap=ElementMapPtr()) { + _elementMap.swap(elementMap); + return elementMap; + } + + /// Get the entire element map + std::vector getElementMap() const; + + /// Set the entire element map + void setElementMap(const std::vector &elements); + + /// Get the current element map size + size_t getElementMapSize(bool flush=true) const; + + /// Check if the given sub-name only contains an element name + static bool isElementName(const char *subName) { + return (subName != nullptr) && (*subName != 0) && findElementName(subName)==subName; + } + + /** Flush an internal buffering for element mapping */ + virtual void flushElementMap() const; + //@} + protected: /// from local to outside @@ -223,6 +336,37 @@ protected: } public: mutable long Tag; + + +public: + /// String hasher for element name shortening + mutable App::StringHasherRef Hasher; + +protected: + + /// from local to outside + inline Base::Vector3d transformToOutside(const Base::Vector3f& vec) const + { + return getTransform() * Base::Vector3d(static_cast(vec.x), + static_cast(vec.y), + static_cast(vec.z)); + } + /// from local to inside + inline Base::Vector3f transformToInside(const Base::Vector3d& vec) const + { + Base::Matrix4D tmpM(getTransform()); + tmpM.inverse(); + Base::Vector3d tmp = tmpM * vec; + return Base::Vector3f(static_cast(tmp.x), + static_cast(tmp.y), + static_cast(tmp.z)); + } + +protected: + ElementMapPtr elementMap(bool flush=true) const; + +private: + ElementMapPtr _elementMap; }; } //namespace App diff --git a/src/App/Document.cpp b/src/App/Document.cpp index 30a65d4579..84ae6c18c1 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -904,7 +904,11 @@ std::string Document::getTransientDirectoryName(const std::string& uuid, const s // Create a directory name of the form: {ExeName}_Doc_{UUID}_{HASH}_{PID} std::stringstream s; QCryptographicHash hash(QCryptographicHash::Sha1); +#if QT_VERSION < QT_VERSION_CHECK(6,3,0) hash.addData(filename.c_str(), filename.size()); +#else + hash.addData(QByteArrayView(filename.c_str(), filename.size())); +#endif s << App::Application::getUserCachePath() << App::Application::getExecutableName() << "_Doc_" << uuid << "_" << hash.result().toHex().left(6).constData() @@ -918,7 +922,7 @@ std::string Document::getTransientDirectoryName(const std::string& uuid, const s void Document::Save (Base::Writer &writer) const { - writer.Stream() << "& obj, std:: Base::ZipWriter writer(out); writer.putNextEntry("Document.xml"); writer.Stream() << "" << endl; - writer.Stream() << "" << endl; + writer.Stream() << R"()" << endl; // Add this block to have the same layout as for normal documents writer.Stream() << "" << endl; writer.Stream() << "" << endl; @@ -1556,7 +1560,7 @@ public: BackupPolicy() { policy = Standard; numberOfFiles = 1; - useFCBakExtension = false; + useFCBakExtension = true; saveBackupDateFormat = "%Y%m%d-%H%M%S"; } ~BackupPolicy() = default; @@ -1928,7 +1932,7 @@ bool Document::saveToFile(const char* filename) const count_bak = -1; } bool useFCBakExtension = App::GetApplication().GetParameterGroupByPath - ("User parameter:BaseApp/Preferences/Document")->GetBool("UseFCBakExtension",false); + ("User parameter:BaseApp/Preferences/Document")->GetBool("UseFCBakExtension",true); std::string saveBackupDateFormat = App::GetApplication().GetParameterGroupByPath ("User parameter:BaseApp/Preferences/Document")->GetASCII("SaveBackupDateFormat","%Y%m%d-%H%M%S"); @@ -2753,8 +2757,9 @@ int Document::recompute(const std::vector &objs, bool forc // maximum two passes to allow some form of dependency inversion for(int passes=0; passes<2 && idx seq; - if(canAbort) - seq.reset(new Base::SequencerLauncher("Recompute...", topoSortedObjects.size())); + if(canAbort) { + seq = std::make_unique("Recompute...", topoSortedObjects.size()); + } FC_LOG("Recompute pass " << passes); for (; idx < topoSortedObjects.size(); ++idx) { auto obj = topoSortedObjects[idx]; @@ -2826,18 +2831,32 @@ int Document::recompute(const std::vector &objs, bool forc FC_TIME_LOG(t,"Recompute total"); if (!d->_RecomputeLog.empty()) { - d->pendingRemove.clear(); - if (!testStatus(Status::IgnoreErrorOnRecompute)) - Base::Console().Error("Recompute failed!\n"); - } - else { - for(auto &o : d->pendingRemove) { - auto obj = o.getObject(); - if (obj) - obj->getDocument()->removeObject(obj->getNameInDocument()); + if (!testStatus(Status::IgnoreErrorOnRecompute)) { + for (auto it : topoSortedObjects) { + if (it->isError()) { + const char* text = getErrorDescription(it); + if (text) { + Base::Console().Error("%s: %s\n", it->Label.getValue(), text); + } + } + } } } + for (auto doc : GetApplication().getDocuments()) { + decltype(doc->d->pendingRemove) objs; + objs.swap(doc->d->pendingRemove); + for(auto &o : objs) { + try { + if (auto obj = o.getObject()) { + obj->getDocument()->removeObject(obj->getNameInDocument()); + } + } catch (Base::Exception & e) { + e.ReportException(); + FC_ERR("error when removing object " << o.getDocumentName() << '#' << o.getObjectName()); + } + } + } return objectCount; } @@ -3369,7 +3388,7 @@ void Document::removeObject(const char* sName) if (pos->second->testStatus(ObjectStatus::PendingRecompute)) { // TODO: shall we allow removal if there is active undo transaction? - FC_LOG("pending remove of " << sName << " after recomputing document " << getName()); + FC_MSG("pending remove of " << sName << " after recomputing document " << getName()); d->pendingRemove.emplace_back(pos->second); return; } diff --git a/src/App/DocumentObject.cpp b/src/App/DocumentObject.cpp index 86329aa688..7229f6bcd6 100644 --- a/src/App/DocumentObject.cpp +++ b/src/App/DocumentObject.cpp @@ -1130,7 +1130,7 @@ DocumentObject *DocumentObject::resolve(const char *subname, auto sobj = getSubObject(std::string(subname,dot-subname+1).c_str()); if(sobj!=obj) { if(parent) { - // Link/LinkGroup has special visiblility handling of plain + // Link/LinkGroup has special visibility handling of plain // group, so keep ascending if(!sobj->hasExtension(GroupExtension::getExtensionClassTypeId(),false)) { *parent = sobj; diff --git a/src/App/DocumentObjectPy.xml b/src/App/DocumentObjectPy.xml index ac0f7cea1e..ead1d5573c 100644 --- a/src/App/DocumentObjectPy.xml +++ b/src/App/DocumentObjectPy.xml @@ -182,6 +182,15 @@ Return -1 if element visibility is not supported or element not found, 0 if invi in a single group, hence only a single return value. + + + Returns the group the object is in or None if it is not part of a group. + Note that an object can only be in a single group, hence only a single return + value. + The parent can be a simple group as with getParentGroup() or a + GeoFeature group as with getParentGeoFeatureGroup(). + + Get all paths from this object to another object following the OutList. diff --git a/src/App/DocumentObjectPyImp.cpp b/src/App/DocumentObjectPyImp.cpp index 810c0f33e0..b561983bfe 100644 --- a/src/App/DocumentObjectPyImp.cpp +++ b/src/App/DocumentObjectPyImp.cpp @@ -673,6 +673,24 @@ PyObject* DocumentObjectPy::getParentGeoFeatureGroup(PyObject *args) } } +PyObject* DocumentObjectPy::getParent(PyObject *args) +{ + if (!PyArg_ParseTuple(args, "")) + return nullptr; + + try { + auto grp = getDocumentObjectPtr()->getFirstParent(); + if(!grp) { + Py_INCREF(Py_None); + return Py_None; + } + return grp->getPyObject(); + } + catch (const Base::Exception& e) { + throw Py::RuntimeError(e.what()); + } +} + Py::Boolean DocumentObjectPy::getMustExecute() const { try { diff --git a/src/App/DocumentObserver.cpp b/src/App/DocumentObserver.cpp index 9ca582d311..87d449e973 100644 --- a/src/App/DocumentObserver.cpp +++ b/src/App/DocumentObserver.cpp @@ -546,8 +546,10 @@ class DocumentWeakPtrT::Private { public: explicit Private(App::Document* doc) : _document(doc) { if (doc) { + //NOLINTBEGIN connectApplicationDeletedDocument = App::GetApplication().signalDeleteDocument.connect(std::bind (&Private::deletedDocument, this, sp::_1)); + //NOLINTEND } } @@ -626,6 +628,7 @@ public: void set(App::DocumentObject* obj) { object = obj; if (obj) { + //NOLINTBEGIN indocument = true; connectApplicationDeletedDocument = App::GetApplication().signalDeleteDocument.connect(std::bind (&Private::deletedDocument, this, sp::_1)); @@ -634,6 +637,7 @@ public: (&Private::createdObject, this, sp::_1)); connectDocumentDeletedObject = doc->signalDeletedObject.connect(std::bind (&Private::deletedObject, this, sp::_1)); + //NOLINTEND } } App::DocumentObject* get() const noexcept { @@ -701,12 +705,14 @@ bool DocumentObjectWeakPtrT::operator!= (const DocumentObjectWeakPtrT& p) const DocumentObserver::DocumentObserver() : _document(nullptr) { + //NOLINTBEGIN this->connectApplicationCreatedDocument = App::GetApplication().signalNewDocument.connect(std::bind (&DocumentObserver::slotCreatedDocument, this, sp::_1)); this->connectApplicationDeletedDocument = App::GetApplication().signalDeleteDocument.connect(std::bind (&DocumentObserver::slotDeletedDocument, this, sp::_1)); this->connectApplicationActivateDocument = App::GetApplication().signalActiveDocument.connect(std::bind (&DocumentObserver::slotActivateDocument, this, sp::_1)); + //NOLINTEND } DocumentObserver::DocumentObserver(Document* doc) : DocumentObserver() @@ -735,6 +741,7 @@ void DocumentObserver::attachDocument(Document* doc) detachDocument(); _document = doc; + //NOLINTBEGIN this->connectDocumentCreatedObject = _document->signalNewObject.connect(std::bind (&DocumentObserver::slotCreatedObject, this, sp::_1)); this->connectDocumentDeletedObject = _document->signalDeletedObject.connect(std::bind @@ -745,6 +752,7 @@ void DocumentObserver::attachDocument(Document* doc) (&DocumentObserver::slotRecomputedObject, this, sp::_1)); this->connectDocumentRecomputed = _document->signalRecomputed.connect(std::bind (&DocumentObserver::slotRecomputedDocument, this, sp::_1)); + //NOLINTEND } } diff --git a/src/App/DocumentObserver.h b/src/App/DocumentObserver.h index e929257e58..84e7dbecdf 100644 --- a/src/App/DocumentObserver.h +++ b/src/App/DocumentObserver.h @@ -454,7 +454,7 @@ private: }; /** - * The DocumentObserver class simplfies the step to write classes that listen + * The DocumentObserver class simplifies the step to write classes that listen * to what happens inside a document. * This is very useful for classes that needs to be notified when an observed * object has changed. diff --git a/src/App/DocumentObserverPython.cpp b/src/App/DocumentObserverPython.cpp index 09a0c65036..beb61a1522 100644 --- a/src/App/DocumentObserverPython.cpp +++ b/src/App/DocumentObserverPython.cpp @@ -22,6 +22,9 @@ #include "PreCompiled.h" +#ifndef _PreComp_ +#include +#endif #include #include "Application.h" @@ -32,7 +35,7 @@ using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; std::vector DocumentObserverPython::_instances; @@ -62,7 +65,7 @@ DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj FC_PY_GetCallable(obj.ptr(), "slot" #_name1, py##_name1.py);\ if (!py##_name1.py.isNone())\ py##_name1.slot = App::GetApplication().signal##_name2.connect(\ - boost::bind(&DocumentObserverPython::slot##_name1, this));\ + std::bind(&DocumentObserverPython::slot##_name1, this));\ }\ while(0); @@ -71,15 +74,16 @@ DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj FC_PY_GetCallable(obj.ptr(), "slot" #_name1, py##_name1.py);\ if (!py##_name1.py.isNone())\ py##_name1.slot = App::GetApplication().signal##_name2.connect(\ - boost::bind(&DocumentObserverPython::slot##_name1, this, bp::_1));\ + std::bind(&DocumentObserverPython::slot##_name1, this, sp::_1));\ }\ while(0); + //NOLINTBEGIN #define FC_PY_ELEMENT_ARG2(_name1, _name2) do {\ FC_PY_GetCallable(obj.ptr(), "slot" #_name1, py##_name1.py);\ if (!py##_name1.py.isNone())\ py##_name1.slot = App::GetApplication().signal##_name2.connect(\ - boost::bind(&DocumentObserverPython::slot##_name1, this, bp::_1, bp::_2));\ + std::bind(&DocumentObserverPython::slot##_name1, this, sp::_1, sp::_2));\ }\ while(0); @@ -112,6 +116,7 @@ DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj FC_PY_ELEMENT_ARG2(ChangePropertyEditor, ChangePropertyEditor) FC_PY_ELEMENT_ARG2(BeforeAddingDynamicExtension, BeforeAddingDynamicExtension) FC_PY_ELEMENT_ARG2(AddedDynamicExtension, AddedDynamicExtension) + //NOLINTEND } DocumentObserverPython::~DocumentObserverPython() = default; diff --git a/src/App/DocumentObserverPython.h b/src/App/DocumentObserverPython.h index 95aee29b98..ce57626ddf 100644 --- a/src/App/DocumentObserverPython.h +++ b/src/App/DocumentObserverPython.h @@ -24,10 +24,20 @@ #ifndef APP_DOCUMENTOBSERVERPYTHON_H #define APP_DOCUMENTOBSERVERPYTHON_H +#include +#include +#include +#include +#include namespace App { +class Document; +class DocumentObject; +class ExtensionContainer; +class Property; + /** * The DocumentObserverPython class is used to notify registered Python instances * whenever something happens to a document, like creation, destruction, adding or @@ -111,13 +121,13 @@ private: Py::Object inst; static std::vector _instances; - typedef struct PythonObject { + using Connection = struct PythonObject { boost::signals2::scoped_connection slot; Py::Object py; PyObject* ptr() { return py.ptr(); } - } Connection; + }; Connection pyCreatedDocument; Connection pyDeletedDocument; diff --git a/src/App/DocumentPyImp.cpp b/src/App/DocumentPyImp.cpp index 874b2a8c5a..2a06da2ef5 100644 --- a/src/App/DocumentPyImp.cpp +++ b/src/App/DocumentPyImp.cpp @@ -614,7 +614,7 @@ PyObject* DocumentPy::getObject(PyObject *args) PyErr_SetString(PyExc_TypeError, "a string or integer is required"); return nullptr; } - while (0); + while (false); if (obj) return obj->getPyObject(); diff --git a/src/App/ElementMap.cpp b/src/App/ElementMap.cpp index 9f8a98fdd9..3be76b9973 100644 --- a/src/App/ElementMap.cpp +++ b/src/App/ElementMap.cpp @@ -1,7 +1,9 @@ #include "PreCompiled.h" #ifndef _PreComp_ -# include -# include +#include +#ifndef FC_DEBUG +#include +#endif #endif #include "ElementMap.h" @@ -10,11 +12,11 @@ #include "App/Application.h" #include "Base/Console.h" -# include -# include +#include +#include -FC_LOG_LEVEL_INIT("ElementMap", true, 2); +FC_LOG_LEVEL_INIT("ElementMap", true, 2);// NOLINT namespace Data { @@ -37,27 +39,28 @@ namespace Data // any shape sharing is lost. But again, we do want to keep separate shape files // because of partial loading. The same technique used here can be applied to // restore shape sharing. -static std::unordered_map _ElementMapToId; -static std::unordered_map _IdToElementMap; +static std::unordered_map _elementMapToId; +static std::unordered_map _idToElementMap; -void ElementMap::init() { +void ElementMap::init() +{ static bool inited; if (!inited) { inited = true; ::App::GetApplication().signalStartSaveDocument.connect( [](const ::App::Document&, const std::string&) { - _ElementMapToId.clear(); + _elementMapToId.clear(); }); ::App::GetApplication().signalFinishSaveDocument.connect( [](const ::App::Document&, const std::string&) { - _ElementMapToId.clear(); + _elementMapToId.clear(); }); ::App::GetApplication().signalStartRestoreDocument.connect([](const ::App::Document&) { - _IdToElementMap.clear(); + _idToElementMap.clear(); }); ::App::GetApplication().signalFinishRestoreDocument.connect([](const ::App::Document&) { - _IdToElementMap.clear(); + _idToElementMap.clear(); }); } } @@ -68,131 +71,145 @@ ElementMap::ElementMap() } -void ElementMap::beforeSave(const ::App::StringHasherRef& hasher) const +void ElementMap::beforeSave(const ::App::StringHasherRef& hasherRef) const { - unsigned& id = _ElementMapToId[this]; - if (!id) - id = _ElementMapToId.size(); + unsigned& id = _elementMapToId[this]; + if (id == 0U) { + id = _elementMapToId.size(); + } this->_id = id; - for (auto& v : this->indexedNames) { - for (const MappedNameRef& ref : v.second.names) { - for (const MappedNameRef* r = &ref; r; r = r->next.get()) { - for (const ::App::StringIDRef& sid : r->sids) { - if (sid.isFromSameHasher(hasher)) + for (auto& indexedName : this->indexedNames) { + for (const MappedNameRef& mappedName : indexedName.second.names) { + for (const MappedNameRef* ref = &mappedName; ref; ref = ref->next.get()) { + for (const ::App::StringIDRef& sid : ref->sids) { + if (sid.isFromSameHasher(hasherRef)) { sid.mark(); + } } } } - for (auto& vv : v.second.children) { - if (vv.second.elementMap) - vv.second.elementMap->beforeSave(hasher); - for (auto& sid : vv.second.sids) { - if (sid.isFromSameHasher(hasher)) + for (auto& childPair : indexedName.second.children) { + if (childPair.second.elementMap) { + childPair.second.elementMap->beforeSave(hasherRef); + } + for (auto& sid : childPair.second.sids) { + if (sid.isFromSameHasher(hasherRef)) { sid.mark(); + } } } } } -void ElementMap::save(std::ostream& s, int index, +void ElementMap::save(std::ostream& stream, int index, const std::map& childMapSet, const std::map& postfixMap) const { - s << "\nElementMap " << index << ' ' << this->_id << ' ' << this->indexedNames.size() << '\n'; + stream << "\nElementMap " << index << ' ' << this->_id << ' ' << this->indexedNames.size() + << '\n'; - for (auto& v : this->indexedNames) { - s << '\n' << v.first << '\n'; + for (auto& indexedName : this->indexedNames) { + stream << '\n' << indexedName.first << '\n'; - s << "\nChildCount " << v.second.children.size() << '\n'; - for (auto& vv : v.second.children) { + stream << "\nChildCount " << indexedName.second.children.size() << '\n'; + for (auto& vv : indexedName.second.children) { auto& child = vv.second; int mapIndex = 0; if (child.elementMap) { auto it = childMapSet.find(child.elementMap.get()); - if (it == childMapSet.end() || it->second == 0) - FC_ERR("Invalid child element map"); - else + if (it == childMapSet.end() || it->second == 0) { + FC_ERR("Invalid child element map");// NOLINT + } + else { mapIndex = it->second; + } } - s << child.indexedName.getIndex() << ' ' << child.offset << ' ' << child.count << ' ' - << child.tag << ' ' << mapIndex << ' '; - s.write(child.postfix.constData(), child.postfix.size()); - s << ' ' << '0'; + stream << child.indexedName.getIndex() << ' ' << child.offset << ' ' << child.count + << ' ' << child.tag << ' ' << mapIndex << ' '; + stream.write(child.postfix.constData(), child.postfix.size()); + stream << ' ' << '0'; for (auto& sid : child.sids) { - if (sid.isMarked()) - s << '.' << sid.value(); + if (sid.isMarked()) { + stream << '.' << sid.value(); + } } - s << '\n'; + stream << '\n'; } - s << "\nNameCount " << v.second.names.size() << '\n'; - if (v.second.names.empty()) + stream << "\nNameCount " << indexedName.second.names.size() << '\n'; + if (indexedName.second.names.empty()) { continue; + } - boost::io::ios_flags_saver ifs(s); - s << std::hex; + boost::io::ios_flags_saver ifs(stream); + stream << std::hex; - for (auto& ref : v.second.names) { - for (auto r = &ref; r; r = r->next.get()) { - if (!r->name) + for (auto& dequeueOfMappedNameRef : indexedName.second.names) { + for (auto ref = &dequeueOfMappedNameRef; ref; ref = ref->next.get()) { + if (!ref->name) { break; + } - ::App::StringID::IndexID prefixid; - prefixid.id = 0; - IndexedName idx(r->name.dataBytes()); + ::App::StringID::IndexID prefixID {}; + prefixID.id = 0; + IndexedName idx(ref->name.dataBytes()); bool printName = true; if (idx) { - auto key = QByteArray::fromRawData(idx.getType(), qstrlen(idx.getType())); + auto key = QByteArray::fromRawData(idx.getType(), + static_cast(qstrlen(idx.getType()))); auto it = postfixMap.find(key); if (it != postfixMap.end()) { - s << ':' << it->second << '.' << idx.getIndex(); + stream << ':' << it->second << '.' << idx.getIndex(); printName = false; } } else { - prefixid = ::App::StringID::fromString(r->name.dataBytes()); - if (prefixid.id) { - for (auto& sid : r->sids) { - if (sid.isMarked() && sid.value() == prefixid.id) { - s << '$'; - s.write(r->name.dataBytes().constData(), - r->name.dataBytes().size()); + prefixID = ::App::StringID::fromString(ref->name.dataBytes()); + if (prefixID.id != 0) { + for (auto& sid : ref->sids) { + if (sid.isMarked() && sid.value() == prefixID.id) { + stream << '$'; + stream.write(ref->name.dataBytes().constData(), + ref->name.dataBytes().size()); printName = false; break; } } - if (printName) - prefixid.id = 0; + if (printName) { + prefixID.id = 0; + } } } if (printName) { - s << ';'; - s.write(r->name.dataBytes().constData(), r->name.dataBytes().size()); + stream << ';'; + stream.write(ref->name.dataBytes().constData(), ref->name.dataBytes().size()); } - const QByteArray& postfix = r->name.postfixBytes(); - if (postfix.isEmpty()) - s << ".0"; + const QByteArray& postfix = ref->name.postfixBytes(); + if (postfix.isEmpty()) { + stream << ".0"; + } else { auto it = postfixMap.find(postfix); assert(it != postfixMap.end()); - s << '.' << it->second; + stream << '.' << it->second; } - for (auto& sid : r->sids) { - if (sid.isMarked() && sid.value() != prefixid.id) - s << '.' << sid.value(); + for (auto& sid : ref->sids) { + if (sid.isMarked() && sid.value() != prefixID.id) { + stream << '.' << sid.value(); + } } - s << ' '; + stream << ' '; } - s << "0\n"; + stream << "0\n"; } } - s << "\nEndMap\n"; + stream << "\nEndMap\n"; } -void ElementMap::save(std::ostream& s) const +void ElementMap::save(std::ostream& stream) const { std::map childMapSet; std::vector childMaps; @@ -201,72 +218,79 @@ void ElementMap::save(std::ostream& s) const collectChildMaps(childMapSet, childMaps, postfixMap, postfixes); - s << this->_id << " PostfixCount " << postfixes.size() << '\n'; - for (auto& p : postfixes) { - s.write(p.constData(), p.size()); - s << '\n'; + stream << this->_id << " PostfixCount " << postfixes.size() << '\n'; + for (auto& postfix : postfixes) { + stream.write(postfix.constData(), postfix.size()); + stream << '\n'; } int index = 0; - s << "\nMapCount " << childMaps.size() << '\n'; - for (auto& elementMap : childMaps) - elementMap->save(s, ++index, childMapSet, postfixMap); + stream << "\nMapCount " << childMaps.size() << '\n'; + for (auto& elementMap : childMaps) { + elementMap->save(stream, ++index, childMapSet, postfixMap); + } } -ElementMapPtr ElementMap::restore(::App::StringHasherRef hasher, std::istream& s) +ElementMapPtr ElementMap::restore(::App::StringHasherRef hasherRef, std::istream& stream) { const char* msg = "Invalid element map"; - unsigned id; + unsigned id = 0; int count = 0; std::string tmp; - if (!(s >> id >> tmp >> count) || tmp != "PostfixCount") - FC_THROWM(Base::RuntimeError, msg); + if (!(stream >> id >> tmp >> count) || tmp != "PostfixCount") { + FC_THROWM(Base::RuntimeError, msg);// NOLINT + } - auto& map = _IdToElementMap[id]; - if (map) + auto& map = _idToElementMap[id]; + if (map) { return map; + } std::vector postfixes; postfixes.reserve(count); for (int i = 0; i < count; ++i) { postfixes.emplace_back(); - s >> postfixes.back(); + stream >> postfixes.back(); } std::vector childMaps; count = 0; - if (!(s >> tmp >> count) || tmp != "MapCount" || count == 0) - FC_THROWM(Base::RuntimeError, msg); + if (!(stream >> tmp >> count) || tmp != "MapCount" || count == 0) { + FC_THROWM(Base::RuntimeError, msg);// NOLINT + } childMaps.reserve(count - 1); for (int i = 0; i < count - 1; ++i) { childMaps.push_back( - std::make_shared()->restore(hasher, s, childMaps, postfixes)); + std::make_shared()->restore(hasherRef, stream, childMaps, postfixes)); } - return restore(hasher, s, childMaps, postfixes); + return restore(hasherRef, stream, childMaps, postfixes); } -ElementMapPtr ElementMap::restore(::App::StringHasherRef hasher, std::istream& s, +ElementMapPtr ElementMap::restore(::App::StringHasherRef hasherRef, std::istream& stream, std::vector& childMaps, const std::vector& postfixes) { const char* msg = "Invalid element map"; + const int hexBase {16}; + const int decBase {10}; std::string tmp; int index = 0; int typeCount = 0; unsigned id = 0; - if (!(s >> tmp >> index >> id >> typeCount) || tmp != "ElementMap") - FC_THROWM(Base::RuntimeError, msg); + if (!(stream >> tmp >> index >> id >> typeCount) || tmp != "ElementMap") { + FC_THROWM(Base::RuntimeError, msg);// NOLINT + } - auto& map = _IdToElementMap[id]; + auto& map = _idToElementMap[id]; if (map) { - do { - if (!std::getline(s, tmp)) - FC_THROWM(Base::RuntimeError, "unexpected end of child element map"); - } while (tmp != "EndMap"); + while (tmp != "EndMap") { + if (!std::getline(stream, tmp)) { + FC_THROWM(Base::RuntimeError, "unexpected end of child element map");// NOLINT + } + } return map; } - map = shared_from_this(); //FIXME does nothing? const char* hasherWarn = nullptr; const char* hasherIDWarn = nullptr; @@ -275,164 +299,193 @@ ElementMapPtr ElementMap::restore(::App::StringHasherRef hasher, std::istream& s std::vector tokens; for (int i = 0; i < typeCount; ++i) { - int count; - if (!(s >> tmp)) - FC_THROWM(Base::RuntimeError, "missing element type"); + int outerCount = 0; + if (!(stream >> tmp)) { + FC_THROWM(Base::RuntimeError, "missing element type");// NOLINT + } IndexedName idx(tmp.c_str(), 1); - if (!(s >> tmp >> count) || tmp != "ChildCount") - FC_THROWM(Base::RuntimeError, "missing element child count"); + if (!(stream >> tmp >> outerCount) || tmp != "ChildCount") { + FC_THROWM(Base::RuntimeError, "missing element child count");// NOLINT + } auto& indices = this->indexedNames[idx.getType()]; - for (int j = 0; j < count; ++j) { - int cindex; - int offset; - int count; - long tag; - int mapIndex; - if (!(s >> cindex >> offset >> count >> tag >> mapIndex >> tmp)) - FC_THROWM(Base::RuntimeError, "Invalid element child"); - if (cindex < 0) - FC_THROWM(Base::RuntimeError, "Invalid element child index"); - if (offset < 0) - FC_THROWM(Base::RuntimeError, "Invalid element child offset"); - if (mapIndex >= index || mapIndex < 0 || mapIndex > (int)childMaps.size()) - FC_THROWM(Base::RuntimeError, "Invalid element child map index"); - auto& child = indices.children[cindex + offset + count]; - child.indexedName = IndexedName::fromConst(idx.getType(), cindex); + for (int j = 0; j < outerCount; ++j) { + int cIndex = 0; + int offset = 0; + int count = 0; + long tag = 0; + int mapIndex = 0; + if (!(stream >> cIndex >> offset >> count >> tag >> mapIndex >> tmp)) { + FC_THROWM(Base::RuntimeError, "Invalid element child");// NOLINT + } + if (cIndex < 0) { + FC_THROWM(Base::RuntimeError, "Invalid element child index");// NOLINT + } + if (offset < 0) { + FC_THROWM(Base::RuntimeError, "Invalid element child offset");// NOLINT + } + if (mapIndex >= index || mapIndex < 0 || mapIndex > (int)childMaps.size()) { + FC_THROWM(Base::RuntimeError, "Invalid element child map index");// NOLINT + } + auto& child = indices.children[cIndex + offset + count]; + child.indexedName = IndexedName::fromConst(idx.getType(), cIndex); child.offset = offset; child.count = count; child.tag = tag; - if (mapIndex > 0) + if (mapIndex > 0) { child.elementMap = childMaps[mapIndex - 1]; - else + } + else { child.elementMap = nullptr; + } child.postfix = tmp.c_str(); this->childElements[child.postfix].childMap = &child; this->childElementSize += child.count; - if (!(s >> tmp)) - FC_THROWM(Base::RuntimeError, "Invalid element child string id"); + if (!(stream >> tmp)) { + FC_THROWM(Base::RuntimeError, "Invalid element child string id");// NOLINT + } tokens.clear(); boost::split(tokens, tmp, boost::is_any_of(".")); if (tokens.size() > 1) { - child.sids.reserve(tokens.size() - 1); + child.sids.reserve(static_cast(tokens.size()) - 1); for (unsigned k = 1; k < tokens.size(); ++k) { // The element child string ID is saved as decimal // instead of hex by accident. To simplify maintenance // of backward compatibility, it is not corrected, and // just restored as decimal here. - // - // long n = strtol(tokens[k].c_str(), nullptr, 16); - long n = strtol(tokens[k].c_str(), nullptr, 10); - auto sid = hasher->getID(n); - if (!sid) + long childID = strtol(tokens[k].c_str(), nullptr, decBase); + auto sid = hasherRef->getID(childID); + if (!sid) { childSIDWarn = "Missing element child string id"; - else + } + else { child.sids.push_back(sid); + } } } } - if (!(s >> tmp >> count) || tmp != "NameCount") - FC_THROWM(Base::RuntimeError, "missing element name count"); + if (!(stream >> tmp >> outerCount) || tmp != "NameCount") { + FC_THROWM(Base::RuntimeError, "missing element name outerCount");// NOLINT + } - boost::io::ios_flags_saver ifs(s); - s >> std::hex; + boost::io::ios_flags_saver ifs(stream); + stream >> std::hex; - indices.names.resize(count); - for (int j = 0; j < count; ++j) { + indices.names.resize(outerCount); + for (int j = 0; j < outerCount; ++j) { idx.setIndex(j); auto* ref = &indices.names[j]; - int k = 0; - while (1) { - if (!(s >> tmp)) - FC_THROWM(Base::RuntimeError, "Failed to read element name"); - if (tmp == "0") + int innerCount = 0; + while (true) { + if (!(stream >> tmp)) { + FC_THROWM(Base::RuntimeError, "Failed to read element name");// NOLINT + } + if (tmp == "0") { break; - if (k++ != 0) { - ref->next.reset(new MappedNameRef); + } + if (innerCount++ != 0) { + ref->next = std::make_unique(); ref = ref->next.get(); } tokens.clear(); boost::split(tokens, tmp, boost::is_any_of(".")); - if (tokens.size() < 2) - FC_THROWM(Base::RuntimeError, "Invalid element entry"); + if (tokens.size() < 2) { + FC_THROWM(Base::RuntimeError, "Invalid element entry");// NOLINT + } int offset = 1; - ::App::StringID::IndexID prefixid; - prefixid.id = 0; + ::App::StringID::IndexID prefixID {}; + prefixID.id = 0; switch (tokens[0][0]) { case ':': { - if (tokens.size() < 3) - FC_THROWM(Base::RuntimeError, "Invalid element entry"); + if (tokens.size() < 3) { + FC_THROWM(Base::RuntimeError, "Invalid element entry");// NOLINT + } ++offset; - long n = strtol(tokens[0].c_str() + 1, nullptr, 16); - if (n <= 0 || n > (int)postfixes.size()) - FC_THROWM(Base::RuntimeError, "Invalid element name index"); - long m = strtol(tokens[1].c_str(), nullptr, 16); - ref->name = MappedName(IndexedName::fromConst(postfixes[n - 1].c_str(), m)); + long elementNameIndex = strtol(tokens[0].c_str() + 1, nullptr, hexBase); + if (elementNameIndex <= 0 || elementNameIndex > (int)postfixes.size()) { + FC_THROWM(Base::RuntimeError, "Invalid element name index");// NOLINT + } + long elementIndex = strtol(tokens[1].c_str(), nullptr, hexBase); + ref->name = MappedName( + IndexedName::fromConst(postfixes[elementNameIndex - 1].c_str(), + static_cast(elementIndex))); break; } case '$': ref->name = MappedName(tokens[0].c_str() + 1); - prefixid = ::App::StringID::fromString(ref->name.dataBytes()); + prefixID = ::App::StringID::fromString(ref->name.dataBytes()); break; case ';': ref->name = MappedName(tokens[0].c_str() + 1); break; default: - FC_THROWM(Base::RuntimeError, "Invalid element name marker"); + FC_THROWM(Base::RuntimeError, "Invalid element name marker");// NOLINT } if (tokens[offset] != "0") { - long n = strtol(tokens[offset].c_str(), nullptr, 16); - if (n <= 0 || n > (int)postfixes.size()) + long postfixIndex = strtol(tokens[offset].c_str(), nullptr, hexBase); + if (postfixIndex <= 0 || postfixIndex > (int)postfixes.size()) { postfixWarn = "Invalid element postfix index"; - else - ref->name += postfixes[n - 1]; + } + else { + ref->name += postfixes[postfixIndex - 1]; + } } this->mappedNames.emplace(ref->name, idx); - if (!hasher) { - if (offset + 1 < (int)tokens.size()) - hasherWarn = "No hasher"; + if (!hasherRef) { + if (offset + 1 < (int)tokens.size()) { + hasherWarn = "No hasherRef"; + } continue; } - ref->sids.reserve(tokens.size() - offset - 1 + prefixid.id ? 1 : 0); - if (prefixid.id) { - auto sid = hasher->getID(prefixid.id); - if (!sid) + ref->sids.reserve((tokens.size() - offset - 1 + prefixID.id) != 0U ? 1 : 0); + if (prefixID.id != 0) { + auto sid = hasherRef->getID(prefixID.id); + if (!sid) { hasherIDWarn = "Missing element name prefix id"; - else + } + else { ref->sids.push_back(sid); + } } for (int l = offset + 1; l < (int)tokens.size(); ++l) { - long id = strtol(tokens[l].c_str(), nullptr, 16); - auto sid = hasher->getID(id); - if (!sid) + long readID = strtol(tokens[l].c_str(), nullptr, hexBase); + auto sid = hasherRef->getID(readID); + if (!sid) { hasherIDWarn = "Invalid element name string id"; - else + } + else { ref->sids.push_back(sid); + } } } } } - if (hasherWarn) - FC_WARN(hasherWarn); - if (hasherIDWarn) - FC_WARN(hasherIDWarn); - if (postfixWarn) - FC_WARN(postfixWarn); - if (childSIDWarn) - FC_WARN(childSIDWarn); + if (hasherWarn) { + FC_WARN(hasherWarn);// NOLINT + } + if (hasherIDWarn) { + FC_WARN(hasherIDWarn);// NOLINT + } + if (postfixWarn) { + FC_WARN(postfixWarn);// NOLINT + } + if (childSIDWarn) { + FC_WARN(childSIDWarn);// NOLINT + } - if (!(s >> tmp) || tmp != "EndMap") - FC_THROWM(Base::RuntimeError, "unexpected end of child element map"); + if (!(stream >> tmp) || tmp != "EndMap") { + FC_THROWM(Base::RuntimeError, "unexpected end of child element map");// NOLINT + } return shared_from_this(); } @@ -442,38 +495,41 @@ MappedName ElementMap::addName(MappedName& name, const IndexedName& idx, const E { if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) { if (name.find("#") >= 0 && name.findTagInElementName() < 0) { - FC_ERR("missing tag postfix " << name); + FC_ERR("missing tag postfix " << name);// NOLINT } } - do { - if (overwrite) + while (true) { + if (overwrite) { erase(idx); + } auto ret = mappedNames.insert(std::make_pair(name, idx)); if (ret.second) { // element just inserted did not exist yet in the map ret.first->first.compact();// FIXME see MappedName.cpp mappedRef(idx).append(ret.first->first, sids); - FC_TRACE(idx << " -> " << name); + FC_TRACE(idx << " -> " << name);// NOLINT return ret.first->first; } if (ret.first->second == idx) { - FC_TRACE("duplicate " << idx << " -> " << name); + FC_TRACE("duplicate " << idx << " -> " << name);// NOLINT return ret.first->first; } if (!overwrite) { - if (existing) + if (existing) { *existing = ret.first->second; - return MappedName(); + } + return {}; } erase(ret.first->first); - } while (true); + }; } void ElementMap::addPostfix(const QByteArray& postfix, std::map& postfixMap, std::vector& postfixes) { - if (postfix.isEmpty()) + if (postfix.isEmpty()) { return; + } auto res = postfixMap.insert(std::make_pair(postfix, 0)); if (res.second) { postfixes.push_back(postfix); @@ -481,51 +537,57 @@ void ElementMap::addPostfix(const QByteArray& postfix, std::map } } -MappedName ElementMap::setElementName(const IndexedName& element, - const MappedName& name, - long masterTag, - const ElementIDRefs* sid, - bool overwrite) +MappedName ElementMap::setElementName(const IndexedName& element, const MappedName& name, + long masterTag, const ElementIDRefs* sid, bool overwrite) { - if (!element) + if (!element) { throw Base::ValueError("Invalid input"); + } if (!name) { erase(element); - return MappedName(); + return {}; } for (int i = 0, count = name.size(); i < count; ++i) { - char c = name[i]; - if (c == '.' || std::isspace((int)c)) - FC_THROWM(Base::RuntimeError, "Illegal character in mapped name: " << name); + char check = name[i]; + if (check == '.' || (std::isspace((int)check) != 0)) { + FC_THROWM(Base::RuntimeError, "Illegal character in mapped name: " << name);// NOLINT + } } - for (const char* s = element.getType(); *s; ++s) { - char c = *s; - if (c == '.' || std::isspace((int)c)) - FC_THROWM(Base::RuntimeError, "Illegal character in element name: " << element); + for (const char* readChar = element.getType(); *readChar != 0; ++readChar) { + char check = *readChar; + if (check == '.' || (std::isspace((int)check) != 0)) { + FC_THROWM(Base::RuntimeError,// NOLINT + "Illegal character in element name: " << element); + } } ElementIDRefs _sid; - if (!sid) + if (!sid) { sid = &_sid; + } std::ostringstream ss; - Data::MappedName n(name); + Data::MappedName mappedName(name); for (int i = 0;;) { IndexedName existing; - MappedName res = this->addName(n, element, *sid, overwrite, &existing); - if (res) + MappedName res = this->addName(mappedName, element, *sid, overwrite, &existing); + if (res) { return res; - if (++i == 100) { - FC_ERR("unresolved duplicate element mapping '" << name << ' ' << element << '/' - << existing); + } + const int maxAttempts {100}; + if (++i == maxAttempts) { + FC_ERR("unresolved duplicate element mapping '"// NOLINT + << name << ' ' << element << '/' << existing); return name; } - if (sid != &_sid) + if (sid != &_sid) { _sid = *sid; - n = renameDuplicateElement(i, element, existing, name, _sid, masterTag); - if (!n) + } + mappedName = renameDuplicateElement(i, element, existing, name, _sid, masterTag); + if (!mappedName) { return name; + } sid = &_sid; } } @@ -535,60 +597,68 @@ void ElementMap::encodeElementName(char element_type, MappedName& name, std::ost ElementIDRefs* sids, long masterTag, const char* postfix, long tag, bool forceTag) const { - if (postfix && postfix[0]) { - if (!boost::starts_with(postfix, ELEMENT_MAP_PREFIX)) + if (postfix && (postfix[0] != 0)) { + if (!boost::starts_with(postfix, ELEMENT_MAP_PREFIX)) { ss << ELEMENT_MAP_PREFIX; + } ss << postfix; } long inputTag = 0; - if (!forceTag && !ss.tellp()) { - if (!tag || tag == masterTag) + if (!forceTag && (ss.tellp() == 0)) { + if ((tag == 0) || tag == masterTag) { return; + } name.findTagInElementName(&inputTag, nullptr, nullptr, nullptr, true); - if (inputTag == tag) + if (inputTag == tag) { return; + } } - else if (!tag || (!forceTag && tag == masterTag)) { + else if ((tag == 0) || (!forceTag && tag == masterTag)) { int pos = name.findTagInElementName(&inputTag, nullptr, nullptr, nullptr, true); - if (inputTag) { + if (inputTag != 0) { tag = inputTag; // About to encode the same tag used last time. This usually means - // the owner object is doing multi step modeling. Let's not - // recursively encode the same tag too many time. It will be a + // the owner object is doing multistep modeling. Let's not + // recursively encode the same tag too many times. It will be a // waste of memory, because the intermediate shapes has no // corresponding objects, so no real value for history tracing. // // On the other hand, we still need to distinguish the original name // from the input object from the element name of the intermediate // shapes. So we limit ourselves to encode only one extra level - // using the same tag. In order to do that, we need to dehash the + // using the same tag. In order to do that, we need to de-hash the // previous level name, and check for its tag. - Data::MappedName n(name, 0, pos); - Data::MappedName prev = dehashElementName(n); + Data::MappedName mappedName(name, 0, pos); + Data::MappedName prev = dehashElementName(mappedName); long prevTag = 0; prev.findTagInElementName(&prevTag, nullptr, nullptr, nullptr, true); - if (prevTag == inputTag || prevTag == -inputTag) - name = n; + if (prevTag == inputTag || prevTag == -inputTag) { + name = mappedName; + } } } if (sids && this->hasher) { name = hashElementName(name, *sids); - if (!forceTag && !tag && ss.tellp()) + if (!forceTag && (tag == 0) && (ss.tellp() != 0)) { forceTag = true; + } } - if (forceTag || tag) { + if (forceTag || (tag != 0)) { assert(element_type); - int pos = ss.tellp(); + auto pos = ss.tellp(); boost::io::ios_flags_saver ifs(ss); ss << POSTFIX_TAG << std::hex; - if (tag < 0) + if (tag < 0) { ss << '-' << -tag; - else if (tag) + } + else if (tag != 0) { ss << tag; + } assert(pos >= 0); - if (pos != 0) + if (pos != 0) { ss << ':' << pos; + } ss << ',' << element_type; } name += ss.str(); @@ -596,10 +666,12 @@ void ElementMap::encodeElementName(char element_type, MappedName& name, std::ost MappedName ElementMap::hashElementName(const MappedName& name, ElementIDRefs& sids) const { - if (!this->hasher || !name) + if (!this->hasher || !name) { return name; - if (name.find(ELEMENT_MAP_PREFIX) < 0) + } + if (name.find(ELEMENT_MAP_PREFIX) < 0) { return name; + } App::StringIDRef sid = this->hasher->getID(name, sids); const auto& related = sid.relatedIDs(); if (related == sids) { @@ -609,9 +681,10 @@ MappedName ElementMap::hashElementName(const MappedName& name, ElementIDRefs& si else { ElementIDRefs tmp; tmp.push_back(sid); - for (auto& s : sids) { - if (related.indexOf(s) < 0) - tmp.push_back(s); + for (auto& checkSID : sids) { + if (related.indexOf(checkSID) < 0) { + tmp.push_back(checkSID); + } } sids = tmp; } @@ -620,42 +693,47 @@ MappedName ElementMap::hashElementName(const MappedName& name, ElementIDRefs& si MappedName ElementMap::dehashElementName(const MappedName& name) const { - if (name.empty()) + if (name.empty()) { return name; - if (!this->hasher) + } + if (!this->hasher) { return name; + } auto id = App::StringID::fromString(name.toRawBytes()); - if (!id) + if (!id) { return name; + } auto sid = this->hasher->getID(id); if (!sid) { - if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_TRACE)) - FC_WARN("failed to find hash id " << id); - else - FC_LOG("failed to find hash id " << id); + if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_TRACE)) { + FC_WARN("failed to find hash id " << id);// NOLINT + } + else { + FC_LOG("failed to find hash id " << id);// NOLINT + } return name; } if (sid.isHashed()) { - FC_LOG("cannot dehash id " << id); + FC_LOG("cannot de-hash id " << id);// NOLINT return name; } MappedName ret( sid.toString());// FIXME .toString() was missing in original function. is this correct? - FC_TRACE("dehash " << name << " -> " << ret); + FC_TRACE("de-hash " << name << " -> " << ret);// NOLINT return ret; } MappedName ElementMap::renameDuplicateElement(int index, const IndexedName& element, const IndexedName& element2, const MappedName& name, - ElementIDRefs& sids, long masterTag) + ElementIDRefs& sids, long masterTag) const { - int idx; + int idx {0}; #ifdef FC_DEBUG idx = index; #else static std::random_device _RD; static std::mt19937 _RGEN(_RD()); - static std::uniform_int_distribution<> _RDIST(1,10000); + static std::uniform_int_distribution<> _RDIST(1, 10000); (void)index; idx = _RDIST(_RGEN); #endif @@ -663,38 +741,42 @@ MappedName ElementMap::renameDuplicateElement(int index, const IndexedName& elem ss << ELEMENT_MAP_PREFIX << 'D' << std::hex << idx; MappedName renamed(name); encodeElementName(element.getType()[0], renamed, ss, &sids, masterTag); - if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) - FC_WARN("duplicate element mapping '" << name << " -> " << renamed << ' ' << element << '/' - << element2); + if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) { + FC_WARN("duplicate element mapping '"// NOLINT + << name << " -> " << renamed << ' ' << element << '/' << element2); + } return renamed; } void ElementMap::erase(const MappedName& name) { auto it = this->mappedNames.find(name); - if (it == this->mappedNames.end()) + if (it == this->mappedNames.end()) { return; + } MappedNameRef* ref = findMappedRef(it->second); - if (!ref) + if (!ref) { return; + } ref->erase(name); this->mappedNames.erase(it); - return; } void ElementMap::erase(const IndexedName& idx) { auto iter = this->indexedNames.find(idx.getType()); - if (iter == this->indexedNames.end()) + if (iter == this->indexedNames.end()) { return; + } auto& indices = iter->second; - if (idx.getIndex() >= (int)indices.names.size()) + if (idx.getIndex() >= (int)indices.names.size()) { return; + } auto& ref = indices.names[idx.getIndex()]; - for (auto* r = &ref; r; r = r->next.get()) - this->mappedNames.erase(r->name); + for (auto* nameRef = &ref; nameRef; nameRef = nameRef->next.get()) { + this->mappedNames.erase(nameRef->name); + } ref.clear(); - return; } unsigned long ElementMap::size() const @@ -709,27 +791,32 @@ bool ElementMap::empty() const IndexedName ElementMap::find(const MappedName& name, ElementIDRefs* sids) const { - auto it = mappedNames.find(name); - if (it == mappedNames.end()) { - if (childElements.isEmpty()) + auto nameIter = mappedNames.find(name); + if (nameIter == mappedNames.end()) { + if (childElements.isEmpty()) { return IndexedName(); + } int len = 0; - if (name.findTagInElementName(nullptr, &len, nullptr, nullptr, false, false) < 0) + if (name.findTagInElementName(nullptr, &len, nullptr, nullptr, false, false) < 0) { return IndexedName(); + } QByteArray key = name.toRawBytes(len); auto it = this->childElements.find(key); - if (it == this->childElements.end()) + if (it == this->childElements.end()) { return IndexedName(); + } const auto& child = *it.value().childMap; IndexedName res; MappedName childName = MappedName::fromRawData(name, 0, len); - if (child.elementMap) + if (child.elementMap) { res = child.elementMap->find(childName, sids); - else + } + else { res = childName.toIndexedName(); + } if (res && boost::equals(res.getType(), child.indexedName.getType()) && child.indexedName.getIndex() <= res.getIndex() @@ -742,38 +829,44 @@ IndexedName ElementMap::find(const MappedName& name, ElementIDRefs* sids) const } if (sids) { - const MappedNameRef* ref = findMappedRef(it->second); + const MappedNameRef* ref = findMappedRef(nameIter->second); for (; ref; ref = ref->next.get()) { if (ref->name == name) { - if (!sids->size()) + if (sids->empty()) { *sids = ref->sids; - else + } + else { *sids += ref->sids; + } break; } } } - return it->second; + return nameIter->second; } MappedName ElementMap::find(const IndexedName& idx, ElementIDRefs* sids) const { - if (!idx) + if (!idx) { return MappedName(); + } auto iter = this->indexedNames.find(idx.getType()); - if (iter == this->indexedNames.end()) + if (iter == this->indexedNames.end()) { return MappedName(); + } auto& indices = iter->second; if (idx.getIndex() < (int)indices.names.size()) { const MappedNameRef& ref = indices.names[idx.getIndex()]; if (ref.name) { if (sids) { - if (!sids->size()) + if (!sids->size()) { *sids = ref.sids; - else + } + else { *sids += ref.sids; + } } return ref.name; } @@ -785,41 +878,47 @@ MappedName ElementMap::find(const IndexedName& idx, ElementIDRefs* sids) const auto& child = it->second; MappedName name; IndexedName childIdx(idx.getType(), idx.getIndex() - child.offset); - if (child.elementMap) + if (child.elementMap) { name = child.elementMap->find(childIdx, sids); - else + } + else { name = MappedName(childIdx); + } if (name) { name += child.postfix; return name; } } - return MappedName(); + return {}; } std::vector> ElementMap::findAll(const IndexedName& idx) const { std::vector> res; - if (!idx) + if (!idx) { return res; + } auto iter = this->indexedNames.find(idx.getType()); - if (iter == this->indexedNames.end()) + if (iter == this->indexedNames.end()) { return res; + } auto& indices = iter->second; if (idx.getIndex() < (int)indices.names.size()) { const MappedNameRef& ref = indices.names[idx.getIndex()]; int count = 0; - for (auto r = &ref; r; r = r->next.get()) { - if (r->name) + for (auto nameRef = &ref; nameRef; nameRef = nameRef->next.get()) { + if (nameRef->name) { ++count; + } } - if (count) { + if (count != 0) { res.reserve(count); - for (auto r = &ref; r; r = r->next.get()) { - if (r->name) - res.emplace_back(r->name, r->sids); + for (auto nameRef = &ref; nameRef; nameRef = nameRef->next.get()) { + if (nameRef->name) { + res.emplace_back(nameRef->name, nameRef->sids); + } } return res; } @@ -832,11 +931,13 @@ std::vector> ElementMap::findAll(const Inde IndexedName childIdx(idx.getType(), idx.getIndex() - child.offset); if (child.elementMap) { res = child.elementMap->findAll(childIdx); - for (auto& v : res) + for (auto& v : res) { v.first += child.postfix; + } } - else + else { res.emplace_back(MappedName(childIdx) + child.postfix, ElementIDRefs()); + } } return res; @@ -845,22 +946,26 @@ std::vector> ElementMap::findAll(const Inde const MappedNameRef* ElementMap::findMappedRef(const IndexedName& idx) const { auto iter = this->indexedNames.find(idx.getType()); - if (iter == this->indexedNames.end()) + if (iter == this->indexedNames.end()) { return nullptr; + } auto& indices = iter->second; - if (idx.getIndex() >= (int)indices.names.size()) + if (idx.getIndex() >= (int)indices.names.size()) { return nullptr; + } return &indices.names[idx.getIndex()]; } MappedNameRef* ElementMap::findMappedRef(const IndexedName& idx) { auto iter = this->indexedNames.find(idx.getType()); - if (iter == this->indexedNames.end()) + if (iter == this->indexedNames.end()) { return nullptr; + } auto& indices = iter->second; - if (idx.getIndex() >= (int)indices.names.size()) + if (idx.getIndex() >= (int)indices.names.size()) { return nullptr; + } return &indices.names[idx.getIndex()]; } @@ -868,8 +973,9 @@ MappedNameRef& ElementMap::mappedRef(const IndexedName& idx) { assert(idx); auto& indices = this->indexedNames[idx.getType()]; - if (idx.getIndex() >= (int)indices.names.size()) + if (idx.getIndex() >= (int)indices.names.size()) { indices.names.resize(idx.getIndex() + 1); + } return indices.names[idx.getIndex()]; } @@ -880,16 +986,18 @@ bool ElementMap::hasChildElementMap() const void ElementMap::hashChildMaps(long masterTag) { - if (childElements.empty() || !this->hasher) + if (childElements.empty() || !this->hasher) { return; + } std::ostringstream ss; for (auto& indexedNameIndexedElements : this->indexedNames) { for (auto& indexedChild : indexedNameIndexedElements.second.children) { auto& child = indexedChild.second; int len = 0; - long tag; + long tag = 0; int pos = MappedName::fromRawData(child.postfix) .findTagInElementName(&tag, &len, nullptr, nullptr, false, false); + // TODO: What is this 10? if (pos > 10) { MappedName postfix = hashElementName( MappedName::fromRawData(child.postfix.constData(), pos), child.sids); @@ -912,21 +1020,27 @@ void ElementMap::collectChildMaps(std::map& childMapSet, std::vector& postfixes) const { auto res = childMapSet.insert(std::make_pair(this, 0)); - if (!res.second) + if (!res.second) { return; + } - for (auto& v : this->indexedNames) { - addPostfix(QByteArray::fromRawData(v.first, qstrlen(v.first)), postfixMap, postfixes); + for (auto& indexedName : this->indexedNames) { + addPostfix(QByteArray::fromRawData(indexedName.first, + static_cast(qstrlen(indexedName.first))), + postfixMap, + postfixes); - for (auto& vv : v.second.children) { - auto& child = vv.second; - if (child.elementMap) + for (auto& childPair : indexedName.second.children) { + auto& child = childPair.second; + if (child.elementMap) { child.elementMap->collectChildMaps(childMapSet, childMaps, postfixMap, postfixes); + } } } - for (auto& v : this->mappedNames) - addPostfix(v.first.constPostfix(), postfixMap, postfixes); + for (auto& mappedName : this->mappedNames) { + addPostfix(mappedName.first.constPostfix(), postfixMap, postfixes); + } childMaps.push_back(this); res.first->second = (int)childMaps.size(); @@ -943,18 +1057,20 @@ void ElementMap::addChildElements(long masterTag, const std::vectorchildElements.empty()) { - if (expansion.size()) + if (!expansion.empty()) { expansion.push_back(child); + } continue; } auto& indices = child.elementMap->indexedNames[child.indexedName.getType()]; if (indices.children.empty()) { - if (expansion.size()) + if (!expansion.empty()) { expansion.push_back(child); + } continue; } - // Note that it is allow to have both mapped names and child map. We + // Note that it is allowable to have both mapped names and child map. We // may have to split the current child mapping into pieces. int start = child.indexedName.getIndex(); @@ -964,10 +1080,11 @@ void ElementMap::addChildElements(long masterTag, const std::vectorsecond; int istart = grandchild.indexedName.getIndex() + grandchild.offset; int iend = istart + grandchild.count; - if (end <= istart) + if (end <= istart) { break; + } if (istart >= end) { - if (expansion.size()) { + if (!expansion.empty()) { expansion.push_back(child); expansion.back().indexedName.setIndex(start); expansion.back().count = end - start; @@ -975,7 +1092,8 @@ void ElementMap::addChildElements(long masterTag, const std::vector end) + if (iend > end) { iend = end; + } entry->indexedName.setIndex(istart - grandchild.offset); entry->count = iend - istart; entry->offset += grandchild.offset; entry->elementMap = grandchild.elementMap; entry->sids += grandchild.sids; - if (grandchild.postfix.size()) { - if (entry->postfix.size() + if (grandchild.postfix.size() != 0) { + if ((entry->postfix.size() != 0) && !entry->postfix.startsWith(ELEMENT_MAP_PREFIX)) { - entry->postfix = - grandchild.postfix + ELEMENT_MAP_PREFIX + entry->postfix; + entry->postfix = grandchild.postfix + ELEMENT_MAP_PREFIX + entry->postfix; } - else + else { entry->postfix = grandchild.postfix + entry->postfix; + } } start = iend; - if (start >= end) + if (start >= end) { break; + } } - if (expansion.size() && start < end) { + if (!expansion.empty() && start < end) { expansion.push_back(child); expansion.back().indexedName.setIndex(start); expansion.back().count = end - start; } } - for (auto& child : expansion.size() ? expansion : children) { - if (!child.indexedName || !child.count) { - if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) - FC_ERR("invalid mapped child element"); + for (auto& child : expansion.empty() ? children : expansion) { + if (!child.indexedName || (child.count == 0)) { + if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) { + FC_ERR("invalid mapped child element");// NOLINT + } continue; } @@ -1032,7 +1154,8 @@ void ElementMap::addChildElements(long masterTag, const std::vector= 5 - if (child.count >= 5 || !child.elementMap) { + const int threshold {5}; + if (child.count >= threshold || !child.elementMap) { encodeElementName(child.indexedName[0], tmp, ss, @@ -1061,9 +1184,10 @@ void ElementMap::addChildElements(long masterTag, const std::vectorfind(childIdx, &sids); if (!name) { - if (!child.tag || child.tag == masterTag) { - if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) - FC_WARN("unmapped element"); + if ((child.tag == 0) || child.tag == masterTag) { + if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) { + FC_WARN("unmapped element");// NOLINT + } continue; } name = MappedName(childIdx); @@ -1079,7 +1203,7 @@ void ElementMap::addChildElements(long masterTag, const std::vectorindex != 1) { // There is some ambiguity in child mapping. We need some // additional postfix for disambiguation. NOTE: We are not - // using ComplexGeoData::indexPostfix() so as to not confuse + // using ComplexGeoData::indexPostfix() so we don't confuse // other code that actually uses this postfix for indexing // purposes. Here, we just need some postfix for // disambiguation. We don't need to extract the index. @@ -1098,7 +1222,7 @@ void ElementMap::addChildElements(long masterTag, const std::vectorchildMap) { - FC_ERR("duplicate mapped child element"); + FC_ERR("duplicate mapped child element");// NOLINT continue; } } @@ -1107,9 +1231,10 @@ void ElementMap::addChildElements(long masterTag, const std::vectorchildMap) + if (!entry->childMap) { this->childElements.remove(tmp.toBytes()); - FC_ERR("duplicate mapped child element"); + } + FC_ERR("duplicate mapped child element");// NOLINT continue; } @@ -1124,8 +1249,9 @@ std::vector ElementMap::getChildElements() cons { std::vector res; res.reserve(this->childElements.size()); - for (auto& v : this->childElements) - res.push_back(*v.childMap); + for (auto& childElement : this->childElements) { + res.push_back(*childElement.childMap); + } return res; } @@ -1133,19 +1259,22 @@ std::vector ElementMap::getAll() const { std::vector ret; ret.reserve(size()); - for (auto& v : this->mappedNames) - ret.emplace_back(v.first, v.second); - for (auto& v : this->childElements) { - auto& child = *v.childMap; + for (auto& mappedName : this->mappedNames) { + ret.emplace_back(mappedName.first, mappedName.second); + } + for (auto& childElement : this->childElements) { + auto& child = *childElement.childMap; IndexedName idx(child.indexedName); idx.setIndex(idx.getIndex() + child.offset); IndexedName childIdx(child.indexedName); for (int i = 0; i < child.count; ++i, ++idx, ++childIdx) { MappedName name; - if (child.elementMap) + if (child.elementMap) { name = child.elementMap->find(childIdx); - else + } + else { name = MappedName(childIdx); + } if (name) { name += child.postfix; ret.emplace_back(name, idx); @@ -1155,5 +1284,62 @@ std::vector ElementMap::getAll() const return ret; } +long ElementMap::getElementHistory(const MappedName& name, long masterTag, MappedName* original, + std::vector* history) const +{ + long tag = 0; + int len = 0; + int pos = name.findTagInElementName(&tag, &len, nullptr, nullptr, true); + if (pos < 0) { + if (original) { + *original = name; + } + return tag; + } + if (!original && !history) { + return tag; + } + + MappedName tmp; + MappedName& ret = original ? *original : tmp; + if (name.startsWith(ELEMENT_MAP_PREFIX)) { + unsigned offset = ELEMENT_MAP_PREFIX_SIZE; + ret = MappedName::fromRawData(name, static_cast(offset)); + } + else { + ret = name; + } + + while (true) { + if ((len == 0) || len > pos) { + FC_WARN("invalid name length " << name);// NOLINT + return 0; + } + bool deHashed = false; + if (ret.startsWith(MAPPED_CHILD_ELEMENTS_PREFIX, len)) { + int offset = (int)POSTFIX_TAG_SIZE; + MappedName tmp2 = MappedName::fromRawData(ret, len + offset, pos - len - offset); + MappedName postfix = dehashElementName(tmp2); + if (postfix != tmp2) { + deHashed = true; + ret = MappedName::fromRawData(ret, 0, len) + postfix; + } + } + if (!deHashed) { + ret = dehashElementName(MappedName::fromRawData(ret, 0, len)); + } + + long tag2 = 0; + pos = ret.findTagInElementName(&tag2, &len, nullptr, nullptr, true); + if (pos < 0 || (tag2 != tag && tag2 != -tag && tag != masterTag && -tag != masterTag)) { + return tag; + } + tag = tag2; + if (history) { + history->push_back(ret.copy()); + } + } +} + }// Namespace Data diff --git a/src/App/ElementMap.h b/src/App/ElementMap.h index ff17a1bccb..195b6020dd 100644 --- a/src/App/ElementMap.h +++ b/src/App/ElementMap.h @@ -43,7 +43,7 @@ namespace Data { class ElementMap; -typedef std::shared_ptr ElementMapPtr; +using ElementMapPtr = std::shared_ptr; /* This class provides for ComplexGeoData's ability to provide proper naming. * Specifically, ComplexGeoData uses this class for it's `_id` property. @@ -63,27 +63,27 @@ public: ElementMap(); /** Ensures that naming is properly assigned. It then marks as "used" all the StringID - * that are used to make up this particular map and are stored in the hasher passed + * that are used to make up this particular map and are stored in the hasherRef passed * as a parameter. Finally do this recursively for all childEelementMaps as well. * - * @param hasher where all the StringID needed to build the map are stored. + * @param hasherRef where all the StringID needed to build the map are stored. */ // FIXME this should be made part of \c save, to achieve symmetry with the restore method - void beforeSave(const ::App::StringHasherRef& hasher) const; + void beforeSave(const ::App::StringHasherRef& hasherRef) const; /** Serialize this map. Calls \c collectChildMaps to get \c childMapSet and * \c postfixMap, then calls the other (private) save function with those parameters. - * @param s: serialized stream + * @param stream: serialized stream */ - void save(std::ostream& s) const; + void save(std::ostream& stream) const; - /** Deserialize and restore this map. This function restores \c childMaps and + /** Deserialize and restore this map. This function restores \c childMaps and * \c postfixes from the stream, then calls the other (private) restore function with those * parameters. - * @param hasher: where all the StringIDs are stored - * @param s: stream to deserialize + * @param hasherRef: where all the StringIDs are stored + * @param stream: stream to deserialize */ - ElementMapPtr restore(::App::StringHasherRef hasher, std::istream& s); + ElementMapPtr restore(::App::StringHasherRef hasherRef, std::istream& stream); /** Add a sub-element name mapping. @@ -122,7 +122,7 @@ public: std::ostringstream& ss, ElementIDRefs* sids, long masterTag, - const char* postfix = 0, + const char* postfix = nullptr, long tag = 0, bool forceTag = false) const; @@ -170,7 +170,7 @@ public: QByteArray postfix; ElementIDRefs sids; - // prefix() has been moved to PostfixStringReferences.h + // prefix() has been moved to ElementNamingUtils.h }; /* Note: the original addChildElements passed `ComplexGeoData& master` for getting the `Tag`, @@ -181,22 +181,26 @@ public: std::vector getAll() const; + long getElementHistory(const MappedName & name, + long masterTag, + MappedName *original=nullptr, std::vector *history=nullptr) const; + private: /** Serialize this map - * @param s: serialized stream + * @param stream: serialized stream * @param childMapSet: where all child element maps are stored * @param postfixMap. where all postfixes are stored */ - void save(std::ostream& s, int index, const std::map& childMapSet, + void save(std::ostream& stream, int index, const std::map& childMapSet, const std::map& postfixMap) const; /** Deserialize and restore this map. - * @param hasher: where all the StringIDs are stored - * @param s: stream to deserialize + * @param hasherRef: where all the StringIDs are stored + * @param stream: stream to deserialize * @param childMaps: where all child element maps are stored * @param postfixes. where all postfixes are stored */ - ElementMapPtr restore(::App::StringHasherRef hasher, std::istream& s, + ElementMapPtr restore(::App::StringHasherRef hasherRef, std::istream& stream, std::vector& childMaps, const std::vector& postfixes); @@ -220,9 +224,9 @@ private: /* Note: the original proc passed `ComplexGeoData& master` for getting the `Tag`, * now it just passes `long masterTag`.*/ - virtual MappedName renameDuplicateElement(int index, const IndexedName& element, - const IndexedName& element2, const MappedName& name, - ElementIDRefs& sids, long masterTag); + MappedName renameDuplicateElement(int index, const IndexedName& element, + const IndexedName& element2, const MappedName& name, + ElementIDRefs& sids, long masterTag) const; /** Convenience method to hash the main element name * @@ -263,7 +267,7 @@ private: std::map indexedNames; - std::map> mappedNames; + std::map> mappedNames; struct ChildMapInfo { diff --git a/src/App/Expression.cpp b/src/App/Expression.cpp index 639fb8dd21..db68d9e702 100644 --- a/src/App/Expression.cpp +++ b/src/App/Expression.cpp @@ -1977,22 +1977,22 @@ Py::Object FunctionExpression::evalAggregate( switch (f) { case SUM: - c.reset(new SumCollector); + c = std::make_unique(); break; case AVERAGE: - c.reset(new AverageCollector); + c = std::make_unique(); break; case STDDEV: - c.reset(new StdDevCollector); + c = std::make_unique(); break; case COUNT: - c.reset(new CountCollector); + c = std::make_unique(); break; case MIN: - c.reset(new MinCollector); + c = std::make_unique(); break; case MAX: - c.reset(new MaxCollector); + c = std::make_unique(); break; default: assert(false); @@ -2806,7 +2806,7 @@ void VariableExpression::addComponent(Component *c) { var << ObjectIdentifier::RangeComponent(l1,l2,l3); return; } - }while(0); + }while(false); Expression::addComponent(c); } diff --git a/src/App/ExpressionVisitors.h b/src/App/ExpressionVisitors.h index 93527ac6f1..2dc3c46b2b 100644 --- a/src/App/ExpressionVisitors.h +++ b/src/App/ExpressionVisitors.h @@ -44,7 +44,7 @@ public: { } - void visit(Expression &node) { + void visit(Expression &node) override { this->renameObjectIdentifier(node,paths,owner); } @@ -61,7 +61,7 @@ public: { } - void visit(Expression &node) { + void visit(Expression &node) override { this->updateElementReference(node,feature,reverse); } @@ -96,7 +96,7 @@ public: : ExpressionModifier

(prop),address(address),rowCount(rowCount),colCount(colCount) {} - void visit(Expression &node) { + void visit(Expression &node) override { this->moveCells(node,address,rowCount,colCount); } @@ -112,7 +112,7 @@ public: : ExpressionModifier

(prop),rowOffset(rowOffset),colOffset(colOffset) {} - void visit(Expression &node) { + void visit(Expression &node) override { this->offsetCells(node,rowOffset,colOffset); } diff --git a/src/App/ExtensionContainer.h b/src/App/ExtensionContainer.h index d71908ba7a..2586de023c 100644 --- a/src/App/ExtensionContainer.h +++ b/src/App/ExtensionContainer.h @@ -200,7 +200,7 @@ public: * * If no extension handles the request, then the containers handleChangedPropertyName() is called. */ - virtual void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override; + void handleChangedPropertyName(Base::XMLReader &reader, const char * TypeName, const char *PropName) override; virtual void handleChangedPropertyName(Base::DocumentReader &reader, const char * TypeName, const char *PropName) override; /** Extends the rules for handling property type changed, so that extensions are given an opportunity to handle it. * If an extension handles a change, neither the rest of the extensions, nor the container itself get to handle it. @@ -209,7 +209,7 @@ public: * * If no extension handles the request, then the containers handleChangedPropertyType() is called. */ - virtual void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, Property * prop) override; + void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, Property * prop) override; virtual void handleChangedPropertyType(Base::DocumentReader &reader, const char * TypeName, Property * prop) override; void readExtension(Base::DocumentReader &reader,XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *ExtensionDOM); diff --git a/src/App/ExtensionPython.h b/src/App/ExtensionPython.h index 854c09fb51..c49635afbc 100644 --- a/src/App/ExtensionPython.h +++ b/src/App/ExtensionPython.h @@ -35,9 +35,9 @@ namespace App { * class to behave as a Python extension -- simply by subclassing. */ template -class ExtensionPythonT : public ExtensionT +class ExtensionPythonT : public ExtensionT //NOLINT { - EXTENSION_PROPERTY_HEADER(App::ExtensionPythonT); + EXTENSION_PROPERTY_HEADER_WITH_OVERRIDE(App::ExtensionPythonT); public: using Inherited = ExtensionT; @@ -46,7 +46,7 @@ public: ExtensionT::m_isPythonExtension = true; ExtensionT::initExtensionType(ExtensionPythonT::getExtensionClassTypeId()); } - virtual ~ExtensionPythonT() = default; + ~ExtensionPythonT() override = default; ExtensionPythonT(const ExtensionPythonT&) = delete; ExtensionPythonT(ExtensionPythonT&&) = delete; diff --git a/src/App/FeatureCustom.h b/src/App/FeatureCustom.h index 6fbce3f8ff..3b1873d3fe 100644 --- a/src/App/FeatureCustom.h +++ b/src/App/FeatureCustom.h @@ -25,10 +25,12 @@ #ifndef APP_FEATURECUSTOM_H #define APP_FEATURECUSTOM_H +#include namespace App { +class DocumentObjectExecReturn; class Property; /** @@ -40,50 +42,51 @@ class Property; * @author Werner Mayer */ template -class FeatureCustomT : public FeatureT +class FeatureCustomT : public FeatureT //NOLINT { - PROPERTY_HEADER(App::FeatureCustomT); + PROPERTY_HEADER_WITH_OVERRIDE(App::FeatureCustomT); public: FeatureCustomT() = default; - virtual ~FeatureCustomT() = default; + ~FeatureCustomT() override = default; /** @name methods override DocumentObject */ //@{ - short mustExecute() const { + short mustExecute() const override { return FeatureT::mustExecute(); } /// recalculate the Feature - virtual DocumentObjectExecReturn *execute() { + DocumentObjectExecReturn *execute() override { return FeatureT::execute(); } /// returns the type name of the ViewProvider - virtual const char* getViewProviderName() const { + const char* getViewProviderName() const override { return FeatureT::getViewProviderName(); } - PyObject *getPyObject() { + PyObject *getPyObject() override { return FeatureT::getPyObject(); } - void setPyObject(PyObject *obj) { + void setPyObject(PyObject *obj) override { FeatureT::setPyObject(obj); } protected: - virtual void onBeforeChange(const Property* prop) { + void onBeforeChange(const Property* prop) override { FeatureT::onBeforeChange(prop); } - virtual void onChanged(const Property* prop) { + void onChanged(const Property* prop) override { FeatureT::onChanged(prop); } - virtual void onDocumentRestored() { + void onDocumentRestored() override { FeatureT::onDocumentRestored(); } - virtual void onSettingDocument() { + void onSettingDocument() override { FeatureT::onSettingDocument(); } +public: FeatureCustomT(const FeatureCustomT&) = delete; FeatureCustomT(FeatureCustomT&&) = delete; FeatureCustomT& operator= (const FeatureCustomT&) = delete; diff --git a/src/App/FeaturePython.h b/src/App/FeaturePython.h index cb3dbf152c..eb9c22f0c6 100644 --- a/src/App/FeaturePython.h +++ b/src/App/FeaturePython.h @@ -175,7 +175,7 @@ public: // cannot move this to the initializer list to avoid warning imp = new FeaturePythonImp(this); } - virtual ~FeaturePythonT() { + ~FeaturePythonT() override { delete imp; } diff --git a/src/App/FeaturePythonPyImp.h b/src/App/FeaturePythonPyImp.h index 4e2bd58a15..dcc4d94ab7 100644 --- a/src/App/FeaturePythonPyImp.h +++ b/src/App/FeaturePythonPyImp.h @@ -89,14 +89,14 @@ public: public: explicit FeaturePythonPyT(Base::BaseClass *pcObject, PyTypeObject *T = &Type); - virtual ~FeaturePythonPyT(); + ~FeaturePythonPyT() override; /** @name callbacks and implementers for the python object methods */ //@{ static int __setattro(PyObject *PyObj, PyObject *attro, PyObject *value); //@} - PyObject *_getattr(const char *attr); // __getattr__ function - int _setattr(const char *attr, PyObject *value); // __setattr__ function + PyObject *_getattr(const char *attr) override; + int _setattr(const char *attr, PyObject *value) override; protected: PyObject * dict_methods; diff --git a/src/App/GroupExtension.cpp b/src/App/GroupExtension.cpp index fb9ab4b1a6..87e827cae2 100644 --- a/src/App/GroupExtension.cpp +++ b/src/App/GroupExtension.cpp @@ -31,7 +31,7 @@ using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; EXTENSION_PROPERTY_SOURCE(App::GroupExtension, App::DocumentObjectExtension) @@ -352,8 +352,10 @@ void GroupExtension::extensionOnChanged(const Property* p) { _Conns.clear(); for(auto obj : Group.getValue()) { if(obj && obj->getNameInDocument()) { - _Conns[obj] = obj->signalChanged.connect(boost::bind( - &GroupExtension::slotChildChanged,this,bp::_1, bp::_2)); + //NOLINTBEGIN + _Conns[obj] = obj->signalChanged.connect(std::bind( + &GroupExtension::slotChildChanged,this,sp::_1, sp::_2)); + //NOLINTEND } } } diff --git a/src/App/GroupExtension.h b/src/App/GroupExtension.h index 65d4a583a6..9635ef536d 100644 --- a/src/App/GroupExtension.h +++ b/src/App/GroupExtension.h @@ -143,7 +143,7 @@ class GroupExtensionPythonT : public ExtensionT { public: GroupExtensionPythonT() = default; - virtual ~GroupExtensionPythonT() = default; + ~GroupExtensionPythonT() override = default; //override the documentobjectextension functions to make them available in python bool allowObject(DocumentObject* obj) override { diff --git a/src/App/Link.cpp b/src/App/Link.cpp index de27dcaf41..d2859600d0 100644 --- a/src/App/Link.cpp +++ b/src/App/Link.cpp @@ -47,7 +47,7 @@ FC_LOG_LEVEL_INIT("App::Link", true,true) using namespace App; using namespace Base; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; using CharRange = boost::iterator_range; @@ -1539,8 +1539,10 @@ void LinkBaseExtension::updateGroup() { if(!conn.connected()) { FC_LOG("new group connection " << getExtendedObject()->getFullName() << " -> " << group->getFullName()); + //NOLINTBEGIN conn = group->signalChanged.connect( - boost::bind(&LinkBaseExtension::slotChangedPlainGroup,this,bp::_1,bp::_2)); + std::bind(&LinkBaseExtension::slotChangedPlainGroup,this,sp::_1,sp::_2)); + //NOLINTEND } std::size_t count = children.size(); ext->getAllChildren(children,childSet); @@ -1553,8 +1555,10 @@ void LinkBaseExtension::updateGroup() { if(!conn.connected()) { FC_LOG("new group connection " << getExtendedObject()->getFullName() << " -> " << child->getFullName()); + //NOLINTBEGIN conn = child->signalChanged.connect( - boost::bind(&LinkBaseExtension::slotChangedPlainGroup,this,bp::_1,bp::_2)); + std::bind(&LinkBaseExtension::slotChangedPlainGroup,this,sp::_1,sp::_2)); + //NOLINTEND } } } diff --git a/src/App/MappedElement.h b/src/App/MappedElement.h index ef5784d7d9..7f6ee68f01 100644 --- a/src/App/MappedElement.h +++ b/src/App/MappedElement.h @@ -23,7 +23,6 @@ #ifndef APP_MAPPED_ELEMENT_H #define APP_MAPPED_ELEMENT_H -#include "ComplexGeoData.h" #include "IndexedName.h" #include "MappedName.h" diff --git a/src/App/MappedName.cpp b/src/App/MappedName.cpp index d861679131..17256b32e4 100644 --- a/src/App/MappedName.cpp +++ b/src/App/MappedName.cpp @@ -35,7 +35,7 @@ #include -FC_LOG_LEVEL_INIT("MappedName", true, 2); +FC_LOG_LEVEL_INIT("MappedName", true, 2);// NOLINT namespace Data { @@ -59,13 +59,13 @@ void MappedName::compact() const } -int MappedName::findTagInElementName(long* tag, int* len, const char* postfix, - char* type, bool negative, bool recursive) const +int MappedName::findTagInElementName(long* tagOut, int* lenOut, std::string* postfixOut, + char* typeOut, bool negative, bool recursive) const { bool hex = true; int pos = this->rfind(POSTFIX_TAG); - // Example name, tagPosfix == ;:H + // Example name, POSTFIX_TAG == ;:H // #94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F // ^ // | @@ -73,8 +73,9 @@ int MappedName::findTagInElementName(long* tag, int* len, const char* postfix, if(pos < 0) { pos = this->rfind(POSTFIX_DECIMAL_TAG); - if (pos < 0) + if (pos < 0) { return -1; + } hex = false; } int offset = pos + (int)POSTFIX_TAG_SIZE; @@ -85,78 +86,84 @@ int MappedName::findTagInElementName(long* tag, int* len, const char* postfix, char tp = 0; char eof = 0; - int size; - const char *s = this->toConstString(offset, size); + int size {0}; + const char * nameAsChars = this->toConstString(offset, size); // check if the number followed by the tagPosfix is negative - bool isNegative = (s[0] == '-'); + bool isNegative = (nameAsChars[0] == '-'); if (isNegative) { - ++s; + ++nameAsChars; --size; } - boost::iostreams::stream iss(s, size); + boost::iostreams::stream iss(nameAsChars, size); if (!hex) { // no hex is an older version of the encoding scheme iss >> _tag >> sep; } else { - // The purpose of tag postfix is to encode one model operation. The - // 'tag' field is used to record the own object ID of that model shape, - // and the 'len' field indicates the length of the operation codes - // before the tag postfix. These fields are in hex. The trailing 'F' is - // the shape type of this element, 'F' for face, 'E' edge, and 'V' vertex. + // The purpose of tagOut postfixOut is to encode one model operation. The + // 'tagOut' field is used to record the own object ID of that model shape, + // and the 'lenOut' field indicates the length of the operation codes + // before the tagOut postfixOut. These fields are in hex. The trailing 'F' is + // the shape typeOut of this element, 'F' for face, 'E' edge, and 'V' vertex. // // #94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F // | | ^^ ^^ // | | | | - // ---len = 0x10--- tag len + // ---lenOut = 0x10--- tagOut lenOut iss >> std::hex; // _tag field can be skipped, if it is 0 - if (s[0] == ',' || s[0] == ':') + if (nameAsChars[0] == ',' || nameAsChars[0] == ':') { iss >> sep; - else + } + else { iss >> _tag >> sep; + } } - if (isNegative) + if (isNegative) { _tag = -_tag; + } if (sep == ':') { // ':' is followed by _len field. // // For decTagPostfix() (i.e. older encoding scheme), this is the length - // of the string before the entire postfix (A postfix may contain + // of the string before the entire postfixOut (A postfixOut may contain // multiple segments usually separated by ELEMENT_MAP_PREFIX. // // For newer POSTFIX_TAG, this counts the number of characters that - // proceeds this tag postfix segment that forms the op code (see + // proceeds this tagOut postfixOut segment that forms the op code (see // example above). // - // The reason of this change is so that the postfix can stay the same + // The reason of this change is so that the postfixOut can stay the same // regardless of the prefix, which can increase memory efficiency. // iss >> _len >> sep2 >> tp >> eof; - // The next separator to look for is either ':' for older tag postfix, or ',' - if (!hex && sep2 == ':') + // The next separator to look for is either ':' for older tagOut postfixOut, or ',' + if (!hex && sep2 == ':') { sep2 = ','; + } } else if (hex && sep == ',') { - // ',' is followed by a single character that indicates the element type. + // ',' is followed by a single character that indicates the element typeOut. iss >> tp >> eof; sep = ':'; sep2 = ','; } - if (_len < 0 || sep != ':' || sep2 != ',' || tp == 0 || eof != 0) + if (_len < 0 || sep != ':' || sep2 != ',' || tp == 0 || eof != 0) { return -1; + } if (hex) { - if (pos-_len < 0) - return -1; - if (_len && recursive && (tag || len)) { - // in case of recursive tag postfix (used by hierarchy element - // map), look for any embedded tag postifx + if (pos-_len < 0) { + return -1; + } + if ((_len != 0) && recursive && (tagOut || lenOut)) { + // in case of recursive tagOut postfixOut (used by hierarchy element + // map), look for any embedded tagOut postfixOut int next = MappedName::fromRawData(*this, pos-_len, _len).rfind(POSTFIX_TAG); if (next >= 0) { next += pos - _len; @@ -165,14 +172,17 @@ int MappedName::findTagInElementName(long* tag, int* len, const char* postfix, // | | // next pos // - // There maybe other operation codes after this embedded tag - // postfix, search for the sperator. + // There maybe other operation codes after this embedded tagOut + // postfixOut, search for the seperator. // - int end; - if (pos == next) + int end {0}; + if (pos == next) { end = -1; - else - end = MappedName::fromRawData(*this, next+1, pos-next-1).find(ELEMENT_MAP_PREFIX); + } + else { + end = MappedName::fromRawData(*this, next + 1, pos - next - 1) + .find(ELEMENT_MAP_PREFIX); + } if (end >= 0) { end += next+1; // #94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F @@ -182,33 +192,41 @@ int MappedName::findTagInElementName(long* tag, int* len, const char* postfix, _len = pos - end; // #94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F // | | - // -- len -- - } else + // -- lenOut -- + } else { _len = 0; + } } } - // Now convert the 'len' field back to the length of the remaining name + // Now convert the 'lenOut' field back to the length of the remaining name // // #94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F // | | - // ----------- len ----------- + // ----------- lenOut ----------- _len = pos - _len; } - if(type) - *type = tp; - if(tag) { - if (_tag == 0 && recursive) - return MappedName(*this, 0, _len).findTagInElementName(tag, len, postfix, type, negative); - if(_tag>0 || negative) - *tag = _tag; - else - *tag = -_tag; + if(typeOut) { + *typeOut = tp; + } + if(tagOut) { + if (_tag == 0 && recursive) { + return MappedName(*this, 0, _len) + .findTagInElementName(tagOut, lenOut, postfixOut, typeOut, negative); + } + if(_tag>0 || negative) { + *tagOut = _tag; + } + else { + *tagOut = -_tag; + } + } + if(lenOut) { + *lenOut = _len; + } + if(postfixOut) { + *postfixOut = this->toString(pos); } - if(len) - *len = _len; - if(postfix) - this->toString(*postfix, pos); return pos; } diff --git a/src/App/MappedName.h b/src/App/MappedName.h index 184a763b87..355533e1bd 100644 --- a/src/App/MappedName.h +++ b/src/App/MappedName.h @@ -25,7 +25,6 @@ #ifndef APP_MAPPED_NAME_H #define APP_MAPPED_NAME_H - #include #include @@ -34,11 +33,11 @@ #include #include #include +#include -#include "ComplexGeoData.h" +#include "ElementNamingUtils.h" #include "IndexedName.h" #include "StringHasher.h" -#include "ElementNamingUtils.h" namespace Data @@ -93,8 +92,9 @@ public: /// is appended as text to the MappedName. In that case the memory is *not* shared between the /// original IndexedName and the MappedName. explicit MappedName(const IndexedName& element) - : data(QByteArray::fromRawData(element.getType(), qstrlen(element.getType()))), - raw(true) + : data(QByteArray::fromRawData(element.getType(), + static_cast(qstrlen(element.getType())))) + , raw(true) { if (element.getIndex() > 0) { this->data += QByteArray::number(element.getIndex()); @@ -102,6 +102,12 @@ public: } } + explicit MappedName(const App::StringIDRef& sid) + : raw(false) + { + sid.toBytes(this->data); + } + MappedName() : raw(false) {} @@ -125,16 +131,16 @@ public: /// \param other The mapped name to copy. Its data and postfix become the new MappedName's data /// \param postfix The postfix for the new MappedName MappedName(const MappedName& other, const char* postfix) - : data(other.data + other.postfix), - postfix(postfix), - raw(false) + : data(other.data + other.postfix) + , postfix(postfix) + , raw(false) {} /// Move constructor MappedName(MappedName&& other) noexcept - : data(std::move(other.data)), - postfix(std::move(other.postfix)), - raw(other.raw) + : data(std::move(other.data)) + , postfix(std::move(other.postfix)) + , raw(other.raw) {} ~MappedName() = default; @@ -890,21 +896,22 @@ public: offset); } - /// Extract tag and other information from a encoded element name + /// Extract tagOut and other information from a encoded element name /// - /// \param tag: optional pointer to receive the extracted tag - /// \param len: optional pointer to receive the length field after the tag field. - /// This gives the length of the previous hashsed element name starting + /// \param tagOut: optional pointer to receive the extracted tagOut + /// \param lenOut: optional pointer to receive the length field after the tagOut field. + /// This gives the length of the previous hashed element name starting /// from the beginning of the give element name. - /// \param postfix: optional pointer to receive the postfix starting at the found tag field. - /// \param type: optional pointer to receive the element type character - /// \param negative: return negative tag as it is. If disabled, then always return positive tag. - /// Negative tag is sometimes used for element disambiguation. - /// \param recursive: recursively find the last non-zero tag + /// \param postfixOut: optional pointer to receive the postfixOut starting at the found tagOut field. + /// \param typeOut: optional pointer to receive the element typeOut character + /// \param negative: return negative tagOut as it is. If disabled, then always return positive tagOut. + /// Negative tagOut is sometimes used for element disambiguation. + /// \param recursive: recursively find the last non-zero tagOut /// - /// \return Return the end position of the tag field, or return -1 if not found. - int findTagInElementName(long* tag = 0, int* len = 0, const char* postfix = 0, char* type = 0, - bool negative = false, bool recursive = true) const; + /// \return Return the end position of the tagOut field, or return -1 if not found. + int findTagInElementName(long* tagOut = nullptr, int* lenOut = nullptr, std::string* postfixOut = nullptr, + char* typeOut = nullptr, bool negative = false, + bool recursive = true) const; /// Get a hash for this MappedName std::size_t hash() const @@ -919,7 +926,7 @@ private: }; -typedef QVector<::App::StringIDRef> ElementIDRefs; +using ElementIDRefs = QVector<::App::StringIDRef>; struct MappedNameRef { @@ -929,25 +936,34 @@ struct MappedNameRef MappedNameRef() = default; - MappedNameRef(const MappedName& name, const ElementIDRefs& sids = ElementIDRefs()) - : name(name), - sids(sids) + ~MappedNameRef() = default; + + MappedNameRef(MappedName name, ElementIDRefs sids = ElementIDRefs()) + : name(std::move(name)) + , sids(std::move(sids)) { compact(); } MappedNameRef(const MappedNameRef& other) - : name(other.name), - sids(other.sids) + : name(other.name) + , sids(other.sids) {} - MappedNameRef(MappedNameRef&& other) - : name(std::move(other.name)), - sids(std::move(other.sids)), - next(std::move(other.next)) + MappedNameRef(MappedNameRef&& other) noexcept + : name(std::move(other.name)) + , sids(std::move(other.sids)) + , next(std::move(other.next)) {} - MappedNameRef& operator=(MappedNameRef&& other) + MappedNameRef& operator=(const MappedNameRef& other) noexcept + { + name = other.name; + sids = other.sids; + return *this; + } + + MappedNameRef& operator=(MappedNameRef&& other) noexcept { name = std::move(other.name); sids = std::move(other.sids); @@ -960,22 +976,24 @@ struct MappedNameRef return !name.empty(); } - void append(const MappedName& name, const ElementIDRefs sids = ElementIDRefs()) + void append(const MappedName& _name, const ElementIDRefs _sids = ElementIDRefs()) { - if (!name) + if (!_name) { return; + } if (!this->name) { - this->name = name; - this->sids = sids; + this->name = _name; + this->sids = _sids; compact(); return; } - std::unique_ptr n(new MappedNameRef(name, sids)); - if (!this->next) - this->next = std::move(n); + std::unique_ptr mappedName(new MappedNameRef(_name, _sids)); + if (!this->next) { + this->next = std::move(mappedName); + } else { - this->next.swap(n); - this->next->next = std::move(n); + this->next.swap(mappedName); + this->next->next = std::move(mappedName); } } @@ -987,9 +1005,9 @@ struct MappedNameRef } } - bool erase(const MappedName& name) + bool erase(const MappedName& _name) { - if (this->name == name) { + if (this->name == _name) { this->name.clear(); this->sids.clear(); if (this->next) { @@ -1002,11 +1020,11 @@ struct MappedNameRef return true; } - for (std::unique_ptr* p = &this->next; *p; p = &(*p)->next) { - if ((*p)->name == name) { + for (std::unique_ptr* ptr = &this->next; *ptr; ptr = &(*ptr)->next) { + if ((*ptr)->name == _name) { std::unique_ptr tmp; - tmp.swap(*p); - *p = std::move(tmp->next); + tmp.swap(*ptr); + *ptr = std::move(tmp->next); return true; } } @@ -1028,4 +1046,4 @@ struct MappedNameRef }// namespace Data -#endif// APP_MAPPED_NAME_H \ No newline at end of file +#endif// APP_MAPPED_NAME_H diff --git a/src/App/MergeDocuments.cpp b/src/App/MergeDocuments.cpp index 177d8996e0..d80c7bdb0d 100644 --- a/src/App/MergeDocuments.cpp +++ b/src/App/MergeDocuments.cpp @@ -34,7 +34,7 @@ using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace App { @@ -73,10 +73,12 @@ private: MergeDocuments::MergeDocuments(App::Document* doc) : guiup(false), verbose(true), stream(nullptr), appdoc(doc) { + //NOLINTBEGIN connectExport = doc->signalExportObjects.connect - (boost::bind(&MergeDocuments::exportObject, this, bp::_1, bp::_2)); + (std::bind(&MergeDocuments::exportObject, this, sp::_1, sp::_2)); connectImport = doc->signalImportObjects.connect - (boost::bind(&MergeDocuments::importObject, this, bp::_1, bp::_2)); + (std::bind(&MergeDocuments::importObject, this, sp::_1, sp::_2)); + //NOLINTEND QCoreApplication* app = QCoreApplication::instance(); if (app && app->inherits("QApplication")) { diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp index 05d58b4516..785413960f 100644 --- a/src/App/Metadata.cpp +++ b/src/App/Metadata.cpp @@ -172,6 +172,11 @@ std::string Metadata::name() const return _name; } +std::string Metadata::type() const +{ + return _type; +} + Meta::Version Metadata::version() const { return _version; @@ -291,6 +296,11 @@ void Metadata::setName(const std::string& name) _name = name; } +void Metadata::setType(const std::string& type) +{ + _type = type; +} + void Metadata::setVersion(const Meta::Version& version) { _version = version; @@ -726,6 +736,7 @@ bool Metadata::supportsCurrentFreeCAD() const void Metadata::appendToElement(DOMElement* root) const { appendSimpleXMLNode(root, "name", _name); + appendSimpleXMLNode(root, "type", _type); appendSimpleXMLNode(root, "description", _description); if (_version != Meta::Version()) { // Only append version if it's not 0.0.0 @@ -864,6 +875,9 @@ void Metadata::parseVersion1(const DOMNode* startNode) if (tagString == "name") { _name = StrXUTF8(element->getTextContent()).str; } + else if (tagString == "type") { + _type = StrXUTF8(element->getTextContent()).str; + } else if (tagString == "version") { _version = Meta::Version(StrXUTF8(element->getTextContent()).str); } diff --git a/src/App/Metadata.h b/src/App/Metadata.h index 1273de8a0b..a741c19b2c 100644 --- a/src/App/Metadata.h +++ b/src/App/Metadata.h @@ -219,7 +219,8 @@ public: ////////////////////////////////////////////////////////////// std::string name() const; //< A short name for this package, often used as a menu entry. - Meta::Version version() const;//< Version string in symantic triplet format, e.g. "1.2.3". + std::string type() const; //< The type for this package. + Meta::Version version() const;//< Version string in semantic triplet format, e.g. "1.2.3". std::string date() const;//< Date string -- currently arbitrary (when C++20 is well-supported we can revisit) std::string description() const;//< Text-only description of the package. No markup. @@ -285,6 +286,7 @@ public: // Setters void setName(const std::string& name); + void setType(const std::string& type); void setVersion(const Meta::Version& version); void setDate(const std::string& date); void setDescription(const std::string& description); @@ -342,12 +344,13 @@ public: /** * Determine whether the current metadata specifies support for the currently-running version of FreeCAD. - * Does not interrogate content items, which must be querried individually. + * Does not interrogate content items, which must be queried individually. */ bool supportsCurrentFreeCAD() const; private: std::string _name; + std::string _type; Meta::Version _version; std::string _date; std::string _description; diff --git a/src/App/MetadataPy.xml b/src/App/MetadataPy.xml index be05c18aea..0d31aca4b9 100644 --- a/src/App/MetadataPy.xml +++ b/src/App/MetadataPy.xml @@ -53,6 +53,12 @@ bytes : bytes\n Python bytes-like object. + + + String representing the type of this item (text only, no markup allowed). + + + String representing the description of this item (text only, no markup allowed). diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp index d3708ada85..9ad1fd79ad 100644 --- a/src/App/MetadataPyImp.cpp +++ b/src/App/MetadataPyImp.cpp @@ -192,6 +192,19 @@ void MetadataPy::setDescription(Py::Object args) getMetadataPtr()->setDescription(description); } +Py::Object MetadataPy::getType() const +{ + return Py::String(getMetadataPtr()->type()); +} + +void MetadataPy::setType(Py::Object args) +{ + const char *type = nullptr; + if (!PyArg_Parse(args.ptr(), "s", &type)) + throw Py::Exception(); + getMetadataPtr()->setType(type); +} + Py::Object MetadataPy::getMaintainer() const { auto maintainers = getMetadataPtr()->maintainer(); diff --git a/src/App/PropertyExpressionEngine.cpp b/src/App/PropertyExpressionEngine.cpp index df9163262b..8844d00a6d 100644 --- a/src/App/PropertyExpressionEngine.cpp +++ b/src/App/PropertyExpressionEngine.cpp @@ -39,7 +39,7 @@ FC_LOG_LEVEL_INIT("App", true); using namespace App; using namespace Base; using namespace boost; -using namespace boost::placeholders; +namespace sp = std::placeholders; TYPESYSTEM_SOURCE_ABSTRACT(App::PropertyExpressionContainer , App::PropertyXLinkContainer) @@ -164,8 +164,9 @@ void PropertyExpressionEngine::hasSetValue() } } if(hasHidden) { - if(!pimpl) - pimpl.reset(new Private); + if(!pimpl) { + pimpl = std::make_unique(); + } for(auto &e : expressions) { auto expr = e.second.expression; if(!expr) continue; @@ -180,12 +181,16 @@ void PropertyExpressionEngine::hasSetValue() std::string key = objName + propName; auto &propDeps = pimpl->propMap[key]; if(propDeps.empty()) { - if(!propName.empty()) - pimpl->conns.emplace_back(obj->signalChanged.connect(boost::bind( - &PropertyExpressionEngine::slotChangedProperty,this,_1,_2))); - else - pimpl->conns.emplace_back(obj->signalChanged.connect(boost::bind( - &PropertyExpressionEngine::slotChangedObject,this,_1,_2))); + //NOLINTBEGIN + if(!propName.empty()) { + pimpl->conns.emplace_back(obj->signalChanged.connect(std::bind( + &PropertyExpressionEngine::slotChangedProperty,this,sp::_1,sp::_2))); + } + else { + pimpl->conns.emplace_back(obj->signalChanged.connect(std::bind( + &PropertyExpressionEngine::slotChangedObject,this,sp::_1,sp::_2))); + } + //NOLINTEND } propDeps.push_back(e.first); } @@ -265,7 +270,7 @@ void PropertyExpressionEngine::Save(Base::Writer &writer) const writer.Stream() << "\">" << std::endl; writer.incInd(); } else { - writer.Stream() << "\" xlink=\"1\">" << std::endl; + writer.Stream() << R"(" xlink="1">)" << std::endl; writer.incInd(); PropertyExpressionContainer::Save(writer); } @@ -296,7 +301,7 @@ void PropertyExpressionEngine::Restore(Base::XMLReader &reader) if(reader.hasAttribute("xlink") && reader.getAttributeAsInteger("xlink")) PropertyExpressionContainer::Restore(reader); - restoredExpressions.reset(new std::vector); + restoredExpressions = std::make_unique>(); restoredExpressions->reserve(count); for (int i = 0; i < count; ++i) { @@ -968,7 +973,7 @@ Property *PropertyExpressionEngine::CopyOnImportExternal( if(!expr && !engine) continue; if(!engine) { - engine.reset(new PropertyExpressionEngine); + engine = std::make_unique(); for(auto it2=expressions.begin();it2!=it;++it2) { engine->expressions[it2->first] = ExpressionInfo( std::shared_ptr(it2->second.expression->copy())); @@ -996,7 +1001,7 @@ Property *PropertyExpressionEngine::CopyOnLabelChange(App::DocumentObject *obj, if(!expr && !engine) continue; if(!engine) { - engine.reset(new PropertyExpressionEngine); + engine = std::make_unique(); for(auto it2=expressions.begin();it2!=it;++it2) { ExpressionInfo info; if (it2->second.expression) @@ -1028,7 +1033,7 @@ Property *PropertyExpressionEngine::CopyOnLinkReplace(const App::DocumentObject if(!expr && !engine) continue; if(!engine) { - engine.reset(new PropertyExpressionEngine); + engine = std::make_unique(); for(auto it2=expressions.begin();it2!=it;++it2) { ExpressionInfo info; if (it2->second.expression) diff --git a/src/App/PropertyLinks.cpp b/src/App/PropertyLinks.cpp index dc5b4502aa..a4eb65a3b0 100644 --- a/src/App/PropertyLinks.cpp +++ b/src/App/PropertyLinks.cpp @@ -45,7 +45,7 @@ FC_LOG_LEVEL_INIT("PropertyLinks",true,true) using namespace App; using namespace Base; using namespace std; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; //************************************************************************** //************************************************************************** @@ -2661,14 +2661,16 @@ public: myPos = pos; myPath = myPos->first.toUtf8().constData(); App::Application &app = App::GetApplication(); + //NOLINTBEGIN connFinishRestoreDocument = app.signalFinishRestoreDocument.connect( - boost::bind(&DocInfo::slotFinishRestoreDocument,this,bp::_1)); + std::bind(&DocInfo::slotFinishRestoreDocument,this,sp::_1)); connPendingReloadDocument = app.signalPendingReloadDocument.connect( - boost::bind(&DocInfo::slotFinishRestoreDocument,this,bp::_1)); + std::bind(&DocInfo::slotFinishRestoreDocument,this,sp::_1)); connDeleteDocument = app.signalDeleteDocument.connect( - boost::bind(&DocInfo::slotDeleteDocument,this,bp::_1)); + std::bind(&DocInfo::slotDeleteDocument,this,sp::_1)); connSaveDocument = app.signalSaveDocument.connect( - boost::bind(&DocInfo::slotSaveDocument,this,bp::_1)); + std::bind(&DocInfo::slotSaveDocument,this,sp::_1)); + //NOLINTEND QString fullpath(getFullPath()); if(fullpath.isEmpty()) @@ -4623,7 +4625,7 @@ void PropertyXLinkContainer::Save (Base::Writer &writer) const { void PropertyXLinkContainer::Restore(Base::XMLReader &reader) { reader.readElement("XLinks"); auto count = reader.getAttributeAsUnsigned("count"); - _XLinkRestores.reset(new std::vector(count)); + _XLinkRestores = std::make_unique>(count); if(reader.hasAttribute("hidden")) { std::istringstream iss(reader.getAttribute("hidden")); diff --git a/src/App/PropertyPythonObject.cpp b/src/App/PropertyPythonObject.cpp index e55d3e9825..4fa12a9ba9 100644 --- a/src/App/PropertyPythonObject.cpp +++ b/src/App/PropertyPythonObject.cpp @@ -156,7 +156,7 @@ void PropertyPythonObject::loadPickle(const std::string& str) Base::PyGILStateLocker lock; try { std::string buffer = str; - boost::regex pickle("S'(\\w+)'.+S'(\\w+)'\\n"); + boost::regex pickle(R"(S'(\w+)'.+S'(\w+)'\n)"); boost::match_results what; std::string::const_iterator start, end; start = buffer.begin(); @@ -271,7 +271,7 @@ void PropertyPythonObject::Save (Base::Writer &writer) const repr = Base::base64_encode((const unsigned char*)repr.c_str(), repr.size()); std::string val = /*encodeValue*/(repr); writer.Stream() << writer.ind() << " what; std::string::const_iterator start, end; start = buffer.begin(); diff --git a/src/App/PropertyStandard.h b/src/App/PropertyStandard.h index e1d1cd0d43..5e5238db2d 100644 --- a/src/App/PropertyStandard.h +++ b/src/App/PropertyStandard.h @@ -740,7 +740,7 @@ protected: }; /** UUID properties - * This property handles unique identifieers + * This property handles unique identifiers */ class AppExport PropertyUUID: public Property { diff --git a/src/App/PropertyUnits.h b/src/App/PropertyUnits.h index b715d3e1af..74ccf9690f 100644 --- a/src/App/PropertyUnits.h +++ b/src/App/PropertyUnits.h @@ -141,12 +141,11 @@ public: */ class AppExport PropertyAmountOfSubstance: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyAmountOfSubstance(void); - virtual ~PropertyAmountOfSubstance() - {} + PropertyAmountOfSubstance(); + ~PropertyAmountOfSubstance() override = default; }; /** Angle property @@ -182,12 +181,11 @@ public: */ class AppExport PropertyCompressiveStrength: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyCompressiveStrength(void); - virtual ~PropertyCompressiveStrength() - {} + PropertyCompressiveStrength(); + ~PropertyCompressiveStrength() override = default; }; /** CurrentDensity property @@ -210,12 +208,11 @@ public: */ class AppExport PropertyDensity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyDensity(void); - virtual ~PropertyDensity() - {} + PropertyDensity(); + ~PropertyDensity() override = default; }; /** DissipationRate property @@ -224,12 +221,11 @@ public: */ class AppExport PropertyDissipationRate: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyDissipationRate(void); - virtual ~PropertyDissipationRate() - {} + PropertyDissipationRate(); + ~PropertyDissipationRate() override = default; }; /** Distance property @@ -251,12 +247,11 @@ public: */ class AppExport PropertyDynamicViscosity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyDynamicViscosity(void); - virtual ~PropertyDynamicViscosity() - {} + PropertyDynamicViscosity(); + ~PropertyDynamicViscosity() override = default; }; /** ElectricalCapacitance property @@ -265,12 +260,11 @@ public: */ class AppExport PropertyElectricalCapacitance: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricalCapacitance(void); - virtual ~PropertyElectricalCapacitance() - {} + PropertyElectricalCapacitance(); + ~PropertyElectricalCapacitance() override = default; }; /** ElectricalConductance property @@ -279,12 +273,11 @@ public: */ class AppExport PropertyElectricalConductance: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricalConductance(void); - virtual ~PropertyElectricalConductance() - {} + PropertyElectricalConductance(); + ~PropertyElectricalConductance() override = default; }; /** ElectricalConductivity property @@ -293,12 +286,11 @@ public: */ class AppExport PropertyElectricalConductivity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricalConductivity(void); - virtual ~PropertyElectricalConductivity() - {} + PropertyElectricalConductivity(); + ~PropertyElectricalConductivity() override = default; }; /** ElectricalInductance property @@ -307,12 +299,11 @@ public: */ class AppExport PropertyElectricalInductance: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricalInductance(void); - virtual ~PropertyElectricalInductance() - {} + PropertyElectricalInductance(); + ~PropertyElectricalInductance() override = default; }; /** ElectricalResistance property @@ -322,12 +313,11 @@ public: class AppExport PropertyElectricalResistance: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricalResistance(void); - virtual ~PropertyElectricalResistance() - {} + PropertyElectricalResistance(); + ~PropertyElectricalResistance() override = default; }; /** ElectricCharge property @@ -336,12 +326,11 @@ public: */ class AppExport PropertyElectricCharge: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricCharge(void); - virtual ~PropertyElectricCharge() - {} + PropertyElectricCharge(); + ~PropertyElectricCharge() override = default; }; /** ElectricCurrent property @@ -350,12 +339,11 @@ public: */ class AppExport PropertyElectricCurrent: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyElectricCurrent(void); - virtual ~PropertyElectricCurrent() - {} + PropertyElectricCurrent(); + ~PropertyElectricCurrent() override = default; }; /** ElectricPotential property @@ -403,12 +391,11 @@ public: */ class AppExport PropertyHeatFlux: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyHeatFlux(void); - virtual ~PropertyHeatFlux() - {} + PropertyHeatFlux(); + ~PropertyHeatFlux() override = default; }; /** InverseArea property @@ -417,12 +404,11 @@ public: */ class AppExport PropertyInverseArea: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyInverseArea(void); - virtual ~PropertyInverseArea() - {} + PropertyInverseArea(); + ~PropertyInverseArea() override = default; }; /** InverseLength property @@ -431,12 +417,11 @@ public: */ class AppExport PropertyInverseLength: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyInverseLength(void); - virtual ~PropertyInverseLength() - {} + PropertyInverseLength(); + ~PropertyInverseLength() override = default; }; /** InverseVolume property @@ -445,12 +430,11 @@ public: */ class AppExport PropertyInverseVolume: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyInverseVolume(void); - virtual ~PropertyInverseVolume() - {} + PropertyInverseVolume(); + ~PropertyInverseVolume() override = default; }; /** KinematicViscosity property @@ -459,12 +443,11 @@ public: */ class AppExport PropertyKinematicViscosity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyKinematicViscosity(void); - virtual ~PropertyKinematicViscosity() - {} + PropertyKinematicViscosity(); + ~PropertyKinematicViscosity() override = default; }; /** Length property @@ -486,12 +469,11 @@ public: */ class AppExport PropertyLuminousIntensity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyLuminousIntensity(void); - virtual ~PropertyLuminousIntensity() - {} + PropertyLuminousIntensity(); + ~PropertyLuminousIntensity() override = default; }; /** MagneticFieldStrength property @@ -500,12 +482,11 @@ public: */ class AppExport PropertyMagneticFieldStrength: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyMagneticFieldStrength(void); - virtual ~PropertyMagneticFieldStrength() - {} + PropertyMagneticFieldStrength(); + ~PropertyMagneticFieldStrength() override = default; }; /** MagneticFlux property @@ -514,12 +495,11 @@ public: */ class AppExport PropertyMagneticFlux: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyMagneticFlux(void); - virtual ~PropertyMagneticFlux() - {} + PropertyMagneticFlux(); + ~PropertyMagneticFlux() override = default; }; /** MagneticFluxDensity property @@ -528,12 +508,11 @@ public: */ class AppExport PropertyMagneticFluxDensity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyMagneticFluxDensity(void); - virtual ~PropertyMagneticFluxDensity() - {} + PropertyMagneticFluxDensity(); + ~PropertyMagneticFluxDensity() override = default; }; /** Magnetization property @@ -554,14 +533,13 @@ public: * property. On the Gui it has a quantity like kg. */ class AppExport PropertyMass: public PropertyQuantity - { - TYPESYSTEM_HEADER(); +{ + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyMass(void); - virtual ~PropertyMass() - {} - }; + PropertyMass(); + ~PropertyMass() override = default; +}; /** Pressure property * This is a property for representing pressure. It basically a float @@ -582,12 +560,11 @@ public: */ class AppExport PropertyPower: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyPower(void); - virtual ~PropertyPower() - {} + PropertyPower(); + ~PropertyPower() override = default; }; /** ShearModulus property @@ -596,12 +573,11 @@ public: */ class AppExport PropertyShearModulus: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyShearModulus(void); - virtual ~PropertyShearModulus() - {} + PropertyShearModulus(); + ~PropertyShearModulus() override = default; }; /** SpecificEnergy property @@ -610,12 +586,11 @@ public: */ class AppExport PropertySpecificEnergy: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertySpecificEnergy(void); - virtual ~PropertySpecificEnergy() - {} + PropertySpecificEnergy(); + ~PropertySpecificEnergy() override = default; }; /** SpecificHeat property @@ -624,12 +599,11 @@ public: */ class AppExport PropertySpecificHeat: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertySpecificHeat(void); - virtual ~PropertySpecificHeat() - {} + PropertySpecificHeat(); + ~PropertySpecificHeat() override = default; }; /** Speed property @@ -664,12 +638,11 @@ public: */ class AppExport PropertyStress: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyStress(void); - virtual ~PropertyStress() - {} + PropertyStress(); + ~PropertyStress() override = default; }; /** Temperature property @@ -678,12 +651,11 @@ public: */ class AppExport PropertyTemperature: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyTemperature(void); - virtual ~PropertyTemperature() - {} + PropertyTemperature(); + ~PropertyTemperature() override = default; }; /** ThermalConductivity property @@ -692,12 +664,11 @@ public: */ class AppExport PropertyThermalConductivity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyThermalConductivity(void); - virtual ~PropertyThermalConductivity() - {} + PropertyThermalConductivity(); + ~PropertyThermalConductivity() override = default; }; /** ThermalExpansionCoefficient property @@ -706,12 +677,11 @@ public: */ class AppExport PropertyThermalExpansionCoefficient: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyThermalExpansionCoefficient(void); - virtual ~PropertyThermalExpansionCoefficient() - {} + PropertyThermalExpansionCoefficient(); + ~PropertyThermalExpansionCoefficient() override = default; }; /** ThermalTransferCoefficient property @@ -720,12 +690,11 @@ public: */ class AppExport PropertyThermalTransferCoefficient: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyThermalTransferCoefficient(void); - virtual ~PropertyThermalTransferCoefficient() - {} + PropertyThermalTransferCoefficient(); + ~PropertyThermalTransferCoefficient() override = default; }; /** TimeSpan property @@ -734,11 +703,11 @@ public: */ class AppExport PropertyTime: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyTime(void); - virtual ~PropertyTime(){} + PropertyTime(); + ~PropertyTime() override = default; }; /** UltimateTensileStrength property @@ -747,11 +716,11 @@ public: */ class AppExport PropertyUltimateTensileStrength: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyUltimateTensileStrength(void); - virtual ~PropertyUltimateTensileStrength(){} + PropertyUltimateTensileStrength(); + ~PropertyUltimateTensileStrength() override = default; }; /** VacuumPermittivity property @@ -773,12 +742,11 @@ public: */ class AppExport PropertyVelocity: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyVelocity(void); - virtual ~PropertyVelocity() - {} + PropertyVelocity(); + ~PropertyVelocity() override = default; }; /** Volume property @@ -800,12 +768,11 @@ public: */ class AppExport PropertyVolumeFlowRate: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyVolumeFlowRate(void); - virtual ~PropertyVolumeFlowRate() - {} + PropertyVolumeFlowRate(); + ~PropertyVolumeFlowRate() override = default; }; /** VolumetricThermalExpansionCoefficient property @@ -814,12 +781,11 @@ public: */ class AppExport PropertyVolumetricThermalExpansionCoefficient: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyVolumetricThermalExpansionCoefficient(void); - virtual ~PropertyVolumetricThermalExpansionCoefficient() - {} + PropertyVolumetricThermalExpansionCoefficient(); + ~PropertyVolumetricThermalExpansionCoefficient() override = default; }; /** Work property @@ -828,11 +794,11 @@ public: */ class AppExport PropertyWork: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyWork(void); - virtual ~PropertyWork(){} + PropertyWork(); + ~PropertyWork() override = default; }; /** YieldStrength property @@ -841,12 +807,11 @@ public: */ class AppExport PropertyYieldStrength: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyYieldStrength(void); - virtual ~PropertyYieldStrength() - {} + PropertyYieldStrength(); + ~PropertyYieldStrength() override = default; }; /** YoungsModulus property @@ -855,12 +820,11 @@ public: */ class AppExport PropertyYoungsModulus: public PropertyQuantity { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertyYoungsModulus(void); - virtual ~PropertyYoungsModulus() - {} + PropertyYoungsModulus(); + ~PropertyYoungsModulus() override = default; }; }// namespace App diff --git a/src/App/Resources/translations/App_ca.ts b/src/App/Resources/translations/App_ca.ts index 7f86319876..5ad6b675d5 100644 --- a/src/App/Resources/translations/App_ca.ts +++ b/src/App/Resources/translations/App_ca.ts @@ -7,8 +7,7 @@ Stores the last user choice of whether to apply CopyOnChange setup to all links that reference the same configurable object - Stores the last user choice of whether to apply CopyOnChange setup to all links -that reference the same configurable object + Emmagatzema l'última tria de l'usuari sobre si aplicar la configuració de CopyOnChange (Copia al canviar) a tots els enllaços que fan referència al mateix objecte configurable @@ -24,32 +23,32 @@ that reference the same configurable object X-axis - X-axis + Eix-X Y-axis - Y-axis + Eix-Y Z-axis - Z-axis + Eix-Z XY-plane - XY-plane + Pla-XY XZ-plane - XZ-plane + Pla-XZ YZ-plane - YZ-plane + Pla-YZ diff --git a/src/App/Resources/translations/App_es-AR.ts b/src/App/Resources/translations/App_es-AR.ts index 389f766da2..ec42f2b83e 100644 --- a/src/App/Resources/translations/App_es-AR.ts +++ b/src/App/Resources/translations/App_es-AR.ts @@ -7,7 +7,8 @@ Stores the last user choice of whether to apply CopyOnChange setup to all links that reference the same configurable object - Guarda la última opción de usuario acerca de si aplicar la configuración de CopyOnChange a todos los enlaces que hacen referencia al mismo objeto configurable + Almacena la última opción de usuario de si aplicar la configuración de CopyOnChange a todos los enlaces +que hacen referencia al mismo objeto configurable diff --git a/src/App/Resources/translations/App_hr.ts b/src/App/Resources/translations/App_hr.ts index a9c359a007..15da250bab 100644 --- a/src/App/Resources/translations/App_hr.ts +++ b/src/App/Resources/translations/App_hr.ts @@ -7,8 +7,8 @@ Stores the last user choice of whether to apply CopyOnChange setup to all links that reference the same configurable object - Stores the last user choice of whether to apply CopyOnChange setup to all links -that reference the same configurable object + Pamti posljednji izbor korisnika o tome treba li primijeniti postavljanje CopyOnChange +na sve veze koje referenciraju isti konfigurabilni objekt @@ -24,32 +24,32 @@ that reference the same configurable object X-axis - X-axis + X-os Y-axis - Y-axis + Y-os Z-axis - Z-axis + Z-os XY-plane - XY-plane + XY-ravnina XZ-plane - XZ-plane + XZ-ravnina YZ-plane - YZ-plane + YZ-ravnina diff --git a/src/App/Resources/translations/App_ja.ts b/src/App/Resources/translations/App_ja.ts index f0378510d4..7a99463821 100644 --- a/src/App/Resources/translations/App_ja.ts +++ b/src/App/Resources/translations/App_ja.ts @@ -7,8 +7,7 @@ Stores the last user choice of whether to apply CopyOnChange setup to all links that reference the same configurable object - Stores the last user choice of whether to apply CopyOnChange setup to all links -that reference the same configurable object + 同じ設定可能オブジェクトを参照するすべてのリンクにCopyOnChange設定を適用するかどうかについて、、最後のユーザー選択を保存します。 @@ -16,7 +15,7 @@ that reference the same configurable object Unnamed - Unnamed + 名称未設定 @@ -24,32 +23,32 @@ that reference the same configurable object X-axis - X-axis + X軸 Y-axis - Y-axis + Y軸 Z-axis - Z-axis + Z軸 XY-plane - XY-plane + XY平面 XZ-plane - XZ-plane + XZ 平面 YZ-plane - YZ-plane + YZ 平面 diff --git a/src/App/Resources/translations/App_pt-BR.ts b/src/App/Resources/translations/App_pt-BR.ts index c44b08588d..1da14ec09b 100644 --- a/src/App/Resources/translations/App_pt-BR.ts +++ b/src/App/Resources/translations/App_pt-BR.ts @@ -24,32 +24,32 @@ que referenciam o mesmo objeto configurável X-axis - X-axis + Eixo X Y-axis - Y-axis + Eixo Y Z-axis - Z-axis + Eixo Z XY-plane - XY-plane + Plano-XY XZ-plane - XZ-plane + Plano-XZ YZ-plane - YZ-plane + Plano-YZ diff --git a/src/App/Resources/translations/App_sv-SE.ts b/src/App/Resources/translations/App_sv-SE.ts index a79d2c6f6e..f6ebb77584 100644 --- a/src/App/Resources/translations/App_sv-SE.ts +++ b/src/App/Resources/translations/App_sv-SE.ts @@ -24,32 +24,32 @@ that reference the same configurable object X-axis - X-axis + X-axel Y-axis - Y-axis + Y-axel Z-axis - Z-axis + Z-axel XY-plane - XY-plane + XY plan XZ-plane - XZ-plane + XZ plan YZ-plane - YZ-plane + YZ plan diff --git a/src/App/StringHasher.h b/src/App/StringHasher.h index 7c8f4f5dcf..04713bf91e 100644 --- a/src/App/StringHasher.h +++ b/src/App/StringHasher.h @@ -23,6 +23,8 @@ #ifndef APP_STRING_ID_H #define APP_STRING_ID_H +#include + #include #include @@ -173,7 +175,7 @@ public: } /// Returns the data (prefix) - QByteArray data() const + const QByteArray& data() const { return _data; } @@ -556,6 +558,7 @@ public: void toBytes(QByteArray& bytes) const { + // TODO: return the QByteArray instead of passing in by reference if (_sid) { bytes = _sid->dataToBytes(_index); } diff --git a/src/App/StringHasherPyImp.cpp b/src/App/StringHasherPyImp.cpp index cdf3aea9a3..ebd6e74984 100644 --- a/src/App/StringHasherPyImp.cpp +++ b/src/App/StringHasherPyImp.cpp @@ -30,7 +30,7 @@ using namespace App; // returns a string which represent the object e.g. when printed in python -std::string StringHasherPy::representation(void) const +std::string StringHasherPy::representation() const { std::ostringstream str; str << ""; @@ -63,12 +63,12 @@ PyObject* StringHasherPy::getID(PyObject *args) { long id = -1; int index = 0; - PyObject *value = 0; + PyObject *value = nullptr; PyObject *base64 = Py_False; if (!PyArg_ParseTuple(args, "l|i",&id,&index)) { PyErr_Clear(); if (!PyArg_ParseTuple(args, "O|O",&value,&base64)) - return NULL; // NULL triggers exception + return nullptr; } if(id>0) { PY_TRY { @@ -106,15 +106,15 @@ PyObject* StringHasherPy::getID(PyObject *args) }PY_CATCH; } -Py::Int StringHasherPy::getCount(void) const { +Py::Int StringHasherPy::getCount() const { return Py::Int((long)getStringHasherPtr()->count()); } -Py::Int StringHasherPy::getSize(void) const { +Py::Int StringHasherPy::getSize() const { return Py::Int((long)getStringHasherPtr()->size()); } -Py::Boolean StringHasherPy::getSaveAll(void) const { +Py::Boolean StringHasherPy::getSaveAll() const { return Py::Boolean(getStringHasherPtr()->getSaveAll()); } @@ -122,7 +122,7 @@ void StringHasherPy::setSaveAll(Py::Boolean value) { getStringHasherPtr()->setSaveAll(value); } -Py::Int StringHasherPy::getThreshold(void) const { +Py::Int StringHasherPy::getThreshold() const { return Py::Int((long)getStringHasherPtr()->getThreshold()); } @@ -139,7 +139,7 @@ Py::Dict StringHasherPy::getTable() const { PyObject *StringHasherPy::getCustomAttributes(const char* /*attr*/) const { - return 0; + return nullptr; } int StringHasherPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/) diff --git a/src/Base/Builder3D.h b/src/Base/Builder3D.h index 64e2d662cf..7dfa6b410a 100644 --- a/src/Base/Builder3D.h +++ b/src/Base/Builder3D.h @@ -26,6 +26,10 @@ // Std. configurations +#ifdef __GNUC__ +# include +#endif + #include #include #include @@ -646,7 +650,7 @@ class BaseExport Builder3D : public InventorBuilder { public: Builder3D(); - virtual ~Builder3D(); + ~Builder3D() override; /// clear the string buffer void clear(); diff --git a/src/Base/CoordinateSystem.cpp b/src/Base/CoordinateSystem.cpp index f1f6c35f7f..bd61263cd1 100644 --- a/src/Base/CoordinateSystem.cpp +++ b/src/Base/CoordinateSystem.cpp @@ -88,7 +88,7 @@ void CoordinateSystem::setXDirection(const Vector3d& dir) void CoordinateSystem::setYDirection(const Vector3d& dir) { - Vector3d xd = dir & axis.getDirection(); + Vector3d xd = dir % axis.getDirection(); if (xd.Sqr() < Base::Vector3d::epsilon()) throw Base::ValueError("Direction is parallel to Z direction"); xdir = xd; diff --git a/src/Base/Exception.cpp b/src/Base/Exception.cpp index bfdc7694cd..068cc3d1e4 100644 --- a/src/Base/Exception.cpp +++ b/src/Base/Exception.cpp @@ -81,7 +81,7 @@ Exception &Exception::operator=(const Exception &inst) return *this; } -const char* Exception::what() const throw() +const char* Exception::what() const noexcept { return _sErrMsg.c_str(); } @@ -174,7 +174,7 @@ AbortException::AbortException() _sErrMsg = "Aborted operation"; } -const char* AbortException::what() const throw() +const char* AbortException::what() const noexcept { return Exception::what(); } @@ -224,7 +224,7 @@ XMLParseException::XMLParseException() _sErrMsg = "XML parse exception"; } -const char* XMLParseException::what() const throw() +const char* XMLParseException::what() const noexcept { return XMLBaseException::what(); } @@ -251,7 +251,7 @@ XMLAttributeError::XMLAttributeError() _sErrMsg = "XML attribute error"; } -const char* XMLAttributeError::what() const throw() +const char* XMLAttributeError::what() const noexcept { return XMLBaseException::what(); } @@ -312,7 +312,7 @@ FileException & FileException::operator=(const FileException &inst) return *this; } -const char* FileException::what() const throw() +const char* FileException::what() const noexcept { return _sErrMsgAndFileName.c_str(); } @@ -428,7 +428,7 @@ MemoryException & MemoryException::operator=(const MemoryException &inst) } #if defined (__GNUC__) -const char* MemoryException::what() const throw() +const char* MemoryException::what() const noexcept { // call what() of Exception, not of std::bad_alloc return Exception::what(); diff --git a/src/Base/Exception.h b/src/Base/Exception.h index e1427166fd..818355ce7d 100644 --- a/src/Base/Exception.h +++ b/src/Base/Exception.h @@ -92,11 +92,11 @@ class BaseExport Exception : public BaseClass TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - ~Exception() throw() override = default; + ~Exception() noexcept override = default; Exception &operator=(const Exception &inst); - virtual const char* what() const throw(); + virtual const char* what() const noexcept; /// Reports exception. It includes a mechanism to only report an exception once. virtual void ReportException () const; @@ -165,9 +165,9 @@ public: AbortException(); /// Destruction - ~AbortException() throw() override = default; + ~AbortException() noexcept override = default; /// Description of the exception - const char* what() const throw() override; + const char* what() const noexcept override; /// returns the corresponding python exception type PyObject * getPyExceptionType() const override; }; @@ -185,7 +185,7 @@ public: XMLBaseException(const std::string& sMessage); /// Destruction - ~XMLBaseException() throw() override = default; + ~XMLBaseException() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -204,9 +204,9 @@ public: XMLParseException(); /// Destruction - ~XMLParseException() throw() override = default; + ~XMLParseException() noexcept override = default; /// Description of the exception - const char* what() const throw() override; + const char* what() const noexcept override; PyObject * getPyExceptionType() const override; }; @@ -225,9 +225,9 @@ public: XMLAttributeError(); /// Destruction - ~XMLAttributeError() throw() override = default; + ~XMLAttributeError() noexcept override = default; /// Description of the exception - const char* what() const throw() override; + const char* what() const noexcept override; PyObject * getPyExceptionType() const override; }; @@ -247,11 +247,11 @@ public: /// Construction FileException(const FileException &inst); /// Destruction - ~FileException() throw() override = default; + ~FileException() noexcept override = default; /// Assignment operator FileException &operator=(const FileException &inst); /// Description of the exception - const char* what() const throw() override; + const char* what() const noexcept override; /// Report generation void ReportException () const override; /// Get file name for use with translatable message @@ -283,7 +283,7 @@ public: FileSystemError(const char * sMessage); FileSystemError(const std::string& sMessage); /// Destruction - ~FileSystemError() throw() override = default; + ~FileSystemError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -299,7 +299,7 @@ public: BadFormatError(const char * sMessage); BadFormatError(const std::string& sMessage); /// Destruction - ~BadFormatError() throw() override = default; + ~BadFormatError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -320,12 +320,12 @@ public: /// Construction MemoryException(const MemoryException &inst); /// Destruction - ~MemoryException() throw() override = default; + ~MemoryException() noexcept override = default; /// Assignment operator MemoryException &operator=(const MemoryException &inst); #if defined (__GNUC__) /// Description of the exception - const char* what() const throw() override; + const char* what() const noexcept override; #endif PyObject * getPyExceptionType() const override; }; @@ -342,7 +342,7 @@ public: AccessViolation(const char * sMessage); AccessViolation(const std::string& sMessage); /// Destruction - ~AccessViolation() throw() override = default; + ~AccessViolation() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -359,7 +359,7 @@ public: AbnormalProgramTermination(const char * sMessage); AbnormalProgramTermination(const std::string& sMessage); /// Destruction - ~AbnormalProgramTermination() throw() override = default; + ~AbnormalProgramTermination() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -375,7 +375,7 @@ public: UnknownProgramOption(const char * sMessage); UnknownProgramOption(const std::string& sMessage); /// Destruction - ~UnknownProgramOption() throw() override = default; + ~UnknownProgramOption() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -392,7 +392,7 @@ public: ProgramInformation(const std::string& sMessage); /// Destruction - ~ProgramInformation() throw() override = default; + ~ProgramInformation() noexcept override = default; }; /** @@ -407,7 +407,7 @@ public: TypeError(const char * sMessage); TypeError(const std::string& sMessage); /// Destruction - ~TypeError() throw() override = default; + ~TypeError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -423,7 +423,7 @@ public: ValueError(const char * sMessage); ValueError(const std::string& sMessage); /// Destruction - ~ValueError() throw() override = default; + ~ValueError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -439,7 +439,7 @@ public: IndexError(const char * sMessage); IndexError(const std::string& sMessage); /// Destruction - ~IndexError() throw() override = default; + ~IndexError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -451,7 +451,7 @@ public: NameError(const char * sMessage); NameError(const std::string& sMessage); /// Destruction - ~NameError() throw() override = default; + ~NameError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -463,7 +463,7 @@ public: ImportError(const char * sMessage); ImportError(const std::string& sMessage); /// Destruction - ~ImportError() throw() override = default; + ~ImportError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -479,7 +479,7 @@ public: AttributeError(const char * sMessage); AttributeError(const std::string& sMessage); /// Destruction - ~AttributeError() throw() override = default; + ~AttributeError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -495,7 +495,7 @@ public: RuntimeError(const char * sMessage); RuntimeError(const std::string& sMessage); /// Destruction - ~RuntimeError() throw() override = default; + ~RuntimeError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -511,7 +511,7 @@ public: BadGraphError(const char * sMessage); BadGraphError(const std::string& sMessage); /// Destruction - ~BadGraphError() throw() override = default; + ~BadGraphError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -527,7 +527,7 @@ public: NotImplementedError(const char * sMessage); NotImplementedError(const std::string& sMessage); /// Destruction - ~NotImplementedError() throw() override = default; + ~NotImplementedError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -543,7 +543,7 @@ public: ZeroDivisionError(const char * sMessage); ZeroDivisionError(const std::string& sMessage); /// Destruction - ~ZeroDivisionError() throw() override = default; + ~ZeroDivisionError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -559,7 +559,7 @@ public: ReferenceError(const char * sMessage); ReferenceError(const std::string& sMessage); /// Destruction - ~ReferenceError() throw() override = default; + ~ReferenceError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -576,7 +576,7 @@ public: ExpressionError(const char * sMessage); ExpressionError(const std::string& sMessage); /// Destruction - ~ExpressionError() throw() override = default; + ~ExpressionError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -592,7 +592,7 @@ public: ParserError(const char * sMessage); ParserError(const std::string& sMessage); /// Destruction - ~ParserError() throw() override = default; + ~ParserError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -608,7 +608,7 @@ public: UnicodeError(const char * sMessage); UnicodeError(const std::string& sMessage); /// Destruction - ~UnicodeError() throw() override = default; + ~UnicodeError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -624,7 +624,7 @@ public: OverflowError(const char * sMessage); OverflowError(const std::string& sMessage); /// Destruction - ~OverflowError() throw() override = default; + ~OverflowError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -640,7 +640,7 @@ public: UnderflowError(const char * sMessage); UnderflowError(const std::string& sMessage); /// Destruction - ~UnderflowError() throw() override = default; + ~UnderflowError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -656,7 +656,7 @@ public: UnitsMismatchError(const char * sMessage); UnitsMismatchError(const std::string& sMessage); /// Destruction - ~UnitsMismatchError() throw() override = default; + ~UnitsMismatchError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -673,7 +673,7 @@ public: CADKernelError(const char * sMessage); CADKernelError(const std::string& sMessage); /// Destruction - ~CADKernelError() throw() override = default; + ~CADKernelError() noexcept override = default; PyObject * getPyExceptionType() const override; }; @@ -692,7 +692,7 @@ public: RestoreError(const char * sMessage); RestoreError(const std::string& sMessage); /// Destruction - ~RestoreError() throw() override = default; + ~RestoreError() noexcept override = default; PyObject * getPyExceptionType() const override; }; diff --git a/src/Base/FileInfo.cpp b/src/Base/FileInfo.cpp index 943b81d825..f2f60009be 100644 --- a/src/Base/FileInfo.cpp +++ b/src/Base/FileInfo.cpp @@ -316,6 +316,16 @@ bool FileInfo::hasExtension(const char* Ext) const #endif } +bool FileInfo::hasExtension(std::initializer_list Exts) const +{ + for (const char* Ext : Exts) { + if (hasExtension(Ext)) { + return true; + } + } + return false; +} + bool FileInfo::exists() const { #if defined (FC_OS_WIN32) @@ -367,25 +377,21 @@ bool FileInfo::setPermissions(Permissions perms) bool FileInfo::isFile() const { -#ifdef FC_OS_WIN32 if (exists()) { +#ifdef FC_OS_WIN32 + std::wstring wstr = toStdWString(); FILE* fd = _wfopen(wstr.c_str(), L"rb"); bool ok = (fd != 0); if (fd) fclose(fd); return ok; - } #else - if (exists()) { - // If we can open it must be an existing file, otherwise we assume it - // is a directory (which doesn't need to be true for any cases) - std::ifstream str(FileName.c_str(), std::ios::in | std::ios::binary); - if (!str) + struct stat st; + if(stat(FileName.c_str(), &st) != 0) return false; - str.close(); - return true; - } + return S_ISREG(st.st_mode); #endif + } // TODO: Check for valid file name return true; diff --git a/src/Base/FileInfo.h b/src/Base/FileInfo.h index 4b49173dd3..52e0682b39 100644 --- a/src/Base/FileInfo.h +++ b/src/Base/FileInfo.h @@ -90,6 +90,8 @@ public: std::string completeExtension () const; /// Checks for a special extension, NOT case sensitive bool hasExtension (const char* Ext) const; + /// Checks for any of the special extensions, NOT case sensitive + bool hasExtension (std::initializer_list Exts) const; //@} /** @name methods to test the status of the file or dir */ diff --git a/src/Base/Interpreter.cpp b/src/Base/Interpreter.cpp index 63c2a11818..29126d0866 100644 --- a/src/Base/Interpreter.cpp +++ b/src/Base/Interpreter.cpp @@ -93,7 +93,7 @@ PyException::PyException() PyErr_Clear(); // must be called to keep Python interpreter in a valid state (Werner) } -PyException::~PyException() throw() = default; +PyException::~PyException() noexcept = default; void PyException::ThrowException() { diff --git a/src/Base/Interpreter.h b/src/Base/Interpreter.h index e875bc7ff1..2655a25423 100644 --- a/src/Base/Interpreter.h +++ b/src/Base/Interpreter.h @@ -93,7 +93,7 @@ public: /// constructor does the whole job PyException(); PyException(const Py::Object &obj); - ~PyException() throw() override; + ~PyException() noexcept override; void raiseException(); @@ -139,7 +139,7 @@ class BaseExport SystemExitException : public Exception { public: SystemExitException(); - ~SystemExitException() throw() override = default; + ~SystemExitException() noexcept override = default; long getExitCode() const { return _exitCode;} protected: diff --git a/src/Base/MatrixPyImp.cpp b/src/Base/MatrixPyImp.cpp index 0574e43d99..ec60a5a042 100644 --- a/src/Base/MatrixPyImp.cpp +++ b/src/Base/MatrixPyImp.cpp @@ -962,7 +962,7 @@ Py::Sequence MatrixPy::getA() const for (int i=0; i<16; i++) { tuple[i] = Py::Float(mat[i]); } - return std::move(tuple); + return tuple; } void MatrixPy::setA(Py::Sequence arg) diff --git a/src/Base/Parameter.cpp b/src/Base/Parameter.cpp index 6753142d14..b9bd61e4eb 100644 --- a/src/Base/Parameter.cpp +++ b/src/Base/Parameter.cpp @@ -473,7 +473,7 @@ bool ParameterGrp::HasGroup(const char* Name) const if (_GroupMap.find(Name) != _GroupMap.end()) return true; - if (_pGroupNode && FindElement(_pGroupNode,"FCParamGroup",Name) != 0) + if (_pGroupNode && FindElement(_pGroupNode,"FCParamGroup",Name) != nullptr) return true; return false; @@ -1239,7 +1239,7 @@ void ParameterGrp::Clear(bool notify) // Remove the rest of non-group nodes; std::vector> params; - for (DOMNode *child = _pGroupNode->getFirstChild(), *next = child; child != 0; child = next) { + for (DOMNode *child = _pGroupNode->getFirstChild(), *next = child; child != nullptr; child = next) { next = next->getNextSibling(); ParamType type = TypeValue(StrX(child->getNodeName()).c_str()); if (type != ParamType::FCInvalid && type != ParamType::FCGroup) @@ -1347,7 +1347,7 @@ ParameterGrp::GetParameterNames(const char * sFilter) const std::string Name; for (DOMNode *clChild = _pGroupNode->getFirstChild(); - clChild != 0; clChild = clChild->getNextSibling()) { + clChild != nullptr; clChild = clChild->getNextSibling()) { if (clChild->getNodeType() == DOMNode::ELEMENT_NODE) { StrX type(clChild->getNodeName()); ParamType Type = TypeValue(type.c_str()); @@ -1745,16 +1745,17 @@ void ParameterManager::SaveDocument(XMLFormatTarget* pFormatTarget) const theOutput->setEncoding(gOutputEncoding); if (gUseFilter) { - myFilter.reset(new DOMPrintFilter(DOMNodeFilter::SHOW_ELEMENT | - DOMNodeFilter::SHOW_ATTRIBUTE | - DOMNodeFilter::SHOW_DOCUMENT_TYPE | - DOMNodeFilter::SHOW_TEXT - )); + myFilter = std::make_unique( + DOMNodeFilter::SHOW_ELEMENT | + DOMNodeFilter::SHOW_ATTRIBUTE | + DOMNodeFilter::SHOW_DOCUMENT_TYPE | + DOMNodeFilter::SHOW_TEXT + ); theSerializer->setFilter(myFilter.get()); } // plug in user's own error handler - myErrorHandler.reset(new DOMPrintErrorHandler()); + myErrorHandler = std::make_unique(); DOMConfiguration* config = theSerializer->getDomConfig(); config->setParameter(XMLUni::fgDOMErrorHandler, myErrorHandler.get()); diff --git a/src/Base/Parameter.h b/src/Base/Parameter.h index eece3510b6..b269e3c71c 100644 --- a/src/Base/Parameter.h +++ b/src/Base/Parameter.h @@ -157,13 +157,13 @@ public: std::string &Value, const char *Default) const; std::vector> - GetAttributeMap(ParamType Type, const char * sFilter = NULL) const; + GetAttributeMap(ParamType Type, const char * sFilter = nullptr) const; /** Return the type and name of all parameters with optional filter * @param sFilter only strings which name includes sFilter are put in the vector * @return std::vector of pair(type, name) */ std::vector> - GetParameterNames(const char * sFilter = NULL) const; + GetParameterNames(const char * sFilter = nullptr) const; //@} /** @name methods for bool handling */ diff --git a/src/Base/ProgressIndicatorPy.cpp b/src/Base/ProgressIndicatorPy.cpp index a5c0dfcfe2..d67e018f5b 100644 --- a/src/Base/ProgressIndicatorPy.cpp +++ b/src/Base/ProgressIndicatorPy.cpp @@ -79,8 +79,9 @@ Py::Object ProgressIndicatorPy::start(const Py::Tuple& args) unsigned int steps; if (!PyArg_ParseTuple(args.ptr(), "sI",&text,&steps)) throw Py::Exception(); - if (!_seq.get()) - _seq.reset(new SequencerLauncher(text,steps)); + if (!_seq.get()) { + _seq = std::make_unique(text,steps); + } return Py::None(); } diff --git a/src/Base/Tools.cpp b/src/Base/Tools.cpp index f3385132c5..0a360cc5bb 100644 --- a/src/Base/Tools.cpp +++ b/src/Base/Tools.cpp @@ -291,6 +291,30 @@ std::string Base::Tools::escapeEncodeFilename(const std::string& s) return result; } +std::string Base::Tools::quoted(const char* name) +{ + std::stringstream str; + str << "\"" << name << "\""; + return str.str(); +} + +std::string Base::Tools::quoted(const std::string& name) +{ + std::stringstream str; + str << "\"" << name << "\""; + return str.str(); +} + +std::string Base::Tools::joinList(const std::vector& vec, + const std::string& sep) +{ + std::stringstream str; + for (const auto& it : vec) { + str << it << sep; + } + return str.str(); +} + // ---------------------------------------------------------------------------- using namespace Base; diff --git a/src/Base/Tools.h b/src/Base/Tools.h index 93291e218b..76a67f9e98 100644 --- a/src/Base/Tools.h +++ b/src/Base/Tools.h @@ -274,6 +274,29 @@ struct BaseExport Tools static inline QString fromStdString(const std::string & s) { return QString::fromUtf8(s.c_str(), static_cast(s.size())); } + + /** + * @brief quoted Creates a quoted string. + * @param String to be quoted. + * @return A quoted std::string. + */ + static std::string quoted(const char*); + /** + * @brief quoted Creates a quoted string. + * @param String to be quoted. + * @return A quoted std::string. + */ + static std::string quoted(const std::string&); + + /** + * @brief joinList + * Join the vector of strings \a vec using the separator \a sep + * @param vec + * @param sep + * @return + */ + static std::string joinList(const std::vector& vec, + const std::string& sep = ", "); }; diff --git a/src/Base/Writer.cpp b/src/Base/Writer.cpp index f6a12bb15e..b1d592f787 100644 --- a/src/Base/Writer.cpp +++ b/src/Base/Writer.cpp @@ -45,8 +45,8 @@ using namespace zipios; // It does not check if the character is valid utf8 or not. struct cdata_filter { - typedef char char_type; - typedef boost::iostreams::output_filter_tag category; + using char_type = char; + using category = boost::iostreams::output_filter_tag; template inline bool put(Device& dev, char c) { diff --git a/src/Build/Version.h.cmake b/src/Build/Version.h.cmake index 71abdd4813..eda5cec5ef 100644 --- a/src/Build/Version.h.cmake +++ b/src/Build/Version.h.cmake @@ -1,9 +1,10 @@ // Version Number -#define FCVersionMajor "${PACKAGE_VERSION_MAJOR}" -#define FCVersionMinor "${PACKAGE_VERSION_MINOR}" -#define FCVersionName "${PACKAGE_VERSION_NAME}" -#define FCVersionPoint "${PACKAGE_VERSION_PATCH}" +#define FCVersionMajor "${PACKAGE_VERSION_MAJOR}" +#define FCVersionMinor "${PACKAGE_VERSION_MINOR}" +#define FCVersionName "${PACKAGE_VERSION_NAME}" +#define FCVersionPoint "${PACKAGE_VERSION_PATCH}" +#define FCVersionSuffix "${PACKAGE_VERSION_SUFFIX}" // test: $Format:Hash (%H), Date: %ci$ #define FCRevision "${PACKAGE_WCREF}" //Highest committed revision number #define FCRevisionDate "${PACKAGE_WCDATE}" //Date of highest committed revision diff --git a/src/FCConfig.h b/src/FCConfig.h index c47ea3eb78..9ddce84b52 100644 --- a/src/FCConfig.h +++ b/src/FCConfig.h @@ -230,9 +230,13 @@ typedef unsigned __int64 uint64_t; // Qt // Make sure to explicitly use the correct conversion -#define QT_NO_CAST_FROM_ASCII -#undef QT3_SUPPORT -#define QT_NO_KEYWORDS +#ifndef QT_NO_CAST_FROM_ASCII +# define QT_NO_CAST_FROM_ASCII +#endif + +#ifndef QT_NO_KEYWORDS +# define QT_NO_KEYWORDS +#endif #if defined (FC_OS_WIN32) || defined(FC_OS_CYGWIN) # ifndef QT_DLL diff --git a/src/Gui/Action.cpp b/src/Gui/Action.cpp index 8907d05a47..b3de6a45b3 100644 --- a/src/Gui/Action.cpp +++ b/src/Gui/Action.cpp @@ -48,7 +48,7 @@ #include "BitmapFactory.h" #include "Command.h" #include "DlgUndoRedo.h" -#include "DlgSettingsWorkbenchesImp.h" +#include "PreferencePages/DlgSettingsWorkbenchesImp.h" #include "Document.h" #include "EditorView.h" #include "FileDialog.h" @@ -66,7 +66,7 @@ using namespace Gui; using namespace Gui::Dialog; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /** * Constructs an action called \a name with parent \a parent. It also stores a pointer @@ -644,7 +644,9 @@ WorkbenchGroup::WorkbenchGroup ( Command* pcCmd, QObject * parent ) { refreshWorkbenchList(); - Application::Instance->signalRefreshWorkbenches.connect(boost::bind(&WorkbenchGroup::refreshWorkbenchList, this)); + //NOLINTBEGIN + Application::Instance->signalRefreshWorkbenches.connect(std::bind(&WorkbenchGroup::refreshWorkbenchList, this)); + //NOLINTEND connect(getMainWindow(), &MainWindow::workbenchActivated, this, &WorkbenchGroup::onWorkbenchActivated); @@ -818,7 +820,7 @@ RecentFilesAction::RecentFilesAction ( Command* pcCmd, QObject * parent ) , visibleItems(4) , maximumItems(20) { - _pimpl.reset(new Private(this, "User parameter:BaseApp/Preferences/RecentFiles")); + _pimpl = std::make_unique(this, "User parameter:BaseApp/Preferences/RecentFiles"); restore(); } @@ -1050,7 +1052,7 @@ void RecentMacrosAction::setFiles(const QStringList& files) // Raise a single warning no matter how many conflicts if (!existingCommands.isEmpty()) { auto msgMain = QStringLiteral("Recent macros : keyboard shortcut(s)"); - for (int index = 0; index < accel_col.count(); index++) { + for (int index = 0; index < accel_col.size(); index++) { msgMain += QStringLiteral(" %1").arg(accel_col[index]); } msgMain += QStringLiteral(" disabled because of conflicts with"); diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index f16c07c6f9..17fdc76413 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -67,7 +67,7 @@ #include "CommandActionPy.h" #include "CommandPy.h" #include "Control.h" -#include "DlgSettingsCacheDirectory.h" +#include "PreferencePages/DlgSettingsCacheDirectory.h" #include "DocumentPy.h" #include "DocumentRecovery.h" #include "EditorView.h" @@ -359,6 +359,7 @@ Application::Application(bool GUIenabled) { //App::GetApplication().Attach(this); if (GUIenabled) { + //NOLINTBEGIN App::GetApplication().signalNewDocument.connect( std::bind(&Gui::Application::slotNewDocument, this, sp::_1, sp::_2)); App::GetApplication().signalDeleteDocument.connect( @@ -371,6 +372,7 @@ Application::Application(bool GUIenabled) std::bind(&Gui::Application::slotRelabelDocument, this, sp::_1)); App::GetApplication().signalShowHidden.connect( std::bind(&Gui::Application::slotShowHidden, this, sp::_1)); + //NOLINTEND // install the last active language ParameterGrp::handle hPGrp = @@ -823,6 +825,7 @@ void Application::slotNewDocument(const App::Document& Doc, bool isMainDoc) auto pDoc = new Gui::Document(const_cast(&Doc),this); d->documents[&Doc] = pDoc; + //NOLINTBEGIN // connect the signals to the application for the new document pDoc->signalNewObject.connect(std::bind(&Gui::Application::slotNewObject, this, sp::_1)); pDoc->signalDeletedObject.connect(std::bind(&Gui::Application::slotDeletedObject, @@ -835,6 +838,7 @@ void Application::slotNewDocument(const App::Document& Doc, bool isMainDoc) this, sp::_1)); pDoc->signalInEdit.connect(std::bind(&Gui::Application::slotInEdit, this, sp::_1)); pDoc->signalResetEdit.connect(std::bind(&Gui::Application::slotResetEdit, this, sp::_1)); + //NOLINTEND signalNewDocument(*pDoc, isMainDoc); if (isMainDoc) @@ -1768,26 +1772,35 @@ _qt_msg_handler_old old_qtmsg_handler = nullptr; void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { - Q_UNUSED(context); + QByteArray output; + if (context.category && strcmp(context.category, "default") != 0) { + output.append('('); + output.append(context.category); + output.append(')'); + output.append(' '); + } + + output.append(msg.toUtf8()); + switch (type) { case QtInfoMsg: case QtDebugMsg: #ifdef FC_DEBUG - Base::Console().Message("%s\n", msg.toUtf8().constData()); + Base::Console().Message("%s\n", output.constData()); #else // do not stress user with Qt internals but write to log file if enabled - Base::Console().Log("%s\n", msg.toUtf8().constData()); + Base::Console().Log("%s\n", output.constData()); #endif break; case QtWarningMsg: - Base::Console().Warning("%s\n", msg.toUtf8().constData()); + Base::Console().Warning("%s\n", output.constData()); break; case QtCriticalMsg: - Base::Console().Error("%s\n", msg.toUtf8().constData()); + Base::Console().Error("%s\n", output.constData()); break; case QtFatalMsg: - Base::Console().Error("%s\n", msg.toUtf8().constData()); + Base::Console().Error("%s\n", output.constData()); abort(); // deliberately core dump } #ifdef FC_OS_WIN32 @@ -2135,8 +2148,9 @@ void Application::runApplication() QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromLatin1(config["BuildVersionSuffix"].c_str()); QString title = - QString::fromLatin1("%1 %2.%3.%4").arg(mainApp.applicationName(), major, minor, point); + QString::fromLatin1("%1 %2.%3.%4%5").arg(mainApp.applicationName(), major, minor, point, suffix); mw.setWindowTitle(title); } else { @@ -2533,6 +2547,27 @@ void Application::setStyleSheet(const QString& qssFile, bool tiledBackground) } } +void Application::checkForDeprecatedSettings() +{ + // From 0.21, `FCBak` will be the intended default backup format + bool makeBackups = App::GetApplication() + .GetParameterGroupByPath("User parameter:BaseApp/Preferences/Document") + ->GetBool("CreateBackupFiles", true); + if (makeBackups) { + bool useFCBakExtension = + App::GetApplication() + .GetParameterGroupByPath("User parameter:BaseApp/Preferences/Document") + ->GetBool("UseFCBakExtension", true); + if (!useFCBakExtension) { + // TODO: This should be translated + Base::Console().Warning("The `.FCStd#` backup format is deprecated as of v0.21 and may " + "be removed in future versions.\n" + "To update, check the 'Preferences->General->Document->Use " + "date and FCBak extension' option.\n"); + } + } +} + void Application::checkForPreviousCrashes() { try { diff --git a/src/Gui/Application.h b/src/Gui/Application.h index 4ce5701f97..bee284c459 100644 --- a/src/Gui/Application.h +++ b/src/Gui/Application.h @@ -192,6 +192,8 @@ public: /// true when the application shutting down bool isClosing(); + + void checkForDeprecatedSettings(); void checkForPreviousCrashes(); /** @name workbench handling */ diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index d9a43af0bf..31a9420f5f 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -707,6 +707,8 @@ PyObject* Application::sExport(PyObject * /*self*/, PyObject *args) if (view3d) view3d->viewAll(); QPrinter printer(QPrinter::ScreenResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(fileName); view->print(&printer); diff --git a/src/Gui/AutoSaver.cpp b/src/Gui/AutoSaver.cpp index a4e9125c16..e88cd1f9ae 100644 --- a/src/Gui/AutoSaver.cpp +++ b/src/Gui/AutoSaver.cpp @@ -50,15 +50,17 @@ FC_LOG_LEVEL_INIT("App",true,true) using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; AutoSaver* AutoSaver::self = nullptr; AutoSaver::AutoSaver(QObject* parent) : QObject(parent), timeout(900000), compressed(true) { - App::GetApplication().signalNewDocument.connect(boost::bind(&AutoSaver::slotCreateDocument, this, bp::_1)); - App::GetApplication().signalDeleteDocument.connect(boost::bind(&AutoSaver::slotDeleteDocument, this, bp::_1)); + //NOLINTBEGIN + App::GetApplication().signalNewDocument.connect(std::bind(&AutoSaver::slotCreateDocument, this, sp::_1)); + App::GetApplication().signalDeleteDocument.connect(std::bind(&AutoSaver::slotDeleteDocument, this, sp::_1)); + //NOLINTEND } AutoSaver::~AutoSaver() @@ -161,7 +163,7 @@ void AutoSaver::saveDocument(const std::string& name, AutoSaveProperty& saver) // associated 3d view is not active Base::Reference hGrp = App::GetApplication().GetParameterGroupByPath ("User parameter:BaseApp/Preferences/Document"); - bool save = hGrp->GetBool("SaveThumbnail",false); + bool save = hGrp->GetBool("SaveThumbnail",true); hGrp->SetBool("SaveThumbnail",false); getMainWindow()->showMessage(tr("Please wait until the AutoRecovery file has been saved..."), 5000); @@ -243,10 +245,12 @@ void AutoSaver::timerEvent(QTimerEvent * event) AutoSaveProperty::AutoSaveProperty(const App::Document* doc) : timerId(-1) { + //NOLINTBEGIN documentNew = const_cast(doc)->signalNewObject.connect - (boost::bind(&AutoSaveProperty::slotNewObject, this, bp::_1)); + (std::bind(&AutoSaveProperty::slotNewObject, this, sp::_1)); documentMod = const_cast(doc)->signalChangedObject.connect - (boost::bind(&AutoSaveProperty::slotChangePropertyData, this, bp::_2)); + (std::bind(&AutoSaveProperty::slotChangePropertyData, this, sp::_2)); + //NOLINTEND } AutoSaveProperty::~AutoSaveProperty() @@ -333,11 +337,11 @@ public: tmpName = QString::fromLatin1("%1.tmp%2").arg(fileName).arg(rand()); writer.putNextEntry(tmpName.toUtf8().constData()); } - virtual ~RecoveryRunnable() + ~RecoveryRunnable() override { delete prop; } - virtual void run() + void run() override { prop->SaveDocFile(writer); writer.close(); diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index 4282978fe7..de0c5bd05c 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -297,8 +297,6 @@ SET(Gui_UIC_SRCS DlgCreateNewPreferencePack.ui DlgCustomizeSpNavSettings.ui DlgDisplayProperties.ui - DlgEditor.ui - DlgGeneral.ui DlgInputDialog.ui DlgKeyboard.ui DlgMacroExecute.ui @@ -313,20 +311,23 @@ SET(Gui_UIC_SRCS DlgProjectInformation.ui DlgProjectUtility.ui DlgPropertyLink.ui - DlgReportView.ui DlgRevertToBackupConfig.ui - DlgSettings3DView.ui - DlgSettingsCacheDirectory.ui - DlgSettingsNavigation.ui - DlgSettingsSelection.ui - DlgSettingsViewColor.ui + PreferencePages/DlgSettings3DView.ui + PreferencePages/DlgSettingsCacheDirectory.ui DlgSettingsColorGradient.ui - DlgSettingsDocument.ui + PreferencePages/DlgSettingsDocument.ui + PreferencePages/DlgSettingsEditor.ui + PreferencePages/DlgSettingsGeneral.ui DlgSettingsImage.ui - DlgSettingsWorkbenches.ui - DlgSettingsMacro.ui - DlgSettingsNotificationArea.ui - DlgSettingsPythonConsole.ui + PreferencePages/DlgSettingsMacro.ui + PreferencePages/DlgSettingsNavigation.ui + PreferencePages/DlgSettingsNotificationArea.ui + PreferencePages/DlgSettingsPythonConsole.ui + PreferencePages/DlgSettingsReportView.ui + PreferencePages/DlgSettingsSelection.ui + PreferencePages/DlgSettingsTheme.ui + PreferencePages/DlgSettingsViewColor.ui + PreferencePages/DlgSettingsWorkbenches.ui DlgCheckableMessageBox.ui DlgToolbars.ui DlgTreeWidget.ui @@ -555,63 +556,66 @@ SOURCE_GROUP("Dialog\\Customize" FILES ${Dialog_Customize_SRCS}) # The settings dialog sources SET(Dialog_Settings_CPP_SRCS - DlgEditorImp.cpp - DlgGeneralImp.cpp DlgOnlineHelpImp.cpp DlgPreferencesImp.cpp - DlgReportViewImp.cpp - DlgSettings3DViewImp.cpp - DlgSettingsCacheDirectory.cpp - DlgSettingsNavigation.cpp - DlgSettingsSelection.cpp - DlgSettingsViewColor.cpp + PreferencePages/DlgSettings3DViewImp.cpp + PreferencePages/DlgSettingsCacheDirectory.cpp DlgSettingsColorGradientImp.cpp - DlgSettingsDocumentImp.cpp + PreferencePages/DlgSettingsDocumentImp.cpp + PreferencePages/DlgSettingsEditor.cpp + PreferencePages/DlgSettingsGeneral.cpp DlgSettingsImageImp.cpp - DlgSettingsWorkbenchesImp.cpp - DlgSettingsMacroImp.cpp - DlgSettingsNotificationArea.cpp - DlgSettingsPythonConsole.cpp + PreferencePages/DlgSettingsMacroImp.cpp + PreferencePages/DlgSettingsNavigation.cpp + PreferencePages/DlgSettingsNotificationArea.cpp + PreferencePages/DlgSettingsPythonConsole.cpp + PreferencePages/DlgSettingsReportView.cpp + PreferencePages/DlgSettingsSelection.cpp + PreferencePages/DlgSettingsTheme.cpp + PreferencePages/DlgSettingsViewColor.cpp + PreferencePages/DlgSettingsWorkbenchesImp.cpp ) SET(Dialog_Settings_HPP_SRCS - DlgEditorImp.h - DlgGeneralImp.h DlgOnlineHelpImp.h DlgPreferencesImp.h - DlgReportViewImp.h - DlgSettings3DViewImp.h - DlgSettingsCacheDirectory.h - DlgSettingsNavigation.h - DlgSettingsSelection.h - DlgSettingsViewColor.h + PreferencePages/DlgSettings3DViewImp.h + PreferencePages/DlgSettingsCacheDirectory.h DlgSettingsColorGradientImp.h - DlgSettingsDocumentImp.h + PreferencePages/DlgSettingsDocumentImp.h + PreferencePages/DlgSettingsEditor.h + PreferencePages/DlgSettingsGeneral.h DlgSettingsImageImp.h - DlgSettingsWorkbenchesImp.h - DlgSettingsMacroImp.h - DlgSettingsNotificationArea.h - DlgSettingsPythonConsole.h + PreferencePages/DlgSettingsMacroImp.h + PreferencePages/DlgSettingsNavigation.h + PreferencePages/DlgSettingsNotificationArea.h + PreferencePages/DlgSettingsPythonConsole.h + PreferencePages/DlgSettingsReportView.h + PreferencePages/DlgSettingsSelection.h + PreferencePages/DlgSettingsTheme.h + PreferencePages/DlgSettingsViewColor.h + PreferencePages/DlgSettingsWorkbenchesImp.h ) SET(Dialog_Settings_SRCS ${Dialog_Settings_CPP_SRCS} ${Dialog_Settings_HPP_SRCS} - DlgEditor.ui - DlgGeneral.ui DlgOnlineHelp.ui DlgPreferences.ui - DlgReportView.ui - DlgSettings3DView.ui - DlgSettingsCacheDirectory.ui - DlgSettingsNavigation.ui - DlgSettingsSelection.ui - DlgSettingsViewColor.ui + PreferencePages/DlgSettings3DView.ui + PreferencePages/DlgSettingsCacheDirectory.ui DlgSettingsColorGradient.ui - DlgSettingsDocument.ui + PreferencePages/DlgSettingsDocument.ui + PreferencePages/DlgSettingsEditor.ui + PreferencePages/DlgSettingsGeneral.ui DlgSettingsImage.ui - DlgSettingsWorkbenches.ui - DlgSettingsMacro.ui - DlgSettingsNotificationArea.ui - DlgSettingsPythonConsole.ui + PreferencePages/DlgSettingsMacro.ui + PreferencePages/DlgSettingsNavigation.ui + PreferencePages/DlgSettingsNotificationArea.ui + PreferencePages/DlgSettingsPythonConsole.ui + PreferencePages/DlgSettingsReportView.ui + PreferencePages/DlgSettingsSelection.ui + PreferencePages/DlgSettingsTheme.ui + PreferencePages/DlgSettingsViewColor.ui + PreferencePages/DlgSettingsWorkbenches.ui ) SOURCE_GROUP("Dialog\\Settings" FILES ${Dialog_Settings_SRCS}) diff --git a/src/Gui/CallTips.cpp b/src/Gui/CallTips.cpp index 40e11c2ace..517fbef1a5 100644 --- a/src/Gui/CallTips.cpp +++ b/src/Gui/CallTips.cpp @@ -688,7 +688,7 @@ void CallTipsList::callTipItemActivated(QListWidgetItem *item) if (!sel.isEmpty()) { // in case the cursor moved too far on the right side const QChar underscore = QLatin1Char('_'); - const QChar ch = sel.at(sel.count()-1); + const QChar ch = sel.at(sel.size()-1); if (!ch.isLetterOrNumber() && ch != underscore) cursor.movePosition(QTextCursor::Left, QTextCursor::KeepAnchor); } @@ -707,7 +707,7 @@ void CallTipsList::callTipItemActivated(QListWidgetItem *item) * Try to find out if call needs arguments. * For this we search the description for appropriate hints ... */ - QRegularExpression argumentMatcher( QRegularExpression::escape( callTip.name ) + QLatin1String("\\s*\\(\\s*\\w+.*\\)") ); + QRegularExpression argumentMatcher( QRegularExpression::escape( callTip.name ) + QLatin1String(R"(\s*\(\s*\w+.*\))") ); argumentMatcher.setPatternOptions( QRegularExpression::InvertedGreedinessOption ); //< set regex non-greedy! if (argumentMatcher.match( callTip.description ).hasMatch()) { @@ -734,16 +734,16 @@ QString CallTipsList::stripWhiteSpace(const QString& str) const int minspace=INT_MAX; int line=0; for (QStringList::iterator it = lines.begin(); it != lines.end(); ++it, ++line) { - if (it->count() > 0 && line > 0) { + if (it->size() > 0 && line > 0) { int space = 0; - for (int i=0; icount(); i++) { + for (int i=0; isize(); i++) { if ((*it)[i] == QLatin1Char('\t')) space++; else break; } - if (it->count() > space) + if (it->size() > space) minspace = std::min(minspace, space); } } @@ -756,7 +756,7 @@ QString CallTipsList::stripWhiteSpace(const QString& str) const if (line == 0 && !it->isEmpty()) { strippedlines << *it; } - else if (it->count() > 0 && line > 0) { + else if (it->size() > 0 && line > 0) { strippedlines << it->mid(minspace); } } diff --git a/src/Gui/Clipping.h b/src/Gui/Clipping.h index 7737be1f16..6b5b0653be 100644 --- a/src/Gui/Clipping.h +++ b/src/Gui/Clipping.h @@ -41,7 +41,7 @@ class GuiExport Clipping : public QDialog public: static Clipping* makeDockWidget(Gui::View3DInventor*); Clipping(Gui::View3DInventor* view, QWidget* parent = nullptr); - ~Clipping(); + ~Clipping() override; protected: void setupConnections(); @@ -63,7 +63,7 @@ protected: void onDirZValueChanged(double); public: - void reject(); + void reject() override; private: class Private; diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp index 3eda58d7d4..a3c70957cf 100644 --- a/src/Gui/Command.cpp +++ b/src/Gui/Command.cpp @@ -422,8 +422,9 @@ void Command::_invoke(int id, bool disablelog) getGuiApplication()->macroManager()->setModule(sAppModule); std::unique_ptr logdisabler; - if (disablelog) - logdisabler.reset(new LogDisabler); + if (disablelog) { + logdisabler = std::make_unique(); + } // check if it really works NOW (could be a delay between click deactivation of the button) if (isActive()) { @@ -1262,8 +1263,9 @@ PythonCommand::PythonCommand(const char* name, PyObject * pcPyCommand, const cha auto& rcCmdMgr = Gui::Application::Instance->commandManager(); - connPyCmdInitialized = rcCmdMgr.signalPyCmdInitialized.connect( - boost::bind(&PythonCommand::onActionInit, this)); + connPyCmdInitialized = rcCmdMgr.signalPyCmdInitialized.connect([this]() { + this->onActionInit(); + }); } PythonCommand::~PythonCommand() @@ -1493,8 +1495,9 @@ PythonGroupCommand::PythonGroupCommand(const char* name, PyObject * pcPyCommand) auto& rcCmdMgr = Gui::Application::Instance->commandManager(); - connPyCmdInitialized = rcCmdMgr.signalPyCmdInitialized.connect( - boost::bind(&PythonGroupCommand::onActionInit, this)); + connPyCmdInitialized = rcCmdMgr.signalPyCmdInitialized.connect([this]() { + this->onActionInit(); + }); } PythonGroupCommand::~PythonGroupCommand() diff --git a/src/Gui/Command.h b/src/Gui/Command.h index 39be8aa89a..f2439d4b80 100644 --- a/src/Gui/Command.h +++ b/src/Gui/Command.h @@ -609,7 +609,7 @@ protected: /** @name Attributes * Set by the inherited constructor to set up the most important properties * of the command. In the Command constructor are set default values! - * The real values should be set in the constructor of the inhereting class. + * The real values should be set in the constructor of the inheriting class. */ //@{ const char* sAppModule; diff --git a/src/Gui/CommandCompleter.cpp b/src/Gui/CommandCompleter.cpp index ede6c11fe4..609fd3fef2 100644 --- a/src/Gui/CommandCompleter.cpp +++ b/src/Gui/CommandCompleter.cpp @@ -85,12 +85,12 @@ public: endResetModel(); } - virtual QModelIndex parent(const QModelIndex &) const + QModelIndex parent(const QModelIndex &) const override { return QModelIndex(); } - virtual QVariant data(const QModelIndex & index, int role) const + QVariant data(const QModelIndex & index, int role) const override { if (index.row() < 0 || index.row() >= (int)_Commands.size()) return QVariant(); @@ -128,17 +128,17 @@ public: return QVariant(); } - virtual QModelIndex index(int row, int, const QModelIndex &) const + QModelIndex index(int row, int, const QModelIndex &) const override { return this->createIndex(row, 0); } - virtual int rowCount(const QModelIndex &) const + int rowCount(const QModelIndex &) const override { return (int)(_Commands.size()); } - virtual int columnCount(const QModelIndex &) const + int columnCount(const QModelIndex &) const override { return 1; } diff --git a/src/Gui/CommandCompleter.h b/src/Gui/CommandCompleter.h index 1f578e1909..0537055032 100644 --- a/src/Gui/CommandCompleter.h +++ b/src/Gui/CommandCompleter.h @@ -52,7 +52,7 @@ protected Q_SLOTS: void onCommandActivated(const QModelIndex &); protected: - bool eventFilter(QObject *, QEvent *ev); + bool eventFilter(QObject *, QEvent *ev) override; }; } // namespace Gui diff --git a/src/Gui/CommandStd.cpp b/src/Gui/CommandStd.cpp index 37f69589e4..83b2b5ee06 100644 --- a/src/Gui/CommandStd.cpp +++ b/src/Gui/CommandStd.cpp @@ -56,7 +56,7 @@ using Base::Console; using Base::Sequencer; using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; //=========================================================================== @@ -94,7 +94,7 @@ void StdCmdWorkbench::activated(int i) QString msg(QLatin1String(e.what())); // ignore '' prefixes QRegularExpression rx; - rx.setPattern(QLatin1String("^\\s*:\\s*")); + rx.setPattern(QLatin1String(R"(^\s*:\s*)")); auto match = rx.match(msg); if (match.hasMatch()) msg = msg.mid(match.capturedLength()); @@ -134,7 +134,7 @@ StdCmdRecentFiles::StdCmdRecentFiles() :Command("Std_RecentFiles") { sGroup = "File"; - sMenuText = QT_TR_NOOP("Recent files"); + sMenuText = QT_TR_NOOP("Open Recent"); sToolTipText = QT_TR_NOOP("Recent file list"); sWhatsThis = "Std_RecentFiles"; sStatusTip = QT_TR_NOOP("Recent file list"); @@ -876,7 +876,9 @@ StdCmdUserEditMode::StdCmdUserEditMode() sPixmap = "Std_UserEditModeDefault"; eType = ForEdit; - this->getGuiApplication()->signalUserEditModeChanged.connect(boost::bind(&StdCmdUserEditMode::updateIcon, this, bp::_1)); + this->getGuiApplication()->signalUserEditModeChanged.connect([this](int mode) { + this->updateIcon(mode); + }); } Gui::Action * StdCmdUserEditMode::createAction() diff --git a/src/Gui/CommandView.cpp b/src/Gui/CommandView.cpp index 111ad493a2..17b468e0c8 100644 --- a/src/Gui/CommandView.cpp +++ b/src/Gui/CommandView.cpp @@ -86,7 +86,7 @@ using namespace Gui; using Gui::Dialog::DlgSettingsImageImp; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace { // A helper class to open a transaction when changing properties of view providers. @@ -297,7 +297,7 @@ public: protected: void activated(int iMsg) override; bool isActive() override; - Action * createAction(void) override; + Action * createAction() override; void languageChange() override; private: @@ -657,7 +657,9 @@ StdCmdDrawStyle::StdCmdDrawStyle() sPixmap = "DrawStyleAsIs"; eType = Alter3DView; - this->getGuiApplication()->signalActivateView.connect(boost::bind(&StdCmdDrawStyle::updateIcon, this, bp::_1)); + this->getGuiApplication()->signalActivateView.connect([this](auto view) { + this->updateIcon(view); + }); } Gui::Action * StdCmdDrawStyle::createAction() @@ -2500,7 +2502,7 @@ public: return; } - currentSelectionHandler = std::unique_ptr(new SelectionCallbackHandler()); + currentSelectionHandler = std::make_unique(); if (viewer) { currentSelectionHandler->userData = ud; diff --git a/src/Gui/DAGView/DAGModel.cpp b/src/Gui/DAGView/DAGModel.cpp index 970f4fc10e..225488cb89 100644 --- a/src/Gui/DAGView/DAGModel.cpp +++ b/src/Gui/DAGView/DAGModel.cpp @@ -55,7 +55,7 @@ using namespace Gui; using namespace DAG; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; LineEdit::LineEdit(QWidget* parentIn): QLineEdit(parentIn) { @@ -137,11 +137,13 @@ Model::Model(QObject *parentIn, const Gui::Document &documentIn) : QGraphicsScen connect(this->editingFinishedAction, &QAction::triggered, this, &Model::editingFinishedSlot); - connectNewObject = documentIn.signalNewObject.connect(boost::bind(&Model::slotNewObject, this, bp::_1)); - connectDelObject = documentIn.signalDeletedObject.connect(boost::bind(&Model::slotDeleteObject, this, bp::_1)); - connectChgObject = documentIn.signalChangedObject.connect(boost::bind(&Model::slotChangeObject, this, bp::_1, bp::_2)); - connectEdtObject = documentIn.signalInEdit.connect(boost::bind(&Model::slotInEdit, this, bp::_1)); - connectResObject = documentIn.signalResetEdit.connect(boost::bind(&Model::slotResetEdit, this, bp::_1)); + //NOLINTBEGIN + connectNewObject = documentIn.signalNewObject.connect(std::bind(&Model::slotNewObject, this, sp::_1)); + connectDelObject = documentIn.signalDeletedObject.connect(std::bind(&Model::slotDeleteObject, this, sp::_1)); + connectChgObject = documentIn.signalChangedObject.connect(std::bind(&Model::slotChangeObject, this, sp::_1, sp::_2)); + connectEdtObject = documentIn.signalInEdit.connect(std::bind(&Model::slotInEdit, this, sp::_1)); + connectResObject = documentIn.signalResetEdit.connect(std::bind(&Model::slotResetEdit, this, sp::_1)); + //NOLINTEND for (auto obj : documentIn.getDocument()->getObjects()) { auto vpd = Base::freecad_dynamic_cast(documentIn.getViewProvider(obj)); @@ -248,9 +250,11 @@ void Model::slotNewObject(const ViewProviderDocumentObject &VPDObjectIn) icon->setPixmap(VPDObjectIn.getIcon().pixmap(iconSize, iconSize)); (*theGraph)[virginVertex].stateIcon->setPixmap(passPixmap); (*theGraph)[virginVertex].text->setFont(this->font()); + //NOLINTBEGIN (*theGraph)[virginVertex].connChangeIcon = const_cast(VPDObjectIn).signalChangeIcon.connect( - boost::bind(&Model::slotChangeIcon, this, boost::cref(VPDObjectIn), icon)); + std::bind(&Model::slotChangeIcon, this, boost::cref(VPDObjectIn), icon)); + //NOLINTEND graphDirty = true; lastAddedVertex = Graph::null_vertex(); diff --git a/src/Gui/DAGView/DAGView.cpp b/src/Gui/DAGView/DAGView.cpp index 6cc21e13f5..e4f34a0337 100644 --- a/src/Gui/DAGView/DAGView.cpp +++ b/src/Gui/DAGView/DAGView.cpp @@ -36,7 +36,7 @@ using namespace Gui; using namespace DAG; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; DAG::DockWindow::DockWindow(Gui::Document* gDocumentIn, QWidget* parent): Gui::DockWindow(gDocumentIn, parent) { @@ -50,8 +50,10 @@ View::View(QWidget* parentIn): QGraphicsView(parentIn) { this->setRenderHint(QPainter::Antialiasing, true); this->setRenderHint(QPainter::TextAntialiasing, true); - conActive = Application::Instance->signalActiveDocument.connect(boost::bind(&View::slotActiveDocument, this, bp::_1)); - conDelete = Application::Instance->signalDeleteDocument.connect(boost::bind(&View::slotDeleteDocument, this, bp::_1)); + //NOLINTBEGIN + conActive = Application::Instance->signalActiveDocument.connect(std::bind(&View::slotActiveDocument, this, sp::_1)); + conDelete = Application::Instance->signalDeleteDocument.connect(std::bind(&View::slotDeleteDocument, this, sp::_1)); + //NOLINTEND //just update the dagview when the gui process is idle. connect(QAbstractEventDispatcher::instance(), &QAbstractEventDispatcher::awake, diff --git a/src/Gui/DlgAddProperty.h b/src/Gui/DlgAddProperty.h index 13d2300b24..4a26faa6c1 100644 --- a/src/Gui/DlgAddProperty.h +++ b/src/Gui/DlgAddProperty.h @@ -24,6 +24,8 @@ #define GUI_DIALOG_DLGADDPROPERTY_H #include +#include +#include namespace App { class PropertyContainer; @@ -39,9 +41,9 @@ class GuiExport DlgAddProperty : public QDialog public: DlgAddProperty(QWidget *parent, std::unordered_set &&); - ~DlgAddProperty(); + ~DlgAddProperty() override; - virtual void accept() override; + void accept() override; private: std::unordered_set containers; diff --git a/src/Gui/DlgCheckableMessageBox.h b/src/Gui/DlgCheckableMessageBox.h index f20978eccc..da268fb99a 100644 --- a/src/Gui/DlgCheckableMessageBox.h +++ b/src/Gui/DlgCheckableMessageBox.h @@ -56,7 +56,7 @@ class GuiExport DlgCheckableMessageBox : public QDialog Q_PROPERTY(QDialogButtonBox::StandardButton defaultButton READ defaultButton WRITE setDefaultButton) // clazy:exclude=qproperty-without-notify public: explicit DlgCheckableMessageBox(QWidget *parent); - virtual ~DlgCheckableMessageBox(); + ~DlgCheckableMessageBox() override; static QDialogButtonBox::StandardButton question(QWidget *parent, @@ -74,8 +74,8 @@ public: void setPrefPath(const QString& path); - virtual void accept(); - virtual void reject(); + void accept() override; + void reject() override; bool isChecked() const; void setChecked(bool s); diff --git a/src/Gui/DlgCreateNewPreferencePackImp.cpp b/src/Gui/DlgCreateNewPreferencePackImp.cpp index c53e6bee0f..f02535c21a 100644 --- a/src/Gui/DlgCreateNewPreferencePackImp.cpp +++ b/src/Gui/DlgCreateNewPreferencePackImp.cpp @@ -48,7 +48,7 @@ DlgCreateNewPreferencePackImp::DlgCreateNewPreferencePackImp(QWidget* parent) { ui->setupUi(this); - QRegularExpression validNames(QString::fromUtf8("[^/\\\\?%*:|\"<>]+")); + QRegularExpression validNames(QString::fromUtf8(R"([^/\\?%*:|"<>]+)")); _nameValidator.setRegularExpression(validNames); ui->lineEdit->setValidator(&_nameValidator); ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); diff --git a/src/Gui/DlgDisplayPropertiesImp.cpp b/src/Gui/DlgDisplayPropertiesImp.cpp index 14f8874169..87143ca0cd 100644 --- a/src/Gui/DlgDisplayPropertiesImp.cpp +++ b/src/Gui/DlgDisplayPropertiesImp.cpp @@ -43,7 +43,7 @@ using namespace Gui::Dialog; using namespace std; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR Gui::Dialog::DlgDisplayPropertiesImp */ @@ -156,9 +156,11 @@ DlgDisplayPropertiesImp::DlgDisplayPropertiesImp(bool floating, QWidget* parent, Gui::Selection().Attach(this); + //NOLINTBEGIN d->connectChangedObject = - Gui::Application::Instance->signalChangedObject.connect(boost::bind - (&DlgDisplayPropertiesImp::slotChangedObject, this, bp::_1, bp::_2)); + Gui::Application::Instance->signalChangedObject.connect(std::bind + (&DlgDisplayPropertiesImp::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND } /** diff --git a/src/Gui/DlgInputDialogImp.h b/src/Gui/DlgInputDialogImp.h index d658f3c03f..f79d6f04ee 100644 --- a/src/Gui/DlgInputDialogImp.h +++ b/src/Gui/DlgInputDialogImp.h @@ -26,6 +26,7 @@ #include #include +#include class QSpinBox; class QDoubleSpinBox; @@ -53,7 +54,7 @@ public: enum Type { LineEdit, SpinBox, UIntBox, FloatSpinBox, ComboBox }; DlgInputDialogImp( const QString& label, QWidget* parent = nullptr, bool modal = true, Type = LineEdit ); - ~DlgInputDialogImp(); + ~DlgInputDialogImp() override; void setType( Type t ); Type type() const; diff --git a/src/Gui/DlgMacroExecuteImp.cpp b/src/Gui/DlgMacroExecuteImp.cpp index 069b4c55c2..a6b258d67e 100644 --- a/src/Gui/DlgMacroExecuteImp.cpp +++ b/src/Gui/DlgMacroExecuteImp.cpp @@ -620,7 +620,6 @@ Note: your changes will be applied when you next switch workbenches\n")); workbenchBox->setCurrentIndex(globalIdx); QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated", Qt::DirectConnection, - QGenericReturnArgument(), Q_ARG(int, globalIdx)); } else { Base::Console().Warning("Toolbar walkthrough: Unable to find Global workbench\n"); @@ -656,7 +655,6 @@ Note: your changes will be applied when you next switch workbenches\n")); categoryBox->setCurrentIndex(macrosIdx); QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated", Qt::DirectConnection, - QGenericReturnArgument(), Q_ARG(int, macrosIdx)); } else { Base::Console().Warning("Toolbar walkthrough: Unable to find Macros in categoryBox\n"); diff --git a/src/Gui/DlgPreferencePackManagementImp.h b/src/Gui/DlgPreferencePackManagementImp.h index 0e3ab1ea9a..079d4a3be4 100644 --- a/src/Gui/DlgPreferencePackManagementImp.h +++ b/src/Gui/DlgPreferencePackManagementImp.h @@ -27,6 +27,7 @@ #include #include #include +#include class QTreeWidgetItem; @@ -51,7 +52,7 @@ class GuiExport DlgPreferencePackManagementImp : public QDialog public: DlgPreferencePackManagementImp(QWidget* parent = nullptr); - ~DlgPreferencePackManagementImp(); + ~DlgPreferencePackManagementImp() override; Q_SIGNALS: void packVisibilityChanged(); diff --git a/src/Gui/DlgPreferencesImp.cpp b/src/Gui/DlgPreferencesImp.cpp index 78030622c5..bd5eca34b9 100644 --- a/src/Gui/DlgPreferencesImp.cpp +++ b/src/Gui/DlgPreferencesImp.cpp @@ -29,7 +29,6 @@ # include # include # include -# include # include # include # include @@ -546,7 +545,6 @@ void DlgPreferencesImp::resizeEvent(QResizeEvent* ev) int newHeight = std::min(height(), maxHeight); QMetaObject::invokeMethod(this, "resizeWindow", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int, newWidth), Q_ARG(int, newHeight)); } diff --git a/src/Gui/DlgSettingsImageImp.cpp b/src/Gui/DlgSettingsImageImp.cpp index b67c719881..2eac9773a5 100644 --- a/src/Gui/DlgSettingsImageImp.cpp +++ b/src/Gui/DlgSettingsImageImp.cpp @@ -237,7 +237,7 @@ void DlgSettingsImageImp::onStandardSizeBoxActivated(int index) else { // try to extract from the string QString text = ui->standardSizeBox->itemText(index); - QRegularExpression rx(QLatin1String("\\b\\d{2,5}\\b")); + QRegularExpression rx(QLatin1String(R"(\b\d{2,5}\b)")); int pos = 0; auto match = rx.match(text, pos); if (match.hasMatch()) { diff --git a/src/Gui/DlgSettingsSelection.ui b/src/Gui/DlgSettingsSelection.ui deleted file mode 100644 index 22541a9de0..0000000000 --- a/src/Gui/DlgSettingsSelection.ui +++ /dev/null @@ -1,119 +0,0 @@ - - - Gui::Dialog::DlgSettingsSelection - - - - 0 - 0 - 670 - 411 - - - - Selection - - - - - - Pick radius (px): - - - - - - - - 120 - 0 - - - - Area for picking elements in 3D view. -Larger value eases to pick things, but can make small features impossible to select. - - - - Qt::ImhPreferNumbers - - - 1 - - - 0.500000000000000 - - - 200.000000000000000 - - - 5.000000000000000 - - - PickRadius - - - View - - - - - - - Auto switch to the 3D view containing the selected item - - - - - - - Auto expand tree item when the corresponding object is selected in 3D view - - - - - - - Preselect the object in 3D view when mouse over the tree item - - - - - - - Record selection in tree view in order to go back/forward using navigation button - - - - - - - Add checkboxes for selection in document tree - - - - - - - Qt::Vertical - - - - 20 - 245 - - - - - - - - - Gui::PrefDoubleSpinBox - QDoubleSpinBox -

Gui/PrefWidgets.h
- - - - - diff --git a/src/Gui/DlgToolbarsImp.cpp b/src/Gui/DlgToolbarsImp.cpp index 15a4634b05..b597af5a97 100644 --- a/src/Gui/DlgToolbarsImp.cpp +++ b/src/Gui/DlgToolbarsImp.cpp @@ -625,7 +625,11 @@ void DlgCustomToolbarsImp::renameCustomToolbar(const QString& old_name, const QS QList DlgCustomToolbarsImp::getActionGroup(QAction* action) { QList group; +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) QList widgets = action->associatedWidgets(); +#else + QList widgets = action->associatedObjects(); +#endif for (const auto & widget : widgets) { auto tb = qobject_cast(widget); if (tb) { @@ -642,7 +646,11 @@ QList DlgCustomToolbarsImp::getActionGroup(QAction* action) void DlgCustomToolbarsImp::setActionGroup(QAction* action, const QList& group) { // See also ActionGroup::addTo() +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) QList widgets = action->associatedWidgets(); +#else + QList widgets = action->associatedObjects(); +#endif for (const auto & widget : widgets) { auto tb = qobject_cast(widget); if (tb) { diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index eb23e2eaac..da49bbb603 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -71,7 +71,7 @@ FC_LOG_LEVEL_INIT("Gui", true, true) using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { @@ -164,60 +164,62 @@ Document::Document(App::Document* pcDocument,Application * app) d->_editingViewer = nullptr; d->_editMode = 0; + //NOLINTBEGIN // Setup the connections d->connectNewObject = pcDocument->signalNewObject.connect - (boost::bind(&Gui::Document::slotNewObject, this, bp::_1)); + (std::bind(&Gui::Document::slotNewObject, this, sp::_1)); d->connectDelObject = pcDocument->signalDeletedObject.connect - (boost::bind(&Gui::Document::slotDeletedObject, this, bp::_1)); + (std::bind(&Gui::Document::slotDeletedObject, this, sp::_1)); d->connectCngObject = pcDocument->signalChangedObject.connect - (boost::bind(&Gui::Document::slotChangedObject, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotChangedObject, this, sp::_1, sp::_2)); d->connectRenObject = pcDocument->signalRelabelObject.connect - (boost::bind(&Gui::Document::slotRelabelObject, this, bp::_1)); + (std::bind(&Gui::Document::slotRelabelObject, this, sp::_1)); d->connectActObject = pcDocument->signalActivatedObject.connect - (boost::bind(&Gui::Document::slotActivatedObject, this, bp::_1)); + (std::bind(&Gui::Document::slotActivatedObject, this, sp::_1)); d->connectActObjectBlocker = boost::signals2::shared_connection_block (d->connectActObject, false); d->connectSaveDocument = pcDocument->signalSaveDocument.connect - (boost::bind(&Gui::Document::Save, this, bp::_1)); + (std::bind(&Gui::Document::Save, this, sp::_1)); d->connectRestDocument = pcDocument->signalRestoreDocument.connect - (boost::bind(&Gui::Document::Restore, this, bp::_1)); + (std::bind(&Gui::Document::Restore, this, sp::_1)); d->connectStartLoadDocument = App::GetApplication().signalStartRestoreDocument.connect - (boost::bind(&Gui::Document::slotStartRestoreDocument, this, bp::_1)); + (std::bind(&Gui::Document::slotStartRestoreDocument, this, sp::_1)); d->connectFinishLoadDocument = App::GetApplication().signalFinishRestoreDocument.connect - (boost::bind(&Gui::Document::slotFinishRestoreDocument, this, bp::_1)); + (std::bind(&Gui::Document::slotFinishRestoreDocument, this, sp::_1)); d->connectShowHidden = App::GetApplication().signalShowHidden.connect - (boost::bind(&Gui::Document::slotShowHidden, this, bp::_1)); + (std::bind(&Gui::Document::slotShowHidden, this, sp::_1)); d->connectChangePropertyEditor = pcDocument->signalChangePropertyEditor.connect - (boost::bind(&Gui::Document::slotChangePropertyEditor, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotChangePropertyEditor, this, sp::_1, sp::_2)); d->connectChangeDocument = d->_pcDocument->signalChanged.connect // use the same slot function - (boost::bind(&Gui::Document::slotChangePropertyEditor, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotChangePropertyEditor, this, sp::_1, sp::_2)); d->connectChangeDocumentBlocker = boost::signals2::shared_connection_block (d->connectChangeDocument, true); d->connectFinishRestoreObject = pcDocument->signalFinishRestoreObject.connect - (boost::bind(&Gui::Document::slotFinishRestoreObject, this, bp::_1)); + (std::bind(&Gui::Document::slotFinishRestoreObject, this, sp::_1)); d->connectExportObjects = pcDocument->signalExportViewObjects.connect - (boost::bind(&Gui::Document::exportObjects, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::exportObjects, this, sp::_1, sp::_2)); d->connectImportObjects = pcDocument->signalImportViewObjects.connect - (boost::bind(&Gui::Document::importObjects, this, bp::_1, bp::_2, bp::_3)); + (std::bind(&Gui::Document::importObjects, this, sp::_1, sp::_2, sp::_3)); d->connectFinishImportObjects = pcDocument->signalFinishImportObjects.connect - (boost::bind(&Gui::Document::slotFinishImportObjects, this, bp::_1)); + (std::bind(&Gui::Document::slotFinishImportObjects, this, sp::_1)); d->connectUndoDocument = pcDocument->signalUndo.connect - (boost::bind(&Gui::Document::slotUndoDocument, this, bp::_1)); + (std::bind(&Gui::Document::slotUndoDocument, this, sp::_1)); d->connectRedoDocument = pcDocument->signalRedo.connect - (boost::bind(&Gui::Document::slotRedoDocument, this, bp::_1)); + (std::bind(&Gui::Document::slotRedoDocument, this, sp::_1)); d->connectRecomputed = pcDocument->signalRecomputed.connect - (boost::bind(&Gui::Document::slotRecomputed, this, bp::_1)); + (std::bind(&Gui::Document::slotRecomputed, this, sp::_1)); d->connectSkipRecompute = pcDocument->signalSkipRecompute.connect - (boost::bind(&Gui::Document::slotSkipRecompute, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotSkipRecompute, this, sp::_1, sp::_2)); d->connectTouchedObject = pcDocument->signalTouchedObject.connect - (boost::bind(&Gui::Document::slotTouchedObject, this, bp::_1)); + (std::bind(&Gui::Document::slotTouchedObject, this, sp::_1)); d->connectTransactionAppend = pcDocument->signalTransactionAppend.connect - (boost::bind(&Gui::Document::slotTransactionAppend, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotTransactionAppend, this, sp::_1, sp::_2)); d->connectTransactionRemove = pcDocument->signalTransactionRemove.connect - (boost::bind(&Gui::Document::slotTransactionRemove, this, bp::_1, bp::_2)); + (std::bind(&Gui::Document::slotTransactionRemove, this, sp::_1, sp::_2)); + //NOLINTEND // pointer to the python class // NOTE: As this Python object doesn't get returned to the interpreter we @@ -1376,7 +1378,7 @@ void Document::Save (Base::Writer &writer) const writer.addFile("GuiDocument.xml", this); ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Document"); - if (hGrp->GetBool("SaveThumbnail", false)) { + if (hGrp->GetBool("SaveThumbnail", true)) { int size = hGrp->GetInt("ThumbnailSize", 128); size = Base::clamp(size, 64, 512); std::list mdi = getMDIViews(); diff --git a/src/Gui/DocumentModel.cpp b/src/Gui/DocumentModel.cpp index 2f0eb72eb5..ef7362584d 100644 --- a/src/Gui/DocumentModel.cpp +++ b/src/Gui/DocumentModel.cpp @@ -39,7 +39,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { // forward declaration @@ -360,12 +360,14 @@ DocumentModel::DocumentModel(QObject* parent) ViewProviderIndex ::init(); } + //NOLINTBEGIN // Setup connections - Application::Instance->signalNewDocument.connect(boost::bind(&DocumentModel::slotNewDocument, this, bp::_1)); - Application::Instance->signalDeleteDocument.connect(boost::bind(&DocumentModel::slotDeleteDocument, this, bp::_1)); - Application::Instance->signalRenameDocument.connect(boost::bind(&DocumentModel::slotRenameDocument, this, bp::_1)); - Application::Instance->signalActiveDocument.connect(boost::bind(&DocumentModel::slotActiveDocument, this, bp::_1)); - Application::Instance->signalRelabelDocument.connect(boost::bind(&DocumentModel::slotRelabelDocument, this, bp::_1)); + Application::Instance->signalNewDocument.connect(std::bind(&DocumentModel::slotNewDocument, this, sp::_1)); + Application::Instance->signalDeleteDocument.connect(std::bind(&DocumentModel::slotDeleteDocument, this, sp::_1)); + Application::Instance->signalRenameDocument.connect(std::bind(&DocumentModel::slotRenameDocument, this, sp::_1)); + Application::Instance->signalActiveDocument.connect(std::bind(&DocumentModel::slotActiveDocument, this, sp::_1)); + Application::Instance->signalRelabelDocument.connect(std::bind(&DocumentModel::slotRelabelDocument, this, sp::_1)); + //NOLINTEND } DocumentModel::~DocumentModel() @@ -375,13 +377,15 @@ DocumentModel::~DocumentModel() void DocumentModel::slotNewDocument(const Gui::Document& Doc) { - Doc.signalNewObject.connect(boost::bind(&DocumentModel::slotNewObject, this, bp::_1)); - Doc.signalDeletedObject.connect(boost::bind(&DocumentModel::slotDeleteObject, this, bp::_1)); - Doc.signalChangedObject.connect(boost::bind(&DocumentModel::slotChangeObject, this, bp::_1, bp::_2)); - Doc.signalRelabelObject.connect(boost::bind(&DocumentModel::slotRenameObject, this, bp::_1)); - Doc.signalActivatedObject.connect(boost::bind(&DocumentModel::slotActiveObject, this, bp::_1)); - Doc.signalInEdit.connect(boost::bind(&DocumentModel::slotInEdit, this, bp::_1)); - Doc.signalResetEdit.connect(boost::bind(&DocumentModel::slotResetEdit, this, bp::_1)); + //NOLINTBEGIN + Doc.signalNewObject.connect(std::bind(&DocumentModel::slotNewObject, this, sp::_1)); + Doc.signalDeletedObject.connect(std::bind(&DocumentModel::slotDeleteObject, this, sp::_1)); + Doc.signalChangedObject.connect(std::bind(&DocumentModel::slotChangeObject, this, sp::_1, sp::_2)); + Doc.signalRelabelObject.connect(std::bind(&DocumentModel::slotRenameObject, this, sp::_1)); + Doc.signalActivatedObject.connect(std::bind(&DocumentModel::slotActiveObject, this, sp::_1)); + Doc.signalInEdit.connect(std::bind(&DocumentModel::slotInEdit, this, sp::_1)); + Doc.signalResetEdit.connect(std::bind(&DocumentModel::slotResetEdit, this, sp::_1)); + //NOLINTEND QModelIndex parent = createIndex(0,0,d->rootItem); int count_docs = d->rootItem->childCount(); diff --git a/src/Gui/DocumentObserver.cpp b/src/Gui/DocumentObserver.cpp index e5a6b7936d..2d12579ea7 100644 --- a/src/Gui/DocumentObserver.cpp +++ b/src/Gui/DocumentObserver.cpp @@ -240,8 +240,10 @@ class DocumentWeakPtrT::Private { public: Private(Gui::Document* doc) : _document(doc) { if (doc) { + //NOLINTBEGIN connectApplicationDeletedDocument = doc->signalDeleteDocument.connect(std::bind (&Private::deletedDocument, this, sp::_1)); + //NOLINTEND } } @@ -323,6 +325,7 @@ public: object = obj; try { if (obj) { + //NOLINTBEGIN Gui::Document* doc = obj->getDocument(); indocument = true; connectApplicationDeletedDocument = doc->signalDeleteDocument.connect(std::bind @@ -331,6 +334,7 @@ public: (&Private::createdObject, this, sp::_1)); connectDocumentDeletedObject = doc->signalDeletedObject.connect(std::bind (&Private::deletedObject, this, sp::_1)); + //NOLINTEND } } catch (const Base::RuntimeError&) { @@ -425,6 +429,7 @@ void DocumentObserver::attachDocument(Document* doc) if (!doc) return; + //NOLINTBEGIN this->connectDocumentCreatedObject = doc->signalNewObject.connect(std::bind (&DocumentObserver::slotCreatedObject, this, sp::_1)); this->connectDocumentDeletedObject = doc->signalDeletedObject.connect(std::bind @@ -445,6 +450,7 @@ void DocumentObserver::attachDocument(Document* doc) (&DocumentObserver::slotRedoDocument, this, sp::_1)); this->connectDocumentDelete = doc->signalDeleteDocument.connect(std::bind (&DocumentObserver::slotDeleteDocument, this, sp::_1)); + //NOLINTEND } void DocumentObserver::detachDocument() diff --git a/src/Gui/DocumentObserverPython.cpp b/src/Gui/DocumentObserverPython.cpp index aa8677451f..8bb41a7abe 100644 --- a/src/Gui/DocumentObserverPython.cpp +++ b/src/Gui/DocumentObserverPython.cpp @@ -32,7 +32,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; std::vector DocumentObserverPython::_instances; @@ -58,11 +58,12 @@ void DocumentObserverPython::removeObserver(const Py::Object& obj) DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj) { + //NOLINTBEGIN #define FC_PY_ELEMENT_ARG1(_name1, _name2) do {\ FC_PY_GetCallable(obj.ptr(), "slot" #_name1, py##_name1.py);\ if (!py##_name1.py.isNone())\ py##_name1.slot = Application::Instance->signal##_name2.connect(\ - boost::bind(&DocumentObserverPython::slot##_name1, this, bp::_1));\ + std::bind(&DocumentObserverPython::slot##_name1, this, sp::_1));\ }\ while(0); @@ -70,7 +71,7 @@ DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj FC_PY_GetCallable(obj.ptr(), "slot" #_name1, py##_name1.py);\ if (!py##_name1.py.isNone())\ py##_name1.slot = Application::Instance->signal##_name2.connect(\ - boost::bind(&DocumentObserverPython::slot##_name1, this, bp::_1, bp::_2));\ + std::bind(&DocumentObserverPython::slot##_name1, this, sp::_1, sp::_2));\ }\ while(0); @@ -85,6 +86,7 @@ DocumentObserverPython::DocumentObserverPython(const Py::Object& obj) : inst(obj FC_PY_ELEMENT_ARG2(ChangedObject, ChangedObject) FC_PY_ELEMENT_ARG1(InEdit, InEdit) FC_PY_ELEMENT_ARG1(ResetEdit, ResetEdit) + //NOLINTEND } DocumentObserverPython::~DocumentObserverPython() diff --git a/src/Gui/DocumentObserverPython.h b/src/Gui/DocumentObserverPython.h index 15424c9838..6d7ea31a60 100644 --- a/src/Gui/DocumentObserverPython.h +++ b/src/Gui/DocumentObserverPython.h @@ -24,10 +24,23 @@ #ifndef GUI_DOCUMENTOBSERVERPYTHON_H #define GUI_DOCUMENTOBSERVERPYTHON_H +#include +#include +#include +#include +#include + +namespace App { +class Property; +} namespace Gui { +class Document; +class ViewProvider; +class ViewProviderDocumentObject; + /** * The DocumentObserverPython class is used to notify registered Python instances * whenever something happens to a document, like creation, destruction, adding or @@ -73,13 +86,13 @@ private: Py::Object inst; static std::vector _instances; - typedef struct PythonObject { + using Connection = struct PythonObject { boost::signals2::scoped_connection slot; Py::Object py; PyObject* ptr() { return py.ptr(); } - } Connection; + }; Connection pyCreatedDocument; Connection pyDeletedDocument; diff --git a/src/Gui/DocumentRecovery.cpp b/src/Gui/DocumentRecovery.cpp index fd64b87cbe..2d64df6d05 100644 --- a/src/Gui/DocumentRecovery.cpp +++ b/src/Gui/DocumentRecovery.cpp @@ -576,8 +576,10 @@ void DocumentRecovery::cleanup(QDir& tmp, const QList& dirs, const QS bool DocumentRecoveryFinder::checkForPreviousCrashes() { + //NOLINTBEGIN DocumentRecoveryHandler handler; handler.checkForPreviousCrashes(std::bind(&DocumentRecoveryFinder::checkDocumentDirs, this, sp::_1, sp::_2, sp::_3)); + //NOLINTEND return showRecoveryDialogIfNeeded(); } diff --git a/src/Gui/EditorView.cpp b/src/Gui/EditorView.cpp index f56570ffc3..89db2b611a 100644 --- a/src/Gui/EditorView.cpp +++ b/src/Gui/EditorView.cpp @@ -471,6 +471,8 @@ void EditorView::printPdf() QString::fromLatin1("%1 (*.pdf)").arg(tr("PDF file"))); if (!filename.isEmpty()) { QPrinter printer(QPrinter::ScreenResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); d->textEdit->document()->print(&printer); diff --git a/src/Gui/ExpressionBinding.cpp b/src/Gui/ExpressionBinding.cpp index b9d46d1206..9f8665e9eb 100644 --- a/src/Gui/ExpressionBinding.cpp +++ b/src/Gui/ExpressionBinding.cpp @@ -45,7 +45,7 @@ FC_LOG_LEVEL_INIT("Expression",true,true) using namespace Gui; using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; ExpressionBinding::ExpressionBinding() : m_autoApply(false) @@ -111,9 +111,11 @@ void ExpressionBinding::bind(const App::ObjectIdentifier &_path) //connect to be informed about changes DocumentObject * docObj = path.getDocumentObject(); if (docObj) { - expressionchanged = docObj->ExpressionEngine.expressionChanged.connect(boost::bind(&ExpressionBinding::expressionChange, this, bp::_1)); + //NOLINTBEGIN + expressionchanged = docObj->ExpressionEngine.expressionChanged.connect(std::bind(&ExpressionBinding::expressionChange, this, sp::_1)); App::Document* doc = docObj->getDocument(); - objectdeleted = doc->signalDeletedObject.connect(boost::bind(&ExpressionBinding::objectDeleted, this, bp::_1)); + objectdeleted = doc->signalDeletedObject.connect(std::bind(&ExpressionBinding::objectDeleted, this, sp::_1)); + //NOLINTEND } } diff --git a/src/Gui/ExpressionCompleter.cpp b/src/Gui/ExpressionCompleter.cpp index 4b6beee2ad..6bd88839fb 100644 --- a/src/Gui/ExpressionCompleter.cpp +++ b/src/Gui/ExpressionCompleter.cpp @@ -721,7 +721,7 @@ QStringList ExpressionCompleter::splitPath(const QString& input) const int retry = 0; std::string lastElem; // used to recover in case of parse failure after ".". std::string trim; // used to delete ._self added for another recovery path - while (1) { + while (true) { try { // this will not work for incomplete Tokens at the end // "Sketch." will fail to parse and complete. diff --git a/src/Gui/FileDialog.cpp b/src/Gui/FileDialog.cpp index 6762485a11..4485d50ff4 100644 --- a/src/Gui/FileDialog.cpp +++ b/src/Gui/FileDialog.cpp @@ -86,7 +86,7 @@ FileDialog::~FileDialog() void FileDialog::onSelectedFilter(const QString& /*filter*/) { - QRegularExpression rx(QLatin1String("\\(\\*.(\\w+)")); + QRegularExpression rx(QLatin1String(R"(\(\*.(\w+))")); QString suf = selectedNameFilter(); auto match = rx.match(suf); if (match.hasMatch()) { @@ -186,7 +186,7 @@ QString FileDialog::getSaveFileName (QWidget * parent, const QString & caption, } QRegularExpression rx; - rx.setPattern(QLatin1String("\\s(\\(\\*\\.\\w{1,})\\W")); + rx.setPattern(QLatin1String(R"(\s(\(\*\.\w{1,})\W)")); auto match = rx.match(*filterToSearch); if (match.hasMatch()) { int index = match.capturedStart(); @@ -498,7 +498,7 @@ void FileOptionsDialog::accept() else if (!fn.isEmpty()) { QFileInfo fi(fn); QString ext = fi.completeSuffix(); - QRegularExpression rx(QLatin1String("\\(\\*.(\\w+)")); + QRegularExpression rx(QLatin1String(R"(\(\*.(\w+))")); QString suf = selectedNameFilter(); auto match = rx.match(suf); if (match.hasMatch()) @@ -869,7 +869,7 @@ SelectModule::SelectModule (const QString& type, const SelectModule::Dict& types QString module = it.value(); // ignore file types in (...) - rx.setPattern(QLatin1String("\\s+\\([\\w\\*\\s\\.]+\\)$")); + rx.setPattern(QLatin1String(R"(\s+\([\w\*\s\.]+\)$)")); auto match = rx.match(filter); if (match.hasMatch()) { filter = filter.left(match.capturedStart()); diff --git a/src/Gui/GraphvizView.cpp b/src/Gui/GraphvizView.cpp index 055f8bcc7f..c01abd26ff 100644 --- a/src/Gui/GraphvizView.cpp +++ b/src/Gui/GraphvizView.cpp @@ -49,7 +49,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { @@ -253,10 +253,12 @@ GraphvizView::GraphvizView(App::Document & _doc, QWidget* parent) connect(thread, &GraphvizWorker::error, this, &GraphvizView::error); connect(thread, &GraphvizWorker::svgFileRead, this, &GraphvizView::svgFileRead); + //NOLINTBEGIN // Connect signal from document - recomputeConnection = _doc.signalRecomputed.connect(boost::bind(&GraphvizView::updateSvgItem, this, bp::_1)); - undoConnection = _doc.signalUndo.connect(boost::bind(&GraphvizView::updateSvgItem, this, bp::_1)); - redoConnection = _doc.signalRedo.connect(boost::bind(&GraphvizView::updateSvgItem, this, bp::_1)); + recomputeConnection = _doc.signalRecomputed.connect(std::bind(&GraphvizView::updateSvgItem, this, sp::_1)); + undoConnection = _doc.signalUndo.connect(std::bind(&GraphvizView::updateSvgItem, this, sp::_1)); + redoConnection = _doc.signalRedo.connect(std::bind(&GraphvizView::updateSvgItem, this, sp::_1)); + //NOLINTEND updateSvgItem(_doc); } diff --git a/src/Gui/Inventor/SmSwitchboard.h b/src/Gui/Inventor/SmSwitchboard.h index b4eb17bbab..0a34681e48 100644 --- a/src/Gui/Inventor/SmSwitchboard.h +++ b/src/Gui/Inventor/SmSwitchboard.h @@ -35,6 +35,7 @@ #include #include +#include class GuiExport SmSwitchboard : public SoGroup { @@ -48,17 +49,17 @@ public: SoMFBool enable; - virtual void doAction(SoAction * action); - virtual void callback(SoCallbackAction * action); - virtual void GLRender(SoGLRenderAction * action); - virtual void pick(SoPickAction * action); - virtual void getBoundingBox(SoGetBoundingBoxAction * action); - virtual void handleEvent(SoHandleEventAction * action); - virtual void getMatrix(SoGetMatrixAction * action); - virtual void search(SoSearchAction * action); + void doAction(SoAction * action) override; + void callback(SoCallbackAction * action) override; + void GLRender(SoGLRenderAction * action) override; + void pick(SoPickAction * action) override; + void getBoundingBox(SoGetBoundingBoxAction * action) override; + void handleEvent(SoHandleEventAction * action) override; + void getMatrix(SoGetMatrixAction * action) override; + void search(SoSearchAction * action) override; protected: - virtual ~SmSwitchboard(); + ~SmSwitchboard() override; }; diff --git a/src/Gui/Inventor/SoAutoZoomTranslation.h b/src/Gui/Inventor/SoAutoZoomTranslation.h index 28ffaacd58..1bd5c290de 100644 --- a/src/Gui/Inventor/SoAutoZoomTranslation.h +++ b/src/Gui/Inventor/SoAutoZoomTranslation.h @@ -25,6 +25,7 @@ #include #include +#include namespace Gui { @@ -41,14 +42,14 @@ public: SoSFFloat scaleFactor; protected: - virtual ~SoAutoZoomTranslation() {} - virtual void doAction(SoAction * action); - virtual void getPrimitiveCount(SoGetPrimitiveCountAction * action); - virtual void getMatrix(SoGetMatrixAction * action); - virtual void GLRender(SoGLRenderAction *action); - virtual void getBoundingBox(SoGetBoundingBoxAction * action); - virtual void callback(SoCallbackAction * action); - virtual void pick(SoPickAction * action); + ~SoAutoZoomTranslation() override {} + void doAction(SoAction * action) override; + void getPrimitiveCount(SoGetPrimitiveCountAction * action) override; + void getMatrix(SoGetMatrixAction * action) override; + void GLRender(SoGLRenderAction *action) override; + void getBoundingBox(SoGetBoundingBoxAction * action) override; + void callback(SoCallbackAction * action) override; + void pick(SoPickAction * action) override; float getScaleFactor(SoAction*) const; private: diff --git a/src/Gui/Inventor/SoDrawingGrid.h b/src/Gui/Inventor/SoDrawingGrid.h index af5d9ce2f4..8b625cea19 100644 --- a/src/Gui/Inventor/SoDrawingGrid.h +++ b/src/Gui/Inventor/SoDrawingGrid.h @@ -24,6 +24,7 @@ #define GUI_INVENTOR_SODRAWINGGRID_H #include +#include namespace Gui { namespace Inventor { @@ -37,17 +38,17 @@ public: SoDrawingGrid(); public: - virtual void GLRender(SoGLRenderAction *action); - virtual void GLRenderBelowPath(SoGLRenderAction *action); - virtual void GLRenderInPath(SoGLRenderAction *action); - virtual void GLRenderOffPath(SoGLRenderAction *action); - virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er); - virtual void generatePrimitives(SoAction *action); + void GLRender(SoGLRenderAction *action) override; + void GLRenderBelowPath(SoGLRenderAction *action) override; + void GLRenderInPath(SoGLRenderAction *action) override; + void GLRenderOffPath(SoGLRenderAction *action) override; + void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er) override; + void generatePrimitives(SoAction *action) override; private: void renderGrid(SoGLRenderAction *action); // Force using the reference count mechanism. - virtual ~SoDrawingGrid() {} + ~SoDrawingGrid() override {} }; } // namespace Inventor diff --git a/src/Gui/Language/FreeCAD.ts b/src/Gui/Language/FreeCAD.ts index 3c17eb71be..75c673e899 100644 --- a/src/Gui/Language/FreeCAD.ts +++ b/src/Gui/Language/FreeCAD.ts @@ -47,24 +47,24 @@ - - + + Angle - - + + Axis - + Position - + Enum @@ -2318,7 +2318,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros @@ -2339,8 +2339,8 @@ display the splash screen - - + + Existing file @@ -2414,51 +2414,51 @@ Note: your changes will be applied when you next switch workbenches - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. - + Renaming Macro File - - + + Enter new name: - - + + '%1' already exists. - + Rename Failed - + Failed to rename to '%1'. Perhaps a file permission error? - + Duplicate Macro - + Duplicate Failed - + Failed to duplicate to '%1'. Perhaps a file permission error? @@ -2837,42 +2837,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings - + Do you want to clear all your user settings? - + If you agree all your settings will be cleared. - + Wrong parameter - + Restart required - + You must restart FreeCAD for changes to take effect. - + Restart now - + Restart later @@ -4021,32 +4021,32 @@ get date suffix according to the specified format - + Use date and FCBak extension - + Date format - + Document objects - + Allow objects to have same label - + Allow duplicate object labels in one document - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4055,54 +4055,54 @@ icon in the tree view to fully reload it. - + Disable partial loading of external linked objects - + Authoring and License - + Author name - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file - + Set on save - + Company - + Default company name to use for new files - + Default license - + Default license for new documents @@ -4172,12 +4172,12 @@ You can also use the form: John Doe <john@doe.com> - + License URL - + URL describing more about the license @@ -6734,7 +6734,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension @@ -6764,32 +6764,32 @@ Do you want to save your changes? - + Toggles this toolbar - + Toggles this dockable window - - + + Unsaved document - + The exported object contains external link. Please save the documentat least once before exporting. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? @@ -7023,17 +7023,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 - + Aborting - + Do you really want to abort the operation? @@ -7046,12 +7046,12 @@ How do you want to proceed? - + Aborting - + Do you really want to abort the operation? @@ -7059,7 +7059,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object @@ -7067,12 +7067,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error - + Object not found @@ -7287,17 +7287,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 - + File not found - + The file '%1' cannot be opened. @@ -7305,22 +7305,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found - + The file '%1' cannot be opened. @@ -8147,8 +8147,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench @@ -9099,12 +9098,12 @@ Please open a browser window and type in: http://localhost:%1. - + Translation: - + Rotation: @@ -10244,7 +10243,7 @@ the current copy will be lost. - + Unnamed @@ -12506,17 +12505,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar - + Left corner - + Right corner diff --git a/src/Gui/Language/FreeCAD_be.ts b/src/Gui/Language/FreeCAD_be.ts index 2def5830fe..b0823c6b08 100644 --- a/src/Gui/Language/FreeCAD_be.ts +++ b/src/Gui/Language/FreeCAD_be.ts @@ -47,24 +47,24 @@ <пусты> - - + + Angle Вугал - - + + Axis Вось - + Position Position - + Enum Пералічэнне @@ -2335,7 +2335,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Макрас @@ -2356,8 +2356,8 @@ display the splash screen - - + + Existing file Існуючы файл @@ -2435,53 +2435,53 @@ Note: your changes will be applied when you next switch workbenches Пакрокавыя інструкцыі: Пстрыкніце кнопку з стрэлкай управа (->), потым Зачыніць. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Пакрокавыя інструкцыі: Пстрыкніце Новы, потым кнопку з правай стрэлкай (->), потым Зачыніць. - + Renaming Macro File Пераназваць файл макраса - - + + Enter new name: Увядзіце новую назву: - - + + '%1' already exists. '%1' ужо існуе. - + Rename Failed Пераназваць не атрымалася - + Failed to rename to '%1'. Perhaps a file permission error? Не атрымалася пераназваць у '%1'. Магчыма, памылка дазволу файла? - + Duplicate Macro Паўтарыць макрас - + Duplicate Failed Памылка паўтору - + Failed to duplicate to '%1'. Perhaps a file permission error? Не атрымалася паўтарыць у '%1'. @@ -2863,42 +2863,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Ачысціць карыстальніцкія налады - + Do you want to clear all your user settings? Ці жадаеце вы ачысціць усе свае карыстальніцкія налады? - + If you agree all your settings will be cleared. Калі вы згодныя, усе вашыя налады будуць вычышчаныя. - + Wrong parameter Няправільная налада - + Restart required Патрабуецца перазапуск - + You must restart FreeCAD for changes to take effect. Вы павінны перазапусціць FreeCAD, каб змены былі ўжытыя. - + Restart now Перазапусціць зараз - + Restart later Перазапусціць пазней @@ -4068,32 +4068,32 @@ get date suffix according to the specified format атрымаюць суфікс даты ў адпаведнасці з паказаным фарматам - + Use date and FCBak extension Ужываць дату і пашырэнне FCBak - + Date format Фармат даты - + Document objects Аб'екты дакументу - + Allow objects to have same label Дазволіць аб'ектам мець аднолькавыя надпісы - + Allow duplicate object labels in one document Дазволіць паўторныя надпісы аб'ектаў у адным дакуменце - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4105,22 +4105,22 @@ icon in the tree view to fully reload it. па гузіку дакумента ў праглядзе дрэва, цалкам перазагрузіць яго. - + Disable partial loading of external linked objects Адключыць частковую загрузку вонкавых звязаных аб'ектаў - + Authoring and License Аўтарства і Ліцэнзія - + Author name Імя аўтара - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4129,32 +4129,32 @@ You can also use the form: John Doe <john@doe.com> Вы таксама можаце ўжываць выгляд: John Doe <john@doe.com > - + The field 'Last modified by' will be set to specified author when saving the file Пры захаванні файла поле 'Аўтар апошняга змянення' будзе запоўнена на названага аўтара - + Set on save Задаць пры захаванні - + Company Арганізацыя - + Default company name to use for new files Першапачатковая назва арганізацыі, якое ўжываецца для новых файлаў - + Default license Першапачатковая ліцэнзія - + Default license for new documents Першапачатковая ліцэнзія для новых дакументаў @@ -4224,12 +4224,12 @@ You can also use the form: John Doe <john@doe.com> Іншы - + License URL URL-адрас ліцэнзіі - + URL describing more about the license URL-адрас, які апісвае дадатковую інфармацыю аб ліцэнзіі @@ -6809,7 +6809,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Вымярэнне @@ -6839,32 +6839,32 @@ Do you want to save your changes? Зачыніць усё - + Toggles this toolbar Пераключае панэль інструментаў - + Toggles this dockable window Пераключае ўбудаванае акно - - + + Unsaved document Незахаваны дакумент - + The exported object contains external link. Please save the documentat least once before exporting. Аб'ект, які экспартуецца, утрымлівае знешні спасылак. Калі ласка, захавайце дакумент хаця б адзін раз перад экспартаваннем. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Каб стварыць спасылак на знешнія аб'екты, дакумент павінен быць захаваны хаця б адзін раз. @@ -7102,17 +7102,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Засталося: %1 - + Aborting Перапынена - + Do you really want to abort the operation? Ці сапраўды вы жадаеце перарваць аперацыю? @@ -7125,12 +7125,12 @@ How do you want to proceed? Засталося: %1 - + Aborting Перапынена - + Do you really want to abort the operation? Ці сапраўды вы жадаеце перарваць аперацыю? @@ -7138,7 +7138,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Змяніць звязаны аб'ект @@ -7146,12 +7146,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Памылка - + Object not found Аб'ект не знойдзены @@ -7367,17 +7367,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Адчыніць файл %1 - + File not found Файл не знойдзены - + The file '%1' cannot be opened. Не атрымалася адчыніць файл '%1'. @@ -7385,22 +7385,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none адсутнічае - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Запусціць макрас %1 (<Shift+пстрычка> каб змяніць) спалучэнне клавіш: %2 - + File not found Файл не знойдзены - + The file '%1' cannot be opened. Не атрымалася адчыніць файл '%1'. @@ -8232,8 +8232,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Абраць варштат '%1' @@ -9198,12 +9197,12 @@ Please open a browser window and type in: http://localhost:%1. %1 не пусты, ці выдаліць таксама і яго змест? - + Translation: Перанос: - + Rotation: Вярчэнне: @@ -10347,7 +10346,7 @@ the current copy will be lost. Стварыць новы пусты дакумент - + Unnamed Без назвы @@ -12621,17 +12620,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Панэль інструментаў - + Left corner Левы кут - + Right corner Правы кут @@ -12714,7 +12713,7 @@ after FreeCAD launches Enter desired distance between the points - Увядзіце жаданую адлегласць паміж кропкамі + Увядзіце патрэбную адлегласць паміж кропкамі diff --git a/src/Gui/Language/FreeCAD_ca.ts b/src/Gui/Language/FreeCAD_ca.ts index 3f6caed32b..45937bf305 100644 --- a/src/Gui/Language/FreeCAD_ca.ts +++ b/src/Gui/Language/FreeCAD_ca.ts @@ -47,24 +47,24 @@ <buit> - - + + Angle Angle - - + + Axis Eix - + Position Position - + Enum Enum @@ -85,7 +85,7 @@ Run test cases to verify console messages - Run test cases to verify console messages + Fer córrer casos de proba per a verificar els missatges de cònsola @@ -98,7 +98,7 @@ Clear all visible measurements - Clear all visible measurements + Esborra tots els mesuraments visibles @@ -111,7 +111,7 @@ Turn on or off the display of all measurements - Turn on or off the display of all measurements + Connecta o desconnecta la pantalla de tots els mesuraments @@ -428,7 +428,7 @@ The object will be edited using the mode defined internally to be the most appropriate for the object type - The object will be edited using the mode defined internally to be the most appropriate for the object type + L'objecte s'editarà fent servir el mode definit internament com el més apropiat segons el tipus d'objecte @@ -438,7 +438,7 @@ The object will have its placement editable with the Std TransformManip command - The object will have its placement editable with the Std TransformManip command + L'objecte tindrà el seu lloc editable amb el comandament Std TransformManip @@ -448,7 +448,7 @@ This edit mode is implemented as available but currently does not seem to be used by any object - This edit mode is implemented as available but currently does not seem to be used by any object + Aquest mode d'edició es troba implementat com a disponible, però ara mateix no sembla que cap objecte l'usi @@ -458,7 +458,7 @@ The object will have the color of its individual faces editable with the Part FaceColors command - The object will have the color of its individual faces editable with the Part FaceColors command + L'objecte tindrà el color de les seves cares individuals editables amb el comandament Part FaceColors @@ -1271,7 +1271,7 @@ Si no està activat, la propietat ha de tenir un nom únic, i s'accedeix a ella To change a current shortcut enter the new shortcut in the field below and press 'Assign'. - To change a current shortcut enter the new shortcut in the field below and press 'Assign'. + Per canviar la drecera actual entra la nova drecera en el camp de sota i prem 'Assignar'. @@ -1281,25 +1281,21 @@ Si no està activat, la propietat ha de tenir un nom únic, i s'accedeix a ella Multi-key sequence delay: - Multi-key sequence delay: + Retard en la seqüència multi tecla: Time in milliseconds to wait for the next key stroke of the current key sequence. For example, pressing 'F' twice in less than the time delay setting here will be be treated as shorctcut key sequence 'F, F'. - Time in milliseconds to wait for the next key stroke of the current key sequence. -For example, pressing 'F' twice in less than the time delay setting here will be -be treated as shorctcut key sequence 'F, F'. + Temps en mili segons per a esperar a prémer la següent tecla de la seqüència de tecles actual. Per exemple, prement 'F' dos cops abans del temps d'espera configurat, es tractarà com una seqüència de tecla de drecera 'F','F'. This list shows commands having the same shortcut in the priority from high to low. If more than one command with the same shortcut are active at the same time. The one with the highest priority will be triggered. - This list shows commands having the same shortcut in the priority from high -to low. If more than one command with the same shortcut are active at the -same time. The one with the highest priority will be triggered. + Aquesta llista mostra comandaments que tenen la mateixa drecera en ordre prioritari d'alt a baix. Si més d'un comandament amb la mateixa drecera són actius al mateix temps, es desencadenarà el de més alta prioritat. @@ -2029,7 +2025,7 @@ dot/period will always be printed. Language and number format - Language and number format + Idioma i format de nombre @@ -2044,7 +2040,7 @@ dot/period will always be printed. Unit system that should be used for all parts of the application - Unit system that should be used for all parts of the application + Sistema d'unitats que s'ha d'utilitzar per a totes les peces de l'aplicació @@ -2069,7 +2065,7 @@ dot/period will always be printed. Substitute decimal separator - Substitute decimal separator + Substitueix el separador decimal @@ -2114,14 +2110,13 @@ això segons la mida de la pantalla o el gust personal Size of recent file list: - Size of recent file list: + Mida de la llista de fitxers recent: Background of the main window (when no document is opened) will consist of tiles of a special image. See the FreeCAD Wiki for details about the image. - Background of the main window (when no document is opened) will consist of tiles of a special image. -See the FreeCAD Wiki for details about the image. + El fons de la finestra principal (quan no hi hagi cap document obert) consistirà en un mosaic d'una imatge especial. @@ -2222,7 +2217,7 @@ quan arrenca FreeCAD. Si aquesta opció està marcada, FreeCAD en mostrarà una< A preference pack with that name already exists. Overwrite? - A preference pack with that name already exists. Overwrite? + Ja existeix un paquet de preferències amb el mateix nom. Voleu sobreescriure'l? @@ -2333,7 +2328,7 @@ quan arrenca FreeCAD. Si aquesta opció està marcada, FreeCAD en mostrarà una< Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2354,8 +2349,8 @@ quan arrenca FreeCAD. Si aquesta opció està marcada, FreeCAD en mostrarà una< - - + + Existing file El fitxer ja existeix @@ -2432,53 +2427,53 @@ Nota: els vostres canvis s'aplicaran quan canvieu de banc de treball Instruccions del procediment guiat: feu clic en el botó de fletxa dreta (->) i després a Tanca. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instruccions del procediment guiat: feu clic a Nou, després en el botó de fletxa dreta (->) i després a Tanca. - + Renaming Macro File S'està reanomenant l'arxiu de Macro - - + + Enter new name: Introduiu el nou nom: - - + + '%1' already exists. '%1' ja existeix. - + Rename Failed Error al reanomenar - + Failed to rename to '%1'. Perhaps a file permission error? No ha pogut canviar el nom per '%1'. Pot ser és un problema de permisos d'arxiu? - + Duplicate Macro Duplica la macro - + Duplicate Failed Duplicació fallida - + Failed to duplicate to '%1'. Perhaps a file permission error? No s'ha pogut duplicar «%1». @@ -2858,42 +2853,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Esborra els paràmetres d'usuari - + Do you want to clear all your user settings? Voleu esborrar tots els vostres paràmetres d'usuari? - + If you agree all your settings will be cleared. Si hi esteu d'acord, tots els vostres paràmetres s'esborraran. - + Wrong parameter El paràmetre és incorrecte - + Restart required Cal que reinicieu - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Reinicia ara - + Restart later Reinicia més tard @@ -3056,12 +3051,12 @@ Specify another directory, please. Failed to extract project - Failed to extract project + No s'ha pogut extreure el projecte Failed to create project - Failed to create project + No s'ha pogut crear el projecte @@ -3465,16 +3460,16 @@ can be rendered directly by GPU. Note: Sometimes this feature may lead to a host of different issues ranging from graphical anomalies to GPU crash bugs. Remember to report this setting as enabled when seeking support on the FreeCAD forums - If selected, Vertex Buffer Objects (VBO) will be used. -A VBO is an OpenGL feature that provides methods for uploading -vertex data (position, normal vector, color, etc.) to the graphics card. -VBOs offer substantial performance gains because the data resides -in the graphics memory rather than the system memory and so it -can be rendered directly by GPU. + Si es selecciona, s'utilitzaran els objectes de memòria intermèdia de vèrtex (VBO). +Un VBO és una característica d'OpenGL que proporciona mètodes per a penjar +dades de vèrtex (posició, vector normal, color, etc.) a la targeta gràfica. +Els VBO ofereixen guanys importants de rendiment perquè les dades es troben +en la memòria gràfica en lloc de en la memòria del sistema, i així la GPU les renderitza +directament. -Note: Sometimes this feature may lead to a host of different -issues ranging from graphical anomalies to GPU crash bugs. Remember to -report this setting as enabled when seeking support on the FreeCAD forums +Nota: de vegades aquesta característica pot conduir a una multitud de problemes +diferents, que van des d’anomalies gràfiques fins a errors crítics de la GPU. Recordeu +d'informar que aquesta opció està habilitada quan cerqueu ajuda en els fòrums de FreeCAD @@ -3485,13 +3480,11 @@ There are 3 options available to achieve this: 3) 'Centralized', manually turn off cache in all nodes of all view provider, and only cache at the scene graph root node. This offers the fastest rendering speed but slower response to any scene changes. - 'Render Caching' is another way to say 'Rendering Acceleration'. -There are 3 options available to achieve this: -1) 'Auto' (default), let Coin3D decide where to cache. -2) 'Distributed', manually turn on cache for all view provider root node. -3) 'Centralized', manually turn off cache in all nodes of all view provider, and -only cache at the scene graph root node. This offers the fastest rendering speed -but slower response to any scene changes. + «Memòria cau de renderització» és una altra manera de dir «Renderització accelerada». +Hi ha 3 opcions disponibles per a aconseguir-ho: +1) «Automàtica» (per defecte), Coin3D decideix on emprar memòria cau. +2) «Distribuïda», activeu manualment la memòria cau per a tots els nodes arrel del proveïdor de vista. +3) «Centralitzada», desactiveu manualment la memòria cau en tots els nodes de tots els proveïdors de vista i només la memòria cau en el node arrel del gràfic de l'escena. Això ofereix una velocitat de renderització més ràpida però una resposta més lenta en tots els canvis d'escena. @@ -4078,32 +4071,32 @@ get date suffix according to the specified format tindran el sufix de data segons el format especificat - + Use date and FCBak extension Utilitza la data i l'extensió FCBak - + Date format Format de la data - + Document objects Objectes del document - + Allow objects to have same label Permet que els objectes tinguin la mateixa etiqueta - + Allow duplicate object labels in one document Permet etiquetes d'objecte duplicades en un document - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4117,22 +4110,22 @@ No es pot editar un document carregat parcialment. Feu doble clic a la icona del document en la vista de l'arbre per a carregar-lo completament. - + Disable partial loading of external linked objects Desactiva la càrrega parcial d'objectes enllaçats externs - + Authoring and License Autoria i llicència - + Author name Nom de l'autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4141,32 +4134,32 @@ Manteniu-lo en blanc per als anònims. També podeu utilitzar la forma: Joan Peris <joan@peris.com> - + The field 'Last modified by' will be set to specified author when saving the file El camp "Última modificació per" estarà configurat per a l'autor especificat en desar el fitxer - + Set on save Estableix en desar - + Company Empresa - + Default company name to use for new files El nom de l'empresa per defecte que s'utilitza per als fitxers nous - + Default license Llicència per defecte - + Default license for new documents La llicència per defecte per als documents nous @@ -4218,17 +4211,17 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com> CERN Open Hardware Licence strongly-reciprocal - CERN Open Hardware Licence strongly-reciprocal + La llicència de hardware obert CERN és fortament recíproca CERN Open Hardware Licence weakly-reciprocal - CERN Open Hardware Licence weakly-reciprocal + La llicència de hardware obert CERN és dèbilment recíproca CERN Open Hardware Licence permissive - CERN Open Hardware Licence permissive + Llicència de hardware obert CERN permissiva @@ -4236,12 +4229,12 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com> Altres - + License URL URL de la llicència - + URL describing more about the license URL que descriu més informació sobre la llicència @@ -4743,7 +4736,7 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com> Base color for all elements - Base color for all elements + Color base per tots els elements @@ -4778,10 +4771,10 @@ Seleccioneu un paràmetre i, a continuació, premeu el botó per a veure aqueste Trackball: moving the mouse horizontally will rotate the part around the y-axis Turntable: the part will be rotated around the z-axis (with constrained axes). Free Turntable: the part will be rotated around the z-axis. - Rotation orbit style. -Trackball: moving the mouse horizontally will rotate the part around the y-axis -Turntable: the part will be rotated around the z-axis (with constrained axes). -Free Turntable: the part will be rotated around the z-axis. + Estil de rotació orbital. +Bola de desplaçament (Trackball): movent el ratolí horitzontalment la peça girarà sobre l'eix Y +Plataforma giratòria (Turntable): La peça girarà sobre l'eix z (amb eixos restringits) +Plataforma giratòria lliure: la peça girarà sobre l'eix z. @@ -4796,7 +4789,7 @@ Free Turntable: the part will be rotated around the z-axis. Free Turntable - Free Turntable + Plataforma giratòria lliure @@ -5016,8 +5009,8 @@ horizontal space in Python console Area for picking elements in 3D view. Larger value eases to pick things, but can make small features impossible to select. - Area for picking elements in 3D view. -Larger value eases to pick things, but can make small features impossible to select. + Àrea per a seleccionar elements en vista 3D. +Un valor més gran en facilita la selecció, però pot fer que les propietats petites no es puguin seleccionar. @@ -5108,24 +5101,24 @@ Larger value eases to pick things, but can make small features impossible to sel Linear gradient - Linear gradient + Degradat lineal Radial gradient - Radial gradient + Degradat radial Top: - Top: + Dalt: Middle: - Middle: + Mig: @@ -5151,7 +5144,7 @@ Larger value eases to pick things, but can make small features impossible to sel Bottom: - Bottom: + A baix: @@ -5181,17 +5174,17 @@ Larger value eases to pick things, but can make small features impossible to sel Central: - Central: + Central: Midway: - Midway: + A mig camí: End: - End: + Fi: @@ -6231,7 +6224,7 @@ seleccionats abans d'obrir aquest diàleg Critical messages - Critical messages + Missatges crítics @@ -6812,7 +6805,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Cota @@ -6842,32 +6835,32 @@ Do you want to save your changes? Tanca-ho tot - + Toggles this toolbar Commuta la barra d'eines - + Toggles this dockable window Commuta la finestra flotant - - + + Unsaved document El document no s'ha desat - + The exported object contains external link. Please save the documentat least once before exporting. L’objecte exportat conté un enllaç extern. Deseu el documenta almenys una vegada abans d’exportar-lo. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Per a enllaçar amb objectes externs, el document s’ha de desar almenys una vegada. @@ -6958,7 +6951,7 @@ How do you want to proceed? Point_%1 - Point_%1 + Punt_%1 @@ -6978,12 +6971,12 @@ How do you want to proceed? &Align - &Align + &Alineat &Remove last point - &Remove last point + &Eliminar el darrer punt @@ -6993,7 +6986,7 @@ How do you want to proceed? &Synchronize views - &Synchronize views + &Sincronitza vistes @@ -7102,17 +7095,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Restant: %1 - + Aborting S'interromp - + Do you really want to abort the operation? Esteu segur que voleu interrompre l'operació? @@ -7125,12 +7118,12 @@ How do you want to proceed? Restant: %1 - + Aborting S'interromp - + Do you really want to abort the operation? Esteu segur que voleu interrompre l'operació? @@ -7138,7 +7131,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Canvia l'objecte enllaçat @@ -7146,12 +7139,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Error - + Object not found No s'ha trobat l'objecte. @@ -7367,17 +7360,17 @@ Esteu segur que voleu sortir sense desar les dades? Gui::RecentFilesAction - + Open file %1 Obrir el fitxer %1 - + File not found No s'ha trobat el fitxer. - + The file '%1' cannot be opened. El fitxer '%1' no es pot obrir. @@ -7385,22 +7378,22 @@ Esteu segur que voleu sortir sense desar les dades? Gui::RecentMacrosAction - + none cap - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Corre la macro %1 (Maj+clic per editar) drecera de teclat: %2 - + File not found No s'ha trobat el fitxer. - + The file '%1' cannot be opened. El fitxer '%1' no es pot obrir. @@ -7775,7 +7768,7 @@ Do you want to specify another directory? Afrikaans - Africà + Afrikaans @@ -8059,22 +8052,22 @@ Do you want to specify another directory? Show items hidden in tree view - Show items hidden in tree view + Mostra objectes amagats en la vista en arbre Show items that are marked as 'hidden' in the tree view - Show items that are marked as 'hidden' in the tree view + Mostra objectes marcats com a "ocults" a la vista en arbre Toggle visibility in tree view - Toggle visibility in tree view + Commuta la visibilitat en la vista en arbre Toggles the visibility of selected items in the tree view - Toggles the visibility of selected items in the tree view + Commuta la visibilitat dels objectes seleccionats @@ -8227,8 +8220,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Selecciona el banc de treball '%1' @@ -8523,7 +8515,7 @@ Do you want to specify another directory? There were errors while loading the file. Some data might have been modified or not recovered at all. Look in the report view for more specific information about the objects involved. - S'han produït errors en carregar el fitxer. Algunes dades es poden haver modificades o no s'han recuperat. Consulteu la vista d'informe per a obtenir informació més específica sobre els objectes implicats. + S'han produït errors en carregar el fitxer. Algunes dades es poden haver modificat o no s'han recuperat. Consulteu la vista d'informe per a obtenir informació més específica sobre els objectes implicats. @@ -8710,7 +8702,7 @@ Do you want to continue? Save image - Save image + Desa imatge @@ -8827,18 +8819,18 @@ Do you want to continue? Notifier - Notifier + Notificador Message - Message + Missatge Notifier: - Notifier: + Notificador: @@ -8853,7 +8845,7 @@ Do you want to continue? Too many opened non-intrusive notifications. Notifications are being omitted! - Too many opened non-intrusive notifications. Notifications are being omitted! + Massa notificacions no intrusives obertes. S'ometran les notificacions! @@ -9188,12 +9180,12 @@ Please open a browser window and type in: http://localhost:%1. L'%1 no és buit, voleu esborrar-ne le contingut? - + Translation: Translació: - + Rotation: Rotació: @@ -9398,17 +9390,17 @@ la còpia actual es perdrà. Change image... - Change image... + Canvia imatge... Color Gradient - Color Gradient + Color del degradat Color Legend - Color Legend + Color de la llegenda @@ -9445,7 +9437,7 @@ la còpia actual es perdrà. Activate the box selection tool - Activate the box selection tool + Activa l'eina de selecció de caixa @@ -9529,7 +9521,7 @@ la còpia actual es perdrà. Turns on or off the axis cross at the origin - Turns on or off the axis cross at the origin + Commuta actiu o no actiu la creu d'eixos a l'origen @@ -9837,7 +9829,7 @@ la còpia actual es perdrà. Actions that apply to expressions - Actions that apply to expressions + Accions que s'apliquen a expressions @@ -10039,7 +10031,7 @@ la còpia actual es perdrà. Actions that apply to link objects - Actions that apply to link objects + Accions que s'apliquen a objectes enllaçats @@ -10225,7 +10217,7 @@ la còpia actual es perdrà. Step to the next line executed - Step to the next line executed + Salta a la següent línia executada @@ -10239,7 +10231,7 @@ la còpia actual es perdrà. Step to the next line in this file - Step to the next line in this file + Salta a la següent línia d'aquest fitxer @@ -10281,7 +10273,7 @@ la còpia actual es perdrà. Activate the distance measurement tool - Activate the distance measurement tool + Activa l'eina de mesurament de distància @@ -10338,7 +10330,7 @@ la còpia actual es perdrà. Crea un document buit nou - + Unnamed Sense nom @@ -10560,7 +10552,7 @@ la còpia actual es perdrà. Set each selected object to a randomly-selected color - Set each selected object to a randomly-selected color + Fixa cada objecte seleccionat a un color aleatori @@ -10910,7 +10902,7 @@ la còpia actual es perdrà. Add or remove a breakpoint at this position - Add or remove a breakpoint at this position + Afegeix o elimina un punt d'interrupció (breakpoint) en aquesta posició @@ -11548,7 +11540,7 @@ la còpia actual es perdrà. Activate window - Activate window + Actica finestra @@ -11618,13 +11610,13 @@ la còpia actual es perdrà. Recall working view - Recall working view + Torna a la vista de treball Recall previously stored temporary working view - Recall previously stored temporary working view + Torna a la vista de treball temporalment desada @@ -11638,7 +11630,7 @@ la còpia actual es perdrà. Store a document-specific temporary working view - Store a document-specific temporary working view + Desa una vista d'un document específic temporal de treball @@ -11786,7 +11778,7 @@ la còpia actual es perdrà. Activate the box zoom tool - Activate the box zoom tool + Activa l'eina de la caixa de zoom @@ -11836,7 +11828,7 @@ la còpia actual es perdrà. Save image... - Save image... + Desa imatge... @@ -11870,7 +11862,7 @@ la còpia actual es perdrà. Increase the zoom factor by a fixed amount - Increase the zoom factor by a fixed amount + Augmenta el factor de zoom en una quantitat fixa @@ -11884,7 +11876,7 @@ la còpia actual es perdrà. Decrease the zoom factor by a fixed amount - Decrease the zoom factor by a fixed amount + Augmenta el factor de zoom en una quantitat fixa @@ -12047,27 +12039,27 @@ Encara voleu continuar? Tree view item background. Only effective in overlay. - Tree view item background. Only effective in overlay. + La vista en arbre d'objectes està al fons. Només serà efectiva en superposició. Tree view item background padding. - Tree view item background padding. + Farciment del fons de la vista en arbre d'objecte. Hide extra tree view column for item description. - Hide extra tree view column for item description. + Amaga la columna extra de vista en arbre per la descripció de l'objecte. Hide tree view scroll bar in dock overlay. - Hide tree view scroll bar in dock overlay. + Amaga la barra de desplaçament de la vista en arbre al moll superposat. Hide tree view header view in dock overlay. - Hide tree view header view in dock overlay. + Amaga la vista de la capçalera de la vista en arbre en la superposició del moll. @@ -12095,7 +12087,7 @@ Encara voleu continuar? Clipboard - Clipboard + Porta papers @@ -12212,7 +12204,7 @@ Encara voleu continuar? Notification Area - Notification Area + Àrea de notificació @@ -12222,67 +12214,67 @@ Encara voleu continuar? The Notification area will appear in the status bar - The Notification area will appear in the status bar + L'àrea de notificació apareixerà a la barra d'estatus Enable Notification Area - Enable Notification Area + Activa l'àrea de notificació Non-intrusive notifications will appear next to the notification area in the status bar - Non-intrusive notifications will appear next to the notification area in the status bar + Apareixeran notificacions no intrusives al costat de l'àrea de notificació a la barra d'estatus Enable non-intrusive notifications - Enable non-intrusive notifications + Activar notificacions no intrusives Additional data sources - Additional data sources + Orígens de dades addicionals Errors intended for developers will appear in the notification area - Errors intended for developers will appear in the notification area + Apareixeran errors destinats a desenvolupadors a l'àrea de notificacions Debug errors - Debug errors + Errors de depuració Warnings intended for developers will appear in the notification area - Warnings intended for developers will appear in the notification area + Apareixeran avisos destinats a desenvolupadors a l'àrea de notificacions Debug warnings - Debug warnings + Avisos de depuració Non-Intrusive Notifications - Non-Intrusive Notifications + Notificacions no intrusives Minimum Duration: - Minimum Duration: + Durada mínima: Maximum Duration: - Maximum Duration: + Durada màxima: Duration during which the notification will be shown (unless mouse buttons are clicked) - Duration during which the notification will be shown (unless mouse buttons are clicked) + Durada en què es mostraran notificacions (si no es clica el ratolí) @@ -12293,77 +12285,77 @@ Encara voleu continuar? Minimum duration during which the notification will be shown (unless notification clicked) - Minimum duration during which the notification will be shown (unless notification clicked) + Durada mínima en què es mostraran notificacions (si no es clica el ratolí) Maximum Number of Notifications: - Maximum Number of Notifications: + Nombre màxim de notificacions: Maximum number of notifications that will be simultaneously present on the screen - Maximum number of notifications that will be simultaneously present on the screen + Nombre màxim de notificacions que poden ser present simultàniament a la pantalla Notification width: - Notification width: + Ample de la notificació: Width of the notification in pixels - Width of the notification in pixels + Ample de la notificació en píxels Any open non-intrusive notifications will disappear when another window is activated - Any open non-intrusive notifications will disappear when another window is activated + Qualsevol notificació no intrusiva desapareixerà quan una altra finestra s'activi Hide when other window is activated - Hide when other window is activated + Amaga-ho quan s'activi una altra finestra Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window - Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window + Evita notificacions no intrusives quan la finestra FreeCAD no sigui la finestra activa Do not show when inactive - Do not show when inactive + No ho mostris quan estigui inactiu Message List - Message List + Llista de missatges Limit the number of messages that will be kept in the list. If 0 there is no limit. - Limit the number of messages that will be kept in the list. If 0 there is no limit. + Limita el nombre de missatges que es desaran a la llista. Si 0, no hi ha límit. Maximum Messages (0 = no limit): - Maximum Messages (0 = no limit): + Nombre màxim de missatges (0 = sense límit): Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. - Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. + Treu les notificacions d'usuari de la llista després que la durada màxima s'hagi sobrepassat. Auto-remove User Notifications - Auto-remove User Notifications + Treu automàticament les notificacions d'usuari Activation of the Notification Area only takes effect after an application restart. - Activation of the Notification Area only takes effect after an application restart. + L'activació de l'àrea de notificacions només es tindrà en compte quan l'aplicació es torni a engegar. @@ -12377,13 +12369,13 @@ Encara voleu continuar? <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> Currently, your system has the following workbenches:</p></body></html> - <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> -Currently, your system has the following workbenches:</p></body></html> + <html><head/><body><p>Podeu reorganitzar els bancs de treball arrossegant-los i deixant-los anar. Es poden afegir bancs addicionals mitjançant el manegador de complements (Addon).</p><p> +Actualment, el vostre sistema disposa dels bancs de treball següents:</p></body></html> Start up workbench: - Start up workbench: + Engega banc de treball: @@ -12431,7 +12423,7 @@ en iniciar FreeCAD Planes - Planes + Plans @@ -12464,12 +12456,12 @@ en iniciar FreeCAD Image plane settings - Image plane settings + Configuració de la imatge de plans Planes - Planes + Plans @@ -12499,27 +12491,27 @@ en iniciar FreeCAD X distance: - X distance: + Distància X: Y distance: - Y distance: + Distància Y: Rotation : - Rotation : + Rotació: Transparency : - Transparency : + Transparència: Image size - Image size + Grandària de la imatge @@ -12534,12 +12526,12 @@ en iniciar FreeCAD Keep aspect ratio - Keep aspect ratio + Manté la ràtio d'aspecte Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + Escala interactivament la imatge seleccionant una longitud entre dos punts de la imatge. @@ -12549,7 +12541,7 @@ en iniciar FreeCAD Calibration - Calibration + Calibració @@ -12567,27 +12559,27 @@ en iniciar FreeCAD If unchecked, %1 will not appear in the available workbenches. - If unchecked, %1 will not appear in the available workbenches. + Si està desmarcat, %1 no apareixerà en els bancs de treball disponibles. This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. - This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. + Aquest és el mòdul d'inici actual, i ha d'estar activat. Mira a Preferències/General/Autoload per a canviar-lo. Shortcut to activate this workbench. - Shortcut to activate this workbench. + Drecera per a activar aquest banc de treball. Auto-load - Auto-load + Càrrega automàtica If checked, %1 will be loaded automatically when FreeCAD starts up - If checked, %1 will be loaded automatically when FreeCAD starts up + Si està seleccionat, %1 es carregarà automàticament en iniciar el FreeCAD @@ -12607,23 +12599,23 @@ en iniciar FreeCAD To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. - To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. + Per preservar recursos, FreeCAD no carrega els bancs de treball fins que es fan servir. Carregar-los pot proporcionar accés a preferències addicionals relacionades amb la seva funcionalitat. Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra d'eines - + Left corner Cantonada esquerra - + Right corner Cantonada dreta @@ -12638,12 +12630,12 @@ en iniciar FreeCAD Delete user notifications - Delete user notifications + Elimina les notificacions d'usuari Delete All - Delete All + Esborrar-ho tot @@ -12651,12 +12643,12 @@ en iniciar FreeCAD Delete user notifications - Delete user notifications + Elimina les notificacions d'usuari Delete All - Delete All + Esborrar-ho tot @@ -12664,17 +12656,17 @@ en iniciar FreeCAD Failed to load image file - Failed to load image file + No s'ha pogut carregar la imatge Cannot load file %1: %2 - Cannot load file %1: %2 + No es pot carregar el fitxer %1: %2' Fit to window - Fit to window + Ajusta a la finestra @@ -12684,7 +12676,7 @@ en iniciar FreeCAD Zoom out - Allunyar + Allunya @@ -12692,13 +12684,13 @@ en iniciar FreeCAD Load image... - Load image... + Carrega la imatge... Loads an image - Loads an image + Carrega una imatge @@ -12706,7 +12698,7 @@ en iniciar FreeCAD Enter desired distance between the points - Enter desired distance between the points + Entra la distància desitjada entre els punts @@ -12714,12 +12706,12 @@ en iniciar FreeCAD Movable navigation cube - Movable navigation cube + Cub de navegació movible Drag and place NaviCube - Drag and place NaviCube + Arrossega i posiciona el NaviCube @@ -12727,32 +12719,32 @@ en iniciar FreeCAD FRONT - FRONT + FRONT TOP - TOP + DALT RIGHT - RIGHT + DRETA REAR - REAR + DARRERA BOTTOM - BOTTOM + BAIX LEFT - LEFT + ESQUERRA @@ -12761,7 +12753,7 @@ en iniciar FreeCAD An error occurred -- see Report View for information - An error occurred -- see Report View for information + Ha succeït un error - mira la vista d'informes per a més informació diff --git a/src/Gui/Language/FreeCAD_cs.ts b/src/Gui/Language/FreeCAD_cs.ts index c94de34873..9e0572711f 100644 --- a/src/Gui/Language/FreeCAD_cs.ts +++ b/src/Gui/Language/FreeCAD_cs.ts @@ -47,24 +47,24 @@ <prázdné> - - + + Angle Úhel - - + + Axis Osa - + Position Position - + Enum Enum @@ -2337,7 +2337,7 @@ FreeCAD toto okno zobrazí Gui::Dialog::DlgMacroExecuteImp - + Macros Makra @@ -2358,8 +2358,8 @@ FreeCAD toto okno zobrazí - - + + Existing file Existující soubor @@ -2437,51 +2437,51 @@ Poznámka: změny budou aplikovány při dalším přepnutí pracovních prostř Instrukce průvodce: Klikněte na tlačítko šipky doprava (->), a potom Zavřít. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrukce průvodce: Klikněte na Nový, potom na pravou šipku (->) a potom Zavřít. - + Renaming Macro File Přejmenovávání souboru makra - - + + Enter new name: Zadejte nový název: - - + + '%1' already exists. "%1" už existuje. - + Rename Failed Přejmenování selhalo - + Failed to rename to '%1'. Perhaps a file permission error? Nepodařilo se přejmenovat na "%1". Chyba oprávnění k souboru? - + Duplicate Macro Duplikovat makro - + Duplicate Failed Duplikace selhala - + Failed to duplicate to '%1'. Perhaps a file permission error? Duplikace selhala na "%1". @@ -2861,42 +2861,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Vymazat uživatelská nastavení - + Do you want to clear all your user settings? Chcete vymazat všechna uživatelská nastavení? - + If you agree all your settings will be cleared. Pokud souhlasíte, budou všechna vaše nastavení vymazána. - + Wrong parameter Chybný parametr - + Restart required Je vyžadován restart - + You must restart FreeCAD for changes to take effect. Aby se změny projevily, musíte FreeCAD restartovat. - + Restart now Restartovat nyní - + Restart later Restartovat později @@ -4080,32 +4080,32 @@ get date suffix according to the specified format získají příponu data podle zadaného formátu - + Use date and FCBak extension Použít datum a příponu FCBak - + Date format Formát data - + Document objects Objekty dokumentu - + Allow objects to have same label Povolit objektům mít stejný štítek - + Allow duplicate object labels in one document Povolit duplicitní názvy objektů v jednom dokumentu - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4118,22 +4118,22 @@ dokumentem, budou odkazované objekty a jejich závislosti načteny. dvojitým kliknutím na ikonu dokumentu ve stromovém zobrazení. - + Disable partial loading of external linked objects Zakázat částečné načítání externích propojených objektů - + Authoring and License Autorství a licence - + Author name Jméno autora - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4142,32 +4142,32 @@ Pro anonymní jméno ponechte prázdné. Můžete také použít tuto formu: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Pole 'Naposledy upraveno' bude nastaveno na definovaného autora při ukládání souboru - + Set on save Nastavit při ukládání - + Company Společnost - + Default company name to use for new files Výchozí název společnosti pro nové soubory - + Default license Výchozí licence - + Default license for new documents Výchozí licence pro nové dokumenty @@ -4237,12 +4237,12 @@ Můžete také použít tuto formu: John Doe <john@doe.com> Jiný - + License URL URL licence - + URL describing more about the license URL adresa popisující více o licenci @@ -6815,7 +6815,7 @@ Chcete uložit provedené změny? Gui::MainWindow - + Dimension Rozměr @@ -6845,32 +6845,32 @@ Chcete uložit provedené změny? Zavřít vše - + Toggles this toolbar Přepíná panel nástrojů - + Toggles this dockable window Přepíná dokovatelný okna - - + + Unsaved document Neuložený dokument - + The exported object contains external link. Please save the documentat least once before exporting. Exportovaný objekt obsahuje externí odkaz. Před exportem uložte dokument alespoň jednou. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Pro propojení s externími objekty musí být dokument uložen alespoň jednou. @@ -7110,17 +7110,17 @@ V pravém pohledu jsou %2 body vybrány. Gui::ProgressBar - + Remaining: %1 Zbývá: %1 - + Aborting Přerušení - + Do you really want to abort the operation? Opravdu chcete zrušit operaci? @@ -7133,12 +7133,12 @@ V pravém pohledu jsou %2 body vybrány. Zbývá: %1 - + Aborting Přerušení - + Do you really want to abort the operation? Opravdu chcete zrušit operaci? @@ -7146,7 +7146,7 @@ V pravém pohledu jsou %2 body vybrány. Gui::PropertyEditor::LinkLabel - + Change the linked object Změnit propojený objekt @@ -7154,12 +7154,12 @@ V pravém pohledu jsou %2 body vybrány. Gui::PropertyEditor::LinkSelection - + Error Chyba - + Object not found Objekt nenalezen @@ -7375,17 +7375,17 @@ Chcete průvodce ukončit bez uložení dat? Gui::RecentFilesAction - + Open file %1 Otevřít soubor %1 - + File not found Soubor nebyl nalezen - + The file '%1' cannot be opened. Soubor '%1' nelze otevřít. @@ -7393,22 +7393,22 @@ Chcete průvodce ukončit bez uložení dat? Gui::RecentMacrosAction - + none žádný - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Spustit makro %1 (Shift+kliknutí pro úpravu) klávesová zkratka: %2 - + File not found Soubor nebyl nalezen - + The file '%1' cannot be opened. Soubor '%1' nelze otevřít. @@ -8235,8 +8235,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Vyberte '%1' pracovní prostředí @@ -9200,12 +9199,12 @@ Prosím, otevřete okno prohlížeče a zadejte: http://localhost:%1.%1 není prázdný, odstranit jeho obsah také? - + Translation: Překlad: - + Rotation: Rotace: @@ -10352,7 +10351,7 @@ na aktuální kopii budou ztraceny. Vytvořit nový prázdný dokument - + Unnamed Nepojmenovaný @@ -12627,17 +12626,17 @@ po spuštění FreeCADu Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Panel nástrojů - + Left corner Levý roh - + Right corner Pravý roh diff --git a/src/Gui/Language/FreeCAD_de.ts b/src/Gui/Language/FreeCAD_de.ts index 5a8fba9377..d280f3d805 100644 --- a/src/Gui/Language/FreeCAD_de.ts +++ b/src/Gui/Language/FreeCAD_de.ts @@ -47,24 +47,24 @@ <Leer> - - + + Angle Winkel - - + + Axis Achse - + Position Position - + Enum Aufzählung @@ -1374,7 +1374,7 @@ same time. The one with the highest priority will be triggered. Shortcut - Tastenkombination + Tastaturkürzel @@ -2333,7 +2333,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Makros @@ -2354,8 +2354,8 @@ display the splash screen - - + + Existing file Vorhandene Datei @@ -2433,52 +2433,52 @@ Hinweis: Ihre Änderungen werden beim nächsten Wechsel im Arbeitsbereich wirksa Lösungsansatz: Klicken Sie auf den rechten Pfeil (->), dann Schließen. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Lösungsansatz: Klicken Sie auf Neu, dann rechten Pfeil (->), dann Schließen. - + Renaming Macro File Makrodatei umbenennen - - + + Enter new name: Neuen Namen eingeben: - - + + '%1' already exists. '%1' ist bereits vorhanden. - + Rename Failed Umbenennen fehlgeschlagen - + Failed to rename to '%1'. Perhaps a file permission error? Umbenennen nach '%1' fehlgeschlagen. Möglicherweise ein Dateizugriffsfehler? - + Duplicate Macro Makro kopieren - + Duplicate Failed Kopieren fehlgeschlagen - + Failed to duplicate to '%1'. Perhaps a file permission error? Fehler beim Kopieren nach '%1'. Vielleicht liegt ein Dateiberechtigungsfehler vor? @@ -2859,42 +2859,42 @@ Wählen Sie bitte ein anderes Verzeichnis aus. Gui::Dialog::DlgPreferencesImp - + Clear user settings Benutzereinstellungen löschen - + Do you want to clear all your user settings? Möchten Sie alle Ihre Benutzereinstellungen löschen? - + If you agree all your settings will be cleared. Wenn Sie einverstanden sind werden alle ihre Einstellungen gelöscht. - + Wrong parameter Falscher Parameter - + Restart required Neustart erforderlich - + You must restart FreeCAD for changes to take effect. FreeCAD muss neu gestartet werden, damit die Änderungen wirksam werden. - + Restart now Jetzt neu starten - + Restart later Später neu starten @@ -3378,7 +3378,8 @@ von der Python-Konsole in das Ausgabefenster umgeleitet Main coordinate system will always be shown in lower right corner within opened files - In geöffneten Dateien - Darstellung des Hauptkoordinatensystems - unten rechts + In geöffneten Dateien wird das Hauptkoordinatensystem +immer in der unteren rechten Ecke angezeigt @@ -3616,12 +3617,12 @@ Der angegebene Wert ist ein Faktor, der mit der Größe des Hüllquaders des ger Objects will be projected in orthographic projection - Objekte werden orthogonaler Projektion abgebildet + Objekte werden in orthogonaler Projektion abgebildet Or&thographic rendering - Or&thographische Darstellung + Or&thogonale Darstellung @@ -4068,32 +4069,32 @@ get date suffix according to the specified format erhalten Datumssuffix im angegebenen Format - + Use date and FCBak extension Datums- und FCBak Erweiterung verwenden - + Date format Datumsformat - + Document objects Dokumentobjekte - + Allow objects to have same label Objekte mit gleicher Bezeichnung zulassen - + Allow duplicate object labels in one document Doppelte Objektbezeichnungen in einem Dokument zulassen - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4106,22 +4107,22 @@ Ein teilweise geladenes Dokument kann nicht bearbeitet werden. Doppelklicken Sie Symbol in der Baumansicht, um es vollständig neu zu laden. - + Disable partial loading of external linked objects Deaktiviere partielles Laden von externen verknüpften Objekten - + Authoring and License Autorenschaft und Lizenz - + Author name Name des Autors - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4130,32 +4131,32 @@ Anonymisiert bleiben leer. Sie können auch das Formular verwenden: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Das Feld 'Letzte Änderung von' wird beim Speichern der Datei auf den angegebenen Autor gesetzt - + Set on save Beim Speichern setzen - + Company Firma - + Default company name to use for new files Standard-Firmenname für neue Dateien - + Default license Standard Lizenz - + Default license for new documents Standard-Lizenz für neue Dokumente @@ -4225,12 +4226,12 @@ Sie können auch das Formular verwenden: John Doe <john@doe.com>Andere - + License URL Lizenz-URL - + URL describing more about the license URL, die mehr über die Lizenz beschreibt @@ -4913,32 +4914,32 @@ Das Neigen der Maus wird durch diese Einstellung nicht deaktiviert. Top - Oben + Draufsicht Front - Vorne + Vorderansicht Left - Links + Seitenansicht von links Right - Rechts + Seitenansicht von rechts Rear - Hinten + Rückansicht Bottom - Unten + Untersicht @@ -6804,7 +6805,7 @@ Sollen die Änderungen gespeichert werden? Gui::MainWindow - + Dimension Abmessung @@ -6834,32 +6835,32 @@ Sollen die Änderungen gespeichert werden? Alles schließen - + Toggles this toolbar Symbolleiste ein-/ausschalten - + Toggles this dockable window Andockbares Fenster ein-/ausschalten - - + + Unsaved document Nicht gespeichertes Dokument - + The exported object contains external link. Please save the documentat least once before exporting. Das exportierte Objekt enthält einen externen Link. Bitte speichern Sie das Dokument mindestens einmal vor dem Exportieren. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Um zu externen Objekten zu verlinken, muss das Dokument mindestens einmal gespeichert werden. @@ -7044,7 +7045,7 @@ How do you want to proceed? Press CTRL and right mouse button - Drücken Sie STRG und die Rechte Maustaste + Drücken Sie STRG und die rechte Maustaste @@ -7096,17 +7097,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Verbleibend: %1 - + Aborting Abbrechen - + Do you really want to abort the operation? Möchten Sie die Operation wirklich abbrechen? @@ -7119,12 +7120,12 @@ How do you want to proceed? Verbleibend: %1 - + Aborting Abbrechen - + Do you really want to abort the operation? Möchten Sie die Operation wirklich abbrechen? @@ -7132,7 +7133,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Verknüpftes Objekt ändern @@ -7140,12 +7141,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Fehlermeldungen - + Object not found Objekt nicht gefunden @@ -7361,17 +7362,17 @@ Wollen Sie sie beenden, ohne Ihre Daten zu speichern? Gui::RecentFilesAction - + Open file %1 Öffne Datei %1 - + File not found Datei nicht gefunden - + The file '%1' cannot be opened. Die Datei '%1' kann nicht geöffnet werden. @@ -7379,22 +7380,22 @@ Wollen Sie sie beenden, ohne Ihre Daten zu speichern? Gui::RecentMacrosAction - + none kein - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Makro %1 ausführen (Umschalt+Klick zum Bearbeiten) Tastenkombination: %2 - + File not found Datei nicht gefunden - + The file '%1' cannot be opened. Die Datei '%1' kann nicht geöffnet werden. @@ -7737,7 +7738,7 @@ Möchten Sie ein anderes Verzeichnis angeben? Press right mouse button - Rechte Maustaste drücken + Drücken Sie die rechte Maustaste @@ -7760,7 +7761,7 @@ Möchten Sie ein anderes Verzeichnis angeben? Press ALT button - Bitte ALT drücken + Drücken Sie die ALT-Taste @@ -8225,8 +8226,7 @@ Möchten Sie ein anderes Verzeichnis angeben? Gui::WorkbenchGroup - - + Select the '%1' workbench Wähle den Arbeitsbereich %1 @@ -9191,12 +9191,12 @@ Bitte starten Sie einen Browser und geben darin ein: http://localhost:%1.Der %1 ist nicht leer, auch seinen Inhalt löschen? - + Translation: Verschiebung: - + Rotation: Drehung: @@ -9769,7 +9769,7 @@ the current copy will be lost. Change the draw style of the objects - Darstellungsart der Objekte ändern + Ändert die Darstellungsart von Objekten @@ -10340,7 +10340,7 @@ the current copy will be lost. Neues Dokument erstellen - + Unnamed Unbenannt @@ -10385,7 +10385,7 @@ the current copy will be lost. Open a document or import files - Öffnen eines Dokuments/Importieren von Dateien + Öffnet ein Dokument oder importiert Dateien @@ -10640,7 +10640,7 @@ the current copy will be lost. Revert - Zurücksetzen + Änderungen widerrufen @@ -11144,13 +11144,13 @@ the current copy will be lost. Bottom - Unten + Untersicht Set to bottom view - Unten + Wechselt zur Ansicht von unten @@ -11256,13 +11256,13 @@ the current copy will be lost. Front - Vorne + Vorderansicht Set to front view - Vorderansicht + Wechselt zur Ansicht von vorne @@ -11382,13 +11382,13 @@ the current copy will be lost. Left - Links + Seitenansicht von links Set to left view - Linksansicht + Wechselt zur Ansicht von links @@ -11396,13 +11396,13 @@ the current copy will be lost. Rear - Hinten + Rückansicht Set to rear view - Hinteransicht + Wechselt zur Ansicht von hinten @@ -11424,13 +11424,13 @@ the current copy will be lost. Right - Rechts + Seitenansicht von rechts Set to right view - Rechtsansicht + Wechselt zur Ansicht von rechts @@ -11480,13 +11480,13 @@ the current copy will be lost. Top - Oben + Draufsicht Set to top view - Oberansicht + Wechselt zur Ansicht von oben @@ -12036,12 +12036,12 @@ Möchten Sie trotzdem fortfahren? This will discard all the changes since last file save. - Dies wird alle Änderungen seit der letzten Datei-Speicherung verwerfen. + Dies wird alle Änderungen seit dem letzten Speichern der Datei verwerfen. Do you want to continue? - Möchten Sie fortfahren? + Fortfahren? @@ -12614,17 +12614,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Symbolleiste - + Left corner Linke Ecke - + Right corner Rechte Ecke diff --git a/src/Gui/Language/FreeCAD_el.ts b/src/Gui/Language/FreeCAD_el.ts index fd040ef609..e789fe3afc 100644 --- a/src/Gui/Language/FreeCAD_el.ts +++ b/src/Gui/Language/FreeCAD_el.ts @@ -47,24 +47,24 @@ <κενό> - - + + Angle Γωνία - - + + Axis Άξονας - + Position Position - + Enum Enum @@ -2335,7 +2335,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Μακροεντολές @@ -2356,8 +2356,8 @@ display the splash screen - - + + Existing file Υπάρχον αρχείο @@ -2435,53 +2435,53 @@ Note: your changes will be applied when you next switch workbenches Οδηγίες περιήγησης: Κάντε κλικ στο κουμπί με το δεξί βέλος (->) και, στη συνέχεια, στο Κλείσιμο. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Οδηγίες περιήγησης: Κάντε κλικ στο Νέο, στη συνέχεια στο κουμπί με το δεξί βέλος (->) και στη συνέχεια στο Κλείσιμο. - + Renaming Macro File Πραγματοποιείται μετονομασία του Αρχείου Μακροεντολής - - + + Enter new name: Εισάγετε νέο όνομα: - - + + '%1' already exists. Το '%1' υπάρχει ήδη. - + Rename Failed Η Μετονομασία Απέτυχε - + Failed to rename to '%1'. Perhaps a file permission error? Αποτυχία μετονομασίας σε '%1'. Ίσως υπάρχει κάποιο σφάλμα άδειας αρχείου; - + Duplicate Macro Διπλογραφή της Μακροεντολής - + Duplicate Failed Αποτυχία Κατά τη Διπλογραφή - + Failed to duplicate to '%1'. Perhaps a file permission error? Αποτυχία κατά την διπλογραφή στο '%1'. @@ -2863,42 +2863,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Εκκαθάριση των ρυθμίσεων χρήστη - + Do you want to clear all your user settings? Θέλετε να εκκαθαρίσετε όλες σας τις ρυθμίσεις χρήστη; - + If you agree all your settings will be cleared. Αν συμφωνήσετε θα εκκαθαριστούν όλες οι ρυθμίσεις σας. - + Wrong parameter Εσφαλμένη παράμετρος - + Restart required Απαιτείται επανεκκίνηση - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4076,32 +4076,32 @@ get date suffix according to the specified format get date suffix according to the specified format - + Use date and FCBak extension Use date and FCBak extension - + Date format Date format - + Document objects Αντικείμενα εγγράφου - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Να επιτρέπεται η χρήση ομοίων ετικετών αντικειμένων στο ίδιο έγγραφο - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4113,22 +4113,22 @@ icon in the tree view to fully reload it. Κάντε διπλό κλικ στο εικονίδιο του εγγράφου στην προβολή δέντρου για να το φορτώσετε πλήρως. - + Disable partial loading of external linked objects Disable partial loading of external linked objects - + Authoring and License Συγγραφή και Άδεια - + Author name Όνομα συγγραφέα - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4137,32 +4137,32 @@ Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file The field 'Last modified by' will be set to specified author when saving the file - + Set on save Ορισμός κατά την αποθήκευση - + Company Εταιρεία - + Default company name to use for new files Default company name to use for new files - + Default license Προεπιλεγμένη άδεια - + Default license for new documents Default license for new documents @@ -4232,12 +4232,12 @@ You can also use the form: John Doe <john@doe.com> Άλλο - + License URL Διεύθυνση URL της άδειας - + URL describing more about the license URL describing more about the license @@ -6814,7 +6814,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Διάσταση @@ -6844,32 +6844,32 @@ Do you want to save your changes? Κλείσιμο Όλων - + Toggles this toolbar Εναλλάσσει την λειτουργία εμφάνισης/απόκρυψης αυτής της γραμμής εργαλείων - + Toggles this dockable window Εναλλάσσει την λειτουργία εμφάνισης/απόκρυψης αυτού του προσδέσιμου παραθύρου - - + + Unsaved document Μη αποθηκευμένο έγγραφο - + The exported object contains external link. Please save the documentat least once before exporting. The exported object contains external link. Please save the documentat least once before exporting. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? To link to external objects, the document must be saved at least once. @@ -7107,17 +7107,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Απομένει: %1 - + Aborting Πραγματοποιείται διακοπή - + Do you really want to abort the operation? Θέλετε πραγματικά να διακόψετε την διαδικασία; @@ -7130,12 +7130,12 @@ How do you want to proceed? Απομένει: %1 - + Aborting Πραγματοποιείται διακοπή - + Do you really want to abort the operation? Θέλετε πραγματικά να διακόψετε την διαδικασία; @@ -7143,7 +7143,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Αλλαγή του συνδεδεμένου αντικειμένου @@ -7151,12 +7151,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Σφάλμα - + Object not found Το αντικείμενο δεν βρέθηκε @@ -7371,17 +7371,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Άνοιγμα του αρχείου %1 - + File not found Το αρχείο δεν βρέθηκε - + The file '%1' cannot be opened. Αδυναμία ανοίγματος του αρχείου '%1'. @@ -7389,22 +7389,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none κανένα - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Εκτέλεση μακροεντολής %1 (Shift+click για επεξεργασία) συντόμευση πληκτρολογίου: %2 - + File not found Το αρχείο δεν βρέθηκε - + The file '%1' cannot be opened. Αδυναμία ανοίγματος του αρχείου '%1'. @@ -8235,8 +8235,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Επιλέξτε τον πάγκο εργασίας '%1' @@ -9202,12 +9201,12 @@ Please open a browser window and type in: http://localhost:%1. Το %1 δεν είναι άδειο, να διαγραφεί και το περιεχόμενό του; - + Translation: Μετάφραση: - + Rotation: Περιστροφή: @@ -10351,7 +10350,7 @@ the current copy will be lost. Δημιουργήστε ένα νέο κενό έγγραφο - + Unnamed Ανώνυμο @@ -12627,17 +12626,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Toolbar - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_es-AR.ts b/src/Gui/Language/FreeCAD_es-AR.ts index ed56310928..429bc0d9ae 100644 --- a/src/Gui/Language/FreeCAD_es-AR.ts +++ b/src/Gui/Language/FreeCAD_es-AR.ts @@ -47,24 +47,24 @@ <vacío> - - + + Angle Ángulo - - + + Axis Eje - + Position Posición - + Enum Enum @@ -85,7 +85,7 @@ Run test cases to verify console messages - Ejecutar casos de prueba para verificar los mensajes de consola + Ejecutar tests de prueba para verificar los mensajes de la consola @@ -98,7 +98,7 @@ Clear all visible measurements - Borrar todas las mediciones visibles + Suprimir todas las mediciones visibles @@ -222,7 +222,7 @@ Toggle selectability - Conmutar selectividad + Alternar seleccionabilidad @@ -772,7 +772,7 @@ mientras hace un clic izquierdo o derecho y mueve el mouse hacia arriba o hacia Do you want to clear it now? - ¿Deseas borrarlo ahora? + ¿Quieres borrarlo ahora? @@ -1277,7 +1277,7 @@ Si no está marcado, entonces la propiedad debe tener un nombre único y se acce &New shortcut: - Nuevo atajo: + &Nuevo acceso directo: @@ -1375,7 +1375,7 @@ same time. The one with the highest priority will be triggered. Shortcut - Atajo + Atajo de teclado @@ -1483,7 +1483,7 @@ same time. The one with the highest priority will be triggered. <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Los cambios se activarán la próxima vez que cargue el entorno apropiado</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Nota:</span> Los cambios se activarán la próxima vez que cargue el banco de trabajo apropiado</p></body></html> @@ -2209,12 +2209,12 @@ la pantalla de bienvenida Apply the %1 preference pack - Aplicar el paquete de preferencias %1 + Aplicar el %1 paquete de preferencias Choose a FreeCAD config file to import - Elija un archivo de configuración de FreeCAD para importar + Elige un archivo de configuración de FreeCAD para importar @@ -2335,7 +2335,7 @@ la pantalla de bienvenida Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2356,8 +2356,8 @@ la pantalla de bienvenida - - + + Existing file Archivo existente @@ -2386,7 +2386,7 @@ Este archivo ya existe. Do you really want to delete the macro '%1'? - ¿Realmente quiere borrar la macro '%1'? + ¿Realmente desea eliminar la macro '%1'? @@ -2435,53 +2435,53 @@ Nota: tus cambios se aplicarán cuando cambies de banco de trabajo Instrucciones del tutorial: Haga clic en el botón derecho de la flecha (->), luego cierre. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrucciones del tutorial: Haga clic en el botón derecho de la flecha (->), luego cierre. - + Renaming Macro File Renombrar el archivo de la Macro - - + + Enter new name: Introduce nuevo nombre: - - + + '%1' already exists. '%1' ya existe. - + Rename Failed Renombrar fallido - + Failed to rename to '%1'. Perhaps a file permission error? Error al renombrar a '%1'. ¿Tal vez un error de permiso de archivo? - + Duplicate Macro Duplicar Macro - + Duplicate Failed Error al Duplicar - + Failed to duplicate to '%1'. Perhaps a file permission error? Error al duplicar en '%1'. @@ -2863,42 +2863,42 @@ Especifique otro directorio, por favor. Gui::Dialog::DlgPreferencesImp - + Clear user settings Limpiar ajustes del usuario - + Do you want to clear all your user settings? ¿Desea borrar todas sus configuraciones de usuario? - + If you agree all your settings will be cleared. Si está de acuerdo, se borrarán todas sus configuraciones. - + Wrong parameter Parámetro incorrecto - + Restart required Es necesario reiniciar - + You must restart FreeCAD for changes to take effect. Debe reiniciar FreeCAD para que los cambios surtan efecto. - + Restart now Reiniciar ahora - + Restart later Reiniciar más adelante @@ -4076,32 +4076,32 @@ get date suffix according to the specified format Los archivos de copia de seguridad tendrán la extensión '.FCbak' y los nombres de archivo tendrán el sufijo de fecha de acuerdo al formato especificado - + Use date and FCBak extension Usar fecha y extensión FCBak - + Date format Formato de fecha - + Document objects Objetos del documento - + Allow objects to have same label Permitir que los objetos tengan el mismo rótulo - + Allow duplicate object labels in one document Permitir etiquetas de objeto duplicadas en un documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4114,22 +4114,22 @@ Un documento parcialmente cargado no puede ser editado. Haga doble clic en el ic del documento en la vista de árbol para volver a cargarlo completamente. - + Disable partial loading of external linked objects Deshabilitar la carga parcial de objetos enlazados externos - + Authoring and License Autoría y Licencia - + Author name Nombre del autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4138,32 +4138,32 @@ Mantener en blanco para anonimato. También puede utilizar el formulario: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file El campo "Última modificación por" será asignado al autor especificado cuando se guarde el archivo - + Set on save Establecer al guardar - + Company Organización - + Default company name to use for new files Nombre de organización predeterminado a usar en archivos nuevos - + Default license Licencia predeterminada - + Default license for new documents Licencia predeterminada para documentos nuevos @@ -4233,12 +4233,12 @@ También puede utilizar el formulario: John Doe <john@doe.com>Otro - + License URL URL de la licencia - + URL describing more about the license URL que describe más sobre la licencia @@ -6811,7 +6811,7 @@ Desea guardar los cambios? Gui::MainWindow - + Dimension Cota @@ -6841,32 +6841,32 @@ Desea guardar los cambios? Cerrar todo - + Toggles this toolbar Alterna esta barra de herramientas - + Toggles this dockable window Alterna esta ventana acoplable - - + + Unsaved document Documento sin guardar - + The exported object contains external link. Please save the documentat least once before exporting. El objeto exportado contiene un vínculo externo. Por favor, guarde el documento al menos una vez antes de exportar. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Para vincular a objetos externos, el documento debe guardarse al menos una vez. @@ -7101,17 +7101,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Restante: %1 - + Aborting Anulando - + Do you really want to abort the operation? ¿De verdad quieres anular la operación? @@ -7124,12 +7124,12 @@ How do you want to proceed? Restante: %1 - + Aborting Anulando - + Do you really want to abort the operation? ¿De verdad quieres anular la operación? @@ -7137,7 +7137,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Cambiar el objeto vinculado @@ -7145,12 +7145,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Error - + Object not found Objeto no encontrado @@ -7366,17 +7366,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Abrir archivo %1 - + File not found Archivo no encontrado - + The file '%1' cannot be opened. El archivo '%1' no puede ser abierto. @@ -7384,22 +7384,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none ninguno - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Ejecutar macro %1 (Shift+clic para editar) el atajo de teclado: %2 - + File not found Archivo no encontrado - + The file '%1' cannot be opened. El archivo '%1' no puede ser abierto. @@ -8230,8 +8230,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Seleccionar el escenario '%1' @@ -8465,7 +8464,7 @@ Do you want to specify another directory? Workbenches - Entornos de trabajo + Bancos de trabajo @@ -9194,12 +9193,12 @@ Por favor abra una ventana del navegador y escriba en ella: http://localhost:%1. La %1 no está vacía, ¿borrar su contenido? - + Translation: Traslación: - + Rotation: Rotación: @@ -10345,7 +10344,7 @@ la copia actual se perderá. Crea un documento vacío nuevo - + Unnamed Sin nombre @@ -10967,7 +10966,7 @@ la copia actual se perderá. Toggle selectability - Conmutar selectividad + Alternar seleccionabilidad @@ -11569,7 +11568,7 @@ la copia actual se perderá. Workbench - Entorno de trabajo + Banco de trabajo @@ -12107,7 +12106,7 @@ Por favor, compruebe la Vista de Reportes para más detalles. Workbench - Entorno de trabajo + Banco de trabajo @@ -12378,7 +12377,7 @@ Por favor, compruebe la Vista de Reportes para más detalles. Available Workbenches - Entornos de trabajo disponibles + Bancos de trabajo disponibles @@ -12396,7 +12395,7 @@ Actualmente, su sistema tiene los siguientes bancos de trabajo:</p></bo Choose which workbench will be activated and shown after FreeCAD launches - Elige cuál entorno de trabajo se activará y mostrará al iniciar FreeCAD + Elige cuál banco de trabajo se activará y mostrará al iniciar FreeCAD @@ -12619,17 +12618,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra de herramientas - + Left corner Esquina izquierda - + Right corner Esquina derecha diff --git a/src/Gui/Language/FreeCAD_es-ES.ts b/src/Gui/Language/FreeCAD_es-ES.ts index ef660134bb..07585d9b09 100644 --- a/src/Gui/Language/FreeCAD_es-ES.ts +++ b/src/Gui/Language/FreeCAD_es-ES.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Ángulo - - + + Axis Eje - + Position Posición - + Enum Enum @@ -2336,7 +2336,7 @@ la pantalla de bienvenida Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2357,8 +2357,8 @@ la pantalla de bienvenida - - + + Existing file Archivo existente @@ -2436,53 +2436,53 @@ Nota: tus cambios se aplicarán cuando cambies de banco de trabajo Instrucciones del tutorial: Haga clic en el botón derecho de la flecha (->), luego cierre. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrucciones del tutorial: Haga clic en el botón derecho de la flecha (->), luego cierre. - + Renaming Macro File Renombrar el archivo de la Macro - - + + Enter new name: Introduce nuevo nombre: - - + + '%1' already exists. '%1' ya existe. - + Rename Failed Error al Re-nombrarlo - + Failed to rename to '%1'. Perhaps a file permission error? Error al cambiar el nombre a '%1'. ¿Tal vez un error de permiso de archivo? - + Duplicate Macro Duplicar Macro - + Duplicate Failed Error al Duplicar - + Failed to duplicate to '%1'. Perhaps a file permission error? Error al duplicar en '%1'. @@ -2864,42 +2864,42 @@ Especifique otro directorio, por favor. Gui::Dialog::DlgPreferencesImp - + Clear user settings Borrar ajustes del usuario - + Do you want to clear all your user settings? ¿Desea borrar todos los ajustes del usuario? - + If you agree all your settings will be cleared. Si acepta se borrarán todos los ajustes. - + Wrong parameter Parámetro incorrecto - + Restart required Es necesario reiniciar - + You must restart FreeCAD for changes to take effect. Debe reiniciar FreeCAD para que los cambios surtan efecto. - + Restart now Reiniciar ahora - + Restart later Reiniciar más adelante @@ -4078,32 +4078,32 @@ get date suffix according to the specified format Los archivos de copia de seguridad tendrán la extensión '.FCbak' y los nombres de archivo tendrán el sufijo de fecha de acuerdo al formato especificado - + Use date and FCBak extension Usar fecha y extensión FCBak - + Date format Formato de fecha - + Document objects Objetos del documento - + Allow objects to have same label Permitir que los objetos tengan el mismo rótulo - + Allow duplicate object labels in one document Permitir etiquetas de objetos duplicadas en un documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4116,22 +4116,22 @@ Un documento parcialmente cargado no puede ser editado. Haga doble clic en el ic del documento en la vista de árbol para volver a cargarlo completamente. - + Disable partial loading of external linked objects Deshabilita la carga parcial de objetos vinculados externos - + Authoring and License Autoría y licencia - + Author name Nombre del autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4140,32 +4140,32 @@ Mantener en blanco para anonimato. También puede utilizar el formulario: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file El campo 'Última modificación por' se establecerá al autor especificado al guardar el archivo - + Set on save Establecer al guardar - + Company Organización - + Default company name to use for new files Nombre de empresa predeterminado a usar para nuevos archivos - + Default license Licencia por defecto - + Default license for new documents Licencia predeterminada para nuevos documentos @@ -4235,12 +4235,12 @@ También puede utilizar el formulario: John Doe <john@doe.com>Otros - + License URL URL de la licencia - + URL describing more about the license URL que describe más sobre la licencia @@ -6813,7 +6813,7 @@ Desea guardar los cambios? Gui::MainWindow - + Dimension Cota @@ -6843,32 +6843,32 @@ Desea guardar los cambios? Cerrar todo - + Toggles this toolbar Muestra u oculta la barra de herramientas - + Toggles this dockable window Alterna esta ventana acoplable - - + + Unsaved document Documento sin guardar - + The exported object contains external link. Please save the documentat least once before exporting. El objeto exportado contiene un vínculo externo. Por favor, guarde el documento al menos una vez antes de exportar. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Para vincular a objetos externos, el documento debe guardarse al menos una vez. @@ -7103,17 +7103,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Restante: %1 - + Aborting Abortar - + Do you really want to abort the operation? Realmente quieres abortar la operación? @@ -7126,12 +7126,12 @@ How do you want to proceed? Restante: %1 - + Aborting Abortar - + Do you really want to abort the operation? Realmente quieres abortar la operación? @@ -7139,7 +7139,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Cambiar el objeto vinculado @@ -7147,12 +7147,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Error - + Object not found Objeto no encontrado @@ -7368,17 +7368,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Abrir archivo %1 - + File not found Archivo no encontrado - + The file '%1' cannot be opened. El archivo '%1' no se puede abrir. @@ -7386,22 +7386,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none ninguno - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Ejecutar macro %1 (Shift+clic para editar) el atajo de teclado: %2 - + File not found Archivo no encontrado - + The file '%1' cannot be opened. El archivo '%1' no se puede abrir. @@ -8232,8 +8232,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Seleccionar el escenario '%1' @@ -9196,12 +9195,12 @@ Por favor abra una ventana del navegador y escriba en ella: http://localhost:%1. La %1 no está vacía, ¿borrar su contenido? - + Translation: Traslación: - + Rotation: Rotación: @@ -10347,7 +10346,7 @@ la copia actual se perderá. Crea un documento vacío nuevo - + Unnamed Sin nombre @@ -12622,17 +12621,17 @@ después de que FreeCAD inicie Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra de herramientas - + Left corner Esquina izquierda - + Right corner Esquina derecha diff --git a/src/Gui/Language/FreeCAD_eu.ts b/src/Gui/Language/FreeCAD_eu.ts index e9fd8335c2..5f544010db 100644 --- a/src/Gui/Language/FreeCAD_eu.ts +++ b/src/Gui/Language/FreeCAD_eu.ts @@ -47,24 +47,24 @@ <hutsik> - - + + Angle Angelua - - + + Axis Ardatza - + Position Posizioa - + Enum Enum @@ -2334,7 +2334,7 @@ abioko pantaila erakutsiko du. Gui::Dialog::DlgMacroExecuteImp - + Macros Makroak @@ -2355,8 +2355,8 @@ abioko pantaila erakutsiko du. - - + + Existing file Lehendik dagoen fitxategia @@ -2434,53 +2434,53 @@ Oharra: Zure aldaketak aplikatzeko, lan-mahaiz aldatu behar duzu Bisita gidatuaren jarraibideak: egin klik eskuin-gezian (->) eta Itxi. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Bisita gidatuaren jarraibideak: Egin klik 'Berria' aukeran, sakatu eskuin-gezia (->) eta Itxi. - + Renaming Macro File Makro-fitxategiaren izena aldatzen - - + + Enter new name: Sartu izen berria: - - + + '%1' already exists. '%1' badago lehendik. - + Rename Failed Izena aldatzeak huts egin du - + Failed to rename to '%1'. Perhaps a file permission error? Ezin izan da '%1' izenez aldatu. Fitxategi-baimenen arazo bat ote da? - + Duplicate Macro Bikoiztu makroa - + Duplicate Failed Bikoizketak huts egin du - + Failed to duplicate to '%1'. Perhaps a file permission error? Ezin izan da '%1' bikoiztu. @@ -2861,42 +2861,42 @@ Zehaztu beste direktorio, mesedez. Gui::Dialog::DlgPreferencesImp - + Clear user settings Garbitu erabiltzailearen ezarpenak - + Do you want to clear all your user settings? Zure erabiltzailearen ezarpen guztiak garbitu nahi dituzu? - + If you agree all your settings will be cleared. Onartzen baduzu, zure ezarpen guztiak garbituko dira. - + Wrong parameter Parametro okerra - + Restart required Berrabiarazi egin behar da - + You must restart FreeCAD for changes to take effect. FreeCAD berrabiarazi behar da aldaketak indarrean sartu daitezen. - + Restart now Berrabiarazi orain - + Restart later Berrabiarazi geroago @@ -4084,32 +4084,32 @@ fitxategi-izenek dataren atzizkia izango dute, zehaztutako formatuaren arabera - + Use date and FCBak extension Erabili dataren eta FCBak hedapena - + Date format Data-formatua - + Document objects Dokumentu-objektuak - + Allow objects to have same label Onartu objektuek etiketa bera izan dezaten - + Allow duplicate object labels in one document Onartu objektu-etiketa bikoiztuak dokumentu batean - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4122,22 +4122,22 @@ Partzialki kargatutako dokumentu bat ezin da editatu. Egin klik bikoitza dokumentuaren ikonoan, zuhaitz-bistan, hura osorik kargatzeko. - + Disable partial loading of external linked objects Desgaitu kanpoko objektu estekatuen kargatzen partziala - + Authoring and License Egiletza eta lizentzia - + Author name Egilearen izena - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4146,32 +4146,32 @@ Utzi hutsik anonimotasuna bermatzeko. Honako forma ere erabili dezakezu: Jon Inor <jon@inor.com> - + The field 'Last modified by' will be set to specified author when saving the file 'Azken aldaketa' eremuan, zehaztutako egilea ezarriko da fitxategia gordetzean - + Set on save Ezarri gordetzean - + Company Enpresa - + Default company name to use for new files Fitxategi berrietarako erabiliko den enpresa-izen lehenetsia - + Default license Lizentzia lehenetsia - + Default license for new documents Dokumentu berrietarako lizentzia lehenetsia @@ -4241,12 +4241,12 @@ Honako forma ere erabili dezakezu: Jon Inor <jon@inor.com> Beste bat - + License URL Lizentziaren URLa - + URL describing more about the license Lizentziari buruzko deskribapen luzeagoa duen URLa @@ -6824,7 +6824,7 @@ Aldaketak gorde nahi dituzu? Gui::MainWindow - + Dimension Kota @@ -6854,32 +6854,32 @@ Aldaketak gorde nahi dituzu? Itxi dena - + Toggles this toolbar Tresna-barra hau aktibatzen/desaktibatzen du - + Toggles this dockable window Aktibatu/desaktibatu leiho atrakagarri hau - - + + Unsaved document Gorde gabeko dokumentua - + The exported object contains external link. Please save the documentat least once before exporting. Esportatutako objektuak kanpoko estekak ditu. Gorde dokumentua gutxienez behin hura esportatu baino lehen. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Kanpoko objektuekin estekatzeko, dokumentua gutxienez behin gorde behar da. @@ -7117,17 +7117,17 @@ Nola jarraitu nahi duzu? Gui::ProgressBar - + Remaining: %1 Falta da: %1 - + Aborting Abortatzen - + Do you really want to abort the operation? Benetan eragiketa bertan behera utzi nahi duzu? @@ -7140,12 +7140,12 @@ Nola jarraitu nahi duzu? Falta da: %1 - + Aborting Abortatzen - + Do you really want to abort the operation? Benetan eragiketa bertan behera utzi nahi duzu? @@ -7153,7 +7153,7 @@ Nola jarraitu nahi duzu? Gui::PropertyEditor::LinkLabel - + Change the linked object Aldatu estekatutako objektua @@ -7161,12 +7161,12 @@ Nola jarraitu nahi duzu? Gui::PropertyEditor::LinkSelection - + Error Errorea - + Object not found Ez da objektua aurkitu @@ -7382,17 +7382,17 @@ Datuak gorde gabe irten nahi duzu? Gui::RecentFilesAction - + Open file %1 Ireki %1 fitxategia - + File not found Fitxategia ez da aurkitu - + The file '%1' cannot be opened. '%1' fitxategia ezin da ireki. @@ -7400,22 +7400,22 @@ Datuak gorde gabe irten nahi duzu? Gui::RecentMacrosAction - + none bat ere ez - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Exekutatu %1 makroa (Shift+klik editatzeko), teklatu-lasterbidea: %2 - + File not found Fitxategia ez da aurkitu - + The file '%1' cannot be opened. '%1' fitxategia ezin da ireki. @@ -8246,8 +8246,7 @@ Beste direktorio bat aukeratu nahi al duzu? Gui::WorkbenchGroup - - + Select the '%1' workbench Hautatu '%1' lan-mahaia @@ -9212,12 +9211,12 @@ Mesedez, ireki nabigatzaile-leiho bat eta idatzi: http://localhost:%1.%1 ez dago hutsik, bere edukiak ere ezabatu nahi dituzu? - + Translation: Translazioa: - + Rotation: Biraketa: @@ -10362,7 +10361,7 @@ egindako aldaketak galdu egingo direla. Sortu dokumentu huts berri bat - + Unnamed Izenik gabea @@ -12637,17 +12636,17 @@ FreeCAD abiarazi ondoren Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Tresna-barra - + Left corner Ezkerreko izkina - + Right corner Eskuineko izkina diff --git a/src/Gui/Language/FreeCAD_fi.ts b/src/Gui/Language/FreeCAD_fi.ts index dc56d79ce1..7d9d2b2e73 100644 --- a/src/Gui/Language/FreeCAD_fi.ts +++ b/src/Gui/Language/FreeCAD_fi.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Kulma - - + + Axis Akseli - + Position Sijainti - + Enum Enum @@ -2337,7 +2337,7 @@ väläysikkunan. Gui::Dialog::DlgMacroExecuteImp - + Macros Makrot @@ -2358,8 +2358,8 @@ väläysikkunan. - - + + Existing file Olemassa oleva tiedosto @@ -2437,53 +2437,53 @@ Huomautus: muutokset otetaan käyttöön, kun seuraavan kerran vaihdat työpöyt Kävelyohjeet: Napsauta oikeaa nuolinäppäintä (->), ja sulje se. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Kävelyohjeet: Klikkaa uusi, napsauta oikeaa nuolinäppäintä (->), ja sulje se. - + Renaming Macro File Uudelleennimetään Makrotiedosto - - + + Enter new name: Syötä uusi nimi: - - + + '%1' already exists. '%1' on jo olemassa. - + Rename Failed Uudelleennimeäminen epäonnistui - + Failed to rename to '%1'. Perhaps a file permission error? Ei voitu nimetä uudelleen '%1'. Ehkä tiedoston käyttöoikeusvirhe? - + Duplicate Macro Monista makro - + Duplicate Failed Monistaminen epäonnistui - + Failed to duplicate to '%1'. Perhaps a file permission error? Ei voitu monistaa '%1':ksi. @@ -2865,42 +2865,42 @@ Määritä toinen hakemisto, ole hyvä. Gui::Dialog::DlgPreferencesImp - + Clear user settings Poista käyttäjäasetukset - + Do you want to clear all your user settings? Haluatko tyhjentää kaikki käyttäjän asetukset? - + If you agree all your settings will be cleared. Jos hyväksyt, kaikki asetuksesi poistetaan. - + Wrong parameter Väärä parametri - + Restart required Uudelleenkäynnistys vaaditaan - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4085,32 +4085,32 @@ get date suffix according to the specified format saavat mukaan päivämäärän määritellyn muodon mukaan - + Use date and FCBak extension Käytä päivämäärää ja FCBak-tiedostopäätettä - + Date format Päiväyksen muoto - + Document objects Asiakirjan objektit - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Salli monistettuja objektien nimilappuja asiakirjassa - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4123,22 +4123,22 @@ Osittain ladattua asiakirjaa ei voi muokata. Kaksoisnapsauta dokumentin pienoiskuvaketta puunäkymässä ladataksesi se kokonaan. - + Disable partial loading of external linked objects Poista käytöstä ulkoisten linkitettyjen kohteiden osittainen lataus - + Authoring and License Kirjoittaminen ja lisenssi - + Author name Tekijän nimi - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4147,32 +4147,32 @@ Säilytä tyhjänä nimettömyyttä varten. Voit myös käyttää muotoa: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Kenttä 'Viimeksi muokannut' asetetaan määriteltyyn tekijään kun tallennettaan tiedostoa - + Set on save Aseta tallennettaessa - + Company Yritys - + Default company name to use for new files Yrityksen oletusnimi, jota käytetään uusiin tiedostoihin - + Default license Oletuslisenssi - + Default license for new documents Oletuslisenssi uusille asiakirjoille @@ -4242,12 +4242,12 @@ Voit myös käyttää muotoa: John Doe <john@doe.com> Muu - + License URL Lisenssin URL-osoite - + URL describing more about the license URL-osoite, joka kuvaa lisenssiä tarkemmin @@ -6822,7 +6822,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Mitta @@ -6852,32 +6852,32 @@ Do you want to save your changes? Sulje kaikki - + Toggles this toolbar Näyttä tai piilota tämä työkalurivi - + Toggles this dockable window Näytä tai piilota telakointiasema ikkunasta - - + + Unsaved document Tallentamaton asiakirja - + The exported object contains external link. Please save the documentat least once before exporting. Viety objekti sisältää ulkoisen linkin. Tallenna asiakirja vähintään kerran ennen vientiä. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Linkittääksesi ulkoisiin objekteihin, asiakirja on tallennettava vähintään kerran. @@ -7114,17 +7114,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Jäljellä: %1 - + Aborting Keskeytetään - + Do you really want to abort the operation? Haluatko todella keskeyttää toiminnon? @@ -7137,12 +7137,12 @@ How do you want to proceed? Jäljellä: %1 - + Aborting Keskeytetään - + Do you really want to abort the operation? Haluatko todella keskeyttää toiminnon? @@ -7150,7 +7150,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Vaihda linkitetty objekti @@ -7158,12 +7158,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Virhe - + Object not found Objektia ei löydy @@ -7378,17 +7378,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Avaa tiedosto %1 - + File not found Tiedostoa ei löydy - + The file '%1' cannot be opened. Tiedostoa '%1' ei voi avata. @@ -7396,22 +7396,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none ei mitään - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Tiedostoa ei löydy - + The file '%1' cannot be opened. Tiedostoa '%1' ei voi avata. @@ -8242,8 +8242,7 @@ Haluatko valita toisen hakemiston? Gui::WorkbenchGroup - - + Select the '%1' workbench Valitse työpöytä '%1' @@ -9206,12 +9205,12 @@ Please open a browser window and type in: http://localhost:%1. The %1 ei ole tyhjä, poista myös sen sisältö? - + Translation: Sijainti: - + Rotation: Kierto: @@ -10358,7 +10357,7 @@ the current copy will be lost. Luo uusi tyhjä asiakirja - + Unnamed Nimetön @@ -12633,17 +12632,17 @@ FreeCAD käynnistyksen jälkeen Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Työkalupalkki - + Left corner Vasen kulma - + Right corner Oikea kulma diff --git a/src/Gui/Language/FreeCAD_fr.ts b/src/Gui/Language/FreeCAD_fr.ts index 6a01d44498..7a7f387656 100644 --- a/src/Gui/Language/FreeCAD_fr.ts +++ b/src/Gui/Language/FreeCAD_fr.ts @@ -47,24 +47,24 @@ <vide> - - + + Angle Angle - - + + Axis Axe - + Position Position - + Enum Enumération @@ -507,7 +507,7 @@ Remove - Enlever + Supprimer @@ -960,7 +960,7 @@ while doing a left or right click and move the mouse up or down Choose Window - Choisir la fenêtre + Choisir une fenêtre @@ -1181,7 +1181,7 @@ Si ce n'est pas coché, alors la propriété doit être nommée de manière uniq Remove - Enlever + Supprimer @@ -1394,7 +1394,7 @@ same time. The one with the highest priority will be triggered. All - Tous + Tout @@ -2136,7 +2136,7 @@ l'écran de démarrage Enable splash screen at start up - Activer la page de garde au démarrage + Activer l'écran d'accueil au démarrage @@ -2335,7 +2335,7 @@ l'écran de démarrage Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2347,7 +2347,7 @@ l'écran de démarrage Macro file - Fichier de macro + Fichier de la macro @@ -2356,8 +2356,8 @@ l'écran de démarrage - - + + Existing file Fichier existant @@ -2434,52 +2434,52 @@ Remarque : vos modifications seront appliquées lorsque vous changerez d'atelier Instructions de passage : Cliquez sur la flèche droite (->), puis Fermez. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instructions de passage : Cliquez sur le bouton Nouveau, puis sur la flèche droite (->), puis sur Fermer. - + Renaming Macro File Renommer le fichier de macro - - + + Enter new name: Indiquer un nouveau nom : - - + + '%1' already exists. '%1' existe déjà. - + Rename Failed Échec du renommage - + Failed to rename to '%1'. Perhaps a file permission error? Impossible de renommer en "%1". Peut-être une erreur de permission des fichiers ? - + Duplicate Macro Dupliquer la macro - + Duplicate Failed Échec de la duplication - + Failed to duplicate to '%1'. Perhaps a file permission error? Impossible de dupliquer "%1". @@ -2536,7 +2536,7 @@ Peut-être une erreur de permission du fichier ? The macro directory doesn't exist. Please, choose another one. - Le répertoire de macro n'existe pas. Veuillez en choisir un autre. + Le répertoire des macros n'existe pas. Veuillez en choisir un autre. @@ -2556,7 +2556,7 @@ Peut-être une erreur de permission du fichier ? Choose macro directory - Choisir le répertoire de macro + Choisir le répertoire des macros @@ -2861,42 +2861,42 @@ Veuillez spécifier un autre répertoire. Gui::Dialog::DlgPreferencesImp - + Clear user settings Effacer les paramètres personnels - + Do you want to clear all your user settings? Voulez-vous effacer tous vos paramètres personnels ? - + If you agree all your settings will be cleared. Si vous acceptez, tous vos paramètres personnels seront effacés. - + Wrong parameter Paramètre erroné - + Restart required Redémarrage requis - + You must restart FreeCAD for changes to take effect. Vous devez redémarrer FreeCAD pour que les modifications soient prises en compte. - + Restart now Redémarrer maintenant - + Restart later Redémarrer plus tard @@ -3292,7 +3292,7 @@ de la console Python vers la Vue rapport Redirect internal Python errors to report view - Rediriger les erreurs internes de Python vers la vue rapport + Rediriger les erreurs internes de Python vers la Vue rapport @@ -4074,32 +4074,32 @@ get date suffix according to the specified format récupèrent le suffixe de date selon le format spécifié - + Use date and FCBak extension Utiliser la date et l'extension FCBak - + Date format Format de date - + Document objects - objets Documents + Objets documents - + Allow objects to have same label Autoriser les objets à avoir la même étiquette - + Allow duplicate object labels in one document Autoriser la duplication des étiquettes dans un document - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4112,22 +4112,22 @@ Un document partiellement chargé ne peut pas être édité. Double-cliquez sur dans la vue arborescence pour le recharger complètement. - + Disable partial loading of external linked objects Désactiver le chargement partiel des objets externes liés - + Authoring and License Création et Licence - + Author name Nom de l'auteur - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4136,32 +4136,32 @@ Gardez vide pour l'anonymat. Vous pouvez également utiliser la forme : John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Le champ 'Dernière modification par' sera défini à l'auteur spécifié lors de l'enregistrement du fichier - + Set on save Défini lors de la sauvegarde - + Company Société - + Default company name to use for new files Société par défaut à utiliser pour les nouveaux fichiers - + Default license Licence par défaut - + Default license for new documents Licence par défaut pour les nouveaux documents @@ -4231,12 +4231,12 @@ Vous pouvez également utiliser la forme : John Doe <john@doe.com>Autre - + License URL URL de licence - + URL describing more about the license L'URL décrit plus en détail la licence @@ -4544,7 +4544,7 @@ Vous pouvez également utiliser la forme : John Doe <john@doe.com> Macro recording settings - Réglages d'enregistrement d'une macro + Paramètres d'enregistrement des macros @@ -4781,7 +4781,7 @@ Vue en rotation libre : la pièce sera pivotée autour de l’axe z. Turntable - Table tournante + Vue en rotation @@ -5257,7 +5257,7 @@ Pour ajouter un calcul, appuyez sur Valider dans le champ de saisie de la valeur Unit system to be used for the Quantity The preference system is the one set in the general preferences. - Système d'unité à utiliser pour la Quantité + Système d'unité à utiliser pour les quantités. Le système par défaut est celui défini dans les préférences générales. @@ -5731,27 +5731,27 @@ La colonne "État" indique si le document a pu être récupéré. New string item - Nouvel article chaîne + Nouvel élément type chaîne de caractère New float item - Nouvel article flottant + Nouvel élément type variable flottante New integer item - Nouvel article entier + Nouvel élément type entier New unsigned item - Nouvel article non signé + Nouvel article type non signé New Boolean item - Nouvel article booléen + Nouvel élément type booléen @@ -5845,7 +5845,7 @@ La colonne "État" indique si le document a pu être récupéré. Euler angles (zy'x'') - Angle d'Euler (zy'x'') + Angles d'Euler (zy'x'') @@ -5890,7 +5890,7 @@ La colonne "État" indique si le document a pu être récupéré. Apply incremental changes - Appliquer les modifications incrémentielles + Appliquer des modifications incrémentielles @@ -6130,7 +6130,7 @@ La colonne "État" indique si le document a pu être récupéré. All - Tous + Tout @@ -6555,7 +6555,7 @@ Voulez enregistrer les modifications ? Remove - Enlever + Supprimer @@ -6812,7 +6812,7 @@ Voulez enregistrer les modifications ? Gui::MainWindow - + Dimension Dimension @@ -6842,32 +6842,32 @@ Voulez enregistrer les modifications ? Fermer tout - + Toggles this toolbar Bascule cette barre d'outils - + Toggles this dockable window Bascule cette fenêtre dockable - - + + Unsaved document Document non sauvegardé - + The exported object contains external link. Please save the documentat least once before exporting. L'objet exporté contient un lien externe. Veuillez enregistrer le document au moins une fois avant l'exportation. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Pour créer un lien vers des objets externes, le document doit être enregistré au moins une fois. @@ -7102,17 +7102,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Restant : %1 - + Aborting Abandon - + Do you really want to abort the operation? Voulez-vous vraiment abandonner l'opération? @@ -7125,12 +7125,12 @@ How do you want to proceed? Restant : %1 - + Aborting Abandon - + Do you really want to abort the operation? Voulez-vous vraiment abandonner l'opération? @@ -7138,7 +7138,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Modifiez l’objet lié @@ -7146,12 +7146,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Erreur - + Object not found Objet introuvable @@ -7367,17 +7367,17 @@ Voulez vous quitter sans sauvegarder vos données? Gui::RecentFilesAction - + Open file %1 Ouvrir le fichier %1 - + File not found Fichier introuvable - + The file '%1' cannot be opened. Impossible d'ouvrir le fichier '%1'. @@ -7385,22 +7385,22 @@ Voulez vous quitter sans sauvegarder vos données? Gui::RecentMacrosAction - + none aucun - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Lancer la macro %1 (Maj+clic pour modifier) le raccourci clavier : %2 - + File not found Fichier introuvable - + The file '%1' cannot be opened. Impossible d'ouvrir le fichier '%1'. @@ -7601,7 +7601,7 @@ Do you want to specify another directory? Remove - Enlever + Supprimer @@ -7759,7 +7759,7 @@ Do you want to specify another directory? Press SHIFT button - Appuyez sur la touche SHIFT + Appuyez sur la touche Maj @@ -8229,8 +8229,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Sélectionner l'atelier '%1' @@ -8414,7 +8413,7 @@ Do you want to specify another directory? Selection view - Afficher la sélection + Vue de la sélection @@ -8739,7 +8738,7 @@ Do you want to continue? New text item - Nouvel article texte + Nouvel élément type texte @@ -8751,7 +8750,7 @@ Do you want to continue? New integer item - Nouvel article entier + Nouvel élément type entier @@ -8767,18 +8766,18 @@ Do you want to continue? New unsigned item - Nouvel article non signé + Nouvel article type non signé New float item - Nouvel article flottant + Nouvel élément type variable flottante New Boolean item - Nouvel article booléen + Nouvel élément type booléen @@ -9193,12 +9192,12 @@ Veuillez ouvrir une fenêtre de navigateur et saisir : http://localhost:%1.Le %1 n’est pas vide, supprimez son contenu quand même ? - + Translation: Translation : - + Rotation: Rotation : @@ -9446,7 +9445,7 @@ apportée à la copie en cours sera perdue. Box selection - Sélection par boîte + Sélectionner par une boîte @@ -9516,7 +9515,7 @@ apportée à la copie en cours sera perdue. Alignment... - Alignement... + Aligner... @@ -9690,7 +9689,7 @@ apportée à la copie en cours sera perdue. Opens a dialog to let you execute a recorded macro - Ouvre une boite de dialogue pour exécuter une macro enregistrée + Ouvrir une boite de dialogue pour exécuter une macro enregistrée @@ -9704,7 +9703,7 @@ apportée à la copie en cours sera perdue. Execute the macro in the editor - Exécutez la macro dans l'éditeur + Exécuter la macro dans l'éditeur @@ -10345,7 +10344,7 @@ apportée à la copie en cours sera perdue. Créer un nouveau document vide - + Unnamed Sans nom @@ -10418,7 +10417,7 @@ apportée à la copie en cours sera perdue. Create part - Crée une pièce + Créer une pièce @@ -10897,7 +10896,7 @@ apportée à la copie en cours sera perdue. &Tile - &Mosaïque + Fenêtres en &mosaïque @@ -11239,7 +11238,7 @@ apportée à la copie en cours sera perdue. Fits the whole content on the screen - Affiche l'ensemble du contenu à l'écran + Afficher l'ensemble du contenu à l'écran @@ -11247,13 +11246,13 @@ apportée à la copie en cours sera perdue. Fit selection - Affiche la sélection + Afficher la sélection Fits the selected content on the screen - Affiche le contenu sélectionné à l'écran + Afficher le contenu sélectionné à l'écran @@ -11533,7 +11532,9 @@ apportée à la copie en cours sera perdue. What's This - Qu'est-ce que c'est + En utilisant cette fonction, puis en cliquant sur +une autre fonction, une page d'explications de +cette dernière fonction s'ouvre. @@ -11569,7 +11570,7 @@ apportée à la copie en cours sera perdue. Workbench - Atelier + Ateliers @@ -12107,7 +12108,7 @@ Voulez-vous tout de même continuer ? Workbench - Atelier + Ateliers @@ -12157,7 +12158,7 @@ Voulez-vous tout de même continuer ? &Windows - &Fenêtre + Fe&nêtre @@ -12620,17 +12621,17 @@ après le lancement de FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barre d'outils - + Left corner Coin gauche - + Right corner Coin droit diff --git a/src/Gui/Language/FreeCAD_gl.ts b/src/Gui/Language/FreeCAD_gl.ts index ddad5743cc..c423a0d182 100644 --- a/src/Gui/Language/FreeCAD_gl.ts +++ b/src/Gui/Language/FreeCAD_gl.ts @@ -47,24 +47,24 @@ <baleiro> - - + + Angle Ángulo - - + + Axis Eixo - + Position Position - + Enum Enum @@ -2337,7 +2337,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2358,8 +2358,8 @@ display the splash screen - - + + Existing file Ficheiro existente @@ -2437,53 +2437,53 @@ Note: your changes will be applied when you next switch workbenches Walkthrough instructions: Click right arrow button (->), then Close. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Walkthrough instructions: Click New, then right arrow (->) button, then Close. - + Renaming Macro File Renomear Arquivo Macro - - + + Enter new name: Inserir novo nome: - - + + '%1' already exists. '%1' xa existe. - + Rename Failed Fallou o renomeado - + Failed to rename to '%1'. Perhaps a file permission error? Fallo ao renomear o '%1'. Pode ser un erro do permiso do ficheiro? - + Duplicate Macro Duplicar Macro - + Duplicate Failed Duplicado Errado - + Failed to duplicate to '%1'. Perhaps a file permission error? Erro ao duplicar a '%1'. @@ -2865,42 +2865,42 @@ Por favor, especifique outro directorio. Gui::Dialog::DlgPreferencesImp - + Clear user settings Limpar axustes de usuario - + Do you want to clear all your user settings? Quere desbotar tódolos axustes de usuario? - + If you agree all your settings will be cleared. Se acepta desbotaranse tódolos axustes feitos. - + Wrong parameter Parámetro incorrecto - + Restart required Restart required - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4086,32 +4086,32 @@ get date suffix according to the specified format get date suffix according to the specified format - + Use date and FCBak extension Use date and FCBak extension - + Date format Formato de data - + Document objects Obxectos de documento - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Permitir etiquetas de obxectos duplicadas nun documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4124,22 +4124,22 @@ A partially loaded document cannot be edited. Double click the document icon in the tree view to fully reload it. - + Disable partial loading of external linked objects Disable partial loading of external linked objects - + Authoring and License Autoría e licenza - + Author name Nome do autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4148,32 +4148,32 @@ Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file The field 'Last modified by' will be set to specified author when saving the file - + Set on save Establecer o gardar - + Company Empresa - + Default company name to use for new files Nome da empresa a se usar para novos documentos - + Default license Licenza por defecto - + Default license for new documents A licenza por defecto para os novos documentos @@ -4243,12 +4243,12 @@ You can also use the form: John Doe <john@doe.com> Outros - + License URL URL da licenza - + URL describing more about the license URL que describe máis sobre a licenza @@ -6824,7 +6824,7 @@ Quere gardar os cambios? Gui::MainWindow - + Dimension Acoutamento @@ -6854,32 +6854,32 @@ Quere gardar os cambios? Pechar todo - + Toggles this toolbar Amosa/agocha esta barra de ferramentas - + Toggles this dockable window Alterna esta xanela acoplable - - + + Unsaved document Documento non gardado - + The exported object contains external link. Please save the documentat least once before exporting. The exported object contains external link. Please save the documentat least once before exporting. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? To link to external objects, the document must be saved at least once. @@ -7119,17 +7119,17 @@ No lado dereito escolléronse %2. Gui::ProgressBar - + Remaining: %1 Faltan: %1 - + Aborting A abortar - + Do you really want to abort the operation? Quere de verdade abortar a operación? @@ -7142,12 +7142,12 @@ No lado dereito escolléronse %2. Faltan: %1 - + Aborting A abortar - + Do you really want to abort the operation? Quere de verdade abortar a operación? @@ -7155,7 +7155,7 @@ No lado dereito escolléronse %2. Gui::PropertyEditor::LinkLabel - + Change the linked object Trocar obxecto ligado @@ -7163,12 +7163,12 @@ No lado dereito escolléronse %2. Gui::PropertyEditor::LinkSelection - + Error Erro - + Object not found Obxecto non atopado @@ -7384,17 +7384,17 @@ Quere saír sen gardar os seus datos? Gui::RecentFilesAction - + Open file %1 Abrir o ficheiro %1 - + File not found Ficheiro non atopado - + The file '%1' cannot be opened. O ficheiro '%1', non se pode abrir. @@ -7402,22 +7402,22 @@ Quere saír sen gardar os seus datos? Gui::RecentMacrosAction - + none ningún - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Ficheiro non atopado - + The file '%1' cannot be opened. O ficheiro '%1', non se pode abrir. @@ -8248,8 +8248,7 @@ Quere especificar outro directorio? Gui::WorkbenchGroup - - + Select the '%1' workbench Escolme o banco de traballo '%1' @@ -9211,12 +9210,12 @@ Por favor, abra un buscador e escriba: http://localhost:%1. A %1 non está baleira, eliminar o seu contido, así a todo? - + Translation: Tradución: - + Rotation: Rotación: @@ -10363,7 +10362,7 @@ the current copy will be lost. Abrir un documento novo baleiro - + Unnamed Sen nome @@ -12638,17 +12637,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra de ferramentas - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_hr.ts b/src/Gui/Language/FreeCAD_hr.ts index fb8509ba17..ef859565df 100644 --- a/src/Gui/Language/FreeCAD_hr.ts +++ b/src/Gui/Language/FreeCAD_hr.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Kut - - + + Axis Osi - + Position Položaj - + Enum Nabrajanja @@ -85,7 +85,7 @@ Run test cases to verify console messages - Run test cases to verify console messages + Pokreni test za provjeru poruka konzole @@ -98,7 +98,7 @@ Clear all visible measurements - Clear all visible measurements + Obriši sva vidljiva mjerenja @@ -111,7 +111,7 @@ Turn on or off the display of all measurements - Turn on or off the display of all measurements + Uključi ili isključi prikaz svih mjerenja @@ -228,7 +228,7 @@ Edit image - Edit image + Uredi sliku @@ -428,7 +428,7 @@ The object will be edited using the mode defined internally to be the most appropriate for the object type - The object will be edited using the mode defined internally to be the most appropriate for the object type + Objekt će se uređivati pomoću definiranog unutarnjeg načina rada kako bi bio najprimjereniji za vrstu objekta @@ -438,7 +438,7 @@ The object will have its placement editable with the Std TransformManip command - The object will have its placement editable with the Std TransformManip command + Objekt će imati svoju poziciju uređivu pomoću naredbe Std TransformManip @@ -448,7 +448,7 @@ This edit mode is implemented as available but currently does not seem to be used by any object - This edit mode is implemented as available but currently does not seem to be used by any object + Ovaj način uređivanja implementiran je kao dostupan, ali trenutno se ne čini da ga koristi niti jedan objekt @@ -458,7 +458,7 @@ The object will have the color of its individual faces editable with the Part FaceColors command - The object will have the color of its individual faces editable with the Part FaceColors command + Objekt će imati boju svojih pojedinačnih površina uređivu pomoću naredbe Part FaceColors @@ -1273,7 +1273,7 @@ Ako se to ne označi, osobina mora biti jedinstveno imenovana i njoj se pristupa To change a current shortcut enter the new shortcut in the field below and press 'Assign'. - To change a current shortcut enter the new shortcut in the field below and press 'Assign'. + Da biste promijenili trenutnu prečicu, unesite novu prečicu u polje ispod i pritisnite 'Dodijeli'. @@ -2034,12 +2034,12 @@ točka/zarez uvijek biti ispisana. Language and number format - Language and number format + Jezični i numerički format Language: - Language: + Jezik: @@ -2049,7 +2049,7 @@ točka/zarez uvijek biti ispisana. Unit system that should be used for all parts of the application - Unit system that should be used for all parts of the application + Sustav jedinica koji se treba koristiti za sve dijelove aplikacije @@ -2074,7 +2074,7 @@ točka/zarez uvijek biti ispisana. Substitute decimal separator - Substitute decimal separator + Zamjena decimalnog razdjelnika @@ -2120,14 +2120,14 @@ to prema vašoj veličini zaslona ili vašem osobnom ukusu Size of recent file list: - Size of recent file list: + Veličina popisa nedavno korištenih datoteka: Background of the main window (when no document is opened) will consist of tiles of a special image. See the FreeCAD Wiki for details about the image. - Background of the main window (when no document is opened) will consist of tiles of a special image. -See the FreeCAD Wiki for details about the image. + Pozadina glavnog prozora (ako nije dokument otvoren) sastojat će se od pločica posebne slike. +Pojedinosti o slici potražite u FreeCAD Wiki-u. @@ -2340,7 +2340,7 @@ prikazivati splash ekran Gui::Dialog::DlgMacroExecuteImp - + Macros Makronaredbe @@ -2361,8 +2361,8 @@ prikazivati splash ekran - - + + Existing file Postojeće datoteke @@ -2441,51 +2441,51 @@ Napomena: vaše promjene primijenit će se prilikom sljedećeg prebacivanja radn Uputa za uporabu: kliknite strelicu desno (->), a zatim Zatvori. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Uputa za uporabu: kliknite Novo, zatim strelicu desno (->), a zatim Zatvori. - + Renaming Macro File Preimenovanje makronaredbi datoteka - - + + Enter new name: Unesite novi naziv: - - + + '%1' already exists. '%1' već postoji. - + Rename Failed Preimenovanje nije uspjelo - + Failed to rename to '%1'. Perhaps a file permission error? Nije moguće preimenovati u '%1'. Možda je greška dopuštenja datoteke? - + Duplicate Macro Dupliciraj makronaredbu - + Duplicate Failed Dupliciranje neuspješno - + Failed to duplicate to '%1'. Perhaps a file permission error? Nije uspjelo dupliciranje u '%1'. @@ -2865,42 +2865,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Brisanje korisničkih postavki - + Do you want to clear all your user settings? Želite li obrisati sve vaše korisničke postavke? - + If you agree all your settings will be cleared. Ako se slažete sve vaše postavke će biti izbrisane. - + Wrong parameter Pogrešan parametar - + Restart required - Restart required + Potrebno je ponovo pokretanje - + You must restart FreeCAD for changes to take effect. Za primjenu promjene, ponovo pokreni FreeCAD. - + Restart now Ponovno pokreni sada - + Restart later Ponovno pokreni kasnije @@ -3063,12 +3063,12 @@ Specify another directory, please. Failed to extract project - Failed to extract project + Nije uspjelo izdvajanje projekta Failed to create project - Failed to create project + Nije uspjelo stvaranje projekta @@ -4110,32 +4110,32 @@ get date suffix according to the specified format dobiti dodatak (sufiks) datuma prema navedenom formatu - + Use date and FCBak extension Koristite datum i FCBak ekstenziju - + Date format Format datuma - + Document objects Objekti dokumenta - + Allow objects to have same label Dopusti da objekti imaju istu oznaku - + Allow duplicate object labels in one document Dopusti dvostruke nazive objekata u jednom dokumentu - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4149,22 +4149,22 @@ ikonu u prikazu stabla da biste je u potpunosti ponovo postavili. - + Disable partial loading of external linked objects Onemogući djelomično učitavanje vanjskih povezanih objekata - + Authoring and License Stvaranje i licence - + Author name Ime autora - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4174,33 +4174,33 @@ Možete koristiti i obrazac: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Polje "Zadnja izmjena od" postavit će se navedenom autoru prilikom spremanja datoteke - + Set on save Postavi na spremanju - + Company Tvrtka - + Default company name to use for new files Zadano ime tvrtke za nove datoteke - + Default license Dodijeljena licenca - + Default license for new documents Zadana licenca za nove datoteke @@ -4270,12 +4270,12 @@ Možete koristiti i obrazac: John Doe <john@doe.com> Drugo - + License URL URL licence - + URL describing more about the license URL koji opisuje više o licenci @@ -4784,7 +4784,7 @@ Možete koristiti i obrazac: John Doe <john@doe.com> Base color for all elements - Base color for all elements + Osnovna boja za sve elemente @@ -5067,9 +5067,8 @@ vodoravni prostor u Python konzoli Area for picking elements in 3D view. Larger value eases to pick things, but can make small features impossible to select. - Area for picking elements in 3D view. -Larger value eases to pick things, but can make small features impossible to select. - + Područje za odabir elemenata u 3D prikazu. +Veća vrijednost olakšava odabir stvari, ali može onemogućiti odabir malih značajki @@ -5161,24 +5160,24 @@ Larger value eases to pick things, but can make small features impossible to sel Linear gradient - Linear gradient + Linearni gradijent Radial gradient - Radial gradient + Radijalni gradijent Top: - Top: + Vrh: Middle: - Middle: + Srednji: @@ -5205,7 +5204,7 @@ Larger value eases to pick things, but can make small features impossible to sel Bottom: - Bottom: + Dno: @@ -5235,17 +5234,17 @@ Larger value eases to pick things, but can make small features impossible to sel Central: - Central: + Središnje: Midway: - Midway: + Na pola puta: End: - End: + Kraj: @@ -6289,7 +6288,7 @@ izvorno odabranim prije otvaranja ovog dijaloškog okvira Critical messages - Critical messages + Kritične poruke @@ -6869,7 +6868,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Dimenzija @@ -6901,33 +6900,33 @@ Do you want to save your changes? Zatvori sve - + Toggles this toolbar Uključuje ove alatne trake - + Toggles this dockable window Uključuje ovaj usidrivi prozor - - + + Unsaved document Nespremljeni dokument - + The exported object contains external link. Please save the documentat least once before exporting. Izvezeni objekt sadrži vanjsku poveznicu. Prije izvoza spremite dokument barem jednom. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Za povezivanje s vanjskim objektima dokument se mora barem jednom spremiti. @@ -7022,7 +7021,7 @@ Kako želite nastaviti? Point_%1 - Point_%1 + Točka_%1 @@ -7042,12 +7041,12 @@ Kako želite nastaviti? &Align - &Align + &Podesi &Remove last point - &Remove last point + &Uklanjanje zadnje točke @@ -7057,7 +7056,7 @@ Kako želite nastaviti? &Synchronize views - &Synchronize views + &Sinhroniziraj poglede @@ -7168,17 +7167,17 @@ Kako želite nastaviti? Gui::ProgressBar - + Remaining: %1 Preostalo: %1 - + Aborting Odustani - + Do you really want to abort the operation? Želite li zaista prekinuti operaciju? @@ -7191,12 +7190,12 @@ Kako želite nastaviti? Preostalo: %1 - + Aborting Odustani - + Do you really want to abort the operation? Želite li zaista prekinuti operaciju? @@ -7204,7 +7203,7 @@ Kako želite nastaviti? Gui::PropertyEditor::LinkLabel - + Change the linked object Promjena povezanog objekta @@ -7212,12 +7211,12 @@ Kako želite nastaviti? Gui::PropertyEditor::LinkSelection - + Error Pogreška - + Object not found Objekt nije pronađen @@ -7432,17 +7431,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Otvoriti datoteku %1 - + File not found Datoteka nije pronađena - + The file '%1' cannot be opened. Datoteka '%1' ne može biti otvorena. @@ -7450,22 +7449,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none nijedan - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Pokreni makro %1 (Shift+klik za uređivanje) tipkovnički prečac: %2 - + File not found Datoteka nije pronađena - + The file '%1' cannot be opened. Datoteka '%1' ne može biti otvorena. @@ -8098,17 +8097,17 @@ Do you want to specify another directory? Tree settings - Tree settings + Postavke Stabla Show description column - Show description column + Prikaži opisni stupac Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. - Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. + Prikaži dodatni stupac prikaza stabla za opis stavke. Opis stavke može se postaviti pritiskom na F2 (ili gumb za uređivanje vašeg OS-a) ili uređivanjem svojstva 'label2'. @@ -8128,22 +8127,22 @@ Do you want to specify another directory? Show items hidden in tree view - Show items hidden in tree view + Prikaži elemente skrivene u prikazu stabla Show items that are marked as 'hidden' in the tree view - Show items that are marked as 'hidden' in the tree view + Prikaži elemente koji su označeni kao 'skriveni' u prikazu stabla Toggle visibility in tree view - Toggle visibility in tree view + Prebaci vidljivost u prikazu stabla Toggles the visibility of selected items in the tree view - Toggles the visibility of selected items in the tree view + Prebaci vidljivost označenih stavki u prikazu stabla @@ -8298,8 +8297,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Odaberite '%1' radni stol @@ -8785,7 +8783,7 @@ Do you want to continue? Save image - Save image + Spremi sliku @@ -8902,18 +8900,18 @@ Do you want to continue? Notifier - Notifier + Obavještavač Message - Message + Poruka Notifier: - Notifier: + Obavještavač: @@ -8928,7 +8926,7 @@ Do you want to continue? Too many opened non-intrusive notifications. Notifications are being omitted! - Too many opened non-intrusive notifications. Notifications are being omitted! + Previše otvorenih nenametljivih obavijesti. Obavijesti se izostavljaju! @@ -9269,12 +9267,12 @@ Please open a browser window and type in: http://localhost:%1. %1 nije prazan, izbrisati njegov sadržaj? - + Translation: Translacija: - + Rotation: Rotacija: @@ -9479,17 +9477,17 @@ trenutnu kopiju će biti izgubljene. Change image... - Change image... + Promijeni sliku... Color Gradient - Color Gradient + Nijanse boje Color Legend - Color Legend + Legenda boja @@ -9526,7 +9524,7 @@ trenutnu kopiju će biti izgubljene. Activate the box selection tool - Activate the box selection tool + Aktiviraj alat za okvir odabira @@ -9610,7 +9608,7 @@ trenutnu kopiju će biti izgubljene. Turns on or off the axis cross at the origin - Turns on or off the axis cross at the origin + Uključi/Isključi koordinatni sustav u koordinatnom početku @@ -9920,7 +9918,7 @@ trenutnu kopiju će biti izgubljene. Actions that apply to expressions - Actions that apply to expressions + Radnje koje se primjenjuju na izraze @@ -10124,7 +10122,7 @@ trenutnu kopiju će biti izgubljene. Actions that apply to link objects - Actions that apply to link objects + Radnje koje se primenjuju na objekte poveznica @@ -10313,7 +10311,7 @@ trenutnu kopiju će biti izgubljene. Step to the next line executed - Step to the next line executed + Prijeđi na slijedeću izvršnu liniju @@ -10327,7 +10325,7 @@ trenutnu kopiju će biti izgubljene. Step to the next line in this file - Step to the next line in this file + Prijeđi na slijedeću liniju u ovoj datoteci @@ -10369,7 +10367,7 @@ trenutnu kopiju će biti izgubljene. Activate the distance measurement tool - Activate the distance measurement tool + Aktiviraj alat za mjerenje udaljenosti @@ -10426,7 +10424,7 @@ trenutnu kopiju će biti izgubljene. Kreira novi prazni dokument - + Unnamed Neimenovano @@ -10648,7 +10646,7 @@ trenutnu kopiju će biti izgubljene. Set each selected object to a randomly-selected color - Set each selected object to a randomly-selected color + Pridruži svakom izabranom objektu slučajno izabranu boju @@ -11002,7 +11000,7 @@ trenutnu kopiju će biti izgubljene. Add or remove a breakpoint at this position - Add or remove a breakpoint at this position + Dodaj ili ukloni točku prekida kod ove pozicije @@ -11642,7 +11640,7 @@ trenutnu kopiju će biti izgubljene. Activate window - Activate window + Aktiviraj prozor @@ -11882,7 +11880,7 @@ trenutnu kopiju će biti izgubljene. Activate the box zoom tool - Activate the box zoom tool + Aktiviraj alat za zumiranje okvira @@ -11932,7 +11930,7 @@ trenutnu kopiju će biti izgubljene. Save image... - Save image... + Spremi sliku... @@ -11966,7 +11964,7 @@ trenutnu kopiju će biti izgubljene. Increase the zoom factor by a fixed amount - Increase the zoom factor by a fixed amount + Povećaj faktor zumiranja za fiksni iznos @@ -11980,7 +11978,7 @@ trenutnu kopiju će biti izgubljene. Decrease the zoom factor by a fixed amount - Decrease the zoom factor by a fixed amount + Smanji faktor zumiranja za fiksni iznos @@ -12193,7 +12191,7 @@ Molimo provjerite Pregled izvještaja za više pojedinosti. Clipboard - Clipboard + Međuspremnik @@ -12310,7 +12308,7 @@ Molimo provjerite Pregled izvještaja za više pojedinosti. Notification Area - Notification Area + Područje obavijesti @@ -12320,67 +12318,69 @@ Molimo provjerite Pregled izvještaja za više pojedinosti. The Notification area will appear in the status bar - The Notification area will appear in the status bar + +Područje obavijesti će se pojaviti na statusnoj traci Enable Notification Area - Enable Notification Area + Omogući obavijesti Non-intrusive notifications will appear next to the notification area in the status bar - Non-intrusive notifications will appear next to the notification area in the status bar + Nenametljive Obavijesti će se pojaviti pored područja obavijesti na statusnoj traci Enable non-intrusive notifications - Enable non-intrusive notifications + Omogući nenametljive obavijesti Additional data sources - Additional data sources + Dodatni izvori podataka Errors intended for developers will appear in the notification area - Errors intended for developers will appear in the notification area + Greške namijenjene programerima pojavit će se u području obavijesti Debug errors - Debug errors + Otklanjanje pogrešaka Warnings intended for developers will appear in the notification area - Warnings intended for developers will appear in the notification area + Upozorenja namijenjena programerima pojavit će se u području obavijesti Debug warnings - Debug warnings + Upozorenja otklanjanja pogrešaka Non-Intrusive Notifications - Non-Intrusive Notifications + +Nenametljive Obavijesti Minimum Duration: - Minimum Duration: + Najmanje trajanje: Maximum Duration: - Maximum Duration: + Najveće trajanje: Duration during which the notification will be shown (unless mouse buttons are clicked) - Duration during which the notification will be shown (unless mouse buttons are clicked) + Vremenski razmak tokom kojeg će se obavijesti prikazivati (osim ako se ne klikne na tipke miša) @@ -12391,77 +12391,77 @@ Molimo provjerite Pregled izvještaja za više pojedinosti. Minimum duration during which the notification will be shown (unless notification clicked) - Minimum duration during which the notification will be shown (unless notification clicked) + Minimalni vremenski razmak tokom kojeg će se obavijest prikazivati (osim ako se ne klikne na obavijest) Maximum Number of Notifications: - Maximum Number of Notifications: + Maksimalni broj Obavijesti: Maximum number of notifications that will be simultaneously present on the screen - Maximum number of notifications that will be simultaneously present on the screen + Maksimalni broj obavijesti koje će biti simultano prisune na zaslonu Notification width: - Notification width: + Širina Obavijesti: Width of the notification in pixels - Width of the notification in pixels + Širina obavijesti u pikselima Any open non-intrusive notifications will disappear when another window is activated - Any open non-intrusive notifications will disappear when another window is activated + Bilo koja otvorena nenametljiva Obavijest će nestati kada se aktivira drugi prozor Hide when other window is activated - Hide when other window is activated + Sakrij kada se aktivira drugi prozor Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window - Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window + Spriječi pojavljivanje nenametljivih Obavijesti kada FreeCAD prozor nije aktivan prozor Do not show when inactive - Do not show when inactive + Ne prikazuj kada je neaktivan Message List - Message List + Popis Poruka Limit the number of messages that will be kept in the list. If 0 there is no limit. - Limit the number of messages that will be kept in the list. If 0 there is no limit. + Ograničite broj poruka koje će se nalaziti u popisu. Ako je 0, nema ograničenja. Maximum Messages (0 = no limit): - Maximum Messages (0 = no limit): + Maksimalan broj Poruka (0 = bez ograničenja): Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. - Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. + Uklanja korisničke obavijesti sa popisa poruka nakon što istekne maksimalni nenametljivi vremenski razmak. Auto-remove User Notifications - Auto-remove User Notifications + Automatsko uklanjanje korisničkih Obavijesti Activation of the Notification Area only takes effect after an application restart. - Activation of the Notification Area only takes effect after an application restart. + Aktiviranje područja obavijesti stupa na snagu tek nakon ponovnog pokretanja aplikacije. @@ -12475,13 +12475,13 @@ Molimo provjerite Pregled izvještaja za više pojedinosti. <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> Currently, your system has the following workbenches:</p></body></html> - <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> -Currently, your system has the following workbenches:</p></body></html> + <html><head/><body><p>Možete da promjenite redoslijed Radnih stolova prevlačenjemi ispuštanjem. Dodatni Radni stolovi mogu biti instalirani pomoću Upravitelja nadogradnji..</p><p> +Trenutno tvoj sustav ima sledeće radne stolove:</p></body></html> Start up workbench: - Start up workbench: + Otvori radnu površinu: @@ -12530,7 +12530,7 @@ nakon pokretanja FreeCAD-a Planes - Planes + Ravnine @@ -12563,12 +12563,12 @@ nakon pokretanja FreeCAD-a Image plane settings - Image plane settings + Postavke slike na ravni Planes - Planes + Ravnine @@ -12598,27 +12598,27 @@ nakon pokretanja FreeCAD-a X distance: - X distance: + X udaljenost: Y distance: - Y distance: + Y udaljenost: Rotation : - Rotation : + Rotacija : Transparency : - Transparency : + Prozirnost : Image size - Image size + Veličina slike @@ -12633,12 +12633,12 @@ nakon pokretanja FreeCAD-a Keep aspect ratio - Keep aspect ratio + Zadržati omjer Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + Interaktivno skaliranje slike postavljanjem duljine između dvije točke slike. @@ -12648,7 +12648,7 @@ nakon pokretanja FreeCAD-a Calibration - Calibration + Kalibriranje @@ -12666,27 +12666,27 @@ nakon pokretanja FreeCAD-a If unchecked, %1 will not appear in the available workbenches. - If unchecked, %1 will not appear in the available workbenches. + Ako nije čekirano, %1 se neće pojaviti u dostupnim radnim površinama. This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. - This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. + Ovo je trenutni modul za pokretanje i mora biti omogućen. Za promjenu pogledajte Postavke/Opće/Automatsko učitavanje. Shortcut to activate this workbench. - Shortcut to activate this workbench. + Prečac za aktiviranje ove radne površine. Auto-load - Auto-load + Automatsko učitavanje If checked, %1 will be loaded automatically when FreeCAD starts up - If checked, %1 will be loaded automatically when FreeCAD starts up + Ako je uključeno %1 ovo će se automatski učitati kada se FreeCAD pokrene @@ -12706,23 +12706,23 @@ nakon pokretanja FreeCAD-a To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. - To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. + Da bi sačuvao resurse, FreeCAD ne učitava radne površine dok se ne koriste. Njihovo učitavanje može da omogući pristup dodatnim podešavanjima koja se odnose na njihovu funkcionalnost. Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Alatna traka - + Left corner Lijevi ugao - + Right corner Desni ugao @@ -12737,12 +12737,12 @@ nakon pokretanja FreeCAD-a Delete user notifications - Delete user notifications + Obriši obavijesti korisnika Delete All - Delete All + Izbriši sve @@ -12750,12 +12750,12 @@ nakon pokretanja FreeCAD-a Delete user notifications - Delete user notifications + Obriši obavijesti korisnika Delete All - Delete All + Izbriši sve @@ -12763,17 +12763,17 @@ nakon pokretanja FreeCAD-a Failed to load image file - Failed to load image file + Učitavanje datoteke slike nije uspjelo Cannot load file %1: %2 - Cannot load file %1: %2 + Nije moguće učitati datoteku %1: %2 Fit to window - Fit to window + Prilagodi prozoru @@ -12791,13 +12791,13 @@ nakon pokretanja FreeCAD-a Load image... - Load image... + Učitaj sliku... Loads an image - Loads an image + Učitava jednu sliku @@ -12805,7 +12805,7 @@ nakon pokretanja FreeCAD-a Enter desired distance between the points - Enter desired distance between the points + Unesi željenu udaljenost između tačaka @@ -12813,12 +12813,12 @@ nakon pokretanja FreeCAD-a Movable navigation cube - Movable navigation cube + Pokretna navigacijska kocka Drag and place NaviCube - Drag and place NaviCube + Prevuci i postavi Navigacijsku kocku @@ -12826,32 +12826,32 @@ nakon pokretanja FreeCAD-a FRONT - FRONT + PREDNJE TOP - TOP + GORNJE RIGHT - RIGHT + DESNO REAR - REAR + ZADNJE BOTTOM - BOTTOM + DONJE LEFT - LEFT + LIJEVO @@ -12860,7 +12860,7 @@ nakon pokretanja FreeCAD-a An error occurred -- see Report View for information - An error occurred -- see Report View for information + Nastala je greška - pogledaj Pregled izvješća za više informacija diff --git a/src/Gui/Language/FreeCAD_hu.ts b/src/Gui/Language/FreeCAD_hu.ts index 0d5ce8bb4c..e41f0272a4 100644 --- a/src/Gui/Language/FreeCAD_hu.ts +++ b/src/Gui/Language/FreeCAD_hu.ts @@ -47,24 +47,24 @@ <üres> - - + + Angle Szög - - + + Axis Tengely - + Position Pozíció - + Enum Felsorolás @@ -676,7 +676,7 @@ while doing a left or right click and move the mouse up or down Release date - Megjelenés éve + Kiadás dátuma @@ -2334,7 +2334,7 @@ megjeleníti a kezdő képet Gui::Dialog::DlgMacroExecuteImp - + Macros Makrók @@ -2355,8 +2355,8 @@ megjeleníti a kezdő képet - - + + Existing file Létező fájl @@ -2434,51 +2434,51 @@ Megjegyzés: a módosítások csak a következő munkaasztal váltásakor érvé Útmutató utasítások: Kattintson a jobbra nyílra (->), majd a majd a Bezárás gombra. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Útmutató utasítások: Kattintson az Új, majd a jobbra nyíl (->) gombra, majd a Bezárás gombra. - + Renaming Macro File Makró fájl átnevezése - - + + Enter new name: Adja meg az új nevet: - - + + '%1' already exists. '%1' már létezik. - + Rename Failed Átnevezés sikertelen - + Failed to rename to '%1'. Perhaps a file permission error? Sikertelen átnevezés: '%1'. Talán fájl jogosultság hiba? - + Duplicate Macro Makró másolat - + Duplicate Failed Másolás meghiúsult - + Failed to duplicate to '%1'. Perhaps a file permission error? '%1' másolása meghiúsult. @@ -2860,42 +2860,42 @@ Kérem válasszon másik könyvtárat. Gui::Dialog::DlgPreferencesImp - + Clear user settings Törölje a felhasználói beállítások - + Do you want to clear all your user settings? Szeretné törölni az összes felhasználói beállításait? - + If you agree all your settings will be cleared. Ha elfogadja az összes beállítása törlődni fog. - + Wrong parameter Hibás paraméter - + Restart required Újraindítás szükséges - + You must restart FreeCAD for changes to take effect. A módosítások érvénybe léptetéséhez újra kell indítania a FreeCAD-et. - + Restart now Újraindítás most - + Restart later Újraindítás később @@ -4080,32 +4080,32 @@ get date suffix according to the specified format dátumutótagot a megadott formátumnak megfelelően - + Use date and FCBak extension Dátum és FCBak kiterjesztés használata - + Date format Dátum formátum - + Document objects Dokumentum objektumok - + Allow objects to have same label Objektumok azonos címkéjének engedélyezése - + Allow duplicate object labels in one document Engedélyezi, hogy egy dokumentumban duplikált objektumazonosítók legyenek - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4118,22 +4118,22 @@ Egy részlegesen betöltött dokumentum nem szerkeszthető. Teljes betöltéséh kattintson a fa nézetben a dokumentum ikonra. - + Disable partial loading of external linked objects Külső csatolt objektumok részleges betöltésének letiltása - + Authoring and License Szerző és a licenc - + Author name Szerző neve - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4142,32 +4142,32 @@ Maradjon üresen, ha névtelen. Használhatja az űrlapot is: Gipsz Jakab <gipsz@jakab.hu> - + The field 'Last modified by' will be set to specified author when saving the file A 'Utoljára módosította' mező a fájl mentésekor megadott szerzőre lesz állítva - + Set on save Mentéskor beállítva - + Company Vállalat - + Default company name to use for new files Az új fájlokhoz használandó alapértelmezett vállalatnév - + Default license Alapértelmezett licenc - + Default license for new documents Az új dokumentumok alapértelmezett licence @@ -4237,12 +4237,12 @@ Használhatja az űrlapot is: Gipsz Jakab <gipsz@jakab.hu> Egyéb - + License URL Licenc URL-címe - + URL describing more about the license A licenc részleteinek URL-je @@ -6816,7 +6816,7 @@ El akarja menteni a változásokat? Gui::MainWindow - + Dimension Dimenzió @@ -6846,32 +6846,32 @@ El akarja menteni a változásokat? Minden bezárása - + Toggles this toolbar Eszköztár megjelenítése - + Toggles this dockable window Dokkolható ablak megjelenítése - - + + Unsaved document Nem mentett dokumentum - + The exported object contains external link. Please save the documentat least once before exporting. Az exportált tárgy külső hivatkozást tartalmaz. Exportálás előtt legalább egyszer mentse a dokumentumot. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Külső tárgyakra hivatkozáshoz a dokumentumot legalább egyszer menteni kell. @@ -7111,17 +7111,17 @@ a jobboldali nézetben %2 pont lett jelölve. Gui::ProgressBar - + Remaining: %1 Maradt: %1 - + Aborting Megszakítása - + Do you really want to abort the operation? Biztosan megszakítja a műveletet? @@ -7134,12 +7134,12 @@ a jobboldali nézetben %2 pont lett jelölve. Maradt: %1 - + Aborting Megszakítása - + Do you really want to abort the operation? Biztosan megszakítja a műveletet? @@ -7147,7 +7147,7 @@ a jobboldali nézetben %2 pont lett jelölve. Gui::PropertyEditor::LinkLabel - + Change the linked object Hivatkozott objektum megváltoztatása @@ -7155,12 +7155,12 @@ a jobboldali nézetben %2 pont lett jelölve. Gui::PropertyEditor::LinkSelection - + Error Hiba - + Object not found Az objektum nem található @@ -7376,17 +7376,17 @@ Ki szeretne lépni az adatok mentése nélkül? Gui::RecentFilesAction - + Open file %1 Fájl megnyitása %1 - + File not found A fájl nem található - + The file '%1' cannot be opened. A '%1' fájl nem nyitható meg. @@ -7394,22 +7394,22 @@ Ki szeretne lépni az adatok mentése nélkül? Gui::RecentMacrosAction - + none egyik sem - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 A(z) %1 makró futtatása (Shift+kattintás a szerkesztéshez) billentyűparancs: %2 - + File not found A fájl nem található - + The file '%1' cannot be opened. A '%1' fájl nem nyitható meg. @@ -8238,8 +8238,7 @@ Meg szeretne adni egy másik könyvtárat? Gui::WorkbenchGroup - - + Select the '%1' workbench '%1' munkafelület kiválasztása @@ -9203,12 +9202,12 @@ Nyisson meg egy böngészőt, és írja be: http://localhost:%1. A %1 nem üres, törölheti annak tartalmát is? - + Translation: Fordítás: - + Rotation: Elforgatás: @@ -10355,7 +10354,7 @@ az aktuális példány elveszik. Új üres munkalap létrehozása - + Unnamed Névtelen @@ -11243,7 +11242,7 @@ az aktuális példány elveszik. Fit all - Összes megjelenítése + Összes igazítása @@ -11257,7 +11256,7 @@ az aktuális példány elveszik. Fit selection - Kijelöltek képernyőre + Kijelöltek igazítása képernyőméretre @@ -12630,17 +12629,17 @@ a FreeCAD elindítása után Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Eszköztár - + Left corner Bal sarok - + Right corner Jobb sarok diff --git a/src/Gui/Language/FreeCAD_it.ts b/src/Gui/Language/FreeCAD_it.ts index 1cafaadab2..1db22ff534 100644 --- a/src/Gui/Language/FreeCAD_it.ts +++ b/src/Gui/Language/FreeCAD_it.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Angolo - - + + Axis Asse - + Position Posizione - + Enum Enum @@ -2335,7 +2335,7 @@ la schermata di avvio Gui::Dialog::DlgMacroExecuteImp - + Macros Macro @@ -2356,8 +2356,8 @@ la schermata di avvio - - + + Existing file File esistente @@ -2435,53 +2435,53 @@ Nota: le modifiche verranno applicate al successivo cambio di ambiente di lavoro Istruzioni della procedura guidata: fare clic sulla freccia destra (->), quindi chiudere. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Istruzioni della procedura guidata: fare clic sul pulsante Nuovo e quindi sulla freccia destra (->), quindi chiudere. - + Renaming Macro File Rinomina file Macro - - + + Enter new name: Inserire un nuovo nome: - - + + '%1' already exists. '%1' esiste già. - + Rename Failed Impossibile rinominare - + Failed to rename to '%1'. Perhaps a file permission error? Impossibile rinominare in '%1'. Forse un errore di autorizzazione del file? - + Duplicate Macro Duplica la macro - + Duplicate Failed Duplicazione fallita - + Failed to duplicate to '%1'. Perhaps a file permission error? Impossibile duplicare '%1'. @@ -2863,42 +2863,42 @@ Specificare un'altra cartella. Gui::Dialog::DlgPreferencesImp - + Clear user settings Cancella le impostazioni utente - + Do you want to clear all your user settings? Vuoi cancellare tutte le impostazioni utente? - + If you agree all your settings will be cleared. Se accetti, tutte le impostazioni verranno cancellate. - + Wrong parameter Parametro errato - + Restart required Riavvio richiesto - + You must restart FreeCAD for changes to take effect. È necessario riavviare FreeCAD perché le modifiche abbiano effetto. - + Restart now Riavvia ora - + Restart later Riavvia dopo @@ -4082,32 +4082,32 @@ get date suffix according to the specified format avranno il suffisso della data in base al formato specificato - + Use date and FCBak extension Usa l'estensione data e FCBak - + Date format Formato della data - + Document objects Oggetti del documento - + Allow objects to have same label Consente agli oggetti di avere la stessa etichetta - + Allow duplicate object labels in one document Consenti la duplicazione delle etichette degli oggetti nello stesso documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4120,22 +4120,22 @@ Un documento caricato parzialmente non può essere modificato. Fare doppio clic documento nella vista ad albero per ricaricarlo completamente. - + Disable partial loading of external linked objects Disabilita il caricamento parziale degli oggetti collegati esterni - + Authoring and License Diritti d'autore e licenze - + Author name Nome autore - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4144,32 +4144,32 @@ Lasciare vuoto per anonimo. Si può anche utilizzare il modulo: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Il campo 'Ultima modifica effettata da' sarà impostato sull'autore specificato durante il salvataggio del file - + Set on save Imposta su salva - + Company Azienda - + Default company name to use for new files Nome dell'azienda predefinita da utilizzare per i nuovi file - + Default license Licenza di default - + Default license for new documents Licenza predefinita per i nuovi documenti @@ -4239,12 +4239,12 @@ Si può anche utilizzare il modulo: John Doe <john@doe.com> Altro - + License URL URL della licenza - + URL describing more about the license URL che descrive di più sulla licenza @@ -4746,7 +4746,7 @@ Si può anche utilizzare il modulo: John Doe <john@doe.com> Base color for all elements - Base color for all elements + Colore di base per tutti gli elementi @@ -6818,7 +6818,7 @@ Si desidera salvare le modifiche? Gui::MainWindow - + Dimension Dimensione @@ -6848,32 +6848,32 @@ Si desidera salvare le modifiche? Chiudi tutto - + Toggles this toolbar Nascondi questa barra degli strumenti - + Toggles this dockable window Nascondi questa finestra - - + + Unsaved document Documento non salvato - + The exported object contains external link. Please save the documentat least once before exporting. L'oggetto esportato contiene un link esterno. Salvare il documento almeno una volta prima di esportarlo. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Per collegare oggetti esterni, il documento deve essere salvato almeno una volta. @@ -7110,17 +7110,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Rimanente: %1 - + Aborting Interrompi - + Do you really want to abort the operation? Vuoi veramente interrompere l'operazione? @@ -7133,12 +7133,12 @@ How do you want to proceed? Rimanente: %1 - + Aborting Interrompi - + Do you really want to abort the operation? Vuoi veramente interrompere l'operazione? @@ -7146,7 +7146,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Cambia l'oggetto collegato @@ -7154,12 +7154,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Errore - + Object not found Oggetto non trovato @@ -7375,17 +7375,17 @@ Vuoi uscire senza salvare i tuoi dati? Gui::RecentFilesAction - + Open file %1 Apri file %1 - + File not found File non trovato - + The file '%1' cannot be opened. Il file '%1' non può essere aperto. @@ -7393,22 +7393,22 @@ Vuoi uscire senza salvare i tuoi dati? Gui::RecentMacrosAction - + none nessuno - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Esegue la macro %1 (Maiusc+clic per modificare) scorciatoia da tastiera: %2 - + File not found File non trovato - + The file '%1' cannot be opened. Il file '%1' non può essere aperto. @@ -8239,8 +8239,7 @@ Vuoi specificare un'altra cartella? Gui::WorkbenchGroup - - + Select the '%1' workbench Seleziona l'ambiente '%1' @@ -9205,12 +9204,12 @@ Aprire una finestra browser e scrivere http://localhost:%1. Il %1 non è vuoto, eliminare anche il suo contenuto? - + Translation: Traslazione: - + Rotation: Rotazione: @@ -10357,7 +10356,7 @@ la copia corrente andranno perse. Crea un documento vuoto - + Unnamed Senza nome @@ -12632,17 +12631,17 @@ dopo l'avvio di FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra degli strumenti - + Left corner Angolo sinistro - + Right corner Angolo destro diff --git a/src/Gui/Language/FreeCAD_ja.ts b/src/Gui/Language/FreeCAD_ja.ts index 26f4c55ed6..73bf063f6f 100644 --- a/src/Gui/Language/FreeCAD_ja.ts +++ b/src/Gui/Language/FreeCAD_ja.ts @@ -47,24 +47,24 @@ <空> - - + + Angle 角度 - - + + Axis - + Position Position - + Enum Enum @@ -428,7 +428,7 @@ The object will be edited using the mode defined internally to be the most appropriate for the object type - The object will be edited using the mode defined internally to be the most appropriate for the object type + オブジェクトは、オブジェクト型に最も適した、内部的に定義されたモードを使用して編集されます。 @@ -438,7 +438,7 @@ The object will have its placement editable with the Std TransformManip command - The object will have its placement editable with the Std TransformManip command + オブジェクトの配置は Std TransformManip コマンドで編集可能です。 @@ -448,7 +448,7 @@ This edit mode is implemented as available but currently does not seem to be used by any object - This edit mode is implemented as available but currently does not seem to be used by any object + この編集モードは利用可能な状態で実装されていますが、現在はどのオブジェクトでも使用されていないようです。 @@ -458,7 +458,7 @@ The object will have the color of its individual faces editable with the Part FaceColors command - The object will have the color of its individual faces editable with the Part FaceColors command + オブジェクトはそれぞれの面の色を持ち、Part FaceColors コマンドで編集可能です。 @@ -1272,7 +1272,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces To change a current shortcut enter the new shortcut in the field below and press 'Assign'. - To change a current shortcut enter the new shortcut in the field below and press 'Assign'. + 現在のショートカットを変更するには、下のフィールドに新しいショートカットを入力し、「割り当て」を押します。 @@ -1282,30 +1282,28 @@ If this is not ticked, then the property must be uniquely named, and it is acces Multi-key sequence delay: - Multi-key sequence delay: + マルチキーシーケンスの遅延: Time in milliseconds to wait for the next key stroke of the current key sequence. For example, pressing 'F' twice in less than the time delay setting here will be be treated as shorctcut key sequence 'F, F'. - Time in milliseconds to wait for the next key stroke of the current key sequence. -For example, pressing 'F' twice in less than the time delay setting here will be -be treated as shorctcut key sequence 'F, F'. + 現在のキーシーケンスの次のキーストロークを待つ時間 (ミリ秒単位)。 +例えば、ここでの時間遅延設定よりも短く「F」を2回押すと、 +ショートカットキーシーケンス「F, F」として扱われます。 This list shows commands having the same shortcut in the priority from high to low. If more than one command with the same shortcut are active at the same time. The one with the highest priority will be triggered. - This list shows commands having the same shortcut in the priority from high -to low. If more than one command with the same shortcut are active at the -same time. The one with the highest priority will be triggered. + このリストでは、同じショートカットを持つコマンドを優先順位の高低順で表示しています。同じショートカットを持つ複数のコマンドが同時にアクティブになっている場合、優先順位が最も高いものが実行されます。 Shortcut priority list: - Shortcut priority list: + ショートカット優先度リスト: @@ -1485,7 +1483,7 @@ same time. The one with the highest priority will be triggered. <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">注意:</span> 変更は次回、対応するワークベンチをロードした際に有効になります</p></body></html> @@ -1650,7 +1648,7 @@ same time. The one with the highest priority will be triggered. Point color: - Point color: + 点の色: @@ -1960,10 +1958,7 @@ same time. The one with the highest priority will be triggered. will be substituted with locale separator, except in Python Console and Macro Editor where a dot/period will always be printed. - If enabled, numerical keypad decimal separator -will be substituted with locale separator, except -in Python Console and Macro Editor where a -dot/period will always be printed. + 有効にすると、数値キーパッドの小数点以下の区切り文字はロケールの区切り文字で置き換えられます。ただし Python コンソールとマクロ・エディタでは ドット/ピリオドが常に表示されます。 @@ -2124,8 +2119,8 @@ this according to your screen size or personal taste Background of the main window (when no document is opened) will consist of tiles of a special image. See the FreeCAD Wiki for details about the image. - Background of the main window (when no document is opened) will consist of tiles of a special image. -See the FreeCAD Wiki for details about the image. + (ドキュメントが開かれていないときの) メインウィンドウの背景を特別な画像のタイルで構成。 +画像の詳細については FreeCAD ウィキを参照。 @@ -2337,7 +2332,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros マクロ @@ -2358,8 +2353,8 @@ display the splash screen - - + + Existing file 既存ファイル @@ -2436,51 +2431,51 @@ Note: your changes will be applied when you next switch workbenches ウォークスルーの手順: 右矢印ボタン(→)をクリックし、閉じます。 - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. ウォークスルーの手順: 新規をクリックし、さらに右矢印ボタン(→)をクリックし、閉じます。 - + Renaming Macro File マクロファイルの名前を変更 - - + + Enter new name: 新しい名前を入力: - - + + '%1' already exists. '%1' は既に存在します - + Rename Failed 名前の変更に失敗 - + Failed to rename to '%1'. Perhaps a file permission error? 名前を '%1' に変更できませんでした。ファイルのアクセス許可でのエラーの可能性があります。 - + Duplicate Macro マクロの複製 - + Duplicate Failed 複製に失敗しました - + Failed to duplicate to '%1'. Perhaps a file permission error? '%1' を複製に失敗しました。 @@ -2860,44 +2855,44 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings ユーザー設定をクリア - + Do you want to clear all your user settings? すべてのユーザー設定を消去しますか? - + If you agree all your settings will be cleared. 同意した場合、全ての設定が消去されます。 - + Wrong parameter 間違ったパラメーター - + Restart required 再起動が必要です。 - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now - Restart now + 今すぐ再起動 - + Restart later - Restart later + 後で再起動 @@ -3459,16 +3454,10 @@ can be rendered directly by GPU. Note: Sometimes this feature may lead to a host of different issues ranging from graphical anomalies to GPU crash bugs. Remember to report this setting as enabled when seeking support on the FreeCAD forums - If selected, Vertex Buffer Objects (VBO) will be used. -A VBO is an OpenGL feature that provides methods for uploading -vertex data (position, normal vector, color, etc.) to the graphics card. -VBOs offer substantial performance gains because the data resides -in the graphics memory rather than the system memory and so it -can be rendered directly by GPU. + 選択した場合、頂点バッファオブジェクト (VBO) が使用されます。 +VBOはOpenGLの機能で、頂点データ (位置、法線ベクトル、色など) をグラフィックカードへアップロードするためのメソッドを提供します。データがシステムメモリーではなくグラフィックメモリーに配置され、GPUで直接レンダリングされるようになるので、VBO によってかなりのパフォーマンス改善を実現できます。 -Note: Sometimes this feature may lead to a host of different -issues ranging from graphical anomalies to GPU crash bugs. Remember to -report this setting as enabled when seeking support on the FreeCAD forums +注意: この機能を使用すると描画の異常やGPUをクラッシュさせる不具合といった様々な問題が起きる場合があります。FreeCADフォーラムでサポートを受ける場合はこの設定を有効にしていることを忘れずに報告してください。 @@ -3479,13 +3468,11 @@ There are 3 options available to achieve this: 3) 'Centralized', manually turn off cache in all nodes of all view provider, and only cache at the scene graph root node. This offers the fastest rendering speed but slower response to any scene changes. - 'Render Caching' is another way to say 'Rendering Acceleration'. -There are 3 options available to achieve this: -1) 'Auto' (default), let Coin3D decide where to cache. -2) 'Distributed', manually turn on cache for all view provider root node. -3) 'Centralized', manually turn off cache in all nodes of all view provider, and -only cache at the scene graph root node. This offers the fastest rendering speed -but slower response to any scene changes. + 「レンダリングのキャッシュ」は「レンダリング・アクセラレーション」の別名です。 +これを行うためには3つの選択肢があります: +1) '自動' (デフォルト) どこでキャッシュを行うかをCoin3Dに決めさせます。 +2) '分散' 全てのビュープロバイダーのルートノードでのキャッシュを手動で無効にします。 +3) '集中' 全てのビュープロバイダーの全てのノードでのキャッシュを手動で無効にし、シーングラフのルートノードでのみキャッシュさせます。この設定を使うとレンダリング速度は最速になりますが、シーン変更での応答は遅くなります。 @@ -3704,12 +3691,12 @@ bounding box size of the 3D object that is currently displayed. Daily - Daily + 日次 Weekly - Weekly + 週次 @@ -4065,32 +4052,32 @@ get date suffix according to the specified format バックアップファイルには拡張子「.FCbak」が付けられ、ファイル名には指定された形式に従って日付サファイックスが追加されます。 - + Use date and FCBak extension 日付とFCBakの拡張子を使用 - + Date format 日付のフォーマット - + Document objects ドキュメント オブジェクト - + Allow objects to have same label - Allow objects to have same label + オブジェクトが同じラベルを持つことを許可 - + Allow duplicate object labels in one document 同一ドキュメント内での重複したオブジェクトラベルを許可 - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4101,22 +4088,22 @@ icon in the tree view to fully reload it. 部分読み込みされたドキュメントは編集できません。ツリービューのドキュメントアイコンをダブルクリックすると全体が再読み込みされます。 - + Disable partial loading of external linked objects 外部リンクオブジェクトの部分読み込みを無効化 - + Authoring and License 作成者とライセンス - + Author name 作成者 - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4125,32 +4112,32 @@ You can also use the form: John Doe <john@doe.com> John Doe <john@doe.com> 形式を使用することもできます。 - + The field 'Last modified by' will be set to specified author when saving the file ファイルの保存時に「最終更新者」フィールドに指定された作成者が設定されます - + Set on save 保存時に設定 - + Company 会社 - + Default company name to use for new files 新規ファイルに使用するデフォルトの会社名 - + Default license 既定のライセンス - + Default license for new documents 新規ドキュメントにおけるデフォルトのライセンス @@ -4202,17 +4189,17 @@ John Doe <john@doe.com> 形式を使用することもできます。 CERN Open Hardware Licence strongly-reciprocal - CERN Open Hardware Licence strongly-reciprocal + CERN オープンハードウェアライセンス 強互恵 CERN Open Hardware Licence weakly-reciprocal - CERN Open Hardware Licence weakly-reciprocal + CERN オープンハードウェアライセンス 弱互恵 CERN Open Hardware Licence permissive - CERN Open Hardware Licence permissive + CERN オープンハードウェアライセンス 許容 @@ -4220,12 +4207,12 @@ John Doe <john@doe.com> 形式を使用することもできます。その他 - + License URL ライセンス URL - + URL describing more about the license ライセンスについてさらに詳しく説明した URL @@ -4702,7 +4689,7 @@ John Doe <john@doe.com> 形式を使用することもできます。 Font name of the navigation cube - Font name of the navigation cube + ナビゲーションキューブで使用するフォント @@ -4727,7 +4714,7 @@ John Doe <john@doe.com> 形式を使用することもできます。 Base color for all elements - Base color for all elements + すべての要素の基本色 @@ -4762,15 +4749,15 @@ Select a set and then press the button to view said configurations. Trackball: moving the mouse horizontally will rotate the part around the y-axis Turntable: the part will be rotated around the z-axis (with constrained axes). Free Turntable: the part will be rotated around the z-axis. - Rotation orbit style. -Trackball: moving the mouse horizontally will rotate the part around the y-axis -Turntable: the part will be rotated around the z-axis (with constrained axes). -Free Turntable: the part will be rotated around the z-axis. + 回転軌道のスタイル +トラックボール: マウスの水平移動でY軸周りにオブジェクトを回転 +ターンテーブル: Z軸周りにオブジェクトを回転 (軸を拘束) +フリーターンテーブル: Z軸周りにオブジェクトを回転 Turntable - ターン テーブル + ターンテーブル @@ -4780,7 +4767,7 @@ Free Turntable: the part will be rotated around the z-axis. Free Turntable - Free Turntable + フリーターンテーブル @@ -5000,9 +4987,8 @@ horizontal space in Python console Area for picking elements in 3D view. Larger value eases to pick things, but can make small features impossible to select. - Area for picking elements in 3D view. -Larger value eases to pick things, but can make small features impossible to select. - + 3D ビューでの要素ピック範囲。 +大きな値を設定するとピックが容易になりますが、小さなフィーチャーを選択できなくなります。 @@ -5092,24 +5078,24 @@ Larger value eases to pick things, but can make small features impossible to sel Linear gradient - Linear gradient + 線状グラデーション Radial gradient - Radial gradient + 放射状グラデーション Top: - Top: + 上: Middle: - Middle: + 中間: @@ -5135,7 +5121,7 @@ Larger value eases to pick things, but can make small features impossible to sel Bottom: - Bottom: + 下: @@ -5165,17 +5151,17 @@ Larger value eases to pick things, but can make small features impossible to sel Central: - Central: + 中央: Midway: - Midway: + 中間: End: - End: + 終端: @@ -5598,7 +5584,7 @@ The 'Status' column shows whether the document could be recovered. Panning: - Panning: + パン: @@ -6084,7 +6070,7 @@ The 'Status' column shows whether the document could be recovered. Show dependencies - Show dependencies + 依存関係の表示 @@ -6216,12 +6202,12 @@ originally selected prior to opening this dialog Critical messages - Critical messages + 重要なメッセージ Show Report view on - Show Report view on + レポートビューの表示 @@ -6797,7 +6783,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension 寸法 @@ -6827,32 +6813,32 @@ Do you want to save your changes? すべて閉じる - + Toggles this toolbar このツールバーを切り替えます - + Toggles this dockable window このドッキング可能なウィンドウを切り替える - - + + Unsaved document 未保存のドキュメント - + The exported object contains external link. Please save the documentat least once before exporting. エクスポートされたオブジェクトには外部リンクがふくまれています。エクスポートの前に少なくとも一度ドキュメントを保存してください。 - + To link to external objects, the document must be saved at least once. Do you want to save the document now? 外部オブジェクトにリンクするにはドキュメントを少なくとも一度保存する必要があります。 @@ -6943,7 +6929,7 @@ How do you want to proceed? Point_%1 - Point_%1 + Point_%1 @@ -6968,7 +6954,7 @@ How do you want to proceed? &Remove last point - &Remove last point + 最後の点を削除(&R) @@ -6978,7 +6964,7 @@ How do you want to proceed? &Synchronize views - &Synchronize views + ビューを同期(&S) @@ -7087,17 +7073,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 残り: %1 - + Aborting 中止します - + Do you really want to abort the operation? 操作を中止してよろしいですか? @@ -7110,12 +7096,12 @@ How do you want to proceed? 残り: %1 - + Aborting 中止します - + Do you really want to abort the operation? 操作を中止してよろしいですか? @@ -7123,7 +7109,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object リンクされたオブジェクトを変更 @@ -7131,12 +7117,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error エラー - + Object not found オブジェクトが見つかりません @@ -7351,17 +7337,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 %1 ファイルを開く - + File not found ファイルが見つかりませんでした - + The file '%1' cannot be opened. ファイル '%1' を開くことができませんでした。 @@ -7369,22 +7355,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none なし - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 マクロ実行 %1 (Shift + クリックで編集) キーボードショートカット: %2 - + File not found ファイルが見つかりませんでした - + The file '%1' cannot be opened. ファイル '%1' を開くことができませんでした。 @@ -7778,7 +7764,7 @@ Do you want to specify another directory? Belarusian - Belarusian + ベラルーシ語 @@ -7923,7 +7909,7 @@ Do you want to specify another directory? Serbian, Latin - Serbian, Latin + セルビア語 (ラテン文字) @@ -8017,17 +8003,17 @@ Do you want to specify another directory? Tree settings - Tree settings + ツリー設定 Show description column - Show description column + 説明列を表示 Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. - Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. + アイテム説明のための追加のツリービュー列を表示します。 項目の説明は、F2 (または使用している OS の編集ボタン) を押すか、「label2」プロパティを編集することで設定できます。 @@ -8047,22 +8033,22 @@ Do you want to specify another directory? Show items hidden in tree view - Show items hidden in tree view + ツリービューの非表示アイテムを表示 Show items that are marked as 'hidden' in the tree view - Show items that are marked as 'hidden' in the tree view + ツリービューで「非表示」としてマークされているアイテムを表示 Toggle visibility in tree view - Toggle visibility in tree view + ツリー ビューでの表示を切り替え Toggles the visibility of selected items in the tree view - Toggles the visibility of selected items in the tree view + ツリー ビューで選択したアイテムの表示を切り替えます。 @@ -8215,8 +8201,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench ワークベンチ'%1'を選択 @@ -8457,7 +8442,7 @@ Do you want to specify another directory? Python - Python + Python @@ -8700,7 +8685,7 @@ Do you want to continue? Save image - Save image + 画像を保存 @@ -8817,7 +8802,7 @@ Do you want to continue? Notifier - Notifier + 通知 @@ -8833,17 +8818,17 @@ Do you want to continue? Do you want to skip confirmation of further critical message notifications while loading the file? - Do you want to skip confirmation of further critical message notifications while loading the file? + ファイルの読み込み中により重要なメッセージの通知確認をスキップしますか? Critical Message - Critical Message + 重要なメッセージ Too many opened non-intrusive notifications. Notifications are being omitted! - Too many opened non-intrusive notifications. Notifications are being omitted! + 非割り込み通知が大量にあります。通知は省略されています! @@ -9179,12 +9164,12 @@ Please open a browser window and type in: http://localhost:%1. %1は空ではありません。コンテンツごと削除しますか? - + Translation: 平行移動量: - + Rotation: 回転: @@ -9391,12 +9376,12 @@ the current copy will be lost. Color Gradient - Color Gradient + カラーグラデーション Color Legend - Color Legend + 色の凡例 @@ -9433,7 +9418,7 @@ the current copy will be lost. Activate the box selection tool - Activate the box selection tool + ボックス選択ツールをアクティブにする @@ -9517,7 +9502,7 @@ the current copy will be lost. Turns on or off the axis cross at the origin - Turns on or off the axis cross at the origin + 原点で交差する軸のオン・オフを切り替えます。 @@ -9825,7 +9810,7 @@ the current copy will be lost. Actions that apply to expressions - Actions that apply to expressions + 式に適用するアクション @@ -10027,7 +10012,7 @@ the current copy will be lost. Actions that apply to link objects - Actions that apply to link objects + リンクオブジェクトに適用するアクション @@ -10213,7 +10198,7 @@ the current copy will be lost. Step to the next line executed - Step to the next line executed + 実行された次の行にステップ @@ -10221,13 +10206,13 @@ the current copy will be lost. Step over - ステップオーバー + ステップ オーバー Step to the next line in this file - Step to the next line in this file + このファイルの次の行にステップ @@ -10269,7 +10254,7 @@ the current copy will be lost. Activate the distance measurement tool - Activate the distance measurement tool + 距離計測ツールをアクティブにする @@ -10326,7 +10311,7 @@ the current copy will be lost. 新しい空のドキュメントを作成 - + Unnamed Unnamed @@ -10548,7 +10533,7 @@ the current copy will be lost. Set each selected object to a randomly-selected color - Set each selected object to a randomly-selected color + 選択した各オブジェクトにランダムに色を設定 @@ -10898,7 +10883,7 @@ the current copy will be lost. Add or remove a breakpoint at this position - Add or remove a breakpoint at this position + この位置にブレークポイントを追加・削除 @@ -11536,13 +11521,13 @@ the current copy will be lost. Activate window - Activate window + ウィンドウをアクティブにする Activates this window - このウィンドウをアクティブにします。 + このウィンドウをアクティブにする @@ -11774,7 +11759,7 @@ the current copy will be lost. Activate the box zoom tool - Activate the box zoom tool + ボックス拡大縮小ツールをアクティブにする @@ -11858,7 +11843,7 @@ the current copy will be lost. Increase the zoom factor by a fixed amount - Increase the zoom factor by a fixed amount + 拡大縮小率を一定量だけ増加 @@ -11872,7 +11857,7 @@ the current copy will be lost. Decrease the zoom factor by a fixed amount - Decrease the zoom factor by a fixed amount + 拡大縮小率を一定量だけ減少 @@ -12035,32 +12020,32 @@ Do you still want to proceed? Tree view item background. Only effective in overlay. - Tree view item background. Only effective in overlay. + ツリービューアイテムの背景。オーバーレイ時のみ有効。 Tree view item background padding. - Tree view item background padding. + ツリービューアイテムの背景余白。 Hide extra tree view column for item description. - Hide extra tree view column for item description. + アイテム説明のためのツリービューの追加列を非表示。 Hide tree view scroll bar in dock overlay. - Hide tree view scroll bar in dock overlay. + ドックオーバーレイ時にツリービューのスクロールバーを非表示。 Hide tree view header view in dock overlay. - Hide tree view header view in dock overlay. + ドックオーバーレイ時にツリービューのヘッダービューを非表示。 Allow tree view columns to be manually resized. - Allow tree view columns to be manually resized. + ツリービューの列の手動でのサイズ変更を許可。 @@ -12210,32 +12195,32 @@ Do you still want to proceed? The Notification area will appear in the status bar - The Notification area will appear in the status bar + 通知領域がステータスバーに表示されます。 Enable Notification Area - Enable Notification Area + 通知領域を有効にする Non-intrusive notifications will appear next to the notification area in the status bar - Non-intrusive notifications will appear next to the notification area in the status bar + ステータスバーの通知領域の隣に非割り込み通知が表示されます。 Enable non-intrusive notifications - Enable non-intrusive notifications + 非割り込み通知を有効にする Additional data sources - Additional data sources + 追加のデータソース Errors intended for developers will appear in the notification area - Errors intended for developers will appear in the notification area + 開発者向けのエラーが通知領域に表示されます。 @@ -12245,32 +12230,32 @@ Do you still want to proceed? Warnings intended for developers will appear in the notification area - Warnings intended for developers will appear in the notification area + 開発者向けの警告が通知領域に表示されます。 Debug warnings - Debug warnings + デバッグ警告 Non-Intrusive Notifications - Non-Intrusive Notifications + 非割り込み通知 Minimum Duration: - Minimum Duration: + 最小継続時間: Maximum Duration: - Maximum Duration: + 最大継続時間: Duration during which the notification will be shown (unless mouse buttons are clicked) - Duration during which the notification will be shown (unless mouse buttons are clicked) + 通知表示の継続時間 (マウスボタンをクリックしない場合) @@ -12281,77 +12266,77 @@ Do you still want to proceed? Minimum duration during which the notification will be shown (unless notification clicked) - Minimum duration during which the notification will be shown (unless notification clicked) + 通知表示の最小継続時間 (通知をクリックしない場合) Maximum Number of Notifications: - Maximum Number of Notifications: + 通知の最大数: Maximum number of notifications that will be simultaneously present on the screen - Maximum number of notifications that will be simultaneously present on the screen + 画面に同時に表示される通知の最大数 Notification width: - Notification width: + 通知の幅: Width of the notification in pixels - Width of the notification in pixels + ピクセル単位での通知の幅 Any open non-intrusive notifications will disappear when another window is activated - Any open non-intrusive notifications will disappear when another window is activated + 別のウィンドウがアクティブになったときにすべての非割り込み通知が消えます。 Hide when other window is activated - Hide when other window is activated + 他のウインドウがアクティブになっているときには非表示 Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window - Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window + FreeCAD ウインドウがアクティブなウインドウでない場合に非割り込み通知が表示されないようにします。 Do not show when inactive - Do not show when inactive + 非アクティブ時は表示しない Message List - Message List + メッセージ一覧 Limit the number of messages that will be kept in the list. If 0 there is no limit. - Limit the number of messages that will be kept in the list. If 0 there is no limit. + リストに保持されるメッセージ数を制限します。0の場合、制限はありません。 Maximum Messages (0 = no limit): - Maximum Messages (0 = no limit): + 最大メッセージ数 (0 = 制限なし): Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. - Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. + 非割り込み最大時間が経過した後、メッセージ一覧からユーザー通知を削除します。 Auto-remove User Notifications - Auto-remove User Notifications + ユーザー通知を自動削除 Activation of the Notification Area only takes effect after an application restart. - Activation of the Notification Area only takes effect after an application restart. + 通知領域の有効化にはアプリケーションの再起動が必要です。 @@ -12365,13 +12350,13 @@ Do you still want to proceed? <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> Currently, your system has the following workbenches:</p></body></html> - <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> -Currently, your system has the following workbenches:</p></body></html> + <html><head/><body><p>ドラッグ・アンド・ドロップでワークベンチを並び替えることができます。追加のワークベンチはアドオンマネージャーからインストールできます。</p><p> +現在、このシステムには以下のワークベンチが存在します:</p></body></html> Start up workbench: - Start up workbench: + 開始時のワークベンチ: @@ -12382,7 +12367,7 @@ after FreeCAD launches Workbench selector position : - Workbench selector position : + ワークベンチセレクターの位置: @@ -12391,11 +12376,11 @@ after FreeCAD launches 'Toolbar': In the toolbars, as a movable toolbar. 'Left Corner': In the menu bar, on the left corner. 'Right Corner': In the menu bar, on the right corner. - Customize where the workbench selector appears (restart required). + ワークベンチセレクターの表示位置を調整します(要再起動)。 -'Toolbar': In the toolbars, as a movable toolbar. -'Left Corner': In the menu bar, on the left corner. -'Right Corner': In the menu bar, on the right corner. +「ツールバー」: ツールバー内の移動可能なツールバー +「左コーナー」: メニューバーの左端 +「右コーナー」: メニューバーの右端 @@ -12418,7 +12403,7 @@ after FreeCAD launches Planes - Planes + 平面 @@ -12451,12 +12436,12 @@ after FreeCAD launches Image plane settings - Image plane settings + 画像平面の設定 Planes - Planes + 平面 @@ -12526,7 +12511,7 @@ after FreeCAD launches Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + 画像の2点間の長さを設定することでインタラクティブに画像を拡大縮小します。 @@ -12536,7 +12521,7 @@ after FreeCAD launches Calibration - Calibration + キャリブレーション @@ -12554,17 +12539,17 @@ after FreeCAD launches If unchecked, %1 will not appear in the available workbenches. - If unchecked, %1 will not appear in the available workbenches. + チェックを外すと %1 は利用可能なワークベンチに表示されません。 This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. - This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. + これは現在の起動モジュールであり、有効化されます。変更するには環境設定/一般/自動ロードを参照してください。 Shortcut to activate this workbench. - Shortcut to activate this workbench. + このワークベンチをアクティブにするショートカット。 @@ -12574,7 +12559,7 @@ after FreeCAD launches If checked, %1 will be loaded automatically when FreeCAD starts up - If checked, %1 will be loaded automatically when FreeCAD starts up + チェックするとFreeCAD起動時に %1 が自動的に読み込まれます。 @@ -12594,25 +12579,25 @@ after FreeCAD launches To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. - To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. + リソースを節約するため、FreeCAD は使用されるまでワークベンチをロードしません。ワークベンチをロードするとその機能に関係する追加のユーザー設定へアクセスできるようになります。 Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar ツールバー - + Left corner - Left corner + 左コーナー - + Right corner - Right corner + 右コーナー @@ -12651,12 +12636,12 @@ after FreeCAD launches Failed to load image file - Failed to load image file + 画像ファイルの読み込みに失敗しました。 Cannot load file %1: %2 - Cannot load file %1: %2 + ファイル %1 を読み込めません。: %2 @@ -12693,7 +12678,7 @@ after FreeCAD launches Enter desired distance between the points - Enter desired distance between the points + 点間の望ましい距離を入力 @@ -12701,12 +12686,12 @@ after FreeCAD launches Movable navigation cube - Movable navigation cube + 移動可能なナビゲーションキューブ Drag and place NaviCube - Drag and place NaviCube + ナビゲーションキューブをドラッグして配置 @@ -12714,32 +12699,32 @@ after FreeCAD launches FRONT - FRONT + TOP - TOP + RIGHT - RIGHT + REAR - REAR + BOTTOM - BOTTOM + LEFT - LEFT + @@ -12748,7 +12733,7 @@ after FreeCAD launches An error occurred -- see Report View for information - An error occurred -- see Report View for information + エラーが発生しました。詳細はレポートビューを参照してください。 diff --git a/src/Gui/Language/FreeCAD_ka.ts b/src/Gui/Language/FreeCAD_ka.ts index aaacacf056..f0302eea23 100644 --- a/src/Gui/Language/FreeCAD_ka.ts +++ b/src/Gui/Language/FreeCAD_ka.ts @@ -47,24 +47,24 @@ <ცარიელი> - - + + Angle კუთხე - - + + Axis ღერძი - + Position Position - + Enum სია @@ -2335,7 +2335,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros მაკროები @@ -2356,8 +2356,8 @@ display the splash screen - - + + Existing file არსებული ფაილი @@ -2435,53 +2435,53 @@ Note: your changes will be applied when you next switch workbenches გავლის ინსტრუქციები: დააწკაპუნეთ მარჯვნივ ისარზე (->), შემდეგ კი დახურვაზე. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. გავლის ინსტრუქციები: დააწკაპუნეთ ახალი, შემდეგ მარჯვნივ ისარზე (->), შემდეგ კი დახურვაზე. - + Renaming Macro File მაკროს ფაილის სახელის გადარქმევა - - + + Enter new name: შეიყვანეთ ახალი სახელი: - - + + '%1' already exists. %1 უკვე არსებობს. - + Rename Failed სახელის გადარქმევის შეცდომა - + Failed to rename to '%1'. Perhaps a file permission error? %1-სთვის სახელის გადარქმევის შეცდომა. გთხოვთ, შეამოწმეთ წვდომები - + Duplicate Macro მაკროს ასლი - + Duplicate Failed ასლის შექმნის შეცდომა - + Failed to duplicate to '%1'. Perhaps a file permission error? %1-ის დუბლირების შეცდომა. @@ -2863,42 +2863,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings მომხმარებლის არჩევნის გასუფთავება - + Do you want to clear all your user settings? გნებავთ ყველა თქვენი ცვლილების ნაგულისხმევ მნიშვნელობებზე დაბრუნება? - + If you agree all your settings will be cleared. თანხმობის შემთხვევაში თქვენს მიერ შეტანილი ცვლილებები გაბათილდება. - + Wrong parameter არასწორი პარამეტრი - + Restart required საჭიროა გადატვირთვა - + You must restart FreeCAD for changes to take effect. ცვლილებების ძალაში შესასვლელად საჭიროა FreeCAD-ის გადატვირთვა. - + Restart now ახლავე გადატვირთვა - + Restart later მოგვიანებით გადატვირთვა @@ -4073,32 +4073,32 @@ get date suffix according to the specified format ფაილის სახელები მიიღებენ თარიღის სუფიქსს მითითებული ფორმატის მიხედვით - + Use date and FCBak extension თარიღის და FCBak გაფართოების გამოყენება - + Date format თარიღის ფორმატი - + Document objects ობიექტები დოკუმენტში - + Allow objects to have same label ნების დართვა, ობიექტებს იგივე ჭდე ჰქონდეთ - + Allow duplicate object labels in one document დოკუმენტში ერთნაირი ჭდეების მქონე ობიექტების დაშვება - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4111,22 +4111,22 @@ icon in the tree view to fully reload it. მისი სრულად განახლებისთვის ხის ხედში ორჯერ დააწკაპუნეთ დოკუმენტის ხატულაზე. - + Disable partial loading of external linked objects გარე მიბმული ობიექტების ნაწილობრივი ჩატვირთვის გათიშვა - + Authoring and License ავტორი და ლიცენზია - + Author name ავტორის სახელი - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4135,32 +4135,32 @@ You can also use the form: John Doe <john@doe.com> თქვენ ასევე შეგიძლიათ გამოიყენოთ ფორმა: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file ფაილს ჩაწერისას ველი 'Last modified by' დაყენებული იქნება მითითებულ ავტორზე - + Set on save დაყენება შენახვისას - + Company კომპანია - + Default company name to use for new files კომპანიის სახელის ნაგულისხმევი მნიშვნელობა ახალი ფაილებისთვის - + Default license ნაგულისხმევი ლიცენზია - + Default license for new documents ახალი დოკუმენტების ნაგულისხმევი ლიცენზია @@ -4230,12 +4230,12 @@ You can also use the form: John Doe <john@doe.com> სხვა - + License URL ლიცენზის URL - + URL describing more about the license ბმული, სადაც ლიცენზიების შესახებ უფო მეტი რამ წერია @@ -6810,7 +6810,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension ზომა @@ -6840,32 +6840,32 @@ Do you want to save your changes? ყველას დახურვა - + Toggles this toolbar ამ ზოლის ჩართ/გამორთ - + Toggles this dockable window მიმაგრებადი ფანჯრის ჩვენების ჩართ/გამორთ - - + + Unsaved document შეუნახავი დოკუმენტი - + The exported object contains external link. Please save the documentat least once before exporting. გატანილი ობიექტი შეიცავს გარე ბმულს. გთხოვთ გატანამდე დოკუმენტი ერთხელ მაინც შეინახოთ. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? გარე ობიექტებთან დასაკავშირებლად, დოკუმენტი უნდა იყოს შენახული ერთხელ მაინც. @@ -7103,17 +7103,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 დარჩენილია: %1 - + Aborting შეწყვეტა - + Do you really want to abort the operation? მართლა გნებავთ ოპერაციის შეწყვეტა? @@ -7126,12 +7126,12 @@ How do you want to proceed? დარჩენილია: %1 - + Aborting შეწყვეტა - + Do you really want to abort the operation? მართლა გნებავთ ოპერაციის შეწყვეტა? @@ -7139,7 +7139,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object მიბმული ობიექტის შეცვლა @@ -7147,12 +7147,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error შეცდომა - + Object not found ობიექტი ნაპოვნი არაა @@ -7368,17 +7368,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 %1 ფაილის გახსნა - + File not found ფაილი ვერ მოიძებნა - + The file '%1' cannot be opened. ფაილ '%1'-ის გახსნა შეუძლებელია. @@ -7386,22 +7386,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none არცერთი - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 %1 მაკროს გაშვება (Shift+წკაპი ჩასასწორებლად) მალსახმობი: %2 - + File not found ფაილი ვერ მოიძებნა - + The file '%1' cannot be opened. ფაილ '%1'-ის გახსნა შეუძლებელია. @@ -8232,8 +8232,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench აირჩიეთ სამუშაო მაგიდა %1 @@ -9198,12 +9197,12 @@ Please open a browser window and type in: http://localhost:%1. %1 ცარიელი არაა. წავშალო მისი შემცველობაც? - + Translation: მოძრაობითი გადატანა: - + Rotation: ბრუნვა: @@ -10349,7 +10348,7 @@ the current copy will be lost. ახალი ცარიელი პროექტის შექმნა - + Unnamed უსახელო @@ -12624,17 +12623,17 @@ FreeCAD-ის გაშვების შემდეგ Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar ხელსაწყოთა ზოლი - + Left corner მარცხენა კუთხე - + Right corner მარჯვენა კუთხე diff --git a/src/Gui/Language/FreeCAD_ko.ts b/src/Gui/Language/FreeCAD_ko.ts index 3b18f8d260..2b1c2764c4 100644 --- a/src/Gui/Language/FreeCAD_ko.ts +++ b/src/Gui/Language/FreeCAD_ko.ts @@ -48,24 +48,24 @@ <비어 있음> - - + + Angle - - + + Axis - + Position Position - + Enum Enum @@ -86,7 +86,7 @@ Run test cases to verify console messages - Run test cases to verify console messages + 시험삼아 콘솔 메시지를 확인해보기 위해 테스용 샘플을 실행 해 보세요 @@ -2335,7 +2335,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros 매크로 @@ -2356,8 +2356,8 @@ display the splash screen - - + + Existing file 존재하는 파일 @@ -2433,53 +2433,53 @@ Note: your changes will be applied when you next switch workbenches 워크스루 지침: 새로 만들기를 클릭한 다음, 오른쪽 화살표(->) 버튼을 클릭하고 닫기를 클릭합니다. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. 워크스루 지침: 새로 만들기를 클릭한 다음, 오른쪽 화살표(->) 버튼을 클릭하고 닫기를 클릭합니다. - + Renaming Macro File 매크로 파일 이름 바꾸기 - - + + Enter new name: 새 이름 입력하기: - - + + '%1' already exists. '%1' 이미 존재합니다. - + Rename Failed 이름 바꾸기 실패함 - + Failed to rename to '%1'. Perhaps a file permission error? '%1'(으)로 이름을 바꾸지 못했습니다. 어쩌면 파일권한 오류일까요? - + Duplicate Macro 매크로 복제하기 - + Duplicate Failed 복제 실패함 - + Failed to duplicate to '%1'. Perhaps a file permission error? '%1'(으)로 복제하지 못했습니다. @@ -2859,42 +2859,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings 사용자 지정 설정 지우기 - + Do you want to clear all your user settings? 모든 사용자 설정을 지우기 원하나요? - + If you agree all your settings will be cleared. 동의하면 모든 사용자 설정이 지워집니다. - + Wrong parameter 잘못 된 파라미터 - + Restart required 재시작 필요 - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4076,32 +4076,32 @@ get date suffix according to the specified format 지정된 형식에 따라 날짜 접미사가 붙습니다 - + Use date and FCBak extension 날짜 및 FCBak 확장 사용 - + Date format 날짜 형식 - + Document objects 문서 객체 - + Allow objects to have same label 객체가 동일한 레이블을 갖도록 허용하기 - + Allow duplicate object labels in one document 하나의 문서에 복제된 객체 레이블 허용하기 - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4114,22 +4114,22 @@ icon in the tree view to fully reload it. 두 번 눌러 문서를 완전히 다시 불러옵니다. - + Disable partial loading of external linked objects 외부 링크된 객체의 부분 불러오기 비활성화 - + Authoring and License 저작 및 라이선스 - + Author name 저작자 - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4138,32 +4138,32 @@ You can also use the form: John Doe <john@doe.com> 다음 양식을 사용할 수도 있습니다. Gilong Hong <hong@gildong.com> - + The field 'Last modified by' will be set to specified author when saving the file 파일을 저장할 때 '마지막 수정자' 필드가 지정된 작성자로 설정됩니다 - + Set on save 저장 시 설정하기 - + Company 회사 - + Default company name to use for new files 새 파일에 사용할 기본 회사 이름 - + Default license 기본 라이선스 - + Default license for new documents 새 문서에 대한 기본 라이선스 @@ -4233,12 +4233,12 @@ You can also use the form: John Doe <john@doe.com> 기타 - + License URL 라이선스 URL - + URL describing more about the license 라이선스에 대해 자세히 설명하는 URL @@ -5118,13 +5118,13 @@ Larger value eases to pick things, but can make small features impossible to sel Top: - Top: + 상단: Middle: - Middle: + 중앙: @@ -5150,7 +5150,7 @@ Larger value eases to pick things, but can make small features impossible to sel Bottom: - Bottom: + 하단: @@ -5185,7 +5185,7 @@ Larger value eases to pick things, but can make small features impossible to sel Midway: - Midway: + 중간: @@ -6813,7 +6813,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension 치수 @@ -6843,32 +6843,32 @@ Do you want to save your changes? 모두 닫기 - + Toggles this toolbar 이 도구 모음 전환하기 - + Toggles this dockable window 이 도킹 가능 창 전환하기 - - + + Unsaved document 저장하지 않은 문서 - + The exported object contains external link. Please save the documentat least once before exporting. 내보낸 객체에 외부 링크가 포함되어 있습니다. 내보내기 전에 문서를 한 번 이상 저장하십시오. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? 외부 객체에 링크하려면, 문서를 한 번 이상 저장해야 합니다. @@ -6962,7 +6962,7 @@ How do you want to proceed? Point_%1 - Point_%1 + 포인트_%1 @@ -6982,12 +6982,12 @@ How do you want to proceed? &Align - &Align + 정렬하기(&A) &Remove last point - &Remove last point + 마지막 포인트 제거(&R) @@ -7106,17 +7106,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 남은 시간: %1 - + Aborting 중단 - + Do you really want to abort the operation? 작업을 중단 하시겠습니까? @@ -7129,12 +7129,12 @@ How do you want to proceed? 남은 시간: %1 - + Aborting 중단 - + Do you really want to abort the operation? 작업을 중단 하시겠습니까? @@ -7142,7 +7142,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object 링크된 객체 변경하기 @@ -7150,12 +7150,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error 에러 - + Object not found 객체를 찾을 수 없습니다 @@ -7370,17 +7370,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 파일 열기 %1 - + File not found 파일을 찾을 수 없습니다 - + The file '%1' cannot be opened. '%1' 파일을 열 수 없습니다. @@ -7388,22 +7388,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none 없음 - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 매크로 %1 실행(편집하려면 Shift+클릭) 키보드 단축키: %2 - + File not found 파일을 찾을 수 없습니다 - + The file '%1' cannot be opened. '%1' 파일을 열 수 없습니다. @@ -8036,7 +8036,7 @@ Do you want to specify another directory? Tree settings - Tree settings + 트리 설정 @@ -8234,8 +8234,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench '%1' 워크벤치 선택하기 @@ -8837,7 +8836,7 @@ Do you want to continue? Notifier - Notifier + 알림이 @@ -8848,7 +8847,7 @@ Do you want to continue? Notifier: - Notifier: + 알림이: @@ -9198,12 +9197,12 @@ Please open a browser window and type in: http://localhost:%1. %1이 비어 있지 않습니다. 내용도 삭제하시겠습니까? - + Translation: 이동: - + Rotation: 회전: @@ -10347,7 +10346,7 @@ the current copy will be lost. 비어 있는 새 문서 만들기 - + Unnamed 이름없음 @@ -12545,7 +12544,7 @@ after FreeCAD launches Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + 이미지의 두 포인트 사이의 길이를 설정하여 서로 작용하게 이미지 크기를 조정합니다. @@ -12619,17 +12618,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar 도구 모음 - + Left corner 왼쪽 모서리 - + Right corner 오른쪽 모서리 @@ -12712,7 +12711,7 @@ after FreeCAD launches Enter desired distance between the points - Enter desired distance between the points + 포인트 사이의 원하는 거리를 입력합니다 diff --git a/src/Gui/Language/FreeCAD_nl.ts b/src/Gui/Language/FreeCAD_nl.ts index 9968499522..bbe242a4e9 100644 --- a/src/Gui/Language/FreeCAD_nl.ts +++ b/src/Gui/Language/FreeCAD_nl.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Hoek - - + + Axis As - + Position Positie - + Enum Enum @@ -1992,7 +1992,7 @@ dot/period will always be printed. Save new... - Save new... + Nieuwe opslaan... @@ -2002,7 +2002,7 @@ dot/period will always be printed. Revert... - Revert... + Ongedaan maken... @@ -2017,7 +2017,7 @@ dot/period will always be printed. The text cursor will be blinking - The text cursor will be blinking + De tekstcursor zal knipperen @@ -2032,7 +2032,7 @@ dot/period will always be printed. Language and number format - Language and number format + Taal en nummer formaat @@ -2146,7 +2146,7 @@ het splashscherm weergeven Manage preference packs - Manage preference packs + Beheer voorkeurspakketten @@ -2211,7 +2211,7 @@ het splashscherm weergeven Apply the %1 preference pack - Apply the %1 preference pack + %1 voorkeurspakket toepassen @@ -2337,7 +2337,7 @@ het splashscherm weergeven Gui::Dialog::DlgMacroExecuteImp - + Macros Macro's @@ -2358,8 +2358,8 @@ het splashscherm weergeven - - + + Existing file Bestaand bestand @@ -2436,53 +2436,53 @@ Opmerking: uw wijzigingen worden toegepast wanneer u de volgende keer van werkba Stappeninstructies: Klik op de rechter pijltjestoets (->) en vervolgens op Sluiten. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Stappeninstructies: Klik op de knop Nieuw, vervolgens op de rechter pijltjestoets (->) en dan op Sluiten. - + Renaming Macro File Hernoemen van macrobestand - - + + Enter new name: Nieuwe naam invoeren: - - + + '%1' already exists. '%1' bestaat al. - + Rename Failed Hernoemen is mislukt - + Failed to rename to '%1'. Perhaps a file permission error? Kan de naam '%1' niet wijzigen. Misschien een fout met bestandsrechten? - + Duplicate Macro Macro dupliceren - + Duplicate Failed Dupliceren mislukt - + Failed to duplicate to '%1'. Perhaps a file permission error? Kan niet naar '%1' dupliceren. @@ -2830,7 +2830,7 @@ Kies een andere map, alstublieft. Delete user-saved preference pack '%1' - Delete user-saved preference pack '%1' + Verwijder door gebruiker opgeslagen voorkeurspakket '%1' @@ -2863,44 +2863,44 @@ Kies een andere map, alstublieft. Gui::Dialog::DlgPreferencesImp - + Clear user settings Gebruikersinstellingen wissen - + Do you want to clear all your user settings? Wilt u alle uw gebruikersinstellingen wissen? - + If you agree all your settings will be cleared. Als u akkoord gaat zullen alle uw instellingen worden gewist. - + Wrong parameter Verkeerde parameter - + Restart required Opnieuw opstarten vereist - + You must restart FreeCAD for changes to take effect. - You must restart FreeCAD for changes to take effect. + U moet FreeCAD herstarten om de wijzigingen toe te passen. + + + + Restart now + Nu opnieuw opstarten - Restart now - Restart now - - - Restart later - Restart later + Later opnieuw opstarten @@ -3306,7 +3306,7 @@ van de Python-console naar het rapportweergavepaneel Revert to Backup Config - Revert to Backup Config + Terugkeren naar back-up configuratie @@ -3316,7 +3316,7 @@ van de Python-console naar het rapportweergavepaneel Available backup files: - Available backup files: + Beschikbare back-upbestanden: @@ -3324,7 +3324,7 @@ van de Python-console naar het rapportweergavepaneel No selection in dialog, cannot load backup file - No selection in dialog, cannot load backup file + Geen selectie in dialoogvenster, kan back-upbestand niet laden @@ -3707,7 +3707,7 @@ de begrenzingsvakgrootte van het 3D-object dat op dat moment wordt weergegeven.< Check periodically at program start: - Check periodically at program start: + Controleer periodiek bij het opstarten van het programma: @@ -3747,7 +3747,7 @@ de begrenzingsvakgrootte van het 3D-object dat op dat moment wordt weergegeven.< Check now... - Check now... + Nu controleren... @@ -4083,32 +4083,32 @@ get date suffix according to the specified format krijgen het achtervoegsel van de datum volgens het opgegeven formaat - + Use date and FCBak extension Gebruik datum en FCBak-extensie - + Date format Datumformaat - + Document objects Document objecten - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Dubbele voorwerpnamen in een document toestaan - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4121,22 +4121,22 @@ Een gedeeltelijk geladen document kan niet worden bewerkt. Dubbelklik op het doc in de boomstructuurweergave om het volledig te herladen. - + Disable partial loading of external linked objects Gedeeltelijk laden van externe gekoppelde objecten uitschakelen - + Authoring and License Auteur en licentie - + Author name Auteursnaam - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4145,32 +4145,32 @@ Houd leeg voor anoniem. U kunt ook het formulier gebruiken: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Het veld 'Laatst gewijzigd door' wordt bij het opslaan van het bestand op de opgegeven auteur ingesteld - + Set on save Instellen met opslaan - + Company Bedrijf - + Default company name to use for new files Standaardbedrijfsnaam om te gebruiken voor nieuwe bestanden - + Default license Standaardlicentie - + Default license for new documents Standaardlicentie voor nieuwe documenten @@ -4240,12 +4240,12 @@ U kunt ook het formulier gebruiken: John Doe <john@doe.com> Andere - + License URL Licentie URL - + URL describing more about the license URL beschrijft meer over de licentie @@ -4717,7 +4717,7 @@ U kunt ook het formulier gebruiken: John Doe <john@doe.com> Font name: - Font name: + Naam lettertype: @@ -6105,7 +6105,7 @@ The 'Status' column shows whether the document could be recovered. Show dependencies - Show dependencies + Toon afhankelijkheden @@ -6127,7 +6127,7 @@ The 'Status' column shows whether the document could be recovered. Depended by - Depended by + Afhankelijk van @@ -6242,7 +6242,7 @@ oorspronkelijk geselecteerd voorafgaand aan het openen van dit dialoogvenster Show Report view on - Show Report view on + Toon rapportweergave op @@ -6817,7 +6817,7 @@ Wilt u uw wijzigingen opslaan? Gui::MainWindow - + Dimension Afmeting @@ -6847,32 +6847,32 @@ Wilt u uw wijzigingen opslaan? Alles sluiten - + Toggles this toolbar Schakelt deze werkbalk in/uit - + Toggles this dockable window Schakelt dit dokbare venster in/uit - - + + Unsaved document Niet-opgeslagen document - + The exported object contains external link. Please save the documentat least once before exporting. Het geëxporteerde object bevat een externe link. Sla het document minstens één keer op voordat u het exporteert. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Om een link naar externe objecten te kunnen maken, moet het document minstens één keer worden opgeslagen. @@ -7075,17 +7075,17 @@ How do you want to proceed? Press right mouse button and move mouse - Press right mouse button and move mouse + Druk op de rechtermuisknop en beweeg de muis Press left mouse button and move mouse - Press left mouse button and move mouse + Druk op de linkermuisknop en beweeg de muis Press middle mouse button or SHIFT and right mouse button - Press middle mouse button or SHIFT and right mouse button + Druk op de middelste muisknop of SHIFT en de rechtermuisknop @@ -7109,17 +7109,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Resterend: %1 - + Aborting Bezig met afbreken - + Do you really want to abort the operation? Wilt u echt de bewerking afbreken? @@ -7132,12 +7132,12 @@ How do you want to proceed? Resterend: %1 - + Aborting Bezig met afbreken - + Do you really want to abort the operation? Wilt u echt de bewerking afbreken? @@ -7145,7 +7145,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Het gekoppelde object wijzigen @@ -7153,12 +7153,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Fout - + Object not found Object niet gevonden @@ -7373,17 +7373,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Open bestand %1 - + File not found Bestand niet gevonden - + The file '%1' cannot be opened. Het bestand '%1' kan niet worden geopend. @@ -7391,22 +7391,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none geen - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Bestand niet gevonden - + The file '%1' cannot be opened. Het bestand '%1' kan niet worden geopend. @@ -8067,7 +8067,7 @@ Wilt u een andere map opgeven? Show items hidden in tree view - Show items hidden in tree view + Items verborgen in boomweergave weergeven @@ -8235,8 +8235,7 @@ Wilt u een andere map opgeven? Gui::WorkbenchGroup - - + Select the '%1' workbench Selecteer de '%1' werkbank @@ -8477,7 +8476,7 @@ Wilt u een andere map opgeven? Python - Python + Python @@ -9199,12 +9198,12 @@ Open een browservenster en typ: http://localhost:%1. De %1 is niet leeg. Mag de inhoud worden verwijderd? - + Translation: Verplaatsing: - + Rotation: Rotatie: @@ -9369,7 +9368,7 @@ Also auto redo the copy if the original linked object is changed. Refresh configurable object - Refresh configurable object + Configureerbaar object vernieuwen @@ -9421,7 +9420,7 @@ the current copy will be lost. Color Legend - Color Legend + Kleurenlegende @@ -10351,7 +10350,7 @@ the current copy will be lost. Maak een nieuw leeg document - + Unnamed Naamloos @@ -12240,7 +12239,7 @@ Wilt u toch doorgaan? Enable Notification Area - Enable Notification Area + Notificaties aanzetten @@ -12280,7 +12279,7 @@ Wilt u toch doorgaan? Non-Intrusive Notifications - Non-Intrusive Notifications + Niet-opdringerige meldingen @@ -12336,7 +12335,7 @@ Wilt u toch doorgaan? Hide when other window is activated - Hide when other window is activated + Verbergen wanneer een ander venster is geactiveerd @@ -12346,7 +12345,7 @@ Wilt u toch doorgaan? Do not show when inactive - Do not show when inactive + Niet tonen wanneer inactief @@ -12371,7 +12370,7 @@ Wilt u toch doorgaan? Auto-remove User Notifications - Auto-remove User Notifications + Automatisch verwijderen van gebruikersmeldingen @@ -12552,7 +12551,7 @@ nadat FreeCAD opgestart is Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + De afbeelding interactief schalen door een lengte tussen twee punten van de afbeelding in te stellen. @@ -12626,17 +12625,17 @@ nadat FreeCAD opgestart is Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Werkbalk - + Left corner Linkerhoek - + Right corner Rechterhoek diff --git a/src/Gui/Language/FreeCAD_pl.ts b/src/Gui/Language/FreeCAD_pl.ts index e6f6bfe232..8b5953cd74 100644 --- a/src/Gui/Language/FreeCAD_pl.ts +++ b/src/Gui/Language/FreeCAD_pl.ts @@ -47,24 +47,24 @@ <pusty> - - + + Angle Kąt - - + + Axis - + Position Pozycja - + Enum Wyliczenia @@ -106,7 +106,7 @@ Toggle measurement - Przełącz widoczność wymiarów + Włącz / wyłącz widoczność pomiarów @@ -256,7 +256,7 @@ Tools - Przybory + Narzędzia @@ -306,7 +306,7 @@ Measure - Wymiarowanie + Pomiary @@ -2002,7 +2002,7 @@ gdzie zawsze będzie wpisywana kropka. Revert... - Przywróć ... + Przywróć … @@ -2337,7 +2337,7 @@ wyświetli ekran powitalny Gui::Dialog::DlgMacroExecuteImp - + Macros Makropolecenie @@ -2358,8 +2358,8 @@ wyświetli ekran powitalny - - + + Existing file Plik już istnieje @@ -2436,53 +2436,53 @@ Uwaga: Twoje zmiany zostaną zastosowane przy następnym przełączeniu środowi Instrukcje przewodnika: Kliknij strzałkę w prawo (->), a następnie Zamknij. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrukcje przewodnika: Kliknij Nowy, następnie strzałkę w prawo (->), a następnie Zamknij. - + Renaming Macro File Zmiana nazwy pliku makrodefinicji - - + + Enter new name: Wprowadź nową nazwę: - - + + '%1' already exists. '%1' już istnieje. - + Rename Failed Zmiana nazwy nie powiodła się - + Failed to rename to '%1'. Perhaps a file permission error? Nie udało się zmienić nazwy na '%1'. Być może odmowa dostępu do pliku? - + Duplicate Macro Duplikuj Makroinstrukcje - + Duplicate Failed Błąd duplikowania - + Failed to duplicate to '%1'. Perhaps a file permission error? Nie można powielić do '%1'. @@ -2864,42 +2864,42 @@ Proszę podać inny katalog. Gui::Dialog::DlgPreferencesImp - + Clear user settings Wyczyść ustawienia użytkownika - + Do you want to clear all your user settings? Czy chcesz usunąć wszystkie ustawienia użytkownika? - + If you agree all your settings will be cleared. Jeśli się zgodzisz, wszystkie Twoje ustawienia zostaną usunięte. - + Wrong parameter Nieprawidłowy parametr - + Restart required Wymagany restart - + You must restart FreeCAD for changes to take effect. Musisz zrestartować FreeCAD, aby zmiany zaczęły obowiązywać. - + Restart now Uruchom ponownie teraz - + Restart later Uruchom ponownie później @@ -4082,32 +4082,32 @@ get date suffix according to the specified format Pliki kopii zapasowych otrzymają rozszerzenie ".FCbak" a nazwy plików przyrostek daty zgodnie z określonym formatem - + Use date and FCBak extension Użyj daty i rozszerzenia FCBak - + Date format Format daty - + Document objects Obiekty dokumentu - + Allow objects to have same label Zezwól na obiekty o identycznej nazwie - + Allow duplicate object labels in one document Zezwalaj na umieszczanie duplikatów etykiet obiektów w obrębie jednego dokumentu - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4120,22 +4120,22 @@ Częściowo załadowany dokument nie może być edytowany. Kliknij dwukrotnie w na widoku drzewa, aby go w pełni przeładować. - + Disable partial loading of external linked objects Wyłącz częściowe ładowanie połączonych obiektów zewnętrznych - + Authoring and License Prawa autorskie i licencja - + Author name Nazwa autora - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4144,32 +4144,32 @@ Pozostaw puste miejsce dla zachowania anonimowości. Możesz również skorzystać z formatki: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Podczas zapisywania pliku pole 'Ostatnio zmodyfikowany przez' zostanie uzupełnione nazwą określonego autora - + Set on save Ustaw przy zapisywaniu - + Company Nazwa firmy - + Default company name to use for new files Domyślna nazwa firmy dla nowych plików - + Default license Licencja domyślna - + Default license for new documents Domyślna licencja dla nowych dokumentów @@ -4239,12 +4239,12 @@ Możesz również skorzystać z formatki: John Doe <john@doe.com>Inne - + License URL Adres URL licencji - + URL describing more about the license Witryna ze szczegółami licencji @@ -5893,7 +5893,7 @@ Kolumna "Aktualny status" pokazuje, czy dokument może być odzyskany. Roll (around the x-axis) - Obrót (wokół osi x) + Przechylenie (wokół osi x) @@ -6133,7 +6133,7 @@ Kolumna "Aktualny status" pokazuje, czy dokument może być odzyskany. Selections - Zaznaczenia + Wybór: @@ -6819,7 +6819,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Wymiar @@ -6849,32 +6849,32 @@ Do you want to save your changes? Zamknij wszystkie - + Toggles this toolbar Włącza/wyłącza ten pasek narzędzi - + Toggles this dockable window Włącza/wyłącza to okno dokujące - - + + Unsaved document Niezapisany dokument - + The exported object contains external link. Please save the documentat least once before exporting. Wyeksportowany obiekt zawiera zewnętrzny odnośnik. Proszę zapisać dokument przynajmniej raz przed wyeksportowaniem. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Aby powiązać z obiektami zewnętrznymi, dokument musi być zapisany co najmniej raz. @@ -7112,17 +7112,17 @@ Jak chcesz kontynuować? Gui::ProgressBar - + Remaining: %1 Pozostało: %1 - + Aborting Przerywanie - + Do you really want to abort the operation? Czy na pewno chcesz przerwać tę operację? @@ -7135,12 +7135,12 @@ Jak chcesz kontynuować? Pozostało: %1 - + Aborting Przerywanie - + Do you really want to abort the operation? Czy na pewno chcesz przerwać tę operację? @@ -7148,7 +7148,7 @@ Jak chcesz kontynuować? Gui::PropertyEditor::LinkLabel - + Change the linked object Zmień połączony obiekt @@ -7156,12 +7156,12 @@ Jak chcesz kontynuować? Gui::PropertyEditor::LinkSelection - + Error Błąd - + Object not found Obiekt nie znaleziony @@ -7376,17 +7376,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Otwórz plik %1 - + File not found Nie znaleziono pliku - + The file '%1' cannot be opened. Plik '%1' nie może zostać otwarty. @@ -7394,22 +7394,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none brak - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Uruchom makro %1 (Shift + kliknięcie, aby edytować) skrót klawiszowy: %2 - + File not found Nie znaleziono pliku - + The file '%1' cannot be opened. Plik '%1' nie może zostać otwarty. @@ -7470,7 +7470,7 @@ Do you want to exit without saving your data? Open %1 as - Otwórz %1 jako + Otwórz %1 za pomocą: @@ -8236,8 +8236,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Wybierz Środowisko pracy '%1' @@ -8838,7 +8837,7 @@ Do you want to continue? Notifier - Notifier + Zgłoszenie od @@ -8849,7 +8848,7 @@ Do you want to continue? Notifier: - Zgłaszający: + Zgłoszenie od: @@ -9201,12 +9200,12 @@ Proszę otworzyć okno przeglądarki i wpisać: http://localhost:%1.%1 nie jest pusty, czy usunąć również jego zawartość? - + Translation: Przesunięcie: - + Rotation: Obrót: @@ -9454,13 +9453,13 @@ bieżącej kopii zostaną utracone. Box selection - Zaznacz obszar + Zaznacz obszarem Activate the box selection tool - Aktywuj narzędzie zaznaczania obszaru + Aktywuje narzędzie zaznaczania obszaru @@ -10290,7 +10289,7 @@ bieżącej kopii zostaną utracone. Measure distance - Wymiarowanie odległości + Pomiar odległości @@ -10353,7 +10352,7 @@ bieżącej kopii zostaną utracone. Utwórz nowy pusty dokument - + Unnamed Nienazwany @@ -11851,7 +11850,7 @@ bieżącej kopii zostaną utracone. Save image... - Zapisz obraz ... + Zapisz obraz … @@ -12628,17 +12627,17 @@ po uruchomieniu FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Pasek narzędzi - + Left corner Lewy narożnik - + Right corner Prawy narożnik diff --git a/src/Gui/Language/FreeCAD_pt-BR.ts b/src/Gui/Language/FreeCAD_pt-BR.ts index 8a226af598..858772758d 100644 --- a/src/Gui/Language/FreeCAD_pt-BR.ts +++ b/src/Gui/Language/FreeCAD_pt-BR.ts @@ -47,24 +47,24 @@ <vazio> - - + + Angle Ângulo - - + + Axis Eixo - + Position Posição - + Enum Enum @@ -85,7 +85,7 @@ Run test cases to verify console messages - Run test cases to verify console messages + Executar casos de teste para verificar as mensagens do console @@ -98,7 +98,7 @@ Clear all visible measurements - Clear all visible measurements + Limpar todas as cotas visíveis @@ -111,7 +111,7 @@ Turn on or off the display of all measurements - Turn on or off the display of all measurements + Ativar ou desativar a exibição de todas as cotas @@ -228,7 +228,7 @@ Edit image - Edit image + Editar imagem @@ -428,7 +428,7 @@ The object will be edited using the mode defined internally to be the most appropriate for the object type - The object will be edited using the mode defined internally to be the most appropriate for the object type + O objeto será editado usando o modo definido internamente para ser o mais apropriado para o tipo de objeto @@ -438,7 +438,7 @@ The object will have its placement editable with the Std TransformManip command - The object will have its placement editable with the Std TransformManip command + O objeto terá seu posicionamento editável com o comando Std TransformManip @@ -448,7 +448,7 @@ This edit mode is implemented as available but currently does not seem to be used by any object - This edit mode is implemented as available but currently does not seem to be used by any object + Este modo de edição está implementado como disponível, mas atualmente não parece ser usado por nenhum objeto @@ -458,7 +458,7 @@ The object will have the color of its individual faces editable with the Part FaceColors command - The object will have the color of its individual faces editable with the Part FaceColors command + O objeto terá a cor de suas faces individuais editáveis com o comando Part FaceColors @@ -1271,7 +1271,7 @@ Se este campo não estiver marcado, então, a propriedade deve ser nomeada e ace To change a current shortcut enter the new shortcut in the field below and press 'Assign'. - To change a current shortcut enter the new shortcut in the field below and press 'Assign'. + Para alterar um atalho atual digite o novo atalho no campo abaixo e pressione 'Atribuir'. @@ -1959,10 +1959,10 @@ simultaneamente. Aquele com a maior prioridade será acionado. will be substituted with locale separator, except in Python Console and Macro Editor where a dot/period will always be printed. - If enabled, numerical keypad decimal separator -will be substituted with locale separator, except -in Python Console and Macro Editor where a -dot/period will always be printed. + Se habilitado, o separador decimal do teclado numérico +será substituído pelo separador local, exceto +no Console Python e Editor de Macro onde um +ponto/ponto final sempre será impresso. @@ -2032,12 +2032,12 @@ dot/period will always be printed. Language and number format - Language and number format + Idioma e formato numérico Language: - Language: + Idioma: @@ -2047,7 +2047,7 @@ dot/period will always be printed. Unit system that should be used for all parts of the application - Unit system that should be used for all parts of the application + Sistema de unidades que será usado em todas as partes do aplicativo @@ -2072,7 +2072,7 @@ dot/period will always be printed. Substitute decimal separator - Substitute decimal separator + Substituir o separador decimal @@ -2116,14 +2116,14 @@ this according to your screen size or personal taste Size of recent file list: - Size of recent file list: + Tamanho da lista de arquivos recentes: Background of the main window (when no document is opened) will consist of tiles of a special image. See the FreeCAD Wiki for details about the image. - Background of the main window (when no document is opened) will consist of tiles of a special image. -See the FreeCAD Wiki for details about the image. + O fundo da janela principal (quando o documento é aberto) consistirá em blocos de uma imagem especial. +Veja a Wiki do FreeCAD para mais detalhes sobre a imagem. @@ -2336,7 +2336,7 @@ a tela de abertura será exibida Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2357,8 +2357,8 @@ a tela de abertura será exibida - - + + Existing file Arquivo existente @@ -2436,51 +2436,51 @@ Obs: as mudanças serão aplicadas na próxima troca de bancada Instruções: Clique na tecla seta para a direita (->), e depois Fechar. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrução: Clique Novo, então clique no botão seta para a direita (->), e depois Fechar. - + Renaming Macro File Renomear um arquivo de Macro - - + + Enter new name: Digite o novo nome: - - + + '%1' already exists. '%1' já existe. - + Rename Failed Falha ao renomear - + Failed to rename to '%1'. Perhaps a file permission error? Falha ao renomear para '%1'. Talvez um erro de permissão de arquivo? - + Duplicate Macro Duplicar Macro - + Duplicate Failed Não foi possível duplicar - + Failed to duplicate to '%1'. Perhaps a file permission error? Não foi possível duplicar para '%1'. @@ -2861,42 +2861,42 @@ Por favor especifique outro diretório. Gui::Dialog::DlgPreferencesImp - + Clear user settings Limpar as configurações de usuário - + Do you want to clear all your user settings? Você quer apagar todas as suas configurações do usuário? - + If you agree all your settings will be cleared. Se você concordar, todas as suas configurações serão apagadas. - + Wrong parameter Parâmetro incorreto - + Restart required - Restart required + Reinicialização necessária - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -2976,7 +2976,7 @@ Por favor especifique outro diretório. &Comment: - &Comment: + &Comentário: @@ -3059,12 +3059,12 @@ Por favor especifique outro diretório. Failed to extract project - Failed to extract project + Falha ao extrair projeto Failed to create project - Failed to create project + Falha ao criar projeto @@ -3115,7 +3115,7 @@ Por favor especifique outro diretório. Report view - Tela de relatório relatório + Ver Relatório @@ -3466,16 +3466,16 @@ can be rendered directly by GPU. Note: Sometimes this feature may lead to a host of different issues ranging from graphical anomalies to GPU crash bugs. Remember to report this setting as enabled when seeking support on the FreeCAD forums - If selected, Vertex Buffer Objects (VBO) will be used. -A VBO is an OpenGL feature that provides methods for uploading -vertex data (position, normal vector, color, etc.) to the graphics card. -VBOs offer substantial performance gains because the data resides -in the graphics memory rather than the system memory and so it -can be rendered directly by GPU. + Quando selecionado, serão utilizados Vertex Buffer Objects (VBO). +Um VBO é um recurso OpenGL que fornece métodos para carregar +dados de um vértice (posição, vetor normal, cor, etc.) para a placa de vídeo. +VBOs oferecem ganhos substanciais de desempenho porque os dados residem +na memória gráfica em vez da memória do sistema e eles +podem então ser renderizados diretamente pela GPU. -Note: Sometimes this feature may lead to a host of different -issues ranging from graphical anomalies to GPU crash bugs. Remember to -report this setting as enabled when seeking support on the FreeCAD forums +Nota: Às vezes, este recurso pode levar a uma série de diferentes +problemas que variam de anomalias gráficas a erros e bugs da GPU. Lembre-se de +relatar esta configuração como ativada ao buscar suporte nos fóruns do FreeCAD @@ -3486,13 +3486,13 @@ There are 3 options available to achieve this: 3) 'Centralized', manually turn off cache in all nodes of all view provider, and only cache at the scene graph root node. This offers the fastest rendering speed but slower response to any scene changes. - 'Render Caching' is another way to say 'Rendering Acceleration'. -There are 3 options available to achieve this: -1) 'Auto' (default), let Coin3D decide where to cache. -2) 'Distributed', manually turn on cache for all view provider root node. -3) 'Centralized', manually turn off cache in all nodes of all view provider, and -only cache at the scene graph root node. This offers the fastest rendering speed -but slower response to any scene changes. + 'Render Caching' é uma outra forma de dizer 'Aceleração de Renderização'. +Existem 3 opções disponíveis para conseguir isso: +1) 'Auto' (padrão), deixe Coin3D decidir onde fazer o cache; +2) 'Distribuído', ativa manualmente o cache para todos os nós raiz do provedor de vizualização; +3) 'Centralizado', desliga manualmente o cache em todos os nós do provedor de visualização e +apenas realiza o cache no nó raiz gráfico da cena. Isto oferece a maior velocidade de renderização +mas mais lenta para qualquer mudança de cena. @@ -4078,32 +4078,32 @@ get date suffix according to the specified format obterão um sufixo de data de acordo com o formato especificado - + Use date and FCBak extension Usar a data e a extensão FCBak - + Date format Formato da data - + Document objects Objetos do documento - + Allow objects to have same label Permitir que os objetos tenham a mesma etiqueta/nome - + Allow duplicate object labels in one document Permitir rótulos de objetos duplicados em um documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4116,22 +4116,22 @@ Um documento parcialmente carregado não pode ser editado. Dê um duplo clique n na arborescência para recarregá-lo completamente. - + Disable partial loading of external linked objects Desativar carregamento parcial de objetos externos vinculados - + Authoring and License Autoria e licença - + Author name Nome do autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4140,32 +4140,32 @@ Deixe vazio para ser anônimo. Você também pode usar o formulário: João Silva <joao@silva.com> - + The field 'Last modified by' will be set to specified author when saving the file O campo 'Última modificação por' será configurado como autor especificado ao salvar o arquivo - + Set on save Salvar - + Company Empresa - + Default company name to use for new files O nome de empresa padrão a ser usado para novos arquivos - + Default license Licença padrão - + Default license for new documents Licença padrão para novos arquivos @@ -4217,17 +4217,17 @@ Você também pode usar o formulário: João Silva <joao@silva.com> CERN Open Hardware Licence strongly-reciprocal - CERN Open Hardware Licence strongly-reciprocal + CERN Licença de Hardware Aberto altamente recíproca CERN Open Hardware Licence weakly-reciprocal - CERN Open Hardware Licence weakly-reciprocal + CERN Licença de Hardware Aberto poucamente recíproca CERN Open Hardware Licence permissive - CERN Open Hardware Licence permissive + CERN Licença de Hardware Aberto permissiva @@ -4235,12 +4235,12 @@ Você também pode usar o formulário: João Silva <joao@silva.com>Outro - + License URL URL da licença - + URL describing more about the license URL descrevendo mais sobre a licença @@ -4628,7 +4628,7 @@ Você também pode usar o formulário: João Silva <joao@silva.com> Keyboard shortcut count - Keyboard shortcut count + Contar atalhos do teclado @@ -4717,7 +4717,7 @@ Você também pode usar o formulário: João Silva <joao@silva.com> Font name of the navigation cube - Font name of the navigation cube + Nome da fonte do cubo de navegação @@ -4742,7 +4742,7 @@ Você também pode usar o formulário: João Silva <joao@silva.com> Base color for all elements - Base color for all elements + Cor base para todos os elementos @@ -4777,10 +4777,10 @@ Selecione um conjunto e, em seguida, pressione o botão para visualizar as refer Trackball: moving the mouse horizontally will rotate the part around the y-axis Turntable: the part will be rotated around the z-axis (with constrained axes). Free Turntable: the part will be rotated around the z-axis. - Rotation orbit style. -Trackball: moving the mouse horizontally will rotate the part around the y-axis -Turntable: the part will be rotated around the z-axis (with constrained axes). -Free Turntable: the part will be rotated around the z-axis. + Estilo de rotação órbita. +Seguirbola: mover o mouse horizontalmente irá girar a peça em torno do eixo y +Girarmesa a parte será girada em torno do eixo z (com eixos limitados). +Girarmesa livre: a parte será girada em torno do eixo z. @@ -4795,7 +4795,7 @@ Free Turntable: the part will be rotated around the z-axis. Free Turntable - Free Turntable + Girarmesa Livre @@ -5017,9 +5017,8 @@ horizontal space in Python console Area for picking elements in 3D view. Larger value eases to pick things, but can make small features impossible to select. - Area for picking elements in 3D view. -Larger value eases to pick things, but can make small features impossible to select. - + Área para escolher elementos na vista 3D. +Valores maiores facilitam a seleção, mas podem impedir a seleção de objetos menores. @@ -5109,24 +5108,24 @@ Larger value eases to pick things, but can make small features impossible to sel Linear gradient - Linear gradient + Gradiente linear Radial gradient - Radial gradient + Gradiente radial Top: - Top: + Topo: Middle: - Middle: + Meio: @@ -5152,12 +5151,12 @@ Larger value eases to pick things, but can make small features impossible to sel Bottom: - Bottom: + Embaixo: Tree view - Árvore + Exibição em árvore @@ -5167,7 +5166,7 @@ Larger value eases to pick things, but can make small features impossible to sel Background color for objects in tree view that are currently edited - Cor de fundo para objetos na árvore que estão editados + Cor de fundo para objetos na exibição em árvore que estão sendo editados @@ -5182,17 +5181,17 @@ Larger value eases to pick things, but can make small features impossible to sel Central: - Central: + Centro: Midway: - Midway: + Metade: End: - End: + Fim: @@ -6099,7 +6098,7 @@ The 'Status' column shows whether the document could be recovered. Show dependencies - Show dependencies + Mostrar dependências @@ -6231,7 +6230,7 @@ originalmente selecionados antes de abrir esta caixa de diálogo Critical messages - Critical messages + Mensagens críticas @@ -6812,7 +6811,7 @@ Deseja salvar as alterações? Gui::MainWindow - + Dimension Dimensão @@ -6842,32 +6841,32 @@ Deseja salvar as alterações? Fechar tudo - + Toggles this toolbar Alterna esta barra de ferramentas - + Toggles this dockable window Alterna esta janela acoplável - - + + Unsaved document Documento não salvo - + The exported object contains external link. Please save the documentat least once before exporting. O objeto exportado contém links externos. Salve o documento pelo menos uma vez antes de exportar. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Para vincular a objetos externos, o documento deve ser salvo pelo menos uma vez. @@ -6961,7 +6960,7 @@ Deseja prosseguir? Point_%1 - Point_%1 + Ponto_%1 @@ -6981,12 +6980,12 @@ Deseja prosseguir? &Align - &Align + &Alinhar &Remove last point - &Remove last point + &Remover último ponto @@ -6996,7 +6995,7 @@ Deseja prosseguir? &Synchronize views - &Synchronize views + &Sincronizar vistas @@ -7105,17 +7104,17 @@ Deseja prosseguir? Gui::ProgressBar - + Remaining: %1 Restante: %1 - + Aborting Interrompendo - + Do you really want to abort the operation? Você realmente deseja abortar a operação? @@ -7128,12 +7127,12 @@ Deseja prosseguir? Restante: %1 - + Aborting Interrompendo - + Do you really want to abort the operation? Você realmente deseja abortar a operação? @@ -7141,7 +7140,7 @@ Deseja prosseguir? Gui::PropertyEditor::LinkLabel - + Change the linked object Mudar o objeto vinculado @@ -7149,12 +7148,12 @@ Deseja prosseguir? Gui::PropertyEditor::LinkSelection - + Error Erro - + Object not found Objeto não encontrado @@ -7369,17 +7368,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Abrir o arquivo %1 - + File not found Arquivo não encontrado - + The file '%1' cannot be opened. Não é possível abrir o arquivo '%1'. @@ -7387,22 +7386,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none nenhum - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Executar macro %1 (Shift+clique para editar) atalho de teclado: %2 - + File not found Arquivo não encontrado - + The file '%1' cannot be opened. Não é possível abrir o arquivo '%1'. @@ -7792,7 +7791,7 @@ Do you want to specify another directory? Belarusian - Belarusian + Bielorrusso @@ -7995,7 +7994,7 @@ Do you want to specify another directory? Tree view - Árvore + Exibição em árvore @@ -8031,17 +8030,17 @@ Do you want to specify another directory? Tree settings - Tree settings + Configuração da árvore Show description column - Show description column + Mostrar coluna de descrição Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. - Show an extra tree view column for item description. The item's description can be set by pressing F2 (or your OS's edit button) or by editing the 'label2' property. + Exibe uma coluna extra de vista em árvore para a descrição do item. A descrição do item pode ser definida pressionando F2 (ou o botão editar do seu SO) ou editando a propriedade 'label2'. @@ -8061,22 +8060,22 @@ Do you want to specify another directory? Show items hidden in tree view - Show items hidden in tree view + Mostrar itens ocultos na vista em árvore Show items that are marked as 'hidden' in the tree view - Show items that are marked as 'hidden' in the tree view + Exibir itens marcados como 'oculto' na visualização de árvore Toggle visibility in tree view - Toggle visibility in tree view + Alternar visibilidade na exibição em árvore Toggles the visibility of selected items in the tree view - Toggles the visibility of selected items in the tree view + Alterna a visibilidade dos itens selecionados na exibição em árvore @@ -8229,10 +8228,9 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench - Selecione a bancada '%1' + Selecione a bancada de trabalho '%1' @@ -8404,7 +8402,7 @@ Do you want to specify another directory? Tree view - Árvore + Exibição em árvore @@ -8429,7 +8427,7 @@ Do you want to specify another directory? Report view - Tela de relatório relatório + Ver Relatório @@ -8499,7 +8497,7 @@ Do you want to specify another directory? Workbench failure - Falha de bancada + Falha da bancada de trabalho @@ -8712,7 +8710,7 @@ Do you want to continue? Save image - Save image + Salvar imagem @@ -8829,18 +8827,18 @@ Do you want to continue? Notifier - Notifier + Notificador Message - Message + Mensagem Notifier: - Notifier: + Notificador: @@ -8855,7 +8853,7 @@ Do you want to continue? Too many opened non-intrusive notifications. Notifications are being omitted! - Too many opened non-intrusive notifications. Notifications are being omitted! + Muitas notificações não intrusivas abertas. Notificações estão sendo omitidas! @@ -9190,12 +9188,12 @@ Please open a browser window and type in: http://localhost:%1. %1 não está vazio. Excluir seu conteúdo também? - + Translation: Translação: - + Rotation: Rotação: @@ -9299,7 +9297,7 @@ ou underscore e não deve começar com um número. Setup configurable object - Setup configurable object + Ajustar objeto configurável @@ -9402,17 +9400,17 @@ cópia atual será perdida. Change image... - Change image... + Alterar imagem... Color Gradient - Color Gradient + Gradiente de cor Color Legend - Color Legend + Cor da Legenda @@ -9449,7 +9447,7 @@ cópia atual será perdida. Activate the box selection tool - Activate the box selection tool + Ativar ferramenta de seleção de caixa @@ -9533,7 +9531,7 @@ cópia atual será perdida. Turns on or off the axis cross at the origin - Turns on or off the axis cross at the origin + Liga ou desliga o cruzamento de eixo na origem @@ -9841,7 +9839,7 @@ cópia atual será perdida. Actions that apply to expressions - Actions that apply to expressions + Ações que se aplicam às expressões @@ -10043,7 +10041,7 @@ cópia atual será perdida. Actions that apply to link objects - Actions that apply to link objects + Ações que se aplicam a objetos vinculados @@ -10229,7 +10227,7 @@ cópia atual será perdida. Step to the next line executed - Step to the next line executed + Etapa para a próxima linha executada @@ -10243,7 +10241,7 @@ cópia atual será perdida. Step to the next line in this file - Step to the next line in this file + Etapa para a proxima linha deste arquivo @@ -10285,7 +10283,7 @@ cópia atual será perdida. Activate the distance measurement tool - Activate the distance measurement tool + Ativar a ferramenta de medição de distância @@ -10342,7 +10340,7 @@ cópia atual será perdida. Criar um novo documento vazio - + Unnamed Sem nome @@ -10564,7 +10562,7 @@ cópia atual será perdida. Set each selected object to a randomly-selected color - Set each selected object to a randomly-selected color + Definir cada objeto selecionado para uma cor aleatoriamente selecionada @@ -10914,7 +10912,7 @@ cópia atual será perdida. Add or remove a breakpoint at this position - Add or remove a breakpoint at this position + Adicionar ou remover um ponto de interrupção nesta posição @@ -11076,13 +11074,13 @@ cópia atual será perdida. TreeView actions - Ações da árvore + Ações de Exibição em Árvore TreeView behavior options and actions - Opções e ações da árvore + Opções e ações da exibição em árvore @@ -11552,7 +11550,7 @@ cópia atual será perdida. Activate window - Activate window + Ativar janela @@ -11622,13 +11620,13 @@ cópia atual será perdida. Recall working view - Recall working view + Revocar vista de trabalho Recall previously stored temporary working view - Recall previously stored temporary working view + Revocar vista de trabalho temporária previamente armazenada @@ -11636,13 +11634,13 @@ cópia atual será perdida. Store working view - Store working view + Guardar vista de trabalho Store a document-specific temporary working view - Store a document-specific temporary working view + Guardar uma vista de trabalho temporária específica do documento @@ -11790,7 +11788,7 @@ cópia atual será perdida. Activate the box zoom tool - Activate the box zoom tool + Ativar a ferramenta de caixa de zoom @@ -11840,7 +11838,7 @@ cópia atual será perdida. Save image... - Save image... + Salvar imagem... @@ -11874,7 +11872,7 @@ cópia atual será perdida. Increase the zoom factor by a fixed amount - Increase the zoom factor by a fixed amount + Aumentar o fator de zoom em uma quantidade fixa @@ -11888,7 +11886,7 @@ cópia atual será perdida. Decrease the zoom factor by a fixed amount - Decrease the zoom factor by a fixed amount + Diminuir o fator de zoom em uma quantidade fixa @@ -12051,32 +12049,32 @@ Deseja prosseguir mesmo assim? Tree view item background. Only effective in overlay. - Tree view item background. Only effective in overlay. + Itens de fundo da exibição em árvore. Apenas eficaz em sobreposição. Tree view item background padding. - Tree view item background padding. + Preenchimento de itens de fundo da exibição em árvore. Hide extra tree view column for item description. - Hide extra tree view column for item description. + Ocultar coluna extra de exibição em árvore para descrição do item. Hide tree view scroll bar in dock overlay. - Hide tree view scroll bar in dock overlay. + Ocultar barra de rolagem da exibição em árvore na sobreposição de encaixe. Hide tree view header view in dock overlay. - Hide tree view header view in dock overlay. + Ocultar cabeçalho da exibição em árvore na sobreposição de encaixe. Allow tree view columns to be manually resized. - Allow tree view columns to be manually resized. + Permitir que as colunas de exibição em árvore sejam redimensionadas manualmente. @@ -12099,7 +12097,7 @@ Deseja prosseguir mesmo assim? Clipboard - Clipboard + Área de transferência @@ -12216,7 +12214,7 @@ Deseja prosseguir mesmo assim? Notification Area - Notification Area + Área de Notificação @@ -12226,22 +12224,22 @@ Deseja prosseguir mesmo assim? The Notification area will appear in the status bar - The Notification area will appear in the status bar + A área de notificação aparecerá na barra de status Enable Notification Area - Enable Notification Area + Ativar Área de Notificação Non-intrusive notifications will appear next to the notification area in the status bar - Non-intrusive notifications will appear next to the notification area in the status bar + Notificações não intrusivas aparecerão ao lado da área de notificação na barra de status Enable non-intrusive notifications - Enable non-intrusive notifications + Ativar notificações não-intrusivas @@ -12266,27 +12264,27 @@ Deseja prosseguir mesmo assim? Debug warnings - Debug warnings + Alertas de depuração Non-Intrusive Notifications - Non-Intrusive Notifications + Notificações não-intrusivas Minimum Duration: - Minimum Duration: + Duração Mínima: Maximum Duration: - Maximum Duration: + Duração Máxima: Duration during which the notification will be shown (unless mouse buttons are clicked) - Duration during which the notification will be shown (unless mouse buttons are clicked) + Duração durante a qual a notificação será exibida (a menos que os botões do mouse sejam clicados) @@ -12297,77 +12295,77 @@ Deseja prosseguir mesmo assim? Minimum duration during which the notification will be shown (unless notification clicked) - Minimum duration during which the notification will be shown (unless notification clicked) + Duração mínima durante a qual a notificação será exibida (a menos que a notificação seja clicada) Maximum Number of Notifications: - Maximum Number of Notifications: + Número máximo de notificações: Maximum number of notifications that will be simultaneously present on the screen - Maximum number of notifications that will be simultaneously present on the screen + Número máximo de notificações que estará simultaneamente presente na tela Notification width: - Notification width: + Largura da notificação: Width of the notification in pixels - Width of the notification in pixels + Largura da notificação em pixels Any open non-intrusive notifications will disappear when another window is activated - Any open non-intrusive notifications will disappear when another window is activated + Quaisquer notificações não intrusivas abertas desaparecerão quando outra janela for ativada Hide when other window is activated - Hide when other window is activated + Ocultar quando outra janela estiver ativada Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window - Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window + Impedir que notificações não intrusivas apareçam quando a janela do FreeCAD não for a janela ativa Do not show when inactive - Do not show when inactive + Não mostrar quando inativo Message List - Message List + Lista de Mensagens Limit the number of messages that will be kept in the list. If 0 there is no limit. - Limit the number of messages that will be kept in the list. If 0 there is no limit. + Limitar o número de mensagens que serão mantidas na lista. Não há limite se for 0. Maximum Messages (0 = no limit): - Maximum Messages (0 = no limit): + Máximo de Mensagens (0 = sem limite): Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. - Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. + Remove as notificações do usuário da lista de mensagens após a duração máxima não intrusiva passar. Auto-remove User Notifications - Auto-remove User Notifications + Remover automaticamente notificações de usuário Activation of the Notification Area only takes effect after an application restart. - Activation of the Notification Area only takes effect after an application restart. + Ativação da área de notificação só entra em vigor após o reinício do aplicativo. @@ -12381,13 +12379,13 @@ Deseja prosseguir mesmo assim? <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> Currently, your system has the following workbenches:</p></body></html> - <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> -Currently, your system has the following workbenches:</p></body></html> + <html><head/><body><p>Você pode reordenar as bancadas de trabalho arrastando e soltando. Bancadas de trabalho adicionais podem ser instaladas através do gerenciador de addon.</p><p> +Atualmente, o seu sistema tem as seguintes bancadas de trabalho:</p></body></html> Start up workbench: - Start up workbench: + Iniciar bancada de trabalho: @@ -12434,7 +12432,7 @@ after FreeCAD launches Planes - Planes + Planos @@ -12467,12 +12465,12 @@ after FreeCAD launches Image plane settings - Image plane settings + Configurações de plano de imagem Planes - Planes + Planos @@ -12502,27 +12500,27 @@ after FreeCAD launches X distance: - X distance: + Distância X: Y distance: - Y distance: + Distância Y: Rotation : - Rotation : + Rotação : Transparency : - Transparency : + Transparência : Image size - Image size + Tamanho da imagem @@ -12537,12 +12535,12 @@ after FreeCAD launches Keep aspect ratio - Keep aspect ratio + Manter proporção Interactively scale the image by setting a length between two points of the image. - Interactively scale the image by setting a length between two points of the image. + Ajustar a imagem de forma interativa, definindo um comprimento entre dois pontos da imagem. @@ -12552,7 +12550,7 @@ after FreeCAD launches Calibration - Calibration + Calibração @@ -12570,27 +12568,27 @@ after FreeCAD launches If unchecked, %1 will not appear in the available workbenches. - If unchecked, %1 will not appear in the available workbenches. + Se desmarcado, %1 não aparecerá nas bancadas de trabalho disponíveis. This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. - This is the current startup module, and must be enabled. See Preferences/General/Autoload to change. + Este é o módulo de inicialização atual e deve estar ativado. Veja Preferências/Gerais/Carregamento Automático para mudar. Shortcut to activate this workbench. - Shortcut to activate this workbench. + Atalho para ativar esta bancada de trabalho. Auto-load - Auto-load + Carregar automaticamente If checked, %1 will be loaded automatically when FreeCAD starts up - If checked, %1 will be loaded automatically when FreeCAD starts up + Se marcado, %1 será carregado automaticamente quando o FreeCAD iniciar @@ -12610,23 +12608,23 @@ after FreeCAD launches To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. - To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality. + Para preservar recursos, o FreeCAD não carrega bancadas de trabalho até que sejam usadas. Carregá-las manualmente pode fornecer acesso a preferências adicionais relacionadas à sua funcionalidade. Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra de ferramentas - + Left corner Canto esquerdo - + Right corner Canto direito @@ -12641,12 +12639,12 @@ after FreeCAD launches Delete user notifications - Delete user notifications + Excluir notificações de usuário Delete All - Delete All + Excluir Tudo @@ -12654,12 +12652,12 @@ after FreeCAD launches Delete user notifications - Delete user notifications + Excluir notificações de usuário Delete All - Delete All + Excluir Tudo @@ -12667,17 +12665,17 @@ after FreeCAD launches Failed to load image file - Failed to load image file + Falha ao carregar arquivo de imagem Cannot load file %1: %2 - Cannot load file %1: %2 + Não foi possível carregar o arquivo %1: %2 Fit to window - Fit to window + Ajustar à janela @@ -12695,13 +12693,13 @@ after FreeCAD launches Load image... - Load image... + Carregar imagem... Loads an image - Loads an image + Carrega uma imagem @@ -12709,7 +12707,7 @@ after FreeCAD launches Enter desired distance between the points - Enter desired distance between the points + Digite a distância desejada entre os pontos @@ -12717,12 +12715,12 @@ after FreeCAD launches Movable navigation cube - Movable navigation cube + Cubo de navegação móvel Drag and place NaviCube - Drag and place NaviCube + Arraste e posicione o NaviCube @@ -12730,32 +12728,32 @@ after FreeCAD launches FRONT - FRONT + FRENTE TOP - TOP + TOPO RIGHT - RIGHT + DIREITA REAR - REAR + ATRÁS BOTTOM - BOTTOM + BASE LEFT - LEFT + ESQUERDA @@ -12764,7 +12762,7 @@ after FreeCAD launches An error occurred -- see Report View for information - An error occurred -- see Report View for information + Ocorreu um erro -- consulte Ver Relatório para informações diff --git a/src/Gui/Language/FreeCAD_pt-PT.ts b/src/Gui/Language/FreeCAD_pt-PT.ts index 1d24b29ce2..9707f491d6 100644 --- a/src/Gui/Language/FreeCAD_pt-PT.ts +++ b/src/Gui/Language/FreeCAD_pt-PT.ts @@ -47,24 +47,24 @@ <vazio> - - + + Angle Ângulo - - + + Axis Eixo - + Position Posição - + Enum Enum @@ -561,7 +561,7 @@ Please wait until the AutoRecovery file has been saved... - Aguarde até o ficheiro de AutoRecuperação ser salvo... + Aguarde até o ficheiro de AutoRecuperação ser guardado... @@ -2336,7 +2336,7 @@ exibirá a janela de abertura Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2357,8 +2357,8 @@ exibirá a janela de abertura - - + + Existing file Ficheiro Existente @@ -2435,51 +2435,51 @@ Note: your changes will be applied when you next switch workbenches Instruções passo-a-passo: Clique na seta para a direita (->), e depois Fechar. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instruções passo-a-passo: Clique Novo, de seguida na seta para a direita (->), e depois Fechar. - + Renaming Macro File Renomear o Ficheiro Macro - - + + Enter new name: Digite o novo nome: - - + + '%1' already exists. '%1' já existe. - + Rename Failed Falha ao Renomear - + Failed to rename to '%1'. Perhaps a file permission error? Falha ao renomear para '%1'. Talvez um erro de permissão de ficheiro? - + Duplicate Macro Duplicar Macro - + Duplicate Failed Duplicação falhada - + Failed to duplicate to '%1'. Perhaps a file permission error? Falha ao duplicar para '%1'. @@ -2861,42 +2861,42 @@ Por favor, indique outra pasta. Gui::Dialog::DlgPreferencesImp - + Clear user settings Limpar as configurações do utilizador - + Do you want to clear all your user settings? Você quer apagar todas as suas configurações de utilizador? - + If you agree all your settings will be cleared. Se aceitar todas as suas configurações serão apagadas. - + Wrong parameter Parâmetro Errado - + Restart required Restart required - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4081,32 +4081,32 @@ get date suffix according to the specified format get date suffix according to the specified format - + Use date and FCBak extension Use date and FCBak extension - + Date format Formato de data - + Document objects Objetos de documento - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Permitir os nomes de objeto duplicados num documento - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4119,22 +4119,22 @@ A partially loaded document cannot be edited. Double click the document icon in the tree view to fully reload it. - + Disable partial loading of external linked objects Disable partial loading of external linked objects - + Authoring and License Autoria e licença - + Author name Nome do autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4143,32 +4143,32 @@ Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file The field 'Last modified by' will be set to specified author when saving the file - + Set on save Salvar - + Company Empresa - + Default company name to use for new files Default company name to use for new files - + Default license Licença padrão - + Default license for new documents Licença padrão para novos documentos @@ -4238,12 +4238,12 @@ You can also use the form: John Doe <john@doe.com> Outros - + License URL URL da licença - + URL describing more about the license URL describing more about the license @@ -6817,7 +6817,7 @@ Deseja guardar as suas alterações? Gui::MainWindow - + Dimension Dimensão @@ -6847,32 +6847,32 @@ Deseja guardar as suas alterações? Fechar Tudo - + Toggles this toolbar Altera esta Barra de Ferramentas - + Toggles this dockable window Ativa/desativa esta janela encaixável - - + + Unsaved document Documento não guardado - + The exported object contains external link. Please save the documentat least once before exporting. The exported object contains external link. Please save the documentat least once before exporting. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? To link to external objects, the document must be saved at least once. @@ -7110,17 +7110,17 @@ Como pretende continuar? Gui::ProgressBar - + Remaining: %1 Restante: %1 - + Aborting a abortar ... - + Do you really want to abort the operation? Quer realmente abortar a operação? @@ -7133,12 +7133,12 @@ Como pretende continuar? Restante: %1 - + Aborting a abortar ... - + Do you really want to abort the operation? Quer realmente abortar a operação? @@ -7146,7 +7146,7 @@ Como pretende continuar? Gui::PropertyEditor::LinkLabel - + Change the linked object Alterar o objeto ligado @@ -7154,12 +7154,12 @@ Como pretende continuar? Gui::PropertyEditor::LinkSelection - + Error Erro - + Object not found Objeto não encontrado @@ -7375,17 +7375,17 @@ Deseja sair sem guardar os seus dados? Gui::RecentFilesAction - + Open file %1 Abrir Ficheiro %1 - + File not found Ficheiro não encontrado - + The file '%1' cannot be opened. Não foi possível abrir o ficheiro '%1'. @@ -7393,22 +7393,22 @@ Deseja sair sem guardar os seus dados? Gui::RecentMacrosAction - + none Nenhuma - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Ficheiro não encontrado - + The file '%1' cannot be opened. Não foi possível abrir o ficheiro '%1'. @@ -8237,8 +8237,7 @@ Quer especificar outro diretório? Gui::WorkbenchGroup - - + Select the '%1' workbench Selecione a bancada '%1' @@ -9200,12 +9199,12 @@ Por favor, abra um navegador e digite: http://localhost:%1. O %1 não está vazio, Apagar o seu conteúdo também? - + Translation: Tradução: - + Rotation: Rotação: @@ -10352,7 +10351,7 @@ the current copy will be lost. Criar um Novo Documento vazio - + Unnamed Sem nome @@ -12627,17 +12626,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barras de ferramentas - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_ro.ts b/src/Gui/Language/FreeCAD_ro.ts index 50adb67a6e..676cc5b3c2 100644 --- a/src/Gui/Language/FreeCAD_ro.ts +++ b/src/Gui/Language/FreeCAD_ro.ts @@ -47,24 +47,24 @@ (gol) - - + + Angle Unghi - - + + Axis Axele - + Position Position - + Enum Enum @@ -2338,7 +2338,7 @@ ecranul de pornire Gui::Dialog::DlgMacroExecuteImp - + Macros Macro-uri @@ -2359,8 +2359,8 @@ ecranul de pornire - - + + Existing file Fișier existent @@ -2438,51 +2438,51 @@ Notă: modificările dvs. vor fi aplicate la schimbarea următoare a bancului de Instrucțiuni walkthrough: Apasă butonul săgeată dreapta (->), apoi Închide. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instrucțiuni walkthrough: Apasă butonul Nou, apoi săgeată dreapta (->), apoi Închide. - + Renaming Macro File Redenumirea fişierului Macro - - + + Enter new name: Introduceţi numele nou: - - + + '%1' already exists. '%1' există deja. - + Rename Failed Redenumirea a eșuat - + Failed to rename to '%1'. Perhaps a file permission error? Nu a reușit să redenumească ca '%1'. Probabil că este o eroare de permisiuni atașate fișierului? - + Duplicate Macro Fațete duplicate - + Duplicate Failed Dublare eșuată - + Failed to duplicate to '%1'. Perhaps a file permission error? Nu a reușit să redenumească ca '%1'. Probabil că este o eroare de permisiuni atașate fișierului? @@ -2861,42 +2861,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Șterge setãrile utilizator - + Do you want to clear all your user settings? Vrei să ştergi toate setările de utilizator? - + If you agree all your settings will be cleared. Dacă sunteţi de acord vor fi eliminate toate setările. - + Wrong parameter Parametru greşit - + Restart required Repornire necesară - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4082,32 +4082,32 @@ get date suffix according to the specified format obțin sufixul datei în conformitate cu formatul specificat - + Use date and FCBak extension Utilizează data și extensia FCBak - + Date format Formatul datei - + Document objects Obiecte din document - + Allow objects to have same label Permite obiectelor să aibă aceeași etichetă/nume - + Allow duplicate object labels in one document Permite duplicarea etichetelor de obiecte intr-un document - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4120,22 +4120,22 @@ Un document parțial încărcat nu poate fi editat. Faceți dublu clic pe pictog din vizualizarea arbore, pentru a-l reîncărca complet. - + Disable partial loading of external linked objects Dezactivează încărcarea parțială a obiectelor externe conectate - + Authoring and License Autor şi licenţă - + Author name Numele autorului - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4144,32 +4144,32 @@ Păstrați necompletat pentru anonim. Puteți folosi și formatul: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Câmpul 'Ultima modificare de' va fi setat pe autorul specificat la salvarea fișierului - + Set on save Définit în timpul salvării - + Company Companie - + Default company name to use for new files Numele companiei implicit ce va fi folosit pentru fişiere noi - + Default license Licența implicită - + Default license for new documents Licența implicită pentru documentele noi @@ -4239,12 +4239,12 @@ Puteți folosi și formatul: John Doe <john@doe.com> Altceva - + License URL URL licență - + URL describing more about the license URL care descrie mai multe despre licență @@ -6817,7 +6817,7 @@ Doriți să salvați modificările? Gui::MainWindow - + Dimension Dimensiune @@ -6847,32 +6847,32 @@ Doriți să salvați modificările? Inchide toate - + Toggles this toolbar Activează/dezactivează această bară de instrumente - + Toggles this dockable window Activează/dezactivează această fereastră fixabilă - - + + Unsaved document Document nesalvat - + The exported object contains external link. Please save the documentat least once before exporting. Obiectul exportat conține o legătură externă. Vă rugăm să salvați documentul cel puțin o dată înainte de al exporta. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Pentru face legăturile la obiecte externe, documentul trebuie salvat cel puțin o dată. @@ -7110,17 +7110,17 @@ Cum doresti sa continuam? Gui::ProgressBar - + Remaining: %1 Rămas:%1 - + Aborting Se anulează - + Do you really want to abort the operation? Chiar doriţi abandonarea operațiunii? @@ -7133,12 +7133,12 @@ Cum doresti sa continuam? Rămas:%1 - + Aborting Se anulează - + Do you really want to abort the operation? Chiar doriţi abandonarea operațiunii? @@ -7146,7 +7146,7 @@ Cum doresti sa continuam? Gui::PropertyEditor::LinkLabel - + Change the linked object Modificați obiectul atașat @@ -7154,12 +7154,12 @@ Cum doresti sa continuam? Gui::PropertyEditor::LinkSelection - + Error Eroare - + Object not found Obiectul nu a fost găsit @@ -7375,17 +7375,17 @@ Doriți să ieşiți fără a salva datele dumneavoastră? Gui::RecentFilesAction - + Open file %1 Deschide fişierul %1 - + File not found Fișier nu a fost găsit - + The file '%1' cannot be opened. Fișierul '%1' nu poate fi deschis. @@ -7393,22 +7393,22 @@ Doriți să ieşiți fără a salva datele dumneavoastră? Gui::RecentMacrosAction - + none niciunul - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Rulează scurtătura macro %1 (Shift+click pentru editare) tastatură: %2 - + File not found Fișier nu a fost găsit - + The file '%1' cannot be opened. Fișierul '%1' nu poate fi deschis. @@ -8237,8 +8237,7 @@ Doriţi să specificaţi un alt director? Gui::WorkbenchGroup - - + Select the '%1' workbench Selectaţi bancul de lucru '%1' @@ -9200,12 +9199,12 @@ Please open a browser window and type in: http://localhost:%1. %1 nu este vid, suprimați totuși conținutul ? - + Translation: Traducere: - + Rotation: Rotaţie: @@ -10352,7 +10351,7 @@ copia curentă va fi pierdută. Creaţi un nou document gol - + Unnamed Nedenumit @@ -12627,17 +12626,17 @@ după lansarea FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Bară de instrumente - + Left corner Colț stânga - + Right corner Colţul din dreapta diff --git a/src/Gui/Language/FreeCAD_ru.ts b/src/Gui/Language/FreeCAD_ru.ts index 1c41037727..531fdb9109 100644 --- a/src/Gui/Language/FreeCAD_ru.ts +++ b/src/Gui/Language/FreeCAD_ru.ts @@ -47,24 +47,24 @@ <пусто> - - + + Angle Угол - - + + Axis Ось - + Position Положение - + Enum Перечисления @@ -2334,7 +2334,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Макрос @@ -2355,8 +2355,8 @@ display the splash screen - - + + Existing file Существующий файл @@ -2434,52 +2434,52 @@ Note: your changes will be applied when you next switch workbenches Пошаговые инструкции: Нажмите на кнопку со стрелкой вправо (->), затем закройте. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Пошаговые инструкции: Нажмите новый, затем на кнопку со стрелкой вправо (->), затем закройте. - + Renaming Macro File Переименование файла макроса - - + + Enter new name: Введите новое имя: - - + + '%1' already exists. '%1' уже существует. - + Rename Failed Не удалось переименовать - + Failed to rename to '%1'. Perhaps a file permission error? Не удалось переименовать в '%1'. Возможно ошибка прав доступа к файлу? - + Duplicate Macro Дублировать макрос - + Duplicate Failed Не удалось дублировать - + Failed to duplicate to '%1'. Perhaps a file permission error? Не удалось дублировать в '%1'. @@ -2861,42 +2861,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Очистка пользовательских настроек - + Do you want to clear all your user settings? Вы действительно хотите очистить все Ваши пользовательские настройки? - + If you agree all your settings will be cleared. Если Вы согласны, то все Ваши пользовательские настройки будут сброшены. - + Wrong parameter Неверный параметр - + Restart required Требуется перезапуск - + You must restart FreeCAD for changes to take effect. Вы должны перезапустить FreeCAD, чтобы изменения вступили в силу. - + Restart now Перезагрузить сейчас - + Restart later Перезагрузить позже @@ -4075,32 +4075,32 @@ get date suffix according to the specified format получат суффикс даты в соответствии с указанным форматом - + Use date and FCBak extension Использовать дату и расширение FCBak - + Date format Формат даты - + Document objects Объекты в документе - + Allow objects to have same label Разрешить объектам иметь одинаковые имена - + Allow duplicate object labels in one document Разрешить идентичные метки (Label) в одном документе - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4111,22 +4111,22 @@ icon in the tree view to fully reload it. Частично загруженный документ не может быть изменён. Дважды щёлкните на иконке документа в виде дерева, чтобы полностью перезагрузить его. - + Disable partial loading of external linked objects Отключить частичную загрузку внешних связанных объектов - + Authoring and License Авторство и лицензия - + Author name Имя автора - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4135,32 +4135,32 @@ You can also use the form: John Doe <john@doe.com> Вы также можете использовать форму: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file При сохранении файла поле 'Последнее изменение' будет заполнено именем указанного автора - + Set on save Устанавливать при сохранении - + Company Компания - + Default company name to use for new files Название компании по умолчанию для использования в новых файлах - + Default license Лицензия по умолчанию - + Default license for new documents Лицензия по умолчанию для новых документов @@ -4230,12 +4230,12 @@ You can also use the form: John Doe <john@doe.com> Другое - + License URL URL-адрес лицензии - + URL describing more about the license URL-адрес, описывающий дополнительные сведения о лицензии @@ -6810,7 +6810,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Размер @@ -6840,32 +6840,32 @@ Do you want to save your changes? Закрыть все - + Toggles this toolbar Переключение этой панели инструментов - + Toggles this dockable window Спрятать/показать это встраиваемое окно - - + + Unsaved document Документ не сохранён - + The exported object contains external link. Please save the documentat least once before exporting. Экспортированный объект содержит внешнюю ссылку. Пожалуйста, сохраните документ хотя бы один раз перед экспортом. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Для ссылки на внешние объекты документ необходимо сохранить хотя бы один раз. @@ -7102,17 +7102,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Осталось: %1 - + Aborting Прерывание - + Do you really want to abort the operation? Вы действительно хотите прервать операцию? @@ -7125,12 +7125,12 @@ How do you want to proceed? Осталось: %1 - + Aborting Прерывание - + Do you really want to abort the operation? Вы действительно хотите прервать операцию? @@ -7138,7 +7138,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Изменить связанный объект @@ -7146,12 +7146,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Ошибки - + Object not found Объект не найден @@ -7366,17 +7366,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Открыть файл %1 - + File not found Файл не найден - + The file '%1' cannot be opened. Не удаётся открыть файл '%1'. @@ -7384,22 +7384,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none Отсутствует - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Запуск макроса %1 (Shift+клик для редактирования) сочетания клавиш: %2 - + File not found Файл не найден - + The file '%1' cannot be opened. Не удаётся открыть файл '%1'. @@ -8230,8 +8230,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Выбрать верстак '%1' @@ -9192,12 +9191,12 @@ Please open a browser window and type in: http://localhost:%1. %1 не пуст, удалить его содержимое тоже? - + Translation: Перемещение: - + Rotation: Вращение: @@ -10344,7 +10343,7 @@ the current copy will be lost. Создать новый пустой документ - + Unnamed Безымянный @@ -12618,17 +12617,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Панель инструментов - + Left corner Левый угол - + Right corner Правый угол diff --git a/src/Gui/Language/FreeCAD_sl.ts b/src/Gui/Language/FreeCAD_sl.ts index 34b3eac337..33a3c796d5 100644 --- a/src/Gui/Language/FreeCAD_sl.ts +++ b/src/Gui/Language/FreeCAD_sl.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Kot - - + + Axis Os - + Position Position - + Enum Številčnik @@ -2109,11 +2109,11 @@ Prilagodite jo lahko glede na velikost zaslona ali po lastnem okusu - Prilagodi način prikazovanja drevesnega prikaza v plošči (potreben vnovični zagon). + Prilagodi način prikazovanja drevesnega prikaza v podoknu (potreben vnovični zagon). -"Sestavljen pogled": v eno ploščo združen drevesni pprikaz in lastnostni prikaz. -"Drevesni in Lastnostni prikaz": drevesni in lastnostni prikaz, vsak na svoji plošči. -"Oboje": ohrani vse tri plošče tako, da imate lahko dva drevesna in dva lastnostna prikaza. +"Sestavljen pogled": v eno podokno združen drevesni prikaz in lastnostni prikaz. +"Drevesni in Lastnostni prikaz": drevesni in lastnostni prikaz, vsak v svojem podoknu. +"Oboje": ohrani vsa tri podokna tako, da imate lahko dva drevesna in dva lastnostna prikaza. @@ -2338,7 +2338,7 @@ bo pozdravno okno prikazano Gui::Dialog::DlgMacroExecuteImp - + Macros Makri @@ -2359,8 +2359,8 @@ bo pozdravno okno prikazano - - + + Existing file Obstoječa datoteka @@ -2437,53 +2437,53 @@ Opomba: spremembe bodo uveljavljene pri naslednjem preklopu med delovnimi okolji Navodila vodiča: Kliknite gumb s puščico v desno (->), nato Zapri. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Navodila vodiča: Kliknite Nov, nato gumb s puščico v desno (->) in na koncu Zapri. - + Renaming Macro File Preimenovanje datoteke Macro - - + + Enter new name: Vnesite novo ime: - - + + '%1' already exists. '%1' že obstaja. - + Rename Failed Preimenovanje ni uspelo - + Failed to rename to '%1'. Perhaps a file permission error? Preimenovanje v '%1' ni uspelo. Mogoče je napaka pri dostopu do datoteke? - + Duplicate Macro Podvoji Makro - + Duplicate Failed Podvajanje spodletelo - + Failed to duplicate to '%1'. Perhaps a file permission error? Podvajanje v '%1' ni uspelo. @@ -2865,42 +2865,42 @@ Navedite drugo mapo. Gui::Dialog::DlgPreferencesImp - + Clear user settings Počisti uporabniške nastavitve - + Do you want to clear all your user settings? Ali želite počistiti vse uporabniške nastavitve? - + If you agree all your settings will be cleared. Če se strinjate, bodo vse nastavitve počiščene. - + Wrong parameter Napačna določilka - + Restart required Potreben pozagon - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -3237,7 +3237,7 @@ vidno poročevalno pogovorno okno Font color for normal messages in Report view panel - Barva pisave pri običajnih sporočilih in plošči poročevalnega pogleda + Barva pisave pri običajnih sporočilih v poročilnem podoknu @@ -3247,7 +3247,7 @@ vidno poročevalno pogovorno okno Font color for log messages in Report view panel - Barva pisave pri dnevniških sporočilih in plošči poročevalnega pogleda + Barva pisave pri dnevniških sporočilih v poročilnem podoknu @@ -3257,7 +3257,7 @@ vidno poročevalno pogovorno okno Font color for warning messages in Report view panel - Barva pisave pri opozorilnih sporočilih in plošči poročevalnega pogleda + Barva pisave pri opozorilnih sporočilih v poročilnem podoknu @@ -3267,7 +3267,7 @@ vidno poročevalno pogovorno okno Font color for error messages in Report view panel - Barva pisave pri sporočilih o napakah in plošči poročevalnega pogleda + Barva pisave pri sporočilih o napakah v poročilnem podoknu @@ -3279,7 +3279,7 @@ vidno poročevalno pogovorno okno Internal Python output will be redirected from Python console to Report view panel Pythonov notranji izpis bo preusmerjen s -Pythonove ukazne mize na ploščo poročevalnega pogleda +Pythonove ukazne mize na poročilno podokno @@ -3291,7 +3291,7 @@ Pythonove ukazne mize na ploščo poročevalnega pogleda Internal Python error messages will be redirected from Python console to Report view panel Notranja Pythonova sporočila o napakah bodo preusmerjena -s Pythonove ukazne mize na ploščo poročevalnega pogleda +s Pythonove ukazne mize na poročilno podokno @@ -4086,32 +4086,32 @@ get date suffix according to the specified format pa pripono glede na določen razpis - + Use date and FCBak extension Uporabi datum in FCBak-ov razširitev - + Date format Zapis datuma - + Document objects Predmeti dokumenta - + Allow objects to have same label Dovoli, da imajo lahko predmeti enako oznako - + Allow duplicate object labels in one document Dovoli podvojene oznake predmetov v enem dokumentu - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4124,22 +4124,22 @@ Delno naloženega dokumenta ni mogoče urejati. Z dvoklikom na ikono dokumenta v drevesnem prikazu se bo ta ponovno naložil v celoti. - + Disable partial loading of external linked objects Onemogoči delno nalaganje zunanjih sklicnih predmetov - + Authoring and License Avtorstvo in licenca - + Author name Ime avtorja - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4148,32 +4148,32 @@ You can also use the form: John Doe <john@doe.com> Lahko uporabite tudi obliko: Neznanec <ne@znanec.com> - + The field 'Last modified by' will be set to specified author when saving the file Polje "Zadnji spremenil" bo pri shranjevanju izpolnjeno z izbranim ustvarjalcem - + Set on save Glede na shranjevanje - + Company Podjetje - + Default company name to use for new files Privzeto ime podjetja pri ustvarjanju novih datotek - + Default license Privzeta licenca - + Default license for new documents Privzeto dovoljenje za nove dokumente @@ -4243,12 +4243,12 @@ Lahko uporabite tudi obliko: Neznanec <ne@znanec.com> Drugo - + License URL Spletni naslov dovoljenja - + URL describing more about the license Spletni naslov s podrobnejšim opisom dovoljenja @@ -6197,7 +6197,7 @@ izbrani pred odprtjem tega pogovrnega okna Property View - Pogled z lastnostmi + Lastnostni prikaz @@ -6822,7 +6822,7 @@ Ali želite shraniti spremembe? Gui::MainWindow - + Dimension Mera @@ -6852,32 +6852,32 @@ Ali želite shraniti spremembe? Zapri vse - + Toggles this toolbar Preklopi to orodno vrstico - + Toggles this dockable window Preklopi to usidrivo okno - - + + Unsaved document Neshranjen dokument - + The exported object contains external link. Please save the documentat least once before exporting. Izvoženi predmet vsebuje zunanje povezave. Pred izvažanjem shranite dokument vsaj enkrat. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Za povezovanje na zunanje predmete mora biti dokument shranjen vsaj enkrat. @@ -7115,17 +7115,17 @@ Kako želite nadaljevati? Gui::ProgressBar - + Remaining: %1 Preostane: %1 - + Aborting Prekinjanje - + Do you really want to abort the operation? Ali res želite prekiniti opravilo? @@ -7138,12 +7138,12 @@ Kako želite nadaljevati? Preostane: %1 - + Aborting Prekinjanje - + Do you really want to abort the operation? Ali res želite prekiniti opravilo? @@ -7151,7 +7151,7 @@ Kako želite nadaljevati? Gui::PropertyEditor::LinkLabel - + Change the linked object Spremeni povezan predmet @@ -7159,12 +7159,12 @@ Kako želite nadaljevati? Gui::PropertyEditor::LinkSelection - + Error Napaka - + Object not found Predmeta ni bilo mogoče najti @@ -7380,17 +7380,17 @@ Ali želite končati ne da bi shranili podatke? Gui::RecentFilesAction - + Open file %1 Odpri datoteko %1 - + File not found Datoteke ni mogoče najti - + The file '%1' cannot be opened. Datoteke '%1' ni mogoče odpreti. @@ -7398,22 +7398,22 @@ Ali želite končati ne da bi shranili podatke? Gui::RecentMacrosAction - + none nobeden - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Zaženi makro %1 (PREMAKNI+kliknite za urejanje) tipkovna bližnjica: %2 - + File not found Datoteke ni mogoče najti - + The file '%1' cannot be opened. Datoteke '%1' ni mogoče odpreti. @@ -8244,8 +8244,7 @@ Ali želite navesti drugo mapo? Gui::WorkbenchGroup - - + Select the '%1' workbench Izberite delovno okolje '%1' @@ -9210,12 +9209,12 @@ Odprite brskalnik in vtipkajte: http://localhost:%1. %1 ni prazna, brisanje tudi njene vsebine? - + Translation: Vzporedni premik: - + Rotation: Sukanje: @@ -10362,7 +10361,7 @@ bodo izgubljene. Ustvari nov, prazen dokument - + Unnamed Neimenovan @@ -12475,7 +12474,7 @@ ob zagodu FreeCAD-a Reverse direction - Reverse direction + Nasprotna smer @@ -12513,7 +12512,7 @@ ob zagodu FreeCAD-a Reverse direction - Reverse direction + Nasprotna smer @@ -12637,17 +12636,17 @@ ob zagodu FreeCAD-a Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Orodna vrstica - + Left corner Levi kot - + Right corner Desni kot diff --git a/src/Gui/Language/FreeCAD_sr-CS.ts b/src/Gui/Language/FreeCAD_sr-CS.ts index 306a295f28..f069f79258 100644 --- a/src/Gui/Language/FreeCAD_sr-CS.ts +++ b/src/Gui/Language/FreeCAD_sr-CS.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Ugao - - + + Axis Osa - + Position Position - + Enum Enum @@ -2338,7 +2338,7 @@ prikazati početni ekran Gui::Dialog::DlgMacroExecuteImp - + Macros Makro-i @@ -2359,8 +2359,8 @@ prikazati početni ekran - - + + Existing file Postojeća datoteka @@ -2437,53 +2437,53 @@ Napomena: Promene će biti primenjene kada sledeći put promeniš radno okružen Uputstva: Kliknite na dugme sa strelicom nadesno (->), a zatim Zatvori. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Uputstva: Kliknite na Novi, zatim na dugme sa strelicom nadesno (->), a zatim na Zatvori. - + Renaming Macro File Preimenovanje datoteke makro-a - - + + Enter new name: Unesi novo ime: - - + + '%1' already exists. '%1' već postoji. - + Rename Failed Preimenovanje nije uspelo - + Failed to rename to '%1'. Perhaps a file permission error? Nije uspelo preimenovanje u „%1“. Možda je greška u nivou pristupu datoteki? - + Duplicate Macro Dupliraj makro - + Duplicate Failed Dupliranje nije uspelo - + Failed to duplicate to '%1'. Perhaps a file permission error? Nije uspelo dupliranje u „%1“. @@ -2864,42 +2864,42 @@ Navedi neku drugu fasciklu. Gui::Dialog::DlgPreferencesImp - + Clear user settings Obriši korisničke postavke - + Do you want to clear all your user settings? Da li želiš da obrišeš sva korisnička podešavanja? - + If you agree all your settings will be cleared. Ako potvrdiš, sva podešavanja će biti izbrisana. - + Wrong parameter Pogrešan parametar - + Restart required Potrebno je ponovo pokrenuti sistem - + You must restart FreeCAD for changes to take effect. Moraš ponovo pokrenuti FreeCAD da bi promene stupile na snagu. - + Restart now Ponovo pokreni sada - + Restart later Ponovo pokreni kasnije @@ -4080,32 +4080,32 @@ get date suffix according to the specified format će dobiti sufiks datuma prema navedenom formatu - + Use date and FCBak extension Koristi datum i nastavak imena datoteke FCBak - + Date format Format datuma - + Document objects Objekti dokumenta - + Allow objects to have same label Dozvoli objektima da imaju istu oznaku - + Allow duplicate object labels in one document Dozvoli duple oznake objekata u jednom dokumentu - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4118,22 +4118,22 @@ Delimično učitani dokument se ne može uređivati. Dvaput kliknite na ikonu do u stablu dokumenta da biste ga u potpunosti ponovo učitali. - + Disable partial loading of external linked objects Onemogući delimično učitavanje spoljnih povezanih objekata - + Authoring and License Autorstvo i licenca - + Author name Ime autora - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4142,32 +4142,32 @@ Ostavite prazno za anonimnost. Takođe možete koristiti obrazac: Pera Perić <pera@peric.com> - + The field 'Last modified by' will be set to specified author when saving the file Polje 'Poslednji put izmenio' će biti postavljeno na navedenog autora prilikom snimanja datoteke - + Set on save Podesi pri snimanju - + Company Prеduzеćе - + Default company name to use for new files Podrazumevano ime preduzeća koje se koristi za nove datoteke - + Default license Podrazumevana licenca - + Default license for new documents Podrazumevana licenca za nove dokumente @@ -4237,12 +4237,12 @@ Takođe možete koristiti obrazac: Pera Perić <pera@peric.com>Drugo - + License URL URL adresa licence - + URL describing more about the license URL adresa gde možeš pročitati dodatne informacije o licenci @@ -6818,7 +6818,7 @@ Da li želiš da sačuvaš promene? Gui::MainWindow - + Dimension Kota @@ -6848,32 +6848,32 @@ Da li želiš da sačuvaš promene? Zatvori sve - + Toggles this toolbar Uključuje/isključuje ovu paletu alata - + Toggles this dockable window Toggles this dockable window - - + + Unsaved document Nesačuvan dokument - + The exported object contains external link. Please save the documentat least once before exporting. Izvezeni objekat sadrži spoljnu vezu. Sačuvaj dokument bar jednom pre nego što ga izvezeš. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Da bi se povezali sa spoljnim objektima, dokument mora biti sačuvan najmanje jednom. @@ -7111,17 +7111,17 @@ Kako želiš da nastaviš? Gui::ProgressBar - + Remaining: %1 Preostalo: %1 - + Aborting Prekida se - + Do you really want to abort the operation? Da li stvarno želiš prekinuti operaciju? @@ -7134,12 +7134,12 @@ Kako želiš da nastaviš? Preostalo: %1 - + Aborting Prekida se - + Do you really want to abort the operation? Da li stvarno želiš prekinuti operaciju? @@ -7147,7 +7147,7 @@ Kako želiš da nastaviš? Gui::PropertyEditor::LinkLabel - + Change the linked object Promeni povezani objekat @@ -7155,12 +7155,12 @@ Kako želiš da nastaviš? Gui::PropertyEditor::LinkSelection - + Error Greška - + Object not found Objekat nije pronađen @@ -7376,17 +7376,17 @@ Da li želiš izaći bez čuvanja podataka? Gui::RecentFilesAction - + Open file %1 Otvori datoteku %1 - + File not found Datoteka nije nađena - + The file '%1' cannot be opened. Datoteka '%1' se ne može otvoriti. @@ -7394,22 +7394,22 @@ Da li želiš izaći bez čuvanja podataka? Gui::RecentMacrosAction - + none ništa - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Pokreni makro %1 (Shift+klik za uređivanje) prečica na tastaturi: %2 - + File not found Datoteka nije nađena - + The file '%1' cannot be opened. Datoteka '%1' se ne može otvoriti. @@ -8240,8 +8240,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Izaberi '%1' radno okruženje @@ -9206,12 +9205,12 @@ Otvori pregledač i ukucaj: http://localhost:%1. %1 nije prazan, želiš li izbrisati i njegov sadržaj? - + Translation: Translacija: - + Rotation: Rotacija: @@ -9809,7 +9808,7 @@ the current copy will be lost. Toggle &Edit mode - Toggle &Edit mode + Uključi/isključi režim uređivanja @@ -10358,7 +10357,7 @@ the current copy will be lost. Napravi novi prazan dokument - + Unnamed Bez imena @@ -12633,17 +12632,17 @@ nakon pokretanja FreeCAD-a Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Paleta sa alatima - + Left corner Levi ugao - + Right corner Desni ugao diff --git a/src/Gui/Language/FreeCAD_sr.ts b/src/Gui/Language/FreeCAD_sr.ts index 19ac821352..89ed96b680 100644 --- a/src/Gui/Language/FreeCAD_sr.ts +++ b/src/Gui/Language/FreeCAD_sr.ts @@ -47,24 +47,24 @@ <empty> - - + + Angle Угао - - + + Axis Оса - + Position Position - + Enum Enum @@ -2338,7 +2338,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Макро-и @@ -2359,8 +2359,8 @@ display the splash screen - - + + Existing file Постојећа датотека @@ -2437,53 +2437,53 @@ Note: your changes will be applied when you next switch workbenches Упутства: Кликни на дугме са стрелицом надесно (->), а затим Затвори. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Упутства: Кликни на Нови, затим на дугме са стрелицом надесно (->), а затим на Затвори. - + Renaming Macro File Преименовање датотеке макро-а - - + + Enter new name: Унеси ново име: - - + + '%1' already exists. '%1' већ постоји. - + Rename Failed Преименовање није успело - + Failed to rename to '%1'. Perhaps a file permission error? Није успело преименовање у „%1“. Можда је грешка у нивоу приступу датотеки? - + Duplicate Macro Дуплирај макро - + Duplicate Failed Дуплирање није успело - + Failed to duplicate to '%1'. Perhaps a file permission error? Није успело дуплирање у „%1“. @@ -2864,42 +2864,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Обриши корисничке поставке - + Do you want to clear all your user settings? Да ли желиш да обришеш сва корисничка подешавања? - + If you agree all your settings will be cleared. Ако потврдиш, cва подешавања ће бити избриcана. - + Wrong parameter Погрешан параметар - + Restart required Потребно је поново покренути систем - + You must restart FreeCAD for changes to take effect. Мораш поново покренути FreeCAD да би промене ступиле на снагу. - + Restart now Поново покрени сада - + Restart later Поново покрени касније @@ -4080,32 +4080,32 @@ get date suffix according to the specified format ће добити суфикс датума према наведеном формату - + Use date and FCBak extension Користи датум и наставак имена датотеке FCBak - + Date format Формат датума - + Document objects Објекти документа - + Allow objects to have same label Дозволи објектима да имају исту ознаку - + Allow duplicate object labels in one document Дозволи дупле ознаке објеката у једном документу - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4118,22 +4118,22 @@ icon in the tree view to fully reload it. у стаблу документа да бисте га у потпуности поново учитали. - + Disable partial loading of external linked objects Онемогући делимично учитавање спољних повезаних објеката - + Authoring and License Ауторство и лиценца - + Author name Име аутора - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4142,32 +4142,32 @@ You can also use the form: John Doe <john@doe.com> Такође можете користити образац: Пера Перић <pera@peric.com> - + The field 'Last modified by' will be set to specified author when saving the file Поље 'Последњи пут изменио' ће бити постављено на наведеног аутора приликом снимања датотеке - + Set on save Подеси при снимању - + Company Предузеће - + Default company name to use for new files Подразумевано име предузећа које се користи за нове датотеке - + Default license Подразумевана лиценца - + Default license for new documents Подразумевана лиценца за нове документе @@ -4237,12 +4237,12 @@ You can also use the form: John Doe <john@doe.com> Друго - + License URL URL адреса лиценце - + URL describing more about the license URL адреса где можеш прочитати додатне информације о лиценци @@ -6818,7 +6818,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Кота @@ -6848,32 +6848,32 @@ Do you want to save your changes? Затвори све - + Toggles this toolbar Укључује/иcкључује ову палету алатки - + Toggles this dockable window Toggles this dockable window - - + + Unsaved document Несачуван документ - + The exported object contains external link. Please save the documentat least once before exporting. Извезени објекат садржи спољну везу. Сачувај документ бар једном пре него што га извезеш. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Да би се повезао са спољним објектима, документ мора бити сачуван најмање једном. @@ -7111,17 +7111,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Преостало: %1 - + Aborting Прекида се - + Do you really want to abort the operation? Да ли стварно желиш прекинути операцију? @@ -7134,12 +7134,12 @@ How do you want to proceed? Преостало: %1 - + Aborting Прекида се - + Do you really want to abort the operation? Да ли стварно желиш прекинути операцију? @@ -7147,7 +7147,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Промени повезани објекат @@ -7155,12 +7155,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Грешка - + Object not found Објекат није пронађен @@ -7376,17 +7376,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Отвори датотеку %1 - + File not found Датотека није нађена - + The file '%1' cannot be opened. Датотека '%1' се не може отворити. @@ -7394,22 +7394,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none ништа - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Покрени макро %1 (Shift+клик за уређивање) пречица на тастатури: %2 - + File not found Датотека није нађена - + The file '%1' cannot be opened. Датотека '%1' се не може отворити. @@ -8240,8 +8240,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Изабери '%1' радно окружење @@ -9206,12 +9205,12 @@ Please open a browser window and type in: http://localhost:%1. %1 није празан, желиш ли избрисати и његов садржај? - + Translation: Транслација: - + Rotation: Ротација: @@ -9809,7 +9808,7 @@ the current copy will be lost. Toggle &Edit mode - Toggle &Edit mode + Укључи/искључи режим уређивања @@ -10358,7 +10357,7 @@ the current copy will be lost. Направи нови празан документ - + Unnamed Без имена @@ -12633,17 +12632,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Палета са алатима - + Left corner Леви угао - + Right corner Десни угао diff --git a/src/Gui/Language/FreeCAD_sv-SE.ts b/src/Gui/Language/FreeCAD_sv-SE.ts index a8fca42d42..7b70af3d99 100644 --- a/src/Gui/Language/FreeCAD_sv-SE.ts +++ b/src/Gui/Language/FreeCAD_sv-SE.ts @@ -47,24 +47,24 @@ <tom> - - + + Angle Vinkel - - + + Axis Axel - + Position Position - + Enum Enum @@ -1241,7 +1241,7 @@ Om detta inte väljs måste egenskapen vara unikt namngiven och den nås som 'ob Please select a macro item first. - Välj ett makro först. + Vänligen välj ett makroföremål först. @@ -1449,7 +1449,7 @@ samma gång. Den med högsta prioritet kommer att utlösas. <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Flytta den valda saken en nivå ned.</b><p>Detta kommer även att ändra nivån på sakens förälder.</p> + <b>Flytta det markerade föremålet en nivå ned.</b><p>Detta kommer även att ändra nivån på det överordnade föremålet.</p> @@ -1459,7 +1459,7 @@ samma gång. Den med högsta prioritet kommer att utlösas. <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Flytta den valda saken en nivå upp.</b><p>Detta kommer även att ändra nivån på sakens förälder.</p> + <b>Flytta det markerade föremålet en nivå upp.</b><p>Detta kommer också att ändra nivån på det överordnade föremålet.</p> @@ -1469,7 +1469,7 @@ samma gång. Den med högsta prioritet kommer att utlösas. <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta upp den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivån.</p> + <b>Flytta det markerade föremålet uppåt.</b><p>Föremålet kommer att flyttas inom hierarkinivån.</p> @@ -1479,7 +1479,7 @@ samma gång. Den med högsta prioritet kommer att utlösas. <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta ned den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivån.</p> + <b>Flytta det markerade föremålet nedåt.</b><p>Föremålet kommer att flyttas inom hierarkinivån.</p> @@ -2337,7 +2337,7 @@ visa startskärm Gui::Dialog::DlgMacroExecuteImp - + Macros Makron @@ -2358,8 +2358,8 @@ visa startskärm - - + + Existing file Filen finns @@ -2437,53 +2437,53 @@ Obs: dina ändringar kommer att tillämpas när du byter arbetsbänkar nästa g Genomgångsinstruktioner: Klicka på höger pilknapp (->), sedan Stäng. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Genomgångsinstruktioner: Klicka på Ny, sedan höger pilknapp (->), sedan Stäng. - + Renaming Macro File Döper om makrofil - - + + Enter new name: Ange nytt namn: - - + + '%1' already exists. '%1' finns redan. - + Rename Failed Omdöpning misslyckades - + Failed to rename to '%1'. Perhaps a file permission error? Misslyckades med att döpa om till '%1'. Kanske saknas filrättigheter? - + Duplicate Macro Duplicera makro - + Duplicate Failed Duplicering misslyckades - + Failed to duplicate to '%1'. Perhaps a file permission error? Misslyckades med att duplicera till '%1'. @@ -2865,42 +2865,42 @@ Ange en annan katalog. Gui::Dialog::DlgPreferencesImp - + Clear user settings Rensa användarinställningar - + Do you want to clear all your user settings? Vill du rensa alla dina användarinställningar? - + If you agree all your settings will be cleared. Om du accepterar kommer alla dina inställningar att raderas. - + Wrong parameter Fel parameter - + Restart required Restart required - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4086,32 +4086,32 @@ get date suffix according to the specified format få datum suffix enligt det angivna formatet - + Use date and FCBak extension Använd datum och FCBak tillägg - + Date format Datumformat - + Document objects Dokumentobjekt - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Tillåt duplicerade objektetiketter i ett dokument - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4124,22 +4124,22 @@ Ett delvis laddat dokument kan inte redigeras. Dubbelklicka på ikonen för doku i trädvyn för att ladda om det. - + Disable partial loading of external linked objects Inaktivera partiell laddning av externa länkade objekt - + Authoring and License Upphovsinformation och Licens - + Author name Författare - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4148,32 +4148,32 @@ Behåll tomt för anonymt. Du kan också använda formuläret: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Fältet 'Senast ändrad av' kommer att sättas till specificerad författare när filen sparas - + Set on save Uppdatera vid sparning - + Company Företag - + Default company name to use for new files Förvalt företagsnamn att använda för nya filer - + Default license Standardlicens - + Default license for new documents Standardlicens för nya dokument @@ -4243,12 +4243,12 @@ Du kan också använda formuläret: John Doe <john@doe.com> Övrigt - + License URL Licens-URL - + URL describing more about the license URL som beskriver mer om licensen @@ -6820,7 +6820,7 @@ Vill du spara ändringarna? Gui::MainWindow - + Dimension Dimension @@ -6850,32 +6850,32 @@ Vill du spara ändringarna? Stäng alla - + Toggles this toolbar Växlar denna verktygsrad - + Toggles this dockable window Växlar detta dockningsbara fönster - - + + Unsaved document Osparat dokument - + The exported object contains external link. Please save the documentat least once before exporting. Det exporterade objektet innehåller extern länk. Spara dokumentet minst en gång innan du exporterar. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? För att länka till externa objekt måste dokumentet sparas minst en gång. @@ -7113,17 +7113,17 @@ Hur vill du fortsätta? Gui::ProgressBar - + Remaining: %1 Kvarvarande: %1 - + Aborting Avbryter - + Do you really want to abort the operation? Vill du verkligen avbryta operationen? @@ -7136,12 +7136,12 @@ Hur vill du fortsätta? Kvarvarande: %1 - + Aborting Avbryter - + Do you really want to abort the operation? Vill du verkligen avbryta operationen? @@ -7149,7 +7149,7 @@ Hur vill du fortsätta? Gui::PropertyEditor::LinkLabel - + Change the linked object Ändra det länkade objektet @@ -7157,12 +7157,12 @@ Hur vill du fortsätta? Gui::PropertyEditor::LinkSelection - + Error Fel - + Object not found Objekt hittades inte @@ -7378,17 +7378,17 @@ Vill du avsluta utan att spara din data? Gui::RecentFilesAction - + Open file %1 Öppna fil %1 - + File not found Fil ej funnen - + The file '%1' cannot be opened. Filen '%1' kan inte öppnas. @@ -7396,22 +7396,22 @@ Vill du avsluta utan att spara din data? Gui::RecentMacrosAction - + none inget - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Fil ej funnen - + The file '%1' cannot be opened. Filen '%1' kan inte öppnas. @@ -8242,8 +8242,7 @@ Vill du ange en annan katalog? Gui::WorkbenchGroup - - + Select the '%1' workbench Välj arbetsbänken '%1' @@ -9208,12 +9207,12 @@ Please open a browser window and type in: http://localhost:%1. %1 är inte tom, vill du även ta bort innehållet? - + Translation: Förflyttning: - + Rotation: Rotation: @@ -9587,7 +9586,7 @@ the current copy will be lost. Close Al&l - Stäng a&llt + Stäng a&lla @@ -9968,7 +9967,7 @@ the current copy will be lost. The FreeCAD website - FreeCAD's webbplats + FreeCADs webbplats @@ -10360,7 +10359,7 @@ the current copy will be lost. Skapa ett nytt tomt dokument - + Unnamed Namnlös @@ -10590,13 +10589,13 @@ the current copy will be lost. Recent files - Nyligen öppnade filer + Senaste filer Recent file list - Lista över nyligen öppnade filer + Lista över senaste filer @@ -11822,7 +11821,7 @@ the current copy will be lost. Display the active view either in fullscreen, in undocked or docked mode - Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge + Visa den aktiva vyn antingen i helskärm, i odockat eller dockat läge @@ -11836,7 +11835,7 @@ the current copy will be lost. Display the active view either in fullscreen, in undocked or docked mode - Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge + Visa den aktiva vyn antingen i helskärm, i odockat eller dockat läge @@ -11850,7 +11849,7 @@ the current copy will be lost. Display the active view either in fullscreen, in undocked or docked mode - Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge + Visa den aktiva vyn antingen i helskärm, i odockat eller dockat läge @@ -11878,7 +11877,7 @@ the current copy will be lost. Display the active view either in fullscreen, in undocked or docked mode - Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge + Visa den aktiva vyn antingen i helskärm, i odockat eller dockat läge @@ -12633,17 +12632,17 @@ vid start av FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Verktygsfält - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_tr.ts b/src/Gui/Language/FreeCAD_tr.ts index c1e4f2f907..cae8131815 100644 --- a/src/Gui/Language/FreeCAD_tr.ts +++ b/src/Gui/Language/FreeCAD_tr.ts @@ -47,24 +47,24 @@ <boş> - - + + Angle Açı - - + + Axis Eksen - + Position Position - + Enum Numaralandırma @@ -2337,7 +2337,7 @@ karşılama ekranını gösterecektir Gui::Dialog::DlgMacroExecuteImp - + Macros Makrolar @@ -2358,8 +2358,8 @@ karşılama ekranını gösterecektir - - + + Existing file Varolan dosya @@ -2437,53 +2437,53 @@ Not: Değişiklikleriniz, sonraki tezgah geçişinizde uygulanacak Gidişat talimatları: Sağ ok düğmesine (->) ardından Kapat' a tıklayın. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Gidişat Talimatları: Yeni' ye, sonra sağ oka (->), ardından Kapat' a tıklayın. - + Renaming Macro File Makro dosya yeniden adlandırma - - + + Enter new name: Yeni adı gir: - - + + '%1' already exists. '%1' zaten mevcut. - + Rename Failed Yeniden adlandırma başarısız oldu - + Failed to rename to '%1'. Perhaps a file permission error? '%1' yeniden adlandıramadı. Belki de bir dosya yetki hatası? - + Duplicate Macro Makroyu Kopyala - + Duplicate Failed Kopyalama Başarısız - + Failed to duplicate to '%1'. Perhaps a file permission error? '%1'olarak çoğaltılamadı. @@ -2865,42 +2865,42 @@ Lütfen başka bir dizin belirtin. Gui::Dialog::DlgPreferencesImp - + Clear user settings Açık kullanıcı ayarları - + Do you want to clear all your user settings? Tüm kullanıcı ayarlarınızı temizlemek istiyor musunuz? - + If you agree all your settings will be cleared. Kabul ederseniz tüm ayarları temizlenir. - + Wrong parameter Yanlış parametre - + Restart required Restart required - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4081,32 +4081,32 @@ get date suffix according to the specified format belirtilen biçime göre tarih son eki alacaktır - + Use date and FCBak extension Tarih ve FCBak uzantısı kullan - + Date format Tarih biçimi - + Document objects Döküman nesneleri - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Bir dökümanda nesne etiketlerini ikilemeye izin ver - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4119,22 +4119,22 @@ Kısmi yüklenen belge düzenlenemez. Belgeyi tam olarak yeniden yüklemek için simgesine çift tıklayın. - + Disable partial loading of external linked objects Dış bağlantılı nesnelerin kısmi yüklenmesini geçersizleştir - + Authoring and License Yazarlık ve Lisans - + Author name Yazar Adı - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4143,32 +4143,32 @@ You can also use the form: John Doe <john@doe.com> Ayrıca formu da kullanabilirsiniz: John Doe <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Dosya kaydedilirken 'tarafından son olarak değiştirildi' alanı, belirlenen yazar adına ayarlanacak - + Set on save Üzerinde ayarlama Kaydet - + Company Şirket - + Default company name to use for new files Yeni dosyalar için kullanılacak varsayılan şirket adı - + Default license Varsayılan Lisans - + Default license for new documents Yeni belgeler için varsayılan lisans @@ -4238,12 +4238,12 @@ Ayrıca formu da kullanabilirsiniz: John Doe <john@doe.com> Diğer - + License URL Lisans URL (Automatic Translation) - + URL describing more about the license Lisans hakkında daha fazlasını anlatan URL @@ -6818,7 +6818,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Boyut @@ -6848,32 +6848,32 @@ Do you want to save your changes? Tümünü Kapat - + Toggles this toolbar Bu araç çubuğunu değiştirir - + Toggles this dockable window Bu yapışabilir pencere arasında geçiş yapar - - + + Unsaved document Kaydedilmemiş belge - + The exported object contains external link. Please save the documentat least once before exporting. Dışa aktarılan nesne dış bağlantı içeriyor. Lüften dışa aktarmadan önce belgeyi en az bir defa kaydedin. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Harici nesneleri bağlamak için belge, en az bir defa kaydedilmelidir. Belgeyi şimdi kaydetmek istiyor musunuz? @@ -7111,17 +7111,17 @@ sağ görünümde %2 nokta seçili. Gui::ProgressBar - + Remaining: %1 Kalan: %1 - + Aborting İptal ediliyor - + Do you really want to abort the operation? Bu işlemi iptal etmek istediğinizden emin misiniz? @@ -7134,12 +7134,12 @@ sağ görünümde %2 nokta seçili. Kalan: %1 - + Aborting İptal ediliyor - + Do you really want to abort the operation? Bu işlemi iptal etmek istediğinizden emin misiniz? @@ -7147,7 +7147,7 @@ sağ görünümde %2 nokta seçili. Gui::PropertyEditor::LinkLabel - + Change the linked object Bağlı nesneyi değiştir @@ -7155,12 +7155,12 @@ sağ görünümde %2 nokta seçili. Gui::PropertyEditor::LinkSelection - + Error Hata - + Object not found Nesne bulunamadı @@ -7375,17 +7375,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Dosyayı aç %1 - + File not found Dosya bulunamadı - + The file '%1' cannot be opened. '%1' Dosyası açılamıyor. @@ -7393,22 +7393,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none hiçbiri - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found Dosya bulunamadı - + The file '%1' cannot be opened. '%1' Dosyası açılamıyor. @@ -8239,8 +8239,7 @@ Başka bir dizin belirlemek ister misiniz? Gui::WorkbenchGroup - - + Select the '%1' workbench '%1' tezgahını seçin @@ -9200,12 +9199,12 @@ Please open a browser window and type in: http://localhost:%1. %1 boş değil, içerik de silinsin mi? - + Translation: Ötele: - + Rotation: Döndürme: @@ -10352,7 +10351,7 @@ the current copy will be lost. Yeni, boş bir belge oluştur - + Unnamed Adsız @@ -12626,17 +12625,17 @@ etkinleştirilip gösterileceğini seçin Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Araç çubuğu - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_uk.ts b/src/Gui/Language/FreeCAD_uk.ts index 4cf3f7bbf9..d7dc7fa458 100644 --- a/src/Gui/Language/FreeCAD_uk.ts +++ b/src/Gui/Language/FreeCAD_uk.ts @@ -47,24 +47,24 @@ <пусто> - - + + Angle Кут - - + + Axis Вісь - + Position Позиція - + Enum Enum @@ -85,7 +85,7 @@ Run test cases to verify console messages - Run test cases to verify console messages + Запускає тестові приклади для перевірки консольних повідомлень @@ -98,7 +98,7 @@ Clear all visible measurements - Clear all visible measurements + Очищує всі видимі вимірювання @@ -111,7 +111,7 @@ Turn on or off the display of all measurements - Turn on or off the display of all measurements + Вмикає або вимикає відображення всіх вимірювань @@ -428,7 +428,7 @@ The object will be edited using the mode defined internally to be the most appropriate for the object type - The object will be edited using the mode defined internally to be the most appropriate for the object type + Об'єкт буде відредаговано з використанням внутрішньо визначеним режимом який найбільш відповідає типу об'єкта @@ -2334,7 +2334,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros Макроси @@ -2355,8 +2355,8 @@ display the splash screen - - + + Existing file Існуючий файл @@ -2434,53 +2434,53 @@ Note: your changes will be applied when you next switch workbenches Покрокова Інструкція: натисніть праву кнопку зі стрілкою (->), потім Закрити. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Покрокова Інструкція; Натисніть Новий, потім праву кнопку зі стрілкою (>), потім Закрити. - + Renaming Macro File Перейменування файлу макросу - - + + Enter new name: Введіть нове імʼя: - - + + '%1' already exists. '%1' вже існує. - + Rename Failed Не вдалося перейменувати - + Failed to rename to '%1'. Perhaps a file permission error? Помилка перейменування '%1'. Можливо помилка доступу до файлу? - + Duplicate Macro Створити копію макроса - + Duplicate Failed Не вдалося створити копію - + Failed to duplicate to '%1'. Perhaps a file permission error? Помилка дублювання '%1'. @@ -2862,42 +2862,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Скинути налаштування користувача - + Do you want to clear all your user settings? Ви дійсно хочете очистити всі Ваші настроювання? - + If you agree all your settings will be cleared. Якщо Ви згодні, всі ваші настроювання буде знищено. - + Wrong parameter Неправильний параметр - + Restart required - Restart required + Потрібен перезапуск - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4082,32 +4082,32 @@ get date suffix according to the specified format і суфікс з датою відповідно до вказаного формату - + Use date and FCBak extension Використати дату та FCBak розширення - + Date format Формат дати - + Document objects Обʼєкти документу - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Дозволити дублювання міток обʼєктів в одному документі - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4117,22 +4117,22 @@ icon in the tree view to fully reload it. При відкритті основного документу автоматично завантажятся обʼєкти повʼязаного документа з посиланнями та їх залежності. Частково завантажений документ не можна редагувати. Двічі клацніть документ у ієрархіїї документа, щоб повністю перезавантажити його. - + Disable partial loading of external linked objects Вимкнути часткове завантаження зовнішніх повʼязаних обʼєктів - + Authoring and License Авторство та ліцензії - + Author name Імʼя автора - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4141,32 +4141,32 @@ You can also use the form: John Doe <john@doe.com> Також можна використати цю форму: Джон До <john@doe.com> - + The field 'Last modified by' will be set to specified author when saving the file Під час збереження файлу поле 'Востаннє модифіковано' буде заповнене зазначеним автором - + Set on save Встановити при збереженні - + Company Назва компанії - + Default company name to use for new files Назва Компанії за замовчуванням для нових файлів - + Default license Ліцензія за замовчуванням - + Default license for new documents Типова Ліцензія для нових документів @@ -4236,12 +4236,12 @@ You can also use the form: John Doe <john@doe.com> Інші - + License URL URL ліцензії - + URL describing more about the license URL, що описує більше про ліцензію @@ -6817,7 +6817,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Розмірність @@ -6847,32 +6847,32 @@ Do you want to save your changes? Закрити все - + Toggles this toolbar Переключення цієї панелі - + Toggles this dockable window Переключення цього закріплюваного вікна - - + + Unsaved document Незбережений документ - + The exported object contains external link. Please save the documentat least once before exporting. Експортований обʼєкт містить зовнішні посилання. Збережіть документ хоча б раз перед експортом. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Щоб привʼязати зовнішні обʼєкти, документ повинен бути збережений хоча б один раз. @@ -7107,17 +7107,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Залишилося:%1 - + Aborting Переривання - + Do you really want to abort the operation? Ви дійсно бажаєте перервати операцію? @@ -7130,12 +7130,12 @@ How do you want to proceed? Залишилося:%1 - + Aborting Переривання - + Do you really want to abort the operation? Ви дійсно бажаєте перервати операцію? @@ -7143,7 +7143,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Заміна звʼязаного обʼєкта @@ -7151,12 +7151,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Помилка - + Object not found Обʼєкт не знайдено @@ -7372,17 +7372,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Відкрити файл %1 - + File not found Файл не знайдено - + The file '%1' cannot be opened. Файл '%1' не вдалося відкрити. @@ -7390,22 +7390,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none нічого - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Комбінація клавіш: %2 для виконання макросу %1 (Shift + клац для редагування) - + File not found Файл не знайдено - + The file '%1' cannot be opened. Файл '%1' не вдалося відкрити. @@ -8236,8 +8236,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Оберіть робоче середовище '%1' @@ -9202,12 +9201,12 @@ Please open a browser window and type in: http://localhost:%1. %1 не порожній, також видалити його вміст? - + Translation: Переміщення: - + Rotation: Обертання: @@ -10355,7 +10354,7 @@ the current copy will be lost. Створює новий порожній документ - + Unnamed Без назви @@ -12630,17 +12629,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Панель інструментів - + Left corner Лівий кут - + Right corner Правий кут diff --git a/src/Gui/Language/FreeCAD_val-ES.ts b/src/Gui/Language/FreeCAD_val-ES.ts index a35f1a9342..b840b61fdb 100644 --- a/src/Gui/Language/FreeCAD_val-ES.ts +++ b/src/Gui/Language/FreeCAD_val-ES.ts @@ -47,24 +47,24 @@ <buit> - - + + Angle Angle - - + + Axis Eix - + Position Position - + Enum Enum @@ -2336,7 +2336,7 @@ quan FreeCAD s'executa. Si aquesta opció està marcada, FreeCAD en mostrarà un Gui::Dialog::DlgMacroExecuteImp - + Macros Macros @@ -2357,8 +2357,8 @@ quan FreeCAD s'executa. Si aquesta opció està marcada, FreeCAD en mostrarà un - - + + Existing file Fitxer existent @@ -2435,53 +2435,53 @@ Nota: els vostres canvis s'aplicaran quan canvieu de banc de treball Instruccions del procediment guiat: feu clic en el botó de fletxa dreta (->) i després en Tanca. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. Instruccions del procediment guiat: feu clic en Nou, després en el botó de fletxa dreta (->) i després en Tanca. - + Renaming Macro File S'està canviant el nom del fitxer de Macro - - + + Enter new name: Introduïu el nom nou: - - + + '%1' already exists. '%1' ja existeix. - + Rename Failed Error en canviar el nom - + Failed to rename to '%1'. Perhaps a file permission error? No ha pogut canviar el nom per '%1'. Pot ser un problema de permisos d'arxiu? - + Duplicate Macro Duplica la macro - + Duplicate Failed Ha fallat el duplicat - + Failed to duplicate to '%1'. Perhaps a file permission error? No s'ha pogut duplicar «%1». @@ -2861,42 +2861,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings Esborra els paràmetres d'usuari - + Do you want to clear all your user settings? Voleu esborrar tots els vostres paràmetres d'usuari? - + If you agree all your settings will be cleared. Si hi esteu d'acord, tots els vostres paràmetres s'esborraran. - + Wrong parameter El paràmetre és incorrecte. - + Restart required Restart required - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -4080,32 +4080,32 @@ get date suffix according to the specified format tindran el sufix de data segons el format especificat - + Use date and FCBak extension Utilitza la data i l'extensió FCBak - + Date format Format de la data - + Document objects Objectes del document - + Allow objects to have same label Allow objects to have same label - + Allow duplicate object labels in one document Permet etiquetes duplicades d'objectes en un document - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4116,22 +4116,22 @@ Aleshores, només es carregaran els objectes referenciats i les seues dependènc No es pot editar un document carregat parcialment. Feu doble clic a la icona del document en la vista de l'arbre per a tornar a carregar-lo completament. - + Disable partial loading of external linked objects Desactiva la càrrega parcial d'objectes enllaçats externs - + Authoring and License Autoria i llicència - + Author name Nom de l'autor - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4140,32 +4140,32 @@ Manteniu-lo en blanc per als anònims. També podeu utilitzar la forma: Joan Peris <joan@peris.com> - + The field 'Last modified by' will be set to specified author when saving the file El camp «Última modificació per" estarà configurat per a l'autor especificat en guardar el fitxer - + Set on save En guardar - + Company Empresa - + Default company name to use for new files El nom de l'empresa per defecte que s'utilitza per als fitxers nous - + Default license Llicència per defecte - + Default license for new documents La llicència per defecte per als documents nous @@ -4235,12 +4235,12 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com> Altres - + License URL URL de la llicència - + URL describing more about the license URL que descriu més informació sobre la llicència @@ -6811,7 +6811,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension Dimensió @@ -6841,32 +6841,32 @@ Do you want to save your changes? Tanca-ho tot - + Toggles this toolbar Commuta la barra d'eines - + Toggles this dockable window Commuta la finestra flotant - - + + Unsaved document El document no s'ha guardat. - + The exported object contains external link. Please save the documentat least once before exporting. L’objecte exportat conté un enllaç extern. Guardeu el documenta almenys una vegada abans d’exportar-lo. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? Per a enllaçar amb objectes externs, el document s’ha de guardar almenys una vegada. @@ -7101,17 +7101,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 Restant: %1 - + Aborting S'interromp - + Do you really want to abort the operation? Esteu segur que voleu interrompre l'operació? @@ -7124,12 +7124,12 @@ How do you want to proceed? Restant: %1 - + Aborting S'interromp - + Do you really want to abort the operation? Esteu segur que voleu interrompre l'operació? @@ -7137,7 +7137,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object Canvia l'objecte enllaçat @@ -7145,12 +7145,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error Error - + Object not found No s'ha trobat l'objecte. @@ -7365,17 +7365,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 Obri el fitxer %1 - + File not found No s'ha trobat el fitxer. - + The file '%1' cannot be opened. El fitxer '%1' no es pot obrir. @@ -7383,22 +7383,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none cap - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 Run macro %1 (Shift+click to edit) keyboard shortcut: %2 - + File not found No s'ha trobat el fitxer. - + The file '%1' cannot be opened. El fitxer '%1' no es pot obrir. @@ -8225,8 +8225,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench Selecciona el banc de treball '%1' @@ -9186,12 +9185,12 @@ Please open a browser window and type in: http://localhost:%1. L'%1 no és buit, voleu esborrar-ne le contingut? - + Translation: Translació: - + Rotation: Rotació: @@ -10338,7 +10337,7 @@ the current copy will be lost. Crea un document buit nou - + Unnamed Sense nom @@ -12613,17 +12612,17 @@ després que s'execute FreeCAD Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar Barra d'eines - + Left corner Left corner - + Right corner Right corner diff --git a/src/Gui/Language/FreeCAD_zh-CN.ts b/src/Gui/Language/FreeCAD_zh-CN.ts index d29af23b4c..8a9edc95dc 100644 --- a/src/Gui/Language/FreeCAD_zh-CN.ts +++ b/src/Gui/Language/FreeCAD_zh-CN.ts @@ -47,24 +47,24 @@ <空> - - + + Angle 角度 - - + + Axis 轴线 - + Position 位置 - + Enum 列举 @@ -1558,7 +1558,7 @@ same time. The one with the highest priority will be triggered. &Close - 闭合(&C) + 关闭(&C) @@ -2113,7 +2113,7 @@ this according to your screen size or personal taste Size of recent file list: - Size of recent file list: + 最近文件列表的大小: @@ -2332,7 +2332,7 @@ display the splash screen Gui::Dialog::DlgMacroExecuteImp - + Macros @@ -2353,8 +2353,8 @@ display the splash screen - - + + Existing file 已存在文件 @@ -2432,53 +2432,53 @@ Note: your changes will be applied when you next switch workbenches 顺序执行以下指令:点击右箭头按钮 (->),然后关闭。 - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. 顺序执行以下指令:点击新建,然后右箭头按钮 (->),然后关闭。 - + Renaming Macro File 重命名宏文件 - - + + Enter new name: 输入新的名称: - - + + '%1' already exists. '%1' 已存在。 - + Rename Failed 重命名失败 - + Failed to rename to '%1'. Perhaps a file permission error? 无法重命名为 "%1"。 可能是文件权限错误? - + Duplicate Macro 复制宏 - + Duplicate Failed 复制失败 - + Failed to duplicate to '%1'. Perhaps a file permission error? 无法复制到"%1"。 @@ -2684,7 +2684,7 @@ Specify another directory, please. &Close - 闭合(&C) + 关闭(&C) @@ -2858,42 +2858,42 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings 清除用户设置 - + Do you want to clear all your user settings? 是否要清除所有用户设置? - + If you agree all your settings will be cleared. 如果您同意,您的设置将被清除。 - + Wrong parameter 参数错误 - + Restart required 需要重启 - + You must restart FreeCAD for changes to take effect. You must restart FreeCAD for changes to take effect. - + Restart now Restart now - + Restart later Restart later @@ -3501,7 +3501,7 @@ but slower response to any scene changes. What kind of multisample anti-aliasing is used - What kind of multisample anti-aliasing is used + 使用什么多重采样抗锯齿模式 @@ -4059,32 +4059,32 @@ get date suffix according to the specified format 备份文件将使用扩展名“.FCbak”,文件名将根据指定格式获得日期后缀 - + Use date and FCBak extension 使用日期和 FCBak 扩展名 - + Date format 日期格式 - + Document objects 文档对象 - + Allow objects to have same label 允许对象具有相同的标签/名称 - + Allow duplicate object labels in one document 在一个文档中允许重复的对象标签 - + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4097,22 +4097,22 @@ icon in the tree view to fully reload it. 树视图中的图标以完全重新加载它。 - + Disable partial loading of external linked objects 禁用外部链接对象的部分加载 - + Authoring and License 授权及许可证 - + Author name 作者姓名 - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> @@ -4121,32 +4121,32 @@ You can also use the form: John Doe <john@doe.com> 您也可以使用以下形式:Ning<ningjiazun@163.com> - + The field 'Last modified by' will be set to specified author when saving the file 保存文件时,“最后修改者”字段将设置为指定的作者 - + Set on save 保存时的设置 - + Company 公司 - + Default company name to use for new files 用于新文件的默认公司名称 - + Default license 默认许可证 - + Default license for new documents 新文档的默认许可证 @@ -4216,12 +4216,12 @@ You can also use the form: John Doe <john@doe.com> 其它 - + License URL 许可证网址 - + URL describing more about the license 更多关于许可证的 URL @@ -4539,7 +4539,7 @@ You can also use the form: John Doe <john@doe.com> The directory in which the application will search for macros - The directory in which the application will search for macros + 应用程序搜索宏的目录 @@ -4648,7 +4648,7 @@ You can also use the form: John Doe <john@doe.com> Number of steps by turn when using arrows (default = 8 : step angle = 360/8 = 45 deg) - Number of steps by turn when using arrows (default = 8 : step angle = 360/8 = 45 deg) + 使用箭头时的转向值 (默认 = 8 : 角度= 360/8 = 45 度) @@ -4698,7 +4698,7 @@ You can also use the form: John Doe <john@doe.com> Font name of the navigation cube - Font name of the navigation cube + 导航立方体字体名称 @@ -4723,7 +4723,7 @@ You can also use the form: John Doe <john@doe.com> Base color for all elements - Base color for all elements + 所有元素的基本颜色 @@ -4734,8 +4734,8 @@ You can also use the form: John Doe <john@doe.com> List the mouse button configs for each chosen navigation setting. Select a set and then press the button to view said configurations. - List the mouse button configs for each chosen navigation setting. -Select a set and then press the button to view said configurations. + 列出每个所选导航设置的鼠标按钮配置。 +选择一组然后按下按钮查看所述配置。 @@ -4745,7 +4745,7 @@ Select a set and then press the button to view said configurations. Navigation settings set - Navigation settings set + 导航栏设置 @@ -4758,10 +4758,10 @@ Select a set and then press the button to view said configurations. - Rotation orbit style. -Trackball: moving the mouse horizontally will rotate the part around the y-axis -Turntable: the part will be rotated around the z-axis (with constrained axes). -Free Turntable: the part will be rotated around the z-axis. + 旋转轨迹样式。 +轨迹球:水平移动鼠标将会使部件绕y轴旋转 +转盘:部件将会绕z轴(带约束轴)旋转。 +自由转盘:部件将绕z轴旋转。 @@ -4776,7 +4776,7 @@ Free Turntable: the part will be rotated around the z-axis. Free Turntable - Free Turntable + 自由转盘 @@ -6793,7 +6793,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension 尺寸标注 @@ -6823,32 +6823,32 @@ Do you want to save your changes? 全部关闭 - + Toggles this toolbar 切换此工具栏 - + Toggles this dockable window 切换此可停靠的窗口 - - + + Unsaved document 未保存的文件 - + The exported object contains external link. Please save the documentat least once before exporting. The exported object contains external link. Please save the documentat least once before exporting. - + To link to external objects, the document must be saved at least once. Do you want to save the document now? To link to external objects, the document must be saved at least once. @@ -7083,17 +7083,17 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 剩余:%1 - + Aborting 异常中止 - + Do you really want to abort the operation? 你真的想中止运行么? @@ -7106,12 +7106,12 @@ How do you want to proceed? 剩余:%1 - + Aborting 异常中止 - + Do you really want to abort the operation? 你真的想中止运行么? @@ -7119,7 +7119,7 @@ How do you want to proceed? Gui::PropertyEditor::LinkLabel - + Change the linked object 更改链接的对象 @@ -7127,12 +7127,12 @@ How do you want to proceed? Gui::PropertyEditor::LinkSelection - + Error 错误 - + Object not found 未发现物件 @@ -7348,17 +7348,17 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 打开文件%1 - + File not found 文件未找到 - + The file '%1' cannot be opened. 无法打开文件'%1'. @@ -7366,22 +7366,22 @@ Do you want to exit without saving your data? Gui::RecentMacrosAction - + none - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 运行宏 %1 (Shift+单击进行编辑),键盘快捷键: %2 - + File not found 文件未找到 - + The file '%1' cannot be opened. 无法打开文件'%1'. @@ -8210,8 +8210,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench 选择'%1'工作台 @@ -9173,12 +9172,12 @@ Please open a browser window and type in: http://localhost:%1. %1 不是空的,一并删除其相关内容吗? - + Translation: 变换: - + Rotation: 旋转: @@ -10324,7 +10323,7 @@ the current copy will be lost. 创建一个新空白文档 - + Unnamed 未命名 @@ -12598,17 +12597,17 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar 工具栏 - + Left corner 左边角 - + Right corner 右边角 diff --git a/src/Gui/Language/FreeCAD_zh-TW.ts b/src/Gui/Language/FreeCAD_zh-TW.ts index 0756618855..004cbef548 100644 --- a/src/Gui/Language/FreeCAD_zh-TW.ts +++ b/src/Gui/Language/FreeCAD_zh-TW.ts @@ -16,12 +16,12 @@ B: - B: + B: C: - C: + C: @@ -47,24 +47,24 @@ <空> - - + + Angle 角度 - - + + Axis - 軸座標 + - + Position 位置 - + Enum Enum @@ -139,27 +139,27 @@ Make link group - 建立連結群組 + 建立鏈結群組 Make link - 建立連結 + 建立鏈結 Make sub-link - 建立子連結 + 建立子鏈結 Import links - 匯入連結 + 匯入鏈結 Import all links - 匯入所有連結 + 匯入所有鏈結 @@ -174,7 +174,7 @@ Add a part - 新增零件 + 新增部件 @@ -190,7 +190,7 @@ Placement - 放置位置 + 佈置 @@ -202,7 +202,7 @@ Toggle array elements - 切換矩陣元素 + Toggle array elements @@ -246,7 +246,7 @@ Help - 求助說明 + 説明 @@ -314,7 +314,7 @@ Spaceball Motion - 太空球動作 + Spaceball行為 @@ -546,7 +546,7 @@ %1 help files not found (%2). You might need to install the %1 documentation package. - %1 說明檔不存在 (%2),您或許需要安裝 %1 套件. + %1 說明檔不存在 (%2),您或許需要安裝 %1 套件。 @@ -561,7 +561,7 @@ Please wait until the AutoRecovery file has been saved... - 自動修復暫存檔儲存中,請稍候... + 自動修復檔儲存中,請稍候 @@ -569,7 +569,7 @@ Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -584,7 +584,7 @@ Scroll middle mouse button - 滑鼠滾動中鍵 + 滾動滑鼠中鍵 @@ -592,7 +592,7 @@ Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -642,7 +642,7 @@ while doing a left or right click and move the mouse up or down Rename object - 重新命名物體 + 重新命名物件 @@ -652,7 +652,7 @@ while doing a left or right click and move the mouse up or down Finish editing object - 完成編輯物體 + 完成編輯物件 @@ -666,7 +666,7 @@ while doing a left or right click and move the mouse up or down Version - 發行版本 + 版本 @@ -686,17 +686,17 @@ while doing a left or right click and move the mouse up or down Word size - 系統架構 + 字型大小 Copy to clipboard - 複製到剪貼簿 + 複製至剪貼簿 License - 版權聲明 + 版權 @@ -726,7 +726,7 @@ while doing a left or right click and move the mouse up or down Individuals Header for the list of individual people in the Credits list. - 貢獻者 + 個人 @@ -738,7 +738,7 @@ while doing a left or right click and move the mouse up or down License - 版權聲明 + 版權 @@ -748,7 +748,7 @@ while doing a left or right click and move the mouse up or down This software uses open source components whose copyright and other proprietary rights belong to their respective owners: - 此軟體使用開放原始碼元件,其版權及其他專屬權利屬於其各自擁有者: + 此軟體使用開放原始碼元件,其版權及其他專屬權利屬於其各自擁有者: @@ -766,17 +766,17 @@ while doing a left or right click and move the mouse up or down The cache directory %1 exceeds the size of %2. - 快取目錄 %1 超過 %2 的大小. + 快取目錄 %1 超過 %2 的大小。 Do you want to clear it now? - 請問您要清除掉嗎? + 請問您要清除掉嗎? Warning: Please make sure that this is the only running %1 instance and that no documents are opened as this may result into data loss! - 警告: 請確保這是唯一正在執行的 %1 實例,並且沒有打開任何文件,因為這可能會導致資料遺失! + 警告:請確保這是唯一正在運行的 %1 實例,並且沒有打開任何文件,因為這可能會導致資料遺失! @@ -797,7 +797,7 @@ while doing a left or right click and move the mouse up or down Camera settings - 相機設定 + 相機視角設定 @@ -901,7 +901,7 @@ while doing a left or right click and move the mouse up or down View Turntable - 視景旋轉台 + 視景轉台 @@ -936,7 +936,7 @@ while doing a left or right click and move the mouse up or down s - + s @@ -1020,11 +1020,11 @@ In this case the prefix will be automatically trimmed when shown in the property However, the property is still used in a script with the full name, like 'obj.Group_Name'. If this is not ticked, then the property must be uniquely named, and it is accessed like 'obj.Name'. - 以'Group_Name'形式在屬性名稱前加上組名稱前綴,以避免與現有屬性發生衝突. -在這種情況下,前綴在屬性編輯器中顯示時將被自動修剪. -但是,該屬性仍然在具有全名的腳本中使用,例如'obj.Group_Name'. + Prefix the property name with the group name in the form 'Group_Name' to avoid conflicts with an existing property. +In this case the prefix will be automatically trimmed when shown in the property editor. +However, the property is still used in a script with the full name, like 'obj.Group_Name'. -如果未勾選,則該屬性必須具有唯一名稱,並且可以像'obj.Name'一樣存取. +If this is not ticked, then the property must be uniquely named, and it is accessed like 'obj.Name'. @@ -1042,12 +1042,12 @@ If this is not ticked, then the property must be uniquely named, and it is acces Site: - 網站: + 網站: %1 at %2 - %1 於 %2 + 在 %2 的 %1 @@ -1057,7 +1057,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Password: - 密碼: + 密碼: @@ -1069,7 +1069,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Dialog - 對話框 + 對話方塊 @@ -1100,7 +1100,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Create New Preference Pack - 建立新的屬性包 + 建立新的偏好設定包 @@ -1110,7 +1110,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Property group templates - 屬性組模板 + Property group templates @@ -1118,12 +1118,12 @@ If this is not ticked, then the property must be uniquely named, and it is acces Pack already exists - 包已經存在 + 包已經存在。 A preference pack with that name already exists. Do you want to overwrite it? - 已存在具有該名稱的預設值內容. 你想覆蓋它嗎? + 有此名稱之偏好設定包已存在。您要覆寫它嗎? @@ -1136,7 +1136,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Setup Custom Macros - 設定自訂巨集 + 設置自訂巨集 @@ -1146,27 +1146,27 @@ If this is not ticked, then the property must be uniquely named, and it is acces Menu text: - 選項文字: + 選項文字: Tool tip: - 工具提示: + 工具提示: Status text: - 狀態文字: + 狀態文字: What's this: - 這是什麼: + 這是什麼: Accelerator: - 加速器: + 加速器: @@ -1209,7 +1209,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Sorry, couldn't find macro file '%1'. - 抱歉,找不到巨集檔案 '%1'. + 抱歉,找不到巨集檔案 '%1'。 @@ -1219,7 +1219,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Please specify the macro first. - 請先指定巨集. + 請先指定巨集。 @@ -1231,7 +1231,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces Please specify the menu text first. - 請先指定選項文字. + 請先指定選項文字。 @@ -1271,7 +1271,7 @@ If this is not ticked, then the property must be uniquely named, and it is acces To change a current shortcut enter the new shortcut in the field below and press 'Assign'. - 要更改當前快捷鍵,請在下面的欄位中輸入新的快捷鍵,然後按'分配'. + To change a current shortcut enter the new shortcut in the field below and press 'Assign'. @@ -1281,15 +1281,16 @@ If this is not ticked, then the property must be uniquely named, and it is acces Multi-key sequence delay: - 多重鍵序列延遲: + Multi-key sequence delay: Time in milliseconds to wait for the next key stroke of the current key sequence. For example, pressing 'F' twice in less than the time delay setting here will be be treated as shorctcut key sequence 'F, F'. - 等待當前按鍵序列的下一個按鍵點擊的時間(以毫秒為單位). -例如,在小於此處設定的延遲時間的時間內按'F'兩次將被視為快捷鍵序列'F,F'. + Time in milliseconds to wait for the next key stroke of the current key sequence. +For example, pressing 'F' twice in less than the time delay setting here will be +be treated as shorctcut key sequence 'F, F'. @@ -1313,7 +1314,7 @@ same time. The one with the highest priority will be triggered. Alt+A - Alt+A + Alt + A @@ -1360,7 +1361,7 @@ same time. The one with the highest priority will be triggered. Type to search... - 輸入以搜尋... + Type to search... @@ -1438,12 +1439,12 @@ same time. The one with the highest priority will be triggered. Move right - 右移 + 向右移動 Category: - 類別: + Category: @@ -1483,7 +1484,7 @@ same time. The one with the highest priority will be triggered. <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">注意:</span> 下次載入適當的工作台時更改才會生效</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> @@ -1515,7 +1516,7 @@ same time. The one with the highest priority will be triggered. Toolbar name: - 工具列名稱: + 工具列名稱: @@ -1566,13 +1567,13 @@ same time. The one with the highest priority will be triggered. Spaceball Motion - 太空球動作 + Spaceball行為 No Spaceball Present - 無存在太空球 + 無顯示Spaceball @@ -1580,12 +1581,12 @@ same time. The one with the highest priority will be triggered. Spaceball Buttons - 太空球按鈕 + Spaceball按鈕 No Spaceball Present - 無存在太空球 + 無顯示Spaceball @@ -1623,7 +1624,7 @@ same time. The one with the highest priority will be triggered. Plot mode: - 出圖模式: + 出圖模式: @@ -1633,22 +1634,22 @@ same time. The one with the highest priority will be triggered. Color plot: - 圖形色彩: + 圖形色彩: Shape color: - 形狀色彩: + 形狀色彩: Line color: - 線條色彩: + 線條色彩: Point color: - 點色彩: + Point color: @@ -1658,22 +1659,22 @@ same time. The one with the highest priority will be triggered. Point size: - 點大小: + 點大小: Line width: - 線寬: + 線寬: Transparency: - 透明度: + 透明度: Line transparency: - 線透明度: + 線的透明度: @@ -1735,12 +1736,12 @@ same time. The one with the highest priority will be triggered. Neon GNC - 霓虹 GNC + Neon GNC Neon PHC - 霓虹 PHC + Neon PHC @@ -1818,12 +1819,12 @@ same time. The one with the highest priority will be triggered. The cursor shape will be a block - 文字游標外型將會是區塊 + The cursor shape will be a block Enable block cursor - 啟用區塊遊標 + Enable block cursor @@ -1838,7 +1839,7 @@ same time. The one with the highest priority will be triggered. Tab size: - 標籤尺寸: + 標籤尺寸: @@ -1848,7 +1849,7 @@ same time. The one with the highest priority will be triggered. Indent size: - 縮排尺寸: + 縮排尺寸: @@ -1888,7 +1889,7 @@ same time. The one with the highest priority will be triggered. Family: - 家族: + 家族: @@ -1898,7 +1899,7 @@ same time. The one with the highest priority will be triggered. Size: - 大小: + 尺寸: @@ -1913,7 +1914,7 @@ same time. The one with the highest priority will be triggered. Preview: - 預覽: + 預覽: @@ -1935,7 +1936,7 @@ same time. The one with the highest priority will be triggered. Number format: - 數字格式: + 數字格式: @@ -1945,7 +1946,7 @@ same time. The one with the highest priority will be triggered. Selected language - 選擇語系 + 選擇語言 @@ -1963,7 +1964,7 @@ dot/period will always be printed. Preference packs - 偏好設定套件 + 偏好設定包 @@ -1983,7 +1984,7 @@ dot/period will always be printed. Import config... - 匯入參數... + 匯入設定... @@ -2023,32 +2024,32 @@ dot/period will always be printed. Style sheet: - 樣式表: + 樣式表: Language and number format - 語系和數字格式 + Language and number format Language: - 語系: + 語言: Unit system: - 單位系統: + Unit system: Unit system that should be used for all parts of the application - 應用於應用程式所有零件的單位系統 + Unit system that should be used for all parts of the application Number of decimals: - 小數位數: + 小數位數: @@ -2058,22 +2059,22 @@ dot/period will always be printed. Minimum fractional inch: - 最小分數英寸: + Minimum fractional inch: Minimum fractional inch to be displayed - 要顯示的最小分數英寸 + Minimum fractional inch to be displayed Substitute decimal separator - 替換小數點分隔字元 + Substitute decimal separator Application - 文件內容 + 應用程式 @@ -2089,7 +2090,7 @@ dot/period will always be printed. Choose your preference for toolbar icon size. You can adjust this according to your screen size or personal taste - 在偏好設定中選擇工具列圖示大小. 您可以依照螢幕大小及個人品味來調整 + 在偏好設定中選擇工具列圖示大小。您可以依照螢幕大小及個人品味來調整。 @@ -2118,8 +2119,8 @@ this according to your screen size or personal taste Background of the main window (when no document is opened) will consist of tiles of a special image. See the FreeCAD Wiki for details about the image. - 主視窗的背景(未開啟文件時)將由特殊圖像組成. -有關圖像的詳細信息,請參閱 FreeCAD Wiki. + Background of the main window (when no document is opened) will consist of tiles of a special image. +See the FreeCAD Wiki for details about the image. @@ -2139,7 +2140,7 @@ display the splash screen Manage preference packs - 管理偏好設定套件 + 管理偏好設定包 @@ -2189,7 +2190,7 @@ display the splash screen Preference Pack Name - 偏好設定套件名稱 + 偏好設定包名稱 @@ -2199,27 +2200,27 @@ display the splash screen Apply - 套用 + 應用 Apply the %1 preference pack - 套用 %1 偏好設定套件 + 套用 %1 之偏好設定包 Choose a FreeCAD config file to import - 選擇要匯入的 FreeCAD 參數設定文件 + 還擇一個 FreeCAD 設定檔以匯入 File exists - 該檔案已存在 + 檔案已存在 A preference pack with that name already exists. Overwrite? - 已存在具有相同檔案名稱的預設偏好設定套件. 覆蓋它? + 有此名稱之偏好設定包已存在。是否覆寫? @@ -2253,7 +2254,7 @@ display the splash screen Macro name: - 巨集名稱: + 巨集名稱: @@ -2303,7 +2304,7 @@ display the splash screen Launch a guide on how to set up a macro in a custom global toolbar. - 啟動有關如何在自定義全局工具欄中設定巨集的指南. + Launch a guide on how to set up a macro in a custom global toolbar. @@ -2313,7 +2314,7 @@ display the splash screen Open Addon Manager where macros created by the community and other addons can be downloaded. - 打開附加元件管理員,可以在其中下載社區和其他附加元件的巨集. + Open Addon Manager where macros created by the community and other addons can be downloaded. @@ -2323,14 +2324,14 @@ display the splash screen User macros location: - 使用者自訂巨集位置: + 使用者自訂巨集之位置: Gui::Dialog::DlgMacroExecuteImp - + Macros 巨集 @@ -2347,12 +2348,12 @@ display the splash screen Enter a file name, please: - 請輸入檔案名稱: + 請輸入檔案名稱: - - + + Existing file 現有檔案 @@ -2360,7 +2361,7 @@ display the splash screen '%1'. This file already exists. - '%1'.該檔案已存在. + '%1'.該檔案已存在。 @@ -2370,7 +2371,7 @@ This file already exists. Creation of file '%1' failed. - 檔案「%1」建立失敗. + 檔案「%1」建立失敗。 @@ -2380,7 +2381,7 @@ This file already exists. Do you really want to delete the macro '%1'? - 您確定要刪除 '%1' 的巨集嗎? + 您確定要刪除 '%1' 的巨集嗎? @@ -2398,15 +2399,15 @@ This file already exists. Note: your changes will be applied when you next switch workbenches - 將指導你設定巨集在一個自定全域工具列. 指令將是對話框的紅色文字. + 將指導你設定巨集在一個自定全域工具列. 指令將是對話框的紅色文字. -注意: 當你下次切換工作台時將會套用你的變更 +注意: 你的變更將會套件當你切換工作台時 Walkthrough, dialog 1 of 2 - 演練, 對話框2之1 + 演練, 對話方塊2之1 @@ -2421,7 +2422,7 @@ Note: your changes will be applied when you next switch workbenches Walkthrough, dialog 2 of 2 - 演練, 對話框2之2 + 演練, 對話方塊2之2 @@ -2429,55 +2430,55 @@ Note: your changes will be applied when you next switch workbenches 演練指令: 點選右邊的箭頭按鈕 (->), 然後關閉. - + Walkthrough instructions: Click New, then right arrow (->) button, then Close. 演練指令: 點選新增, 然後右邊的箭頭 (->) 按鈕, 然後關閉. - + Renaming Macro File 重新命名巨集 - - + + Enter new name: - 輸入新名稱: + 輸入新名稱: - - + + '%1' already exists. '%1' - 已存在. + 已存在 - + Rename Failed 無法重新命名 - + Failed to rename to '%1'. Perhaps a file permission error? - 無法重新命名為'%1'. 可能是檔案存取權限錯誤? + 無法重新命名為'%1'。可能是檔案許可設定錯誤? - + Duplicate Macro 複製巨集 - + Duplicate Failed 複製失敗 - + Failed to duplicate to '%1'. Perhaps a file permission error? - 複製到 '%1' 失敗. + 複製到 '%1' 失敗。 或許是檔案存取權限錯誤? @@ -2491,12 +2492,12 @@ Perhaps a file permission error? Macro name: - 巨集名稱: + 巨集名稱: Macro path: - 巨集路徑: + 巨集路徑: @@ -2526,12 +2527,12 @@ Perhaps a file permission error? Specify first a place to save. - 首先指定存檔位置. + 首先指定存檔位置。 The macro directory doesn't exist. Please, choose another one. - 巨集目錄不存在. 請另選一個. + 巨集目錄不存在。請另選一個。 @@ -2546,7 +2547,7 @@ Perhaps a file permission error? You have no write permission for the directory. Please, choose another one. - 您沒有此目錄之寫入權限,請選擇另一個. + 您沒有此目錄之寫入權限,請選擇另一個 @@ -2569,27 +2570,27 @@ Perhaps a file permission error? Ambient color: - 環境色彩: + 環境色彩: Diffuse color: - 外觀色彩: + 外觀色彩: Emissive color: - 發光色彩: + 自發光色彩: Specular color: - 反射色彩: + 反射色彩: Shininess: - 光澤度: + 光澤度: @@ -2619,19 +2620,19 @@ Perhaps a file permission error? HTML files - HTML 檔案 + HTML 檔 Access denied - 存取被拒絕 + 訪問被拒絕 Access denied to '%1' Specify another directory, please. - 存取'%1'被拒絕. + 訪問'%1'被拒絕 @@ -2639,7 +2640,7 @@ Specify another directory, please. Parameter Editor - 屬性參數編輯器 + 參數編輯器 @@ -2693,7 +2694,7 @@ Specify another directory, please. Find what: - 尋找內容: + 尋找內容 @@ -2733,7 +2734,7 @@ Specify another directory, please. Can't find the text: %1 - 找不到文字: %1 + 找不到文字:%1 @@ -2793,7 +2794,7 @@ Specify another directory, please. Manage Preference Packs - 管理偏好設定套件 + 管理偏好設定包 @@ -2806,37 +2807,37 @@ Specify another directory, please. User-Saved Preference Packs - 使用者已儲存的偏好設定套件 + 使用者儲存之偏好設定包 Built-In Preference Packs - 內建偏好設定套件 + 內建偏好設定包 Toggle visibility of built-in preference pack '%1' - 切換內置預設套件的可見性 '%1' + 切換內建偏好設定包 '%1' 之可視性 Delete user-saved preference pack '%1' - 刪除使用者儲存的預設套件 '%1' + 刪除使用者儲存之偏好設定包 '%1' Toggle visibility of Addon preference pack '%1' (use Addon Manager to permanently remove) - 切換附加元件預設套件'%1'的可見性(使用附加元件管理器來永久刪除) + Toggle visibility of Addon preference pack '%1' (use Addon Manager to permanently remove) Delete saved preference pack? - 刪除已儲存的偏好設定套件? + 刪除已儲存之偏好設定包? Are you sure you want to delete the preference pack named '%1'? This cannot be undone. - 您確定要刪除名為'%1'的預設套件嗎? 這將不能被復原. + 您確定要刪除偏好設定包其名稱為 '%1' 嗎?此項動作無法還原 @@ -2854,44 +2855,44 @@ Specify another directory, please. Gui::Dialog::DlgPreferencesImp - + Clear user settings 清除使用者設定 - + Do you want to clear all your user settings? - 您確定要清除所有的設定嗎? + 您確定要清除所有的設定嗎? - + If you agree all your settings will be cleared. - 當您同意後,所有的設定將會被清除. + 當您同意後,所有的設定將會被清除 - + Wrong parameter 錯誤的參數 - + Restart required 需要重新啟動 - + You must restart FreeCAD for changes to take effect. - 您必須重新啟動 FreeCAD 以套用變更. + You must restart FreeCAD for changes to take effect. + + + + Restart now + Restart now - Restart now - 現在重新啟動 - - - Restart later - 稍後重新啟動 + Restart later @@ -2909,7 +2910,7 @@ Specify another directory, please. &Name: - 名稱(&N): + 名稱(&N): @@ -2924,37 +2925,37 @@ Specify another directory, please. Program version: - 程式版本: + 程式版本: Created &by: - 作者(&B): + 作者: Creation &date: - 建立日期(&D): + 建立日期(&D): &Last modified by: - 最後修改(&L): + 最後修改(&L): Last &modification date: - 最後修改日期(&M): + 最後修改日期(&M): Com&pany: - 公司(&P): + &P公司: License information: - 授權聲明資訊: + 授權申明: @@ -2969,7 +2970,7 @@ Specify another directory, please. &Comment: - 註釋(&C): + &Comment: @@ -3003,7 +3004,7 @@ Specify another directory, please. Extract - 提取 + 萃取 @@ -3023,19 +3024,19 @@ Specify another directory, please. Project file - 專案檔案 + 專案檔 Empty source - 空來源 + 無指定來源 No source is defined. - 無指定來源. + 無指定來源 @@ -3047,7 +3048,7 @@ Specify another directory, please. No destination is defined. - 未定義目的地. + 未定義目的地 @@ -3075,12 +3076,12 @@ Specify another directory, please. If enabled, then 3D view selection will be synchronized with full object hierarchy. - 如果啟用,則 3D 視圖選擇將與完整的物體階層結構同步. + If enabled, then 3D view selection will be synchronized with full object hierarchy. Sync sub-object selection - 同步子物體選擇 + Sync sub-object selection @@ -3159,8 +3160,8 @@ Specify another directory, please. When an error has occurred, the Report View dialog becomes visible on-screen while displaying the error - 出現錯誤訊息時,報告視窗對話框 -在顯示錯誤訊息的同時出現在螢幕上 + When an error has occurred, the Report View dialog becomes visible +on-screen while displaying the error @@ -3171,8 +3172,8 @@ on-screen while displaying the error When a warning has occurred, the Report View dialog becomes visible on-screen while displaying the warning - 出現警告訊息時,報告視窗對話框 -在顯示警告訊息的同時出現在螢幕上 + When a warning has occurred, the Report View dialog becomes visible +on-screen while displaying the warning @@ -3183,35 +3184,35 @@ on-screen while displaying the warning When a normal message has occurred, the Report View dialog becomes visible on-screen while displaying the message - 出現正常訊息時,報告視窗對話框 -在顯示正常訊息的同時出現在螢幕上 + When a normal message has occurred, the Report View dialog becomes visible +on-screen while displaying the message Show report view on normal message - 顯示一般正常訊息 + Show report view on normal message When a log message has occurred, the Report View dialog becomes visible on-screen while displaying the log message - 出現紀錄訊息時,報告視窗對話框 -在顯示紀錄訊息的同時出現在螢幕上 + When a log message has occurred, the Report View dialog becomes visible +on-screen while displaying the log message Show report view on log message - 顯示紀錄訊息 + Show report view on log message Include a timecode for each report - 包括每個報告的時間碼 + 在每個報告中包含時間碼 Include a timecode for each entry - 包括每個分錄的時間碼 + 在每個條目中包含時間碼 @@ -3226,7 +3227,7 @@ on-screen while displaying the log message Font color for normal messages in Report view panel - 報告視窗面板中普通訊息的字體顏色 + Font color for normal messages in Report view panel @@ -3236,7 +3237,7 @@ on-screen while displaying the log message Font color for log messages in Report view panel - 報告視窗面板中日誌訊息的字體顏色 + Font color for log messages in Report view panel @@ -3246,7 +3247,7 @@ on-screen while displaying the log message Font color for warning messages in Report view panel - 報告視窗面板中警告訊息的字體顏色 + Font color for warning messages in Report view panel @@ -3256,7 +3257,7 @@ on-screen while displaying the log message Font color for error messages in Report view panel - 報告視窗面板中錯誤訊息的字體顏色 + Font color for error messages in Report view panel @@ -3273,7 +3274,7 @@ from Python console to Report view panel Redirect internal Python output to report view - 內部Python重新指向至報告視窗 + 內部Python重新輸出至報告視圖 @@ -3285,7 +3286,7 @@ from Python console to Report view panel Redirect internal Python errors to report view - 將內部 Python 錯誤重新指向到報表視窗 + 將內部 Python 錯誤重定向到報表視景 @@ -3297,17 +3298,17 @@ from Python console to Report view panel Revert to Backup Config - 恢復到備份屬性參數 + Revert to Backup Config WARNING: this process will undo any preference changes made since the specified date, and will also reset your Recent files and Macros to their state on that date. - 警告: 此過程將復原自指定日期以來所做的任何預設更改, 並且還會將您最近使用的文件和巨集重置為該日期的狀態. + WARNING: this process will undo any preference changes made since the specified date, and will also reset your Recent files and Macros to their state on that date. Available backup files: - 可用的備份檔案: + 可用的備份檔案: @@ -3315,7 +3316,7 @@ from Python console to Report view panel No selection in dialog, cannot load backup file - 對話框中沒有選擇, 無法載入備份檔案 + No selection in dialog, cannot load backup file @@ -3353,7 +3354,7 @@ from Python console to Report view panel Help - 求助說明 + 説明 @@ -3366,7 +3367,7 @@ from Python console to Report view panel 3D View - 3D 視景 + 3D視圖 @@ -3377,8 +3378,8 @@ from Python console to Report view panel Main coordinate system will always be shown in lower right corner within opened files - 主坐標系統將始終顯示在 -開啟的文件中的右下角 + Main coordinate system will always be shown in +lower right corner within opened files @@ -3388,20 +3389,21 @@ lower right corner within opened files Relative size : - 相對尺寸: + Relative size : Size of main coordinate system representation in the corner -- in % of height/width of viewport - 角落中主坐標系統表示的大小 -視窗高度/寬度的百分比 + Size of main coordinate system representation +in the corner -- in % of height/width of viewport Axis cross will be shown by default at file opening or creation - 打開或建立文件時預設顯示十字軸 + 軸的十字將預設顯示在一個檔案開啟或建立時 +opening or creation @@ -3412,13 +3414,13 @@ opening or creation Time needed for last operation and resulting frame rate will be shown at the lower left corner in opened files - 最後一次操作所需的時間和結果影像幀率 -將顯示在開啟文件的左下角 + Time needed for last operation and resulting frame rate +will be shown at the lower left corner in opened files Show counter of frames per second - 顯示每秒影格計數 + 顯示每秒影格計數器 @@ -3442,7 +3444,7 @@ Changing this option requires a restart of the application. Use OpenGL VBO (Vertex Buffer Object) - 使用 OpenGL VBO(頂點緩衝物體) + Use OpenGL VBO (Vertex Buffer Object) @@ -3461,16 +3463,16 @@ can be rendered directly by GPU. Note: Sometimes this feature may lead to a host of different issues ranging from graphical anomalies to GPU crash bugs. Remember to report this setting as enabled when seeking support on the FreeCAD forums - 如果選中,將使用頂點緩衝物體 (VBO). -VBO 是一種 OpenGL 功能,提供上傳 -頂點資料(位置、法向量、顏色等)到顯示卡. -VBO 提供了顯著的性能提升,因為資料停留在 -在圖形記憶體而不是系統記憶體中,所以它 -可以直接用GPU渲染. + If selected, Vertex Buffer Objects (VBO) will be used. +A VBO is an OpenGL feature that provides methods for uploading +vertex data (position, normal vector, color, etc.) to the graphics card. +VBOs offer substantial performance gains because the data resides +in the graphics memory rather than the system memory and so it +can be rendered directly by GPU. -注意: 有時此功能可能會導致許多不同的異常 -從圖形到 GPU 崩潰錯誤的各種問題. 記得 -在 FreeCAD 論壇上尋求支援時報告此設定已啟用 +Note: Sometimes this feature may lead to a host of different +issues ranging from graphical anomalies to GPU crash bugs. Remember to +report this setting as enabled when seeking support on the FreeCAD forums @@ -3481,13 +3483,13 @@ There are 3 options available to achieve this: 3) 'Centralized', manually turn off cache in all nodes of all view provider, and only cache at the scene graph root node. This offers the fastest rendering speed but slower response to any scene changes. - '算繪快取'是'算繪加速'的另一種說法. -有 3 個選項可用於實現此目的: -1)'自動'(預設),讓 Coin3D 決定快取的位置. -2)'分散式',手動打開所有視圖提供者根節點的快取. -3)'集中式',手動關閉所有視圖提供者的所有節點中的快取,並 -只快取在場景圖根節點. 這提供了最快的算繪速度 -但對任何場景變化的反應較慢. + 'Render Caching' is another way to say 'Rendering Acceleration'. +There are 3 options available to achieve this: +1) 'Auto' (default), let Coin3D decide where to cache. +2) 'Distributed', manually turn on cache for all view provider root node. +3) 'Centralized', manually turn off cache in all nodes of all view provider, and +only cache at the scene graph root node. This offers the fastest rendering speed +but slower response to any scene changes. @@ -3497,12 +3499,12 @@ but slower response to any scene changes. Distributed - 分佈 + 分散式 Centralized - 集中 + 中心化 @@ -3512,7 +3514,7 @@ but slower response to any scene changes. What kind of multisample anti-aliasing is used - 使用什麼樣的多重採樣抗鋸齒 + What kind of multisample anti-aliasing is used @@ -3552,40 +3554,41 @@ but slower response to any scene changes. One pass - 一次通過 + One pass Backface pass - 背面傳遞 + Backface pass Marker size: - 標記大小: + 標記大小 Size of vertices in the Sketcher workbench - 草圖工作台中頂點的大小 + Size of vertices in the Sketcher workbench Eye to eye distance for stereo modes - 立體模式下的眼距 + Eye to eye distance for stereo modes Eye-to-eye distance used for stereo projections. The specified value is a factor that will be multiplied with the bounding box size of the 3D object that is currently displayed. - 用於立體投影的眼距. -指定的值是一個因子,將與目前顯示的 3D 物體的邊界框大小相乘. + Eye-to-eye distance used for stereo projections. +The specified value is a factor that will be multiplied with the +bounding box size of the 3D object that is currently displayed. Backlight is enabled with the defined color - 使用定義的顏色啟用背光 + 以定義顏色來啟動背光 @@ -3616,12 +3619,12 @@ bounding box size of the 3D object that is currently displayed. Perspective renderin&g - 以透視算繪(&g) + 透視圖(&g) Objects will be projected in orthographic projection - 物體將以正投影法顯示 + 物件將以正投影法顯示 @@ -3673,7 +3676,7 @@ bounding box size of the 3D object that is currently displayed. Open a new viewer or restart %1 to apply anti-aliasing changes. - 開啟新視窗或重新啟動 %1 來套用反鋸齒效果. + 開啟新視窗或重新啟動 %1 來套用反鋸齒效果 @@ -3691,12 +3694,12 @@ bounding box size of the 3D object that is currently displayed. Location: - 位置: + 位置: Check periodically at program start: - 在程式開始時固定檢查: + 在程式開始時固定檢查: @@ -3706,12 +3709,12 @@ bounding box size of the 3D object that is currently displayed. Daily - 每天 + Daily Weekly - 每週 + Weekly @@ -3726,17 +3729,17 @@ bounding box size of the 3D object that is currently displayed. Never - 永不 + Never Cache size limit: - 快取大小限制: + 快取大小限制: Check now... - 立即檢查... + 立即檢查 @@ -3751,7 +3754,7 @@ bounding box size of the 3D object that is currently displayed. Current cache size: %1 - 目前快取大小: %1 + 目前快取大小:%1 @@ -3769,7 +3772,7 @@ bounding box size of the 3D object that is currently displayed. &Gradient: - 漸層(&G): + 漸層(&G): @@ -3799,12 +3802,12 @@ bounding box size of the 3D object that is currently displayed. Color gradient is used with its full color range - 顏色漸變用於其全色範圍 + Color gradient is used with its full color range &Flow - 流程(&F) + &流程 @@ -3814,7 +3817,7 @@ bounding box size of the 3D object that is currently displayed. Color gradient starts from the zero value - 顏色漸變從零值開始 + Color gradient starts from the zero value @@ -3829,19 +3832,19 @@ bounding box size of the 3D object that is currently displayed. Visibility - 可見 + 可見性 Data outside the specified min-max range will be displayed in gray - 超出指定最小-最大範圍的資料 -將以灰色顯示 + Data outside the specified min-max range +will be displayed in gray Out g&rayed - 外部呈現灰色(&R) + 外部&呈灰色 @@ -3852,13 +3855,13 @@ will be displayed in gray Data outside the specified min-max range will be displayed with transparency - 超出指定最小-最大範圍的資料 -會透明顯示 + Data outside the specified min-max range +will be displayed with transparency Out &transparent - 透明(&t) + Out &transparent @@ -3878,29 +3881,29 @@ will be displayed with transparency &Labels: - 標籤(&S): + 標籤(&S): Number of labels besides the color bar - 顏色條以外的標籤數量 + Number of labels besides the color bar Mi&nimum: - 最小化(&n): + 最小化(&n): &Decimals: - 小數(&D): + 小數(&D): Number of decimals for labels besides the color bar - 除了顏色條之外的 -標籤小數位數 + Number of decimals for labels +besides the color bar @@ -3917,7 +3920,7 @@ besides the color bar The maximum value must be higher than the minimum value. - 最高值必須高於最低值. + 最高值必須高於最低值。 @@ -3935,7 +3938,7 @@ besides the color bar The application will create a new document when started - 應用程式將在啟動時建立一個新文件 + The application will create a new document when started @@ -3951,12 +3954,12 @@ besides the color bar Compression level for FCStd files - FCStd 文件的壓縮等級 + Compression level for FCStd files All changes in documents are stored so that they can be undone/redone - 儲存文件中的所有更改,以便可以復原/重做 + All changes in documents are stored so that they can be undone/redone @@ -3971,19 +3974,19 @@ besides the color bar How many Undo/Redo steps should be recorded - 應記錄多少次復原/重做步驟 + How many Undo/Redo steps should be recorded Allow user aborting document recomputation by pressing ESC. This feature may slightly increase recomputation time. - 允許使用者通過按 ESC 鍵中止文件重新計算. -此功能可能會稍微增加重新計算時間. + Allow user aborting document recomputation by pressing ESC. +This feature may slightly increase recomputation time. Allow aborting recomputation - 允許中止重新計算 + Allow aborting recomputation @@ -3993,18 +3996,19 @@ This feature may slightly increase recomputation time. Saving transactions (Auto-save) - 儲存處理事項 (自動儲存) + 儲存交易(自動儲存) Discard saved transaction after saving document - 儲存文件後拋棄已儲存處理事項 + 儲存文件後拋棄儲存的交易 If there is a recovery file available the application will automatically run a file recovery when it is started. - 如果有可用的恢復文件,應用程式將在啟動時自動執行文件恢復. + If there is a recovery file available the application will +automatically run a file recovery when it is started. @@ -4014,7 +4018,7 @@ automatically run a file recovery when it is started. How often a recovery file is written - 儲存恢復文件的頻率 + How often a recovery file is written @@ -4024,7 +4028,7 @@ automatically run a file recovery when it is started. A thumbnail will be stored when document is saved - 保存文件時將儲存縮略圖 + A thumbnail will be stored when document is saved @@ -4040,63 +4044,63 @@ automatically run a file recovery when it is started. Sets the size of the thumbnail that is stored in the document. Common sizes are 128, 256 and 512 - 設定儲存在文件中的縮略圖的大小. -常見尺寸為 128、256 和 512 + Sets the size of the thumbnail that is stored in the document. +Common sizes are 128, 256 and 512 The program logo will be added to the thumbnail - 程式標誌將被增加到縮略圖 + The program logo will be added to the thumbnail Add the program logo to the generated thumbnail - 將程式標誌新增到產生的縮略圖 + Add the program logo to the generated thumbnail How many backup files will be kept when saving document - 保存文件時會保留多少個備份文件 + How many backup files will be kept when saving document Maximum number of backup files to keep when resaving document - 重新儲存文件檔案時要保留的最大備份數目 + Maximum number of backup files to keep when resaving document Backup files will get extension '.FCbak' and file names get date suffix according to the specified format - 備份文件將獲得副檔名'.FCbak',檔案名稱 -根據指定格式獲得日期後綴 + Backup files will get extension '.FCbak' and file names +get date suffix according to the specified format - + Use date and FCBak extension - 使用日期和 FCBak 副檔名 + Use date and FCBak extension - + Date format 日期格式 - + Document objects - 檔案物體 - - - - Allow objects to have same label - 允許物體具有相同的標籤 + 檔案物件 - Allow duplicate object labels in one document - 在一個檔案中允許重複的物體標籤 + Allow objects to have same label + 允許物件有同樣標籤 - + + Allow duplicate object labels in one document + 在一個檔案中允許重複的物件標籤 + + + Enable partial loading of external linked documents. Then only referenced objects and their dependencies will be loaded when a linked document is auto-opened together with the main document. @@ -4107,58 +4111,58 @@ icon in the tree view to fully reload it. 部分載入的檔案無法被編輯。在樹狀檢視中雙擊該檔案以完整載入該檔案。 - + Disable partial loading of external linked objects - 禁用外部連結物體的部分載入 + Disable partial loading of external linked objects - + Authoring and License 創作及授權 - + Author name 作者 - + All documents that will be created will get the specified author name. Keep blank for anonymous. You can also use the form: John Doe <john@doe.com> - 將建立的所有文件都將獲得指定的作者姓名. -匿名留空. -您還可以使用以下表格: John Doe <john@doe.com> - - - - The field 'Last modified by' will be set to specified author when saving the file - 保存文件時,"最後修改者"欄位將設定為指定的作者 + All documents that will be created will get the specified author name. +Keep blank for anonymous. +You can also use the form: John Doe <john@doe.com> + The field 'Last modified by' will be set to specified author when saving the file + The field 'Last modified by' will be set to specified author when saving the file + + + Set on save 儲存時設定 - + Company 公司 - + Default company name to use for new files - 新文件的預設公司名稱 + Default company name to use for new files - + Default license 預設授權 - + Default license for new documents - Default license for new documents + Default license for new documents @@ -4226,14 +4230,14 @@ You can also use the form: John Doe <john@doe.com> 其他 - + License URL 授權連結 - + URL describing more about the license - 描述有關授權許可更多訊息的 URL + URL describing more about the license @@ -4241,7 +4245,7 @@ You can also use the form: John Doe <john@doe.com> The format of the date to use. - 使用的日期格式. + The format of the date to use. @@ -4251,7 +4255,7 @@ You can also use the form: John Doe <john@doe.com> Format - 格式 + Format @@ -4279,7 +4283,7 @@ You can also use the form: John Doe <john@doe.com> Comment - 註釋 + 評論 @@ -4299,7 +4303,7 @@ You can also use the form: John Doe <john@doe.com> Character - 字元 + 字符 @@ -4352,7 +4356,7 @@ You can also use the form: John Doe <john@doe.com> Standard sizes: - 標準尺寸: + 標準尺寸: @@ -4377,7 +4381,7 @@ You can also use the form: John Doe <john@doe.com> &Width: - 寬度(&W): + 寬度(&W): @@ -4388,7 +4392,7 @@ You can also use the form: John Doe <john@doe.com> &Height: - 高度(&H): + 高度(&H): @@ -4443,7 +4447,7 @@ You can also use the form: John Doe <john@doe.com> Back&ground: - 背景(&G): + 背景(&G): @@ -4463,12 +4467,12 @@ You can also use the form: John Doe <john@doe.com> Transparent - 透明 + Transparent Creation method: - 建立方法: + Creation method: @@ -4488,7 +4492,7 @@ You can also use the form: John Doe <john@doe.com> Add watermark - 增加浮水印 + Add watermark @@ -4496,22 +4500,22 @@ You can also use the form: John Doe <john@doe.com> Offscreen (New) - 螢幕外 (新) + Offscreen (New) Offscreen (Old) - 螢幕外 (舊) + Offscreen (Old) Framebuffer (custom) - 影像緩衝(自訂) + Framebuffer (custom) Framebuffer (as is) - 影像緩衝(原樣) + Framebuffer (as is) @@ -4529,7 +4533,7 @@ You can also use the form: John Doe <john@doe.com> Variables defined by macros are created as local variables - 巨集定義的變量建立為局部變量 + Variables defined by macros are created as local variables @@ -4549,7 +4553,7 @@ You can also use the form: John Doe <john@doe.com> The directory in which the application will search for macros - 應用程式將在此目錄中搜索巨集 + The directory in which the application will search for macros @@ -4559,7 +4563,7 @@ You can also use the form: John Doe <john@doe.com> Recorded macros will also contain user interface commands - 錄製的巨集還將包含使用者界面指令 + Recorded macros will also contain user interface commands @@ -4569,7 +4573,7 @@ You can also use the form: John Doe <john@doe.com> Recorded macros will also contain user interface commands as comments - 錄製的巨集還將包含使用者界面指令作為註釋 + Recorded macros will also contain user interface commands as comments @@ -4594,7 +4598,7 @@ You can also use the form: John Doe <john@doe.com> Log all commands issued by menus to file: - 記錄所有功能表所發出的指令檔: + 記錄所有功能表所發出的指令檔: @@ -4614,7 +4618,7 @@ You can also use the form: John Doe <john@doe.com> How many macros should be listed in recent macros list - 最近使用的巨集列表中應該列出多少個巨集 + How many macros should be listed in recent macros list @@ -4629,12 +4633,12 @@ You can also use the form: John Doe <john@doe.com> Keyboard Modifiers - 鍵盤修改 + Keyboard Modifiers Keyboard modifiers, default = Ctrl+Shift+ - 鍵盤修改,預設 = Ctrl+Shift+ + Keyboard modifiers, default = Ctrl+Shift+ @@ -4648,27 +4652,27 @@ You can also use the form: John Doe <john@doe.com> Navigation cube - 導覽立方體 + Navigation cube Steps by turn - 依旋轉步驟 + Steps by turn Number of steps by turn when using arrows (default = 8 : step angle = 360/8 = 45 deg) - 使用箭頭時的轉動值(預設值 = 8:步距角 = 360/8 = 45 度) + Number of steps by turn when using arrows (default = 8 : step angle = 360/8 = 45 deg) Corner - 坐標系統位置 + Corner Corner where navigation cube is shown - 導覽立方體的放置位置 + Corner where navigation cube is shown @@ -4693,22 +4697,22 @@ You can also use the form: John Doe <john@doe.com> Rotates to nearest possible state when clicking a cube face - 點擊立方體面時旋轉到最近的可能狀態 + Rotates to nearest possible state when clicking a cube face Rotate to nearest - 旋轉到最近位置 + Rotate to nearest Font name: - 字體名稱: + Font name: Font name of the navigation cube - 導覽立方體字體名稱 + Font name of the navigation cube @@ -4718,12 +4722,12 @@ You can also use the form: John Doe <john@doe.com> Cube size - 導覽立方體大小 + Cube size Size of the navigation cube - 導覽立方體尺寸 + Size of the navigation cube @@ -4744,8 +4748,8 @@ You can also use the form: John Doe <john@doe.com> List the mouse button configs for each chosen navigation setting. Select a set and then press the button to view said configurations. - 列出每個所選導航設定的滑鼠遊標按鈕設定. -選擇一組然後按下按鈕檢視所述設定. + List the mouse button configs for each chosen navigation setting. +Select a set and then press the button to view said configurations. @@ -4755,7 +4759,7 @@ Select a set and then press the button to view said configurations. Navigation settings set - 導覽設定集 + Navigation settings set @@ -4768,10 +4772,10 @@ Select a set and then press the button to view said configurations. Trackball: moving the mouse horizontally will rotate the part around the y-axis Turntable: the part will be rotated around the z-axis (with constrained axes). Free Turntable: the part will be rotated around the z-axis. - 旋轉軌跡樣式. -軌跡球: 水平移動滑鼠會使零件圍繞y軸旋轉. -轉盤: 零件將圍繞 z 軸(具有約束軸)旋轉. -自由轉盤: 零件將圍繞 z 軸旋轉. + Rotation orbit style. +Trackball: moving the mouse horizontally will rotate the part around the y-axis +Turntable: the part will be rotated around the z-axis (with constrained axes). +Free Turntable: the part will be rotated around the z-axis. @@ -4786,54 +4790,54 @@ Free Turntable: the part will be rotated around the z-axis. Free Turntable - 自由轉盤 + Free Turntable Rotation mode - 旋轉模式 + Rotation mode Rotations in 3D will use current cursor position as center for rotation - 3D 旋轉將使用目前游標位置作為旋轉中心 + Rotations in 3D will use current cursor position as center for rotation Window center - 視窗中心 + Window center Drag at cursor - 在游標處拖動 + Drag at cursor Object center - 物體中心 + Object center Default camera orientation - 預設相機視野方向 + Default camera orientation Default camera orientation when creating a new document or selecting the home view - 建立新文件或選擇主視景時的預設相機視野方向 + Default camera orientation when creating a new document or selecting the home view Camera zoom - 相機視角縮放 + Camera zoom Sets camera zoom for new documents. The value is the diameter of the sphere to fit on the screen. - 為新文件設定相機縮放. -該值是適合螢幕的球體的直徑. + Sets camera zoom for new documents. +The value is the diameter of the sphere to fit on the screen. @@ -4843,7 +4847,7 @@ The value is the diameter of the sphere to fit on the screen. Enable animated rotations - 啟用旋轉動畫 + Enable animated rotations @@ -4853,7 +4857,7 @@ The value is the diameter of the sphere to fit on the screen. Zoom operations will be performed at position of mouse pointer - 縮放操作將在游標處的位置進行 + Zoom operations will be performed at position of mouse pointer @@ -4863,19 +4867,19 @@ The value is the diameter of the sphere to fit on the screen. Zoom step - 放大步驟 + 放大步驟 How much will be zoomed. Zoom step of '1' means a factor of 7.5 for every zoom step. - 將縮放多少. -縮放步長'1'表示每個縮放步長為 7.5 倍. + How much will be zoomed. +Zoom step of '1' means a factor of 7.5 for every zoom step. Direction of zoom operations will be inverted - 縮放操作的方向將反轉 + Direction of zoom operations will be inverted @@ -4887,14 +4891,14 @@ Zoom step of '1' means a factor of 7.5 for every zoom step. Prevents view tilting when pinch-zooming. Affects only gesture navigation style. Mouse tilting is not disabled by this setting. - 防止縮放時視景傾斜. -僅影響手勢導航樣式. -此設定未禁用滑鼠游標傾斜. + Prevents view tilting when pinch-zooming. +Affects only gesture navigation style. +Mouse tilting is not disabled by this setting. Disable touchscreen tilt gesture - 禁用觸控螢幕傾斜手勢 + Disable touchscreen tilt gesture @@ -4919,7 +4923,7 @@ Mouse tilting is not disabled by this setting. Front - 正視圖 + 前視圖 @@ -4973,17 +4977,17 @@ horizontal space in Python console The cursor shape will be a block - 文字游標外型將會是區塊 + The cursor shape will be a block Enable block cursor - 啟用區塊遊標 + Enable block cursor Saves Python history across sessions - 橫跨作業階段儲存 Python 歷史記錄 + Saves Python history across sessions @@ -5001,15 +5005,15 @@ horizontal space in Python console Pick radius (px): - 選取半徑 (px): + 選取半徑 (px): Area for picking elements in 3D view. Larger value eases to pick things, but can make small features impossible to select. - 在 3D 視景中擷取元素的區域. -較大的值便於選擇物體,但會使小特徵不易選擇. + Area for picking elements in 3D view. +Larger value eases to pick things, but can make small features impossible to select. @@ -5073,7 +5077,7 @@ Larger value eases to pick things, but can make small features impossible to sel Background color for the model view - 模型視景的背景顏色 + Background color for the model view @@ -5084,7 +5088,7 @@ Larger value eases to pick things, but can make small features impossible to sel Background will have selected color - 背景將具有選定的顏色 + Background will have selected color @@ -5095,55 +5099,55 @@ Larger value eases to pick things, but can make small features impossible to sel Background will have selected color gradient - 背景將具有選定的漸層顏色 + Background will have selected color gradient Linear gradient - 線性漸層 + Linear gradient Radial gradient - 輻射漸層 + Radial gradient Top: - 上: + Top: Middle: - 中: + Middle: Switches the colors of the gradient - 切換漸變的顏色 + Switches the colors of the gradient Switch - 轉變切換 + 切換 Color gradient will get selected color as middle color - 漸層顏色會將選定的顏色作為中間色 + Color gradient will get selected color as middle color Middle color - 中間顏色 + 中間色 Bottom: - 下: + Bottom: @@ -5163,7 +5167,7 @@ Larger value eases to pick things, but can make small features impossible to sel Active container - 啟用容器 + Active container @@ -5203,7 +5207,7 @@ Larger value eases to pick things, but can make small features impossible to sel Input the source value and unit - 輸入來源數值和單位 + Input the source value and unit @@ -5213,7 +5217,7 @@ Larger value eases to pick things, but can make small features impossible to sel Input here the unit for the result - 在此輸入結果的單位 + Input here the unit for the result @@ -5223,61 +5227,61 @@ Larger value eases to pick things, but can make small features impossible to sel Result - 結果 + Result List of last used calculations. To add a calculation press Return in the value input field - 最後使用的計算列表. -要增加計算,請在值輸入欄位中按下 Return 鍵 + List of last used calculations. +To add a calculation press Return in the value input field Quantity - 數量 + Quantity Quantity: - 數量: + 數量: Unit system: - 單位系統: + Unit system: Unit system to be used for the Quantity The preference system is the one set in the general preferences. - 用於數量的單位系統 -偏好系統是通用偏好其中設定的一個. + Unit system to be used for the Quantity +The preference system is the one set in the general preferences. Decimals: - 小數位數: + Decimals: Decimals for the Quantity - 數量的小數位數 + Decimals for the Quantity Unit category: - 單位類別: + Unit category: Unit category for the Quantity - 數量的單位類別 + Unit category for the Quantity Copy the result into the clipboard - 複製結果到剪貼簿 + Copy the result into the clipboard @@ -5295,12 +5299,12 @@ The preference system is the one set in the general preferences. unknown unit: - 未知單位: + unknown unit: unit mismatch - 單位不符合 + unit mismatch @@ -5308,7 +5312,7 @@ The preference system is the one set in the general preferences. Placement - 放置位置 + 佈置 @@ -5323,14 +5327,14 @@ The preference system is the one set in the general preferences. Press 'Start Recovery' to start the recovery process of the document listed below. The 'Status' column shows whether the document could be recovered. - 按'開始恢復'以開始恢復下面列出的文件. + Press 'Start Recovery' to start the recovery process of the document listed below. -'狀態'列中顯示文件是否可以恢復. +The 'Status' column shows whether the document could be recovered. Status of recovered documents: - 已修復檔案狀態: + 已修復檔案狀態: @@ -5393,27 +5397,27 @@ The 'Status' column shows whether the document could be recovered. Are you sure you want to delete the selected transient directories? - 您確定要刪除已選之暫存資料夾? + 您確定要刪除已選之暫存資料夾? When deleting the selected transient directory you won't be able to recover any files afterwards. - 當刪除已選之暫存資料夾後您將無法進行任何檔案之復原. + 當刪除已選之暫存資料夾後您將無法進行任何檔案之復原。 Are you sure you want to delete all transient directories? - 您確定要移除所有暫存資料夾嗎? + 您確定要移除所有暫存資料夾嗎? When deleting all transient directories you won't be able to recover any files afterwards. - 刪除所有臨時目錄後,您將無法恢復任何文件. + When deleting all transient directories you won't be able to recover any files afterwards. Transient directories deleted. - 暫存資料夾已刪除. + 暫存資料夾已刪除 @@ -5456,7 +5460,7 @@ The 'Status' column shows whether the document could be recovered. minutes - + 分鐘 @@ -5466,7 +5470,7 @@ The 'Status' column shows whether the document could be recovered. %1 of %2 (%3/sec) %4 - %2 (%3/秒) %4的%1 + %2 (%3/sec) %4的%1 @@ -5555,7 +5559,7 @@ The 'Status' column shows whether the document could be recovered. Removing a folder only takes effect after an application restart. - 僅於應用程式重新啟動後才移除資料夾. + 僅於應用程式重新啟動後才移除資料夾 @@ -5596,7 +5600,7 @@ The 'Status' column shows whether the document could be recovered. Configuration - 參數設定 + 配置 @@ -5611,12 +5615,12 @@ The 'Status' column shows whether the document could be recovered. Rotation: - 旋轉: + 旋轉: Zooming: - 縮放: + 縮放: @@ -5645,7 +5649,7 @@ The 'Status' column shows whether the document could be recovered. Rename group - 重新命名群組 + 重命名群組 @@ -5662,12 +5666,12 @@ The 'Status' column shows whether the document could be recovered. Collapse - 收合 + 瓦解 Do you really want to remove this parameter group? - 您真的要刪除此參數組嗎? + Do you really want to remove this parameter group? @@ -5677,7 +5681,7 @@ The 'Status' column shows whether the document could be recovered. The sub-group '%1' already exists. - 子群組'%1'已經存在. + 子群組'%1'已經存在。 @@ -5697,7 +5701,7 @@ The 'Status' column shows whether the document could be recovered. Reading from '%1' failed. - 讀取'%1'失敗. + 讀取'%1'失敗。 @@ -5715,7 +5719,7 @@ The 'Status' column shows whether the document could be recovered. Rename key - 重新命名鍵 + 重命名鍵 @@ -5771,12 +5775,12 @@ The 'Status' column shows whether the document could be recovered. Placement - 放置位置 + 佈置 Translation: - 轉移: + 轉移: @@ -5799,37 +5803,37 @@ The 'Status' column shows whether the document could be recovered. Axial: - 軸: + Axial: Shift click for opposite direction - 同時按下Shift鍵點擊使用相反方向 + Shift click for opposite direction Apply axial - 套用軸 + Apply axial Center: - 中心: + 中心: Use center of mass - 使用質量中心 + Use center of mass Selected points - 已選取的點 + Selected points Rotation: - 旋轉: + 旋轉: @@ -5839,52 +5843,52 @@ The 'Status' column shows whether the document could be recovered. Euler angles (zy'x'') - 歐拉角度 (zy'x'') + Euler angles (zy'x'') Axis: - 軸: + 軸: Angle: - 角度: + 角度: Yaw (around z-axis): - 偏離 (圍繞 z-軸): + Yaw (around z-axis): Yaw (around z-axis) - 偏離 (圍繞 z-軸) + Yaw (around z-axis) Pitch (around y-axis): - 間距 (圍繞 y-軸): + Pitch (around y-axis): Pitch (around y-axis) - 間距 (圍繞 y-軸) + Pitch (around y-axis) Roll (around x-axis): - 翻滾 (圍繞 x-軸): + Roll (around x-axis): Roll (around the x-axis) - 翻滾 (圍繞 x-軸) + Roll (around the x-axis) Apply incremental changes - 套用增量更改 + Apply incremental changes @@ -5904,12 +5908,12 @@ The 'Status' column shows whether the document could be recovered. Apply - 套用 + 應用 Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard. - 請在點擊此按鈕之前選擇 1、2 或 3 個點. 點可能位於頂點、面或邊上. 如果在面或邊上,則使用的點將是沿面或邊的滑鼠游標位置處的點. 如果選擇 1 個點,它將用作旋轉中心. 如果選擇了 2 個點,它們之間的中點將成為旋轉中心,如果需要,將建立一個新的自定義軸. 如果選擇了 3 個點,則第一個點成為旋轉中心並位於垂直於由 3 個點定義的平面的矢量上. 報告視圖中提供了一些距離和角度信息,這在對齊對象時很有用. 為了您的方便,當使用 Shift + 點擊時,適當的距離或角度被複製到剪貼板. + Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard. @@ -5919,7 +5923,7 @@ The 'Status' column shows whether the document could be recovered. There are input fields with incorrect input, please ensure valid placement values! - 於輸入區域有錯誤的內容,請確認該區域合理之輸入內容! + 於輸入區域有錯誤的內容,請確認該區域合理之輸入內容 @@ -5940,37 +5944,37 @@ The 'Status' column shows whether the document could be recovered. Attach to remote debugger - 附加到遠端偵錯程式 + Attach to remote debugger winpdb - winpdb + winpdb Password: - 密碼: + 密碼: VS Code - VS Code + VS Code Address: - 位址: + Address: Port: - 埠: + Port: Redirect output - 重新指定輸出 + Redirect output @@ -5978,7 +5982,7 @@ The 'Status' column shows whether the document could be recovered. Dialog - 對話框 + 對話方塊 @@ -6014,12 +6018,12 @@ The 'Status' column shows whether the document could be recovered. Texture - 質感 + 材質 Texture mapping - 質感映射 + 材質貼圖 @@ -6044,7 +6048,7 @@ The 'Status' column shows whether the document could be recovered. The specified file is not a valid image file. - 指定的檔案不是有效的影像檔. + 指定的檔案不是有效的影像檔。 @@ -6054,7 +6058,7 @@ The 'Status' column shows whether the document could be recovered. No active 3d view found. - 找不到作業中的 3d 視圖. + 找不到作業中的 3d 視圖。 @@ -6092,12 +6096,12 @@ The 'Status' column shows whether the document could be recovered. Show dependencies - 顯示依賴關係 + Show dependencies Depending on - 依賴於 + Depending on @@ -6114,7 +6118,7 @@ The 'Status' column shows whether the document could be recovered. Depended by - 依賴於 + Depended by @@ -6129,7 +6133,7 @@ The 'Status' column shows whether the document could be recovered. &Use Original Selections - 使用原始選擇(&U) + &Use Original Selections @@ -6143,7 +6147,7 @@ originally selected prior to opening this dialog Dialog - 對話框 + 對話方塊 @@ -6199,25 +6203,25 @@ originally selected prior to opening this dialog Normal messages - 正常訊息 + 正常訊息: Log messages - 日誌記錄訊息 + 日誌訊息 Warnings - 警告 + Warnings Errors - 錯誤 + Errors @@ -6228,7 +6232,7 @@ originally selected prior to opening this dialog Show Report view on - 顯示報表檢視於 + Show Report view on @@ -6238,7 +6242,7 @@ originally selected prior to opening this dialog Redirect Python errors - 重新指向Python的錯誤 + 重定向Python的錯誤 @@ -6286,7 +6290,7 @@ originally selected prior to opening this dialog Selection View - 選擇視景 + Selection View @@ -6296,7 +6300,7 @@ originally selected prior to opening this dialog Searches object labels - 搜尋物體標籤 + 搜尋物件標籤 @@ -6306,12 +6310,12 @@ originally selected prior to opening this dialog The number of selected items - 所選項目的數量 + The number of selected items Picked object list - 擷取物體列表 + Picked object list @@ -6321,7 +6325,7 @@ originally selected prior to opening this dialog Selects only this object - 僅選擇此物體 + 僅選擇此物件 @@ -6331,7 +6335,7 @@ originally selected prior to opening this dialog Deselects this object - 取消選擇此物體 + 取消選擇此物件 @@ -6341,7 +6345,7 @@ originally selected prior to opening this dialog Selects and fits this object in the 3D window - 於3D視窗選取並聚焦於此物體 + 於3D視窗選取並聚焦於此物件 @@ -6356,12 +6360,12 @@ originally selected prior to opening this dialog Mark to recompute - 標記為重新計算 + 執行重新運算 Mark this object to be recomputed - 對此物體標記為重新計算 + 對此物件執行重新運算 @@ -6371,17 +6375,17 @@ originally selected prior to opening this dialog Reveals this object and its subelements in the python console. - 將此物體及其子元素於python主控台中顯示. + 將此物件及其子元素於python主控台中顯示 Duplicate subshape - 複製子形狀 + Duplicate subshape Creates a standalone copy of this subshape in the document - 在文件中建立此子形狀的獨立複製體 + Creates a standalone copy of this subshape in the document @@ -6389,7 +6393,7 @@ originally selected prior to opening this dialog Application - 文件內容 + 應用程式 @@ -6411,7 +6415,7 @@ originally selected prior to opening this dialog This has been modified outside of the source editor. Do you want to reload it? %1. -這已在源碼編輯器之外被修改過. 您想重新載入它嗎? +這已在源碼編輯器之外被修改過。您想重新載入它嗎? @@ -6422,12 +6426,12 @@ This has been modified outside of the source editor. Do you want to reload it? The document has been modified. Do you want to save your changes? - 該文件已被修改. 您想儲存您的變更嗎? + 該文件已被修改。您想儲存您的變更嗎? FreeCAD macro - FreeCAD 巨集 + FreeCAD巨集 @@ -6447,7 +6451,7 @@ Do you want to save your changes? - Editor - - 編輯器 + -編輯器 @@ -6457,12 +6461,12 @@ Do you want to save your changes? %1 chars added - 增加 %1 字元 + 添加 %1 字元 Formatted - 已格式化 + 格式化了的 @@ -6470,7 +6474,7 @@ Do you want to save your changes? Exact match - 完全符合 + Exact match @@ -6478,7 +6482,7 @@ Do you want to save your changes? Exact match - 完全符合 + Exact match @@ -6555,22 +6559,22 @@ Do you want to save your changes? Tap OR click left mouse button. - 點擊或按下滑鼠標右鍵. + Tap OR click left mouse button. Drag screen with two fingers OR press right mouse button. - 用兩根手指拖動螢幕或按下滑鼠右鍵. + Drag screen with two fingers OR press right mouse button. Drag screen with one finger OR press left mouse button. In Sketcher && other edit modes, hold Alt in addition. - 用一根手指拖動螢幕或按下滑鼠左鍵. 在 草圖 && 其他編輯模式下,另外按住 Alt. + Drag screen with one finger OR press left mouse button. In Sketcher && other edit modes, hold Alt in addition. Pinch (place two fingers on the screen && drag them apart from || towards each other) OR scroll middle mouse button OR PgUp/PgDown on keyboard. - 捏合(將兩根手指放在螢幕上 && 將它們從 || 向彼此拉開)或滾動滑鼠中鍵或在鍵盤上按下 PgUp/PgDown. + Pinch (place two fingers on the screen && drag them apart from || towards each other) OR scroll middle mouse button OR PgUp/PgDown on keyboard. @@ -6578,37 +6582,37 @@ Do you want to save your changes? Graphviz not found - 未發現可視圖形 + 未發現Graphviz Graphviz couldn't be found on your system. - 在您的系統上找不到可視圖形. + Graphviz couldn't be found on your system. Read more about it here. - 在這裡閱讀更多相關訊息. + Read more about it here. Do you want to specify its installation path if it's already installed? - 如果已安裝,是否要指定其安裝路徑? + Do you want to specify its installation path if it's already installed? Graphviz installation path - 可視圖形安裝路徑 + Graphviz安裝路徑 Graphviz failed - 可視圖形錯誤 + Graphviz錯誤 Graphviz failed to create an image file - 可視圖形建立影像失敗 + Graphviz建立影像失敗 @@ -6676,12 +6680,12 @@ Do you want to save your changes? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 Scroll middle mouse button - 滑鼠滾動中鍵 + 滾動滑鼠中鍵 @@ -6804,7 +6808,7 @@ Do you want to save your changes? Gui::MainWindow - + Dimension 標註 @@ -6816,17 +6820,17 @@ Do you want to save your changes? Help addon needed! - 需要求助說明附加元件! + Help addon needed! The Help system of %1 is now handled by the "Help" addon. It can easily be installed via the Addons Manager - %1 的求助說明系統現在由'求助說明'附加元件處理. 它可以通過「附加元件管理員」 輕鬆安裝 + The Help system of %1 is now handled by the "Help" addon. It can easily be installed via the Addons Manager Open Addon Manager - 開啟附加元件管理員 + Open Addon Manager @@ -6834,36 +6838,36 @@ Do you want to save your changes? 全部關閉 - + Toggles this toolbar 切換此工具列 - + Toggles this dockable window 切換此可停靠的視窗 - - + + Unsaved document 未儲存文件 - + The exported object contains external link. Please save the documentat least once before exporting. 匯出的物件包含外部連結。請在匯出前至少儲存一次文件。 - + To link to external objects, the document must be saved at least once. Do you want to save the document now? - 要連結到外部物體,文件必須至少儲存一次. -您現在要儲存文件嗎? + To link to external objects, the document must be saved at least once. +Do you want to save the document now? @@ -6880,7 +6884,7 @@ Do you want to save the document now? The alignment is already in progress. - 正在對齊中. + 正在對齊中 @@ -6916,20 +6920,20 @@ Do you want to save the document now? Too few points picked in the left view. At least %1 points are needed. - 左側視圖選擇點過少,至少要%1點. + 左側視圖選擇點過少,至少要%1點 Too few points picked in the right view. At least %1 points are needed. - 右側視圖選擇點過少,至少要%1點. + 右側視圖選擇點過少,至少要%1點 Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. - 左右視圖所選點數不同,左側視圖選擇%1點,右側視圖選擇%2點. + 左右視圖所選點數不同,左側視圖選擇%1點,右側視圖選擇%2點 @@ -6945,7 +6949,7 @@ How do you want to proceed? Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. - 左右視圖所選點不同,左側視圖選擇%1點,右側視圖選擇%2點. + 左右視圖所選點數不同 @@ -6993,22 +6997,22 @@ How do you want to proceed? Tap OR click left mouse button. - 點擊或按下滑鼠標右鍵. + Tap OR click left mouse button. Drag screen with two fingers OR press ALT + middle mouse button. - 用兩根手指拖動螢幕或按 ALT + 滑鼠中鍵. + Drag screen with two fingers OR press ALT + middle mouse button. Drag screen with one finger OR press ALT + left mouse button. In Sketcher and other edit modes, hold Alt in addition. - 用一根手指拖動螢幕或按 ALT + 滑鼠左鍵. 在 草圖 和其他編輯模式下,另外按住 Alt. + Drag screen with one finger OR press ALT + left mouse button. In Sketcher and other edit modes, hold Alt in addition. Pinch (place two fingers on the screen and drag them apart from or towards each other) OR scroll middle mouse button OR press ALT + right mouse button OR PgUp/PgDown on keyboard. - 捏合(將兩根手指放在螢幕上並將它們相互拉開或拉近)或滾動滑鼠中鍵或按 ALT + 滑鼠右鍵或鍵盤上的 PgUp/PgDown. + Pinch (place two fingers on the screen and drag them apart from or towards each other) OR scroll middle mouse button OR press ALT + right mouse button OR PgUp/PgDown on keyboard. @@ -7016,7 +7020,7 @@ How do you want to proceed? Press modifier keys - 按修改鍵 + Press modifier keys @@ -7032,7 +7036,7 @@ How do you want to proceed? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -7055,22 +7059,22 @@ How do you want to proceed? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 Press right mouse button and move mouse - 按下滑鼠右鍵並移動滑鼠 + Press right mouse button and move mouse Press left mouse button and move mouse - 按下滑鼠左鍵並移動滑鼠 + Press left mouse button and move mouse Press middle mouse button or SHIFT and right mouse button - 按下滑鼠中鍵或按下SHIFT鍵以及滑鼠右鍵 + Press middle mouse button or SHIFT and right mouse button @@ -7094,19 +7098,19 @@ How do you want to proceed? Gui::ProgressBar - + Remaining: %1 - 剩餘: %1 + 剩餘: %1 - + Aborting 中止 - + Do you really want to abort the operation? - 您確實要中止操作嗎? + 您確實要中止操作嗎? @@ -7114,38 +7118,38 @@ How do you want to proceed? Remaining: %1 - 剩餘: %1 + 剩餘: %1 - + Aborting 中止 - + Do you really want to abort the operation? - 您確實要中止操作嗎? + 您確實要中止操作嗎? Gui::PropertyEditor::LinkLabel - + Change the linked object - 更改連結物體 + Change the linked object Gui::PropertyEditor::LinkSelection - + Error 錯誤 - + Object not found - 未發現物體 + 未發現物件 @@ -7158,17 +7162,17 @@ How do you want to proceed? property - 屬性 + property Auto expand - 自動展開 + Auto expand Show all - 顯示全部 + Show all @@ -7184,17 +7188,17 @@ How do you want to proceed? Rename property group - 重新命名屬性群組 + Rename property group Remove property - 刪除屬性 + Remove property Group name: - 群組名稱: + Group name: @@ -7250,22 +7254,22 @@ Do you want to exit without saving your data? Unhandled PyCXX exception. - 未處理 PyCXX例外. + 未處理 PyCXX例外。 Unhandled FreeCAD exception. - 未處理FreeCAD例外. + 未處理FreeCAD例外。 Unhandled std C++ exception. - 未處理的標準 C++ 異常. + 未處理的標準 c + + 異常。 Unhandled unknown C++ exception. - 未處理未知的 C++ 異常. + 未處理未知的C++例外。 @@ -7295,12 +7299,12 @@ Do you want to exit without saving your data? Saves Python history across %1 sessions - 橫跨 %1 個作業階段保存 Python 歷史記錄 + Saves Python history across %1 sessions &Paste - 貼上(&P) + &貼上 @@ -7348,7 +7352,7 @@ Do you want to exit without saving your data? Comment - 註釋 + 評論 @@ -7359,42 +7363,42 @@ Do you want to exit without saving your data? Gui::RecentFilesAction - + Open file %1 打開檔案 %1 - + File not found 找不到檔案 - + The file '%1' cannot be opened. - 無法打開檔案'%1'. + 無法打開'%1'檔案。 Gui::RecentMacrosAction - + none - + Run macro %1 (Shift+click to edit) keyboard shortcut: %2 執行巨集 %1 (Shift+click 來編輯) 快捷鍵: %2 - + File not found 找不到檔案 - + The file '%1' cannot be opened. - 無法打開檔案'%1'. + 無法打開'%1'檔案。 @@ -7402,7 +7406,7 @@ Do you want to exit without saving your data? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -7417,7 +7421,7 @@ Do you want to exit without saving your data? Scroll middle mouse button - 滑鼠滾動中鍵 + 滾動滑鼠中鍵 @@ -7425,22 +7429,22 @@ Do you want to exit without saving your data? Previous - 前一個 + 上一個 Next - 下一個 + Next Case sensitive - 區分大小寫 + Case sensitive Whole words - 整句文字 + Whole words @@ -7498,7 +7502,7 @@ Do you want to exit without saving your data? The directory '%1' does not exist. Do you want to specify an existing directory? - 目錄 '%1' 不存在. 您想指定現有的目錄嗎? + 目錄 '%1' 不存在。您想指定現有的目錄嗎? @@ -7510,7 +7514,7 @@ Do you want to specify an existing directory? You don't have write permission to '%1' Do you want to specify another directory? - 您沒有寫入 '%1' 的權限,您要指定其他目錄嗎? + 您沒有寫入 '%1' 的權限,您要指定其他目錄嗎? @@ -7558,12 +7562,12 @@ Do you want to specify another directory? Translation Increment: - 轉移增量: + Translation Increment: Rotation Increment: - 旋轉增量: + Rotation Increment: @@ -7571,7 +7575,7 @@ Do you want to specify another directory? Set element color - 設定元素顏色 + Set element color @@ -7596,22 +7600,22 @@ Do you want to specify another directory? Remove all - 全部移除 + 移除全部 Box select - 框選 + 拉框選擇 Recompute after commit - 提交後重新計算 + 交付後重新計算 On-top when selected - 選中時在最上層 + On-top when selected @@ -7630,22 +7634,22 @@ Do you want to specify another directory? Plot mode: - 出圖模式: + 出圖模式: Point size: - 點大小: + 點大小: Line width: - 線寬: + 線寬: Transparency: - 透明度: + 透明度: @@ -7674,7 +7678,7 @@ Do you want to specify another directory? edit selection - 編輯所選物體 + 編輯所選物件 @@ -7687,12 +7691,12 @@ Do you want to specify another directory? The text of the underlying object has changed. Discard changes and reload the text from the object? - 基礎物體的文字已更改. 放棄更改並重新載入物體中的文字? + The text of the underlying object has changed. Discard changes and reload the text from the object? Yes, reload. - 是,重新載入. + 是,重新載入 @@ -7702,12 +7706,12 @@ Do you want to specify another directory? Do you want to save your changes before closing? - 是否在關閉前儲存變更? + 是否在關閉前儲存變更? If you don't save, your changes will be lost. - 若不儲存將會失去所有修改. + 若不儲存將會失去所有修改 @@ -7721,7 +7725,7 @@ Do you want to specify another directory? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -7731,12 +7735,12 @@ Do you want to specify another directory? Press right mouse button - 按下滑鼠右鍵 + Press right mouse button Scroll middle mouse button - 滑鼠滾動中鍵 + 滾動滑鼠中鍵 @@ -7744,7 +7748,7 @@ Do you want to specify another directory? Press left mouse button - 按下滑鼠左鍵 + 按滑鼠左鍵 @@ -7772,32 +7776,32 @@ Do you want to specify another directory? Arabic - 阿拉伯 + Arabic Basque - 巴斯克 + Basque Belarusian - 白俄羅斯語 + Belarusian Bulgarian - 保加利亞語 + Bulgarian Catalan - 加泰羅尼亞語 + Catalan Chinese Simplified - 简体中文 + 簡體中文 @@ -7827,7 +7831,7 @@ Do you want to specify another directory? Filipino - 菲律賓 + Filipino @@ -7842,7 +7846,7 @@ Do you want to specify another directory? Galician - 加利西亞語 + Galician @@ -7862,7 +7866,7 @@ Do you want to specify another directory? Indonesian - 印度尼西亞 + Indonesian @@ -7877,17 +7881,17 @@ Do you want to specify another directory? Kabyle - 卡比勒 + Kabyle Korean - 韓語 + Korean Lithuanian - 立陶宛語 + Lithuanian @@ -7902,7 +7906,7 @@ Do you want to specify another directory? Portuguese, Brazilian - 葡萄牙文, 巴西 + Portuguese, Brazilian @@ -7927,7 +7931,7 @@ Do you want to specify another directory? Serbian, Latin - 塞爾維亞, 拉丁語系 + Serbian, Latin @@ -7947,7 +7951,7 @@ Do you want to specify another directory? Spanish, Argentina - 西班牙文, 阿根廷 + Spanish, Argentina @@ -7967,17 +7971,17 @@ Do you want to specify another directory? Valencian - 巴倫西亞 + Valencian Vietnamese - 越南語 + Vietnamese Georgian - 格魯吉亞語 + Georgian @@ -8001,7 +8005,7 @@ Do you want to specify another directory? Search... - 搜尋... + Search... @@ -8087,7 +8091,7 @@ Do you want to specify another directory? Rename object - 重新命名物體 + 重新命名物件 @@ -8097,7 +8101,7 @@ Do you want to specify another directory? Finish editing object - 完成編輯物體 + 完成編輯物件 @@ -8112,37 +8116,37 @@ Do you want to specify another directory? Close document - 關閉文件 + Close document Close the document - 關閉此文件 + Close the document Reload document - 重新載入文件 + Reload document Reload a partially loaded document - 重新載入部分載入的文件 + Reload a partially loaded document Skip recomputes - 略過重新計算 + 略過重新運算 Enable or disable recomputations of document - 啟用或停用檔案重新計算之功能 + 啟用或停用檔案重新運算之功能 Allow partial recomputes - 允許部分重新計算 + Allow partial recomputes @@ -8152,12 +8156,12 @@ Do you want to specify another directory? Mark to recompute - 標記為重新計算 + 執行重新運算 Mark this object to be recomputed - 對此物體標記為重新計算 + 對此物件執行重新運算 @@ -8172,12 +8176,12 @@ Do you want to specify another directory? (but must be executed) - (但必須執行) + (but must be executed) %1, Internal name: %2 - %1, 內部名稱: %2 + %1, Internal name: %2 @@ -8185,12 +8189,12 @@ Do you want to specify another directory? Vectors - 向量 + Vectors Table - 表格 + Table @@ -8219,8 +8223,7 @@ Do you want to specify another directory? Gui::WorkbenchGroup - - + Select the '%1' workbench 選擇 '%1' 工作台 @@ -8260,7 +8263,7 @@ Do you want to specify another directory? About %1 - 關於 %1 + 關於%1 @@ -8414,7 +8417,7 @@ Do you want to specify another directory? DAG View - DAG 視景 + DAG視圖 @@ -8461,7 +8464,7 @@ Do you want to specify another directory? Python - Python + Python @@ -8474,22 +8477,22 @@ Do you want to specify another directory? Cannot open unknown filetype: %1 - 無法開啟未知文件類型: %1 + 無法開啟未知文件類型:%1 Export failed - 匯出失敗 + Export failed Cannot save to unknown filetype: %1 - 無法儲存為未知的檔案類型: %1 + 無法儲存為未知的檔案類型:%1 Workbench failure - 工作台異常 + 工作台故障 @@ -8520,7 +8523,7 @@ Do you want to specify another directory? There were serious errors while loading the file. Some data might have been modified or not recovered at all. Saving the project will most likely result in loss of data. - 載入檔案時出現嚴重錯誤. 某些資料可能已被修改或根本未恢復. 儲存專案很可能會導致資料丟失. + There were serious errors while loading the file. Some data might have been modified or not recovered at all. Saving the project will most likely result in loss of data. @@ -8557,27 +8560,27 @@ Do you want to specify another directory? Delete failed - 刪除失敗 + Delete failed Dependency error - 依賴錯誤 + Dependency error Copy selected - 複製已選取的 + Copy selected Copy active document - 複製啟用文件 + 複製作業中文件 Copy all documents - 複製所有文件 + Copy all documents @@ -8605,12 +8608,12 @@ Please check the Report View for more details. Cannot load workbench - 無法載入工作台 + 無法載入工作平台 A general error occurred while loading the workbench - 載入工作台出現一般錯誤 + 載入工作平台出現一般錯誤 @@ -8682,7 +8685,7 @@ Be aware the point where you click matters. Importing the restored views would clear the already stored views. Do you want to continue? - 導入恢復的視圖將清除已存儲的視圖. 您要繼續嗎? + 導入恢復的視圖將清除已存儲的視圖。您要繼續嗎? @@ -8692,7 +8695,7 @@ Do you want to continue? Cannot open file '%1'. - 無法開啟檔案'%1'. + 無法開啟檔案'%1' @@ -8722,19 +8725,19 @@ Do you want to continue? Enter the name: - 輸入名稱: + 輸入名稱: New text item - 新增文字項目 + 新增文字項 Enter your text: - 輸入您的文字: + 輸入您的文字: @@ -8750,7 +8753,7 @@ Do you want to continue? Enter your number: - 輸入您的號碼: + 輸入您的號碼: @@ -8783,12 +8786,12 @@ Do you want to continue? Rename group - 重新命名群組 + 重命名群組 The group '%1' cannot be renamed. - '%1'群組無法重新命名. + '%1'群組法重新命名 @@ -8798,7 +8801,7 @@ Do you want to continue? The group '%1' already exists. - 該群組'%1'已存在. + 該群組'%1'已存在。 @@ -8867,13 +8870,13 @@ Do you want to continue? Physical path: - 實體路徑: + Physical path: Document: - 文件: + Document: @@ -8884,12 +8887,12 @@ Do you want to continue? Identical physical path - 相同的物理路徑 + Identical physical path Could not save document - 無法儲存檔案 + Could not save document @@ -8912,7 +8915,7 @@ Would you like to save the file with a different name? Save dependent files - 儲存依賴檔案 + Save dependent files @@ -8928,7 +8931,7 @@ Would you like to save the file with a different name? Save document under new filename... - 以新檔名儲存文件... + 以新檔名儲存文件 @@ -8945,7 +8948,7 @@ Would you like to save the file with a different name? Failed to save document - 儲存檔案失敗 + 儲存檔案失敗。 @@ -8955,12 +8958,12 @@ Would you like to save the file with a different name? Save a copy of the document under new filename... - 以新的檔案名稱儲存目前檔案的備份... + 以新的檔案名稱儲存目前檔案的副本 %1 document (*.FCStd) - %1 文件(*.FCStd) + %1文件(*.FCStd) @@ -8970,7 +8973,7 @@ Would you like to save the file with a different name? The document is not closable for the moment. - 目前文件無法關閉. + 目前文件無法關閉 @@ -9003,7 +9006,7 @@ Would you like to save the file with a different name? Choose 'No' to roll back in the active document only. Choose 'Abort' to abort 選擇「是」以回滾所有前置交易。 -選擇「否」僅回滾活動文件中的交易。 +選擇「否」僅回滾作業中文件中的交易。 選擇「中止」以中止操作。 @@ -9043,7 +9046,7 @@ Choose 'Abort' to abort Split - 分割 + Split @@ -9056,7 +9059,7 @@ Choose 'Abort' to abort Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - 無法打開您的流覽器. 請打開流覽器視窗,並輸入: http://localhost:%1. + 無法打開您的流覽器。請打開流覽器視窗,並在鍵入: http://localhost:%1。 @@ -9066,12 +9069,12 @@ Please open a browser window and type in: http://localhost:%1. Unable to start the server to port %1: %2. - 無法啟動伺服器埠 %1:%2. + 無法啟動伺服器埠 %1:%2。 Unable to open your system browser. - 無法打開您的系統瀏覽器. + 無法打開您的系統瀏覽器。 @@ -9086,7 +9089,7 @@ Please open a browser window and type in: http://localhost:%1. Not enough memory available to display the data. - 沒有足夠的記憶體可用來顯示資料. + 沒有足夠的記憶體可用來顯示資料。 @@ -9133,17 +9136,17 @@ Please open a browser window and type in: http://localhost:%1. If you don't save, your changes will be lost. - 若不儲存將會失去所有修改. + 若不儲存將會失去所有修改 Apply answer to all - 將回答套用到全部 + Apply answer to all %1 Document(s) not saved - %1 檔案未儲存 + %1 Document(s) not saved @@ -9168,7 +9171,7 @@ Please open a browser window and type in: http://localhost:%1. Delete group content? - 刪除群組內容? + 刪除群組內容? @@ -9176,19 +9179,19 @@ Please open a browser window and type in: http://localhost:%1. %1內尚有內容,確定要刪除嗎? - + Translation: - 轉移: + 轉移: - + Rotation: - 旋轉: + 旋轉: Toggle active part - 切換啟用中的零件 + Toggle active part @@ -9199,13 +9202,13 @@ Please open a browser window and type in: http://localhost:%1. Simple group - 簡單群組 + Simple group Group with links - 帶連結的群組 + Group with links @@ -9231,7 +9234,7 @@ Please open a browser window and type in: http://localhost:%1. Unlink failed - 取消連結失敗 + Unlink failed @@ -9241,18 +9244,18 @@ Please open a browser window and type in: http://localhost:%1. Failed to import links - 匯入連結失敗 + Failed to import links Failed to import all links - 匯入所有連結失敗 + Failed to import all links Invalid name - 無效的名稱 + Invalid name @@ -9263,7 +9266,7 @@ underscore, and must not start with a digit. The property '%1' already exists in '%2' - 屬性'%1'已存在於'%2'中 + The property '%1' already exists in '%2' @@ -9273,13 +9276,13 @@ underscore, and must not start with a digit. Failed to add property to '%1': %2 - 無法將屬性增加到 '%1': %2 + Failed to add property to '%1': %2 Drag & drop failed - 拖放失敗 + Drag & drop failed @@ -9299,7 +9302,7 @@ underscore, and must not start with a digit. Apply to all - 全部套用 + Apply to all @@ -9310,7 +9313,7 @@ option to apply only to this link. Copy on change - 更改時複製 + Copy on change @@ -9339,7 +9342,7 @@ Also auto redo the copy if the original linked object is changed. Disable copy on change - 取消更改時複製 + Disable copy on change @@ -9358,7 +9361,7 @@ the current copy will be lost. Toggle array elements - 切換矩陣元素 + Toggle array elements @@ -9402,7 +9405,7 @@ the current copy will be lost. Not allowed: - 不允許: + 不允許: @@ -9439,13 +9442,13 @@ the current copy will be lost. &About %1 - 關於 %1 (&A) + 關於 %1(&A) About %1 - 關於 %1 + 關於%1 @@ -9501,7 +9504,7 @@ the current copy will be lost. Align the selected objects - 對齊選定物體 + 對齊選定物件 @@ -9537,7 +9540,7 @@ the current copy will be lost. Cl&ose - 關閉(&O) + &關閉 @@ -9579,7 +9582,7 @@ the current copy will be lost. C&opy - 複製(&O) + 複製(&C) @@ -9613,7 +9616,7 @@ the current copy will be lost. Deletes the selected objects - 刪除所選的物體 + 刪除所選的物件 @@ -9621,13 +9624,13 @@ the current copy will be lost. View turntable... - 視景旋轉台... + 可旋轉視圖... View turntable - 視景旋轉台 + 可旋轉視圖 @@ -9641,7 +9644,7 @@ the current copy will be lost. Show the dependency graph of the objects in the active document - 顯示目前文件中物體相依圖 + 顯示作業中文件的物件相依圖 @@ -9753,7 +9756,7 @@ the current copy will be lost. Change the draw style of the objects - 更改物體的繪製樣式 + Change the draw style of the objects @@ -9761,13 +9764,13 @@ the current copy will be lost. Duplicate selection - 複製選定物體 + 複製選定物件 Put duplicates of the selected objects to the active document - 於目前文件中貼上所複製之物體 + 將所選物件的副本放置到作業中文件 @@ -9775,17 +9778,17 @@ the current copy will be lost. Toggle &Edit mode - 切換編輯模式(&E) + 切換&編輯模式 Toggles the selected object's edit mode - 切換所選的物體的編輯模式 + 切換所選的物件的編輯模式 Activates or Deactivates the selected object's edit mode - 啟用或停用所選物體的編輯模式 + Activates or Deactivates the selected object's edit mode @@ -9793,13 +9796,13 @@ the current copy will be lost. &Export... - 匯出(&E)... + 匯出(&E) Export an object in the active document - 從目前檔案中匯出物體 + 從作業中文件匯出一個物件 @@ -9809,7 +9812,7 @@ the current copy will be lost. Select the objects to export before choosing Export. - 在選擇匯出之前選擇要匯出的物體. + Select the objects to export before choosing Export. @@ -9927,7 +9930,7 @@ the current copy will be lost. FreeCAD Website - FreeCAD 網站 + FreeCAD網站 @@ -9959,7 +9962,7 @@ the current copy will be lost. Create a new group for ordering objects - 建立用於排列物體的群組 + 建立用於排列物件的群組 @@ -9987,7 +9990,7 @@ the current copy will be lost. Hide all selected objects - 隱藏所有選取的物體 + 隱藏所有選取的物件 @@ -9995,13 +9998,13 @@ the current copy will be lost. &Import... - 匯入(&I)... + 匯入(&I) Import a file in the active document - 於作業中檔案匯入檔案 + 匯入檔案至作業中文件 @@ -10019,7 +10022,7 @@ the current copy will be lost. Link actions - 連結動作 + Link actions @@ -10033,12 +10036,12 @@ the current copy will be lost. Import links - 匯入連結 + 匯入鏈結 Import selected external link(s) - 匯入選定的外部連結 + Import selected external link(s) @@ -10046,12 +10049,12 @@ the current copy will be lost. Import all links - 匯入所有連結 + 匯入所有鏈結 Import all links of the active document - 匯入啟用文件的所有連結 + 匯入作業中文件的所有連結 @@ -10059,12 +10062,12 @@ the current copy will be lost. Make link - 建立連結 + 建立鏈結 Create a link to the selected object(s) - 建立已選物體的連結 + 建立已選物件的連結 @@ -10072,7 +10075,7 @@ the current copy will be lost. Make link group - 建立連結群組 + 建立鏈結群組 @@ -10085,12 +10088,12 @@ the current copy will be lost. Make sub-link - 建立子連結 + 建立子鏈結 Create a sub-object or sub-element link - 建立子物體或子元素連結 + Create a sub-object or sub-element link @@ -10103,7 +10106,7 @@ the current copy will be lost. Replace the selected object(s) with link - 使用連結取代選取的物體 + 使用連結取代選取的物件 @@ -10111,13 +10114,13 @@ the current copy will be lost. Link navigation - 連結導航 + Link navigation Link navigation actions - 連結導航動作 + Link navigation actions @@ -10125,12 +10128,12 @@ the current copy will be lost. Select all links - 選取所有連結 + Select all links Select all links to the current selected object - 選擇目前選定物體的所有連結 + Select all links to the current selected object @@ -10143,7 +10146,7 @@ the current copy will be lost. Select the linked object and switch to its owner document - 選擇連結物體並切換到其擁有的文件 + Select the linked object and switch to its owner document @@ -10151,12 +10154,12 @@ the current copy will be lost. Go to the deepest linked object - 轉到最底層的連結物體 + Go to the deepest linked object Select the deepest linked object and switch to its owner document - 選擇最底層的連結物體並切換到其擁有的文件 + Select the deepest linked object and switch to its owner document @@ -10164,12 +10167,12 @@ the current copy will be lost. Unlink - 取消連結 + Unlink Strip on level of link - 在連結層級中脫離 + Strip on level of link @@ -10177,13 +10180,13 @@ the current copy will be lost. Attach to remote debugger... - 附加到遠端偵錯程式... + Attach to remote debugger... Attach to a remotely running debugger - 附加到遠端執行中的偵錯程式 + Attach to a remotely running debugger @@ -10281,7 +10284,7 @@ the current copy will be lost. Measures distance between two selected objects - 測量兩個選定物體之間的距離 + 測量兩個選定物件之間的距離 @@ -10302,12 +10305,12 @@ the current copy will be lost. %1 document (*.FCStd) - %1 文件(*.FCStd) + %1文件(*.FCStd) Cannot merge project with itself. - 不能合併專案本身. + 不能合併專案本身。 @@ -10324,7 +10327,7 @@ the current copy will be lost. 建立一個新的空白檔案 - + Unnamed 未命名 @@ -10336,7 +10339,7 @@ the current copy will be lost. Help - 求助說明 + 説明 @@ -10410,7 +10413,7 @@ the current copy will be lost. &Paste - 貼上(&P) + &貼上 @@ -10424,13 +10427,13 @@ the current copy will be lost. Placement... - 放置位置... + 放置... Place the selected objects - 放置所選物體 + 放置所選物件 @@ -10452,7 +10455,7 @@ the current copy will be lost. &Export PDF... - 匯出 PDF(&E)... + 匯出PDF(&E)... @@ -10466,7 +10469,7 @@ the current copy will be lost. &Print preview... - &P預覽列印... + &預覽列印 @@ -10484,7 +10487,7 @@ the current copy will be lost. Project i&nformation... - 專案資訊(&N)... + 專案訊息(&N)... @@ -10513,12 +10516,12 @@ the current copy will be lost. Python Website - Python 網站 + Python網站 The official Python website - Python 官方網站 + Python官方網站 @@ -10588,7 +10591,7 @@ the current copy will be lost. Redoes a previously undone action - 重做上次復原的操作 + 重做上次撤銷的操作 @@ -10602,7 +10605,7 @@ the current copy will be lost. Recomputes the current active document - 重新計算目前作業中檔案 + 重新計算目前作業中文件 @@ -10610,13 +10613,13 @@ the current copy will be lost. Report a bug - 回報錯誤 + Report a bug Report a bug or suggest a feature - 回報錯誤或建議功能 + Report a bug or suggest a feature @@ -10644,7 +10647,7 @@ the current copy will be lost. Save the active document - 儲存作業中檔案 + 儲存作業中文件 @@ -10672,7 +10675,7 @@ the current copy will be lost. Save the active document under a new file name - 將作用中檔案以新的檔名儲存 + 將作業中文件以新的檔名儲存 @@ -10680,13 +10683,13 @@ the current copy will be lost. Save a &Copy... - 儲存備份(&C)... + 儲存副本(&C)... Save a copy of the active document under a new file name - 以新的檔案名稱儲存目前檔案的備份 + 以新的檔案名稱儲存作業中文件的副本 @@ -10708,13 +10711,13 @@ the current copy will be lost. &Back - 上一步(&B) + &Back Go back to previous selection - 回到上一個選擇 + Go back to previous selection @@ -10722,13 +10725,13 @@ the current copy will be lost. &Bounding box - 邊界區塊(&B) + &Bounding box Show selection bounding box - 顯示選擇邊界區塊 + Show selection bounding box @@ -10736,13 +10739,13 @@ the current copy will be lost. &Forward - 往前(&F) + &Forward Repeat the backed selection - 重複支持的選擇 + Repeat the backed selection @@ -10770,7 +10773,7 @@ the current copy will be lost. Select visible objects in the active document - 於編輯中檔案選取顯示中之物件 + 於作業中文件選取可視物件 @@ -10798,7 +10801,7 @@ the current copy will be lost. Sets the display properties of the selected object - 設聽所選物體的顯示屬性 + 設置所選物件的顯示屬性 @@ -10826,7 +10829,7 @@ the current copy will be lost. Show all selected objects - 顯示所有選取的物體 + 顯示所有選取的物件 @@ -10848,13 +10851,13 @@ the current copy will be lost. Add text document - 增加文字文件 + 添加文字文件 Add text document to active document - 增加文字文件至啟用文件 + 增加文字文件至作業中文件 @@ -10862,13 +10865,13 @@ the current copy will be lost. Texture mapping... - 質感映射... + 紋理映射... Texture mapping - 質感映射 + 材質貼圖 @@ -10938,7 +10941,7 @@ the current copy will be lost. Toggles visibility of all objects in the active document - 切換顯示活動文件中的所有物件的可見性 + 切換顯示作業中文件之所有物件的可見性 @@ -10952,7 +10955,7 @@ the current copy will be lost. Toggles the property of the objects to get selected in the 3D-View - 切換物體性質於3D視圖中選取 + 切換物件性質於3D視圖中選取 @@ -10988,7 +10991,7 @@ the current copy will be lost. Transform... - 轉換... + 變換... @@ -11016,7 +11019,7 @@ the current copy will be lost. Collapse selected item - 折疊所選項目 + Collapse selected item @@ -11030,7 +11033,7 @@ the current copy will be lost. Expand selected item - 展開所選項目 + Expand selected item @@ -11044,7 +11047,7 @@ the current copy will be lost. Select all instances - 選擇全部實例 + Select all instances @@ -11078,7 +11081,7 @@ the current copy will be lost. Undo exactly one action - 完全復原一個動作 + 完全撤消一個動作 @@ -11086,7 +11089,7 @@ the current copy will be lost. &Units calculator... - 單位計算機(&U)... + &單位計算機... @@ -11100,13 +11103,13 @@ the current copy will be lost. Edit mode - 編輯模式 + Edit mode Defines behavior when editing an object from tree - 定義從樹狀圖編輯物體時的行為 + Defines behavior when editing an object from tree @@ -11134,7 +11137,7 @@ the current copy will be lost. Set to bottom view - 設定為底部視圖 + 設置為底部視圖 @@ -11148,7 +11151,7 @@ the current copy will be lost. Creates a new view window for the active document - 透過啟用文件建立一個新視圖視窗 + 為作業中文件建立新的視窗 @@ -11162,7 +11165,7 @@ the current copy will be lost. Set to dimetric view - 設定為二維圖視景 + Set to dimetric view @@ -11240,13 +11243,13 @@ the current copy will be lost. Front - 正視圖 + 前視圖 Set to front view - 設定為前視圖 + 設置為前視圖 @@ -11254,13 +11257,13 @@ the current copy will be lost. Home - 主視景 + Home Set to default home view - 設定為預設主視景 + Set to default home view @@ -11282,7 +11285,7 @@ the current copy will be lost. Issue camera position - 設定攝影位置 + 設置攝影位置 @@ -11372,7 +11375,7 @@ the current copy will be lost. Set to left view - 設定為左視圖 + 設置為左視圖 @@ -11386,7 +11389,7 @@ the current copy will be lost. Set to rear view - 設定為後視圖 + 設置為後視圖 @@ -11394,13 +11397,13 @@ the current copy will be lost. Restore saved camera - 恢復已儲存的相機視野 + Restore saved camera Restore saved camera settings - 恢復已儲存的相機視野設定 + Restore saved camera settings @@ -11414,7 +11417,7 @@ the current copy will be lost. Set to right view - 設定為右視圖 + 設置為右視圖 @@ -11428,7 +11431,7 @@ the current copy will be lost. Rotate the view by 90° counter-clockwise - 逆時針90°旋轉視景 + Rotate the view by 90° counter-clockwise @@ -11442,7 +11445,7 @@ the current copy will be lost. Rotate the view by 90° clockwise - 順時針90°旋轉視景 + Rotate the view by 90° clockwise @@ -11450,13 +11453,13 @@ the current copy will be lost. Save current camera - 儲存相機視野 + Save current camera Save current camera settings - 儲存相機視野設定 + Save current camera settings @@ -11470,7 +11473,7 @@ the current copy will be lost. Set to top view - 設定為上視圖 + 設置為上視圖 @@ -11484,7 +11487,7 @@ the current copy will be lost. Set to trimetric view - 設定為不等角立體視景 + Set to trimetric view @@ -11498,7 +11501,7 @@ the current copy will be lost. Extend the FreeCAD 3D Window to a Oculus Rift - 延伸FreeCAD 3D視窗到 Oculus Rift + 延伸FreeCAD 3D視窗到Oculus Rift @@ -11506,7 +11509,7 @@ the current copy will be lost. &What's This? - 這是什麼(&W)? + 這是什麼(&W)? @@ -11520,7 +11523,7 @@ the current copy will be lost. &Windows... - 視窗(&W)... + 視窗(&W) @@ -11568,7 +11571,7 @@ the current copy will be lost. Display the main window in fullscreen mode - 以全螢幕模式顯示主視窗 + Display the main window in fullscreen mode @@ -11604,13 +11607,13 @@ the current copy will be lost. Recall working view - 調用之前的工作檢視 + Recall working view Recall previously stored temporary working view - 調用之前儲存的暫時工作檢視 + Recall previously stored temporary working view @@ -11618,13 +11621,13 @@ the current copy will be lost. Store working view - 儲存工作檢視 + Store working view Store a document-specific temporary working view - 儲存特定文件的暫時工作檢視 + Store a document-specific temporary working view @@ -11638,7 +11641,7 @@ the current copy will be lost. Expand active document and collapse all others - 展開啟用文件並折疊所有其他文件 + 展開作業中文件並折疊所有其他文件 @@ -11659,7 +11662,7 @@ the current copy will be lost. Multi document - 多重文件 + Multi document @@ -11673,7 +11676,7 @@ the current copy will be lost. Pre-selection - 預先選擇 + Pre-selection @@ -11713,13 +11716,13 @@ the current copy will be lost. Single document - 單一文件 + Single document Only display the active document in the tree view - 在樹狀圖中僅顯示已開啟檔案 + 在樹狀圖中僅顯示作業中文件 @@ -11727,7 +11730,7 @@ the current copy will be lost. Sync placement - 同步放置位置 + Sync placement @@ -11740,7 +11743,7 @@ the current copy will be lost. Sync selection - 同步選擇 + Sync selection @@ -11881,14 +11884,15 @@ the current copy will be lost. Are you sure you want to continue? - 以下引用物體可能會中斷. -你確定你要繼續嗎? + The following referencing objects might break. + +Are you sure you want to continue? Object dependencies - 物體相依 + 物件相依 @@ -11934,22 +11938,22 @@ Are you sure you want to continue? Hidden line - 隱藏線段 + Hidden line Hidden line mode - 隱藏線段模式 + Hidden line mode No shading - 無上色 + No shading No shading mode - 無上色模式 + No shading mode @@ -11977,14 +11981,14 @@ Are you sure you want to continue? Object dependencies - 物體相依 + 物件相依 To link to external objects, the document must be saved at least once. Do you want to save the document now? - 要連結到外部物體,文件必須至少儲存一次. -您現在要儲存文件嗎? + To link to external objects, the document must be saved at least once. +Do you want to save the document now? @@ -12003,10 +12007,10 @@ Do you want to save the document now? Please check the Report View for more details. Do you still want to proceed? - 該文件包含依賴循環. -請檢查報告視窗以獲取更多詳細資訊. + The document contains dependency cycles. +Please check the Report View for more details. -你還想繼續嗎? +Do you still want to proceed? @@ -12019,12 +12023,12 @@ Do you still want to proceed? This will discard all the changes since last file save. - 這將會放棄自前次儲存檔案後所有的變更. + 這將會放棄自前次儲存檔案後所有的變更 Do you want to continue? - 您要繼續嗎? + 您要繼續嗎? @@ -12115,7 +12119,7 @@ Do you still want to proceed? Visibility - 可見 + 可見性 @@ -12130,7 +12134,7 @@ Do you still want to proceed? &Macro - 巨集(&M) + &巨集 @@ -12150,7 +12154,7 @@ Do you still want to proceed? Help - 求助說明 + 説明 @@ -12170,12 +12174,12 @@ Do you still want to proceed? Special Ops - 特別選項 + 特別行動 Link actions - 連結動作 + Link actions @@ -12197,7 +12201,7 @@ Do you still want to proceed? Notification Area - 通知區域 + Notification Area @@ -12207,22 +12211,22 @@ Do you still want to proceed? The Notification area will appear in the status bar - 通知區域將出現在狀態欄中 + The Notification area will appear in the status bar Enable Notification Area - 啟用通知區域 + Enable Notification Area Non-intrusive notifications will appear next to the notification area in the status bar - 非侵入式通知將出現在狀態欄中的通知區域旁邊 + Non-intrusive notifications will appear next to the notification area in the status bar Enable non-intrusive notifications - 啟用非侵入性的通知 + Enable non-intrusive notifications @@ -12252,53 +12256,53 @@ Do you still want to proceed? Non-Intrusive Notifications - 非侵入性的通知 + Non-Intrusive Notifications Minimum Duration: - 最短持續時間: + Minimum Duration: Maximum Duration: - 最長持續時間: + Maximum Duration: Duration during which the notification will be shown (unless mouse buttons are clicked) - 顯示通知的持續時間(除非點擊滑鼠按鈕) + Duration during which the notification will be shown (unless mouse buttons are clicked) s - s + s Minimum duration during which the notification will be shown (unless notification clicked) - 顯示通知的最短持續時間(除非點擊滑鼠按鈕) + Minimum duration during which the notification will be shown (unless notification clicked) Maximum Number of Notifications: - 最多通知訊息數目: + Maximum Number of Notifications: Maximum number of notifications that will be simultaneously present on the screen - 將同時出現在螢幕上的最大通知數目 + Maximum number of notifications that will be simultaneously present on the screen Notification width: - 通知寬度: + Notification width: Width of the notification in pixels - 通知的寬度(以像素為單位) + Width of the notification in pixels @@ -12313,37 +12317,37 @@ Do you still want to proceed? Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window - 當 FreeCAD 視窗不是啟用視窗時,防止出現非侵入性通知 + Prevent non-intrusive notifications from appearing when the FreeCAD Window is not the active window Do not show when inactive - 非作用中時不顯示 + Do not show when inactive Message List - 訊息清單 + Message List Limit the number of messages that will be kept in the list. If 0 there is no limit. - 限制將保留在列表中的訊息數目. 如果為 0 則沒有限制. + Limit the number of messages that will be kept in the list. If 0 there is no limit. Maximum Messages (0 = no limit): - 最多訊息數目 (0 = 沒有限制): + Maximum Messages (0 = no limit): Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. - 在非侵入性最長持續時間過去後,從訊息列表中刪除使用者通知. + Removes the user notifications from the message list after the non-intrusive maximum duration has lapsed. Auto-remove User Notifications - 自動刪除使用者通知 + Auto-remove User Notifications @@ -12356,19 +12360,19 @@ Do you still want to proceed? Available Workbenches - 可用工作台 + Available Workbenches <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> Currently, your system has the following workbenches:</p></body></html> - <html><head/><body><p>您可以通過拖放重新排序工作台. 可以通過附加元件管理器安裝其他工作台.</p><p> -目前,您的系統有以下工作台:</p></body></html> + <html><head/><body><p>You can reorder workbenches by drag and drop. Additional workbenches can be installed through the addon manager.</p><p> +Currently, your system has the following workbenches:</p></body></html> Start up workbench: - 啟動工作台: + Start up workbench: @@ -12379,7 +12383,7 @@ after FreeCAD launches Workbench selector position : - 工作台選擇器位置: + Workbench selector position : @@ -12388,11 +12392,11 @@ after FreeCAD launches 'Toolbar': In the toolbars, as a movable toolbar. 'Left Corner': In the menu bar, on the left corner. 'Right Corner': In the menu bar, on the right corner. - 自定義工作台選擇器出現的位置(需要重新啟動). + Customize where the workbench selector appears (restart required). -'工具列': 在工具列中,作為可移動的工具列. -'左側': 在功能表中的左側. -'右側': 在菜單欄的右右側. +'Toolbar': In the toolbars, as a movable toolbar. +'Left Corner': In the menu bar, on the left corner. +'Right Corner': In the menu bar, on the right corner. @@ -12402,7 +12406,7 @@ after FreeCAD launches Remember active workbench by tab - 按分頁記住啟用工作台 + Remember active workbench by tab @@ -12415,7 +12419,7 @@ after FreeCAD launches Planes - 平面 + Planes @@ -12435,7 +12439,7 @@ after FreeCAD launches Reverse direction - Reverse direction + 反轉方向 @@ -12453,7 +12457,7 @@ after FreeCAD launches Planes - 平面 + Planes @@ -12473,7 +12477,7 @@ after FreeCAD launches Reverse direction - Reverse direction + 反轉方向 @@ -12503,7 +12507,7 @@ after FreeCAD launches Image size - 影像大小 + Image size @@ -12518,7 +12522,7 @@ after FreeCAD launches Keep aspect ratio - 保持長寬比 + Keep aspect ratio @@ -12538,7 +12542,7 @@ after FreeCAD launches Apply - 套用 + 應用 @@ -12566,7 +12570,7 @@ after FreeCAD launches Auto-load - 自動載入 + Auto-load @@ -12576,12 +12580,12 @@ after FreeCAD launches This is the current startup module, and must be autoloaded. See Preferences/General/Autoload to change. - 這是目前的啟動模組,必須自動載入. 請參閱 屬性/一般/自動載入 進行更改. + This is the current startup module, and must be autoloaded. See Preferences/General/Autoload to change. Loaded - 已載入 + Loaded @@ -12597,19 +12601,19 @@ after FreeCAD launches Gui::Dialog::DlgSettingsWorkbenchesImp - + Toolbar 工具列 - + Left corner - 左邊角落 + Left corner - + Right corner - 右邊角落 + Right corner @@ -12711,32 +12715,32 @@ after FreeCAD launches FRONT - 正面 + FRONT TOP - 上方 + TOP RIGHT - 右側 + RIGHT REAR - 背面 + REAR BOTTOM - 底部 + BOTTOM LEFT - 左側 + LEFT diff --git a/src/Gui/Language/Translator.h b/src/Gui/Language/Translator.h index 92f84ff87d..a4608f0386 100644 --- a/src/Gui/Language/Translator.h +++ b/src/Gui/Language/Translator.h @@ -55,9 +55,9 @@ public: /** @name singleton stuff */ //@{ /// Creates an instance - static Translator* instance(void); + static Translator* instance(); /// Destroys the instance - static void destruct (void); + static void destruct (); //@} /** Activates the specified language \a lang if available. */ @@ -77,7 +77,7 @@ public: /** Adds a path where localization files can be found */ void addPath(const QString& path); /** eventFilter used to convert decimal separator **/ - bool eventFilter(QObject* obj, QEvent* ev); + bool eventFilter(QObject* obj, QEvent* ev) override; /** Enables/disables decimal separator conversion **/ void enableDecimalPointConversion(bool on); /** Returns whether decimal separator conversion is enabled */ @@ -85,7 +85,7 @@ public: private: Translator(); - ~Translator(); + ~Translator() override; void removeTranslators(); QStringList directories() const; void installQMFiles(const QDir& dir, const char* locale); diff --git a/src/Gui/MDIView.cpp b/src/Gui/MDIView.cpp index e11870b44c..7c8fb85b01 100644 --- a/src/Gui/MDIView.cpp +++ b/src/Gui/MDIView.cpp @@ -50,7 +50,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; TYPESYSTEM_SOURCE_ABSTRACT(Gui::MDIView,Gui::BaseView) @@ -67,9 +67,11 @@ MDIView::MDIView(Gui::Document* pcDocument,QWidget* parent, Qt::WindowFlags wfla if (pcDocument) { + //NOLINTBEGIN connectDelObject = pcDocument->signalDeletedObject.connect - (boost::bind(&ActiveObjectList::objectDeleted, &ActiveObjects, bp::_1)); + (std::bind(&ActiveObjectList::objectDeleted, &ActiveObjects, sp::_1)); assert(connectDelObject.connected()); + //NOLINTEND } } @@ -149,13 +151,13 @@ void MDIView::onRelabel(Gui::Document *pDoc) // Try to separate document name and view number if there is one QString cap = windowTitle(); // Either with dirty flag ... - QRegularExpression rx(QLatin1String("(\\s\\:\\s\\d+\\[\\*\\])$")); + QRegularExpression rx(QLatin1String(R"((\s\:\s\d+\[\*\])$)")); QRegularExpressionMatch match; //int pos = boost::ignore_unused(cap.lastIndexOf(rx, -1, &match)); if (!match.hasMatch()) { // ... or not - rx.setPattern(QLatin1String("(\\s\\:\\s\\d+)$")); + rx.setPattern(QLatin1String(R"((\s\:\s\d+)$)")); //pos = boost::ignore_unused(cap.lastIndexOf(rx, -1, &match)); } @@ -254,6 +256,8 @@ void MDIView::printPdf() QString::fromLatin1("%1 (*.pdf)").arg(tr("PDF file"))); if (!filename.isEmpty()) { QPrinter printer(QPrinter::ScreenResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); print(&printer); diff --git a/src/Gui/MDIViewPyWrap.cpp b/src/Gui/MDIViewPyWrap.cpp index 653d7dddcd..faeed4973b 100644 --- a/src/Gui/MDIViewPyWrap.cpp +++ b/src/Gui/MDIViewPyWrap.cpp @@ -34,7 +34,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index b2c7af1658..0f6031e3bc 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -190,7 +190,7 @@ public: getWindowParameter()->Attach(this); } - ~DimensionWidget() + ~DimensionWidget() override { getWindowParameter()->Detach(this); } @@ -214,7 +214,7 @@ public: } private: - void unitChanged(void) + void unitChanged() { int userSchema = getWindowParameter()->GetInt("UserSchema", 0); auto actions = menu()->actions(); @@ -1170,9 +1170,12 @@ void MainWindow::onWindowActivated(QMdiSubWindow* w) auto view = dynamic_cast(w->widget()); // set active the appropriate window (it needs not to be part of mdiIds, e.g. directly after creation) - d->activeView = view; - Application::Instance->viewActivated(view); - + if (view) + { + d->activeView = view; + Application::Instance->viewActivated(view); + } + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); bool saveWB = hGrp->GetBool("SaveWBbyTab", false); if (saveWB) { @@ -1448,6 +1451,9 @@ void MainWindow::delayedStartup() return; } + // TODO: Check for deprecated settings + Application::Instance->checkForDeprecatedSettings(); + // Create new document? ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Document"); if (hGrp->GetBool("CreateNewDoc", false)) { @@ -1491,7 +1497,7 @@ void MainWindow::updateActions(bool delay) // the whole application in a weird state if (d->activityTimer->thread() != QThread::currentThread()) { QMetaObject::invokeMethod(d->activityTimer, "start", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int, 150)); + Q_ARG(int, 150)); } else { d->activityTimer->start(150); @@ -1685,6 +1691,32 @@ QPixmap MainWindow::aboutImage() const return about_image; } +void MainWindow::RenderDevBuildWarning(QPainter &painter, int x, int y) const +{ + // Create a background box that fades out the artwork for better legibility + QColor fader (Qt::black); + const float halfDensity (0.5); + fader.setAlphaF(halfDensity); + QBrush fillBrush(fader, Qt::BrushStyle::SolidPattern); + painter.setBrush(fillBrush); + + // Construct the lines of text and figure out how much space they need + auto devWarningLine1 = tr("WARNING: This is a development version."); + auto devWarningLine2 = tr("Please do not use in a production environment."); + QFontMetrics fontMetrics(painter.font()); + int padding = QtTools::horizontalAdvance(fontMetrics, QLatin1String("M")); // Arbitrary + int line1Width = QtTools::horizontalAdvance(fontMetrics, devWarningLine1); + int line2Width = QtTools::horizontalAdvance(fontMetrics, devWarningLine2); + int boxWidth = std::max(line1Width,line2Width) + 2 * padding; + int lineHeight = fontMetrics.lineSpacing(); + int boxHeight = static_cast(lineHeight*2.3); + + // Draw the background rectangle and the text + painter.drawRect(x, y, boxWidth, boxHeight); + painter.drawText(x+padding, y+lineHeight, devWarningLine1); + painter.drawText(x+padding, y+2*lineHeight, devWarningLine2); +} + QPixmap MainWindow::splashImage() const { // search in the UserAppData dir as very first @@ -1725,7 +1757,8 @@ QPixmap MainWindow::splashImage() const QString major = QString::fromLatin1(App::Application::Config()["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(App::Application::Config()["BuildVersionMinor"].c_str()); QString point = QString::fromLatin1(App::Application::Config()["BuildVersionPoint"].c_str()); - QString version = QString::fromLatin1("%1.%2.%3").arg(major, minor, point); + QString suffix = QString::fromLatin1(App::Application::Config()["BuildVersionSuffix"].c_str()); + QString version = QString::fromLatin1("%1.%2.%3%4").arg(major, minor, point, suffix); QString position, fontFamily; std::map::const_iterator te = App::Application::Config().find("SplashInfoExeName"); @@ -1787,6 +1820,9 @@ QPixmap MainWindow::splashImage() const } painter.setFont(fontVer); painter.drawText(x + (l + 5), y, version); + if (suffix == QLatin1String("dev")) { + RenderDevBuildWarning(painter, x + l + 5, y + 10); + } painter.end(); } } diff --git a/src/Gui/MainWindow.h b/src/Gui/MainWindow.h index ca40c48b9f..ab9fb87528 100644 --- a/src/Gui/MainWindow.h +++ b/src/Gui/MainWindow.h @@ -292,6 +292,8 @@ private: bool setupReportView(const std::string&); bool setupPythonConsole(const std::string&); + void RenderDevBuildWarning(QPainter &painter, int x, int y) const; + private Q_SLOTS: /** * \internal diff --git a/src/Gui/ManualAlignment.cpp b/src/Gui/ManualAlignment.cpp index cb2328e455..bfb30f8d72 100644 --- a/src/Gui/ManualAlignment.cpp +++ b/src/Gui/ManualAlignment.cpp @@ -62,7 +62,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; AlignmentGroup::AlignmentGroup() { @@ -654,9 +654,11 @@ ManualAlignment* ManualAlignment::_instance = nullptr; ManualAlignment::ManualAlignment() : myViewer(nullptr), myDocument(nullptr), myPickPoints(3), d(new Private) { + //NOLINTBEGIN // connect with the application's signal for deletion of documents this->connectApplicationDeletedDocument = Gui::Application::Instance->signalDeleteDocument - .connect(boost::bind(&ManualAlignment::slotDeletedDocument, this, bp::_1)); + .connect(std::bind(&ManualAlignment::slotDeletedDocument, this, sp::_1)); + //NOLINTEND // setup sensor connection d->sensorCam1 = new SoNodeSensor(Private::syncCameraCB, this); @@ -849,8 +851,10 @@ void ManualAlignment::startAlignment(Base::Type mousemodel) // Connect to the document's signal as we want to be notified when something happens if (this->connectDocumentDeletedObject.connected()) this->connectDocumentDeletedObject.disconnect(); - this->connectDocumentDeletedObject = myDocument->signalDeletedObject.connect(boost::bind - (&ManualAlignment::slotDeletedObject, this, bp::_1)); + //NOLINTBEGIN + this->connectDocumentDeletedObject = myDocument->signalDeletedObject.connect(std::bind + (&ManualAlignment::slotDeletedObject, this, sp::_1)); + //NOLINTEND continueAlignment(); } diff --git a/src/Gui/MergeDocuments.cpp b/src/Gui/MergeDocuments.cpp index a376033f36..4c01453495 100644 --- a/src/Gui/MergeDocuments.cpp +++ b/src/Gui/MergeDocuments.cpp @@ -37,7 +37,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { @@ -76,11 +76,13 @@ private: MergeDocuments::MergeDocuments(App::Document* doc) : stream(nullptr), appdoc(doc) { + //NOLINTBEGIN connectExport = doc->signalExportObjects.connect - (boost::bind(&MergeDocuments::exportObject, this, bp::_1, bp::_2)); + (std::bind(&MergeDocuments::exportObject, this, sp::_1, sp::_2)); connectImport = doc->signalImportObjects.connect - (boost::bind(&MergeDocuments::importObject, this, bp::_1, bp::_2)); + (std::bind(&MergeDocuments::importObject, this, sp::_1, sp::_2)); document = Gui::Application::Instance->getDocument(doc); + //NOLINTEND } MergeDocuments::~MergeDocuments() diff --git a/src/Gui/NaviCube.cpp b/src/Gui/NaviCube.cpp index b1d169e18f..27cb09f61f 100644 --- a/src/Gui/NaviCube.cpp +++ b/src/Gui/NaviCube.cpp @@ -1100,7 +1100,7 @@ void NaviCubeDraggableCmd::activated(int iMsg) auto view = qobject_cast(getMainWindow()->activeWindow()); view->getViewer()->getNaviCube()->setDraggable(iMsg == 1 ? true : false); } -bool NaviCubeDraggableCmd::isActive(void) +bool NaviCubeDraggableCmd::isActive() { Gui::MDIView* view = Gui::getMainWindow()->activeWindow(); if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) { diff --git a/src/Gui/NavigationStyle.cpp b/src/Gui/NavigationStyle.cpp index a63abb399c..33771881f5 100644 --- a/src/Gui/NavigationStyle.cpp +++ b/src/Gui/NavigationStyle.cpp @@ -862,10 +862,9 @@ void NavigationStyle::doRotate(SoCamera * camera, float angle, const SbVec2f& po } -SbVec3f NavigationStyle::getRotationCenter(SbBool* ok) const +SbVec3f NavigationStyle::getRotationCenter(SbBool& found) const { - if (ok) - *ok = PRIVATE(this)->rotationCenterFound; + found = PRIVATE(this)->rotationCenterFound; return PRIVATE(this)->rotationCenter; } @@ -1032,6 +1031,11 @@ void NavigationStyle::saveCursorPosition(const SoEvent * const ev) this->globalPos.setValue(QCursor::pos().x(), QCursor::pos().y()); this->localPos = ev->getPosition(); + // mode is WindowCenter + if (!PRIVATE(this)->rotationCenterMode) { + setRotationCenter(getFocalPoint()); + } + //Option to get point on model (slow) or always on focal plane (fast) // // mode is ScenePointAtCursor to get exact point if possible @@ -1412,12 +1416,14 @@ void NavigationStyle::setViewingMode(const ViewerMode newmode) case DRAGGING: // Set up initial projection point for the projector object when // first starting a drag operation. + viewer->showRotationCenter(true); this->spinprojector->project(this->lastmouseposition); this->interactiveCountInc(); this->clearLog(); break; case SPINNING: + viewer->showRotationCenter(true); this->interactiveCountInc(); viewer->getSoRenderManager()->scheduleRedraw(); break; @@ -1442,6 +1448,8 @@ void NavigationStyle::setViewingMode(const ViewerMode newmode) switch (oldmode) { case SPINNING: case DRAGGING: + viewer->showRotationCenter(false); + [[fallthrough]]; case PANNING: case ZOOMING: case BOXZOOM: diff --git a/src/Gui/NavigationStyle.h b/src/Gui/NavigationStyle.h index 59a3b39cf3..a6c6bf51e1 100644 --- a/src/Gui/NavigationStyle.h +++ b/src/Gui/NavigationStyle.h @@ -172,6 +172,8 @@ public: void setOrbitStyle(OrbitStyle style); OrbitStyle getOrbitStyle() const; + SbVec3f getRotationCenter(SbBool&) const; + protected: void initialize(); void finalize(); @@ -187,7 +189,6 @@ protected: SbBool seekToPoint(const SbVec2s screenpos); void seekToPoint(const SbVec3f& scenepos); SbBool lookAtPoint(const SbVec2s screenpos); - SbVec3f getRotationCenter(SbBool*) const; void reorientCamera(SoCamera * camera, const SbRotation & rot); void panCamera(SoCamera * camera, diff --git a/src/Gui/NotificationArea.cpp b/src/Gui/NotificationArea.cpp index e8ae746140..c53636941f 100644 --- a/src/Gui/NotificationArea.cpp +++ b/src/Gui/NotificationArea.cpp @@ -56,7 +56,7 @@ using namespace Gui; using Connection = boost::signals2::connection; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; class NotificationAreaObserver; @@ -380,7 +380,7 @@ public: : QWidgetAction(parent) {} - ~NotificationsAction() + ~NotificationsAction() override { for (auto* item : pushedItems) { if (item) { @@ -825,11 +825,13 @@ NotificationArea::NotificationArea(QWidget* parent) }); + //NOLINTBEGIN // Connection to the finish restore signal to rearm Critical messages modal mode when action is // user initiated pImp->finishRestoreDocumentConnection = App::GetApplication().signalFinishRestoreDocument.connect( - boost::bind(&Gui::NotificationArea::slotRestoreFinished, this, bp::_1)); + std::bind(&Gui::NotificationArea::slotRestoreFinished, this, sp::_1)); + //NOLINTEND // Initialisation of the timer to inhibit continuous updates of the notification system in case // clusters of messages arrive (so as to delay the actual notification until the whole cluster diff --git a/src/Gui/NotificationArea.h b/src/Gui/NotificationArea.h index 9e5622b9bb..9a60ac74e3 100644 --- a/src/Gui/NotificationArea.h +++ b/src/Gui/NotificationArea.h @@ -50,7 +50,7 @@ public: { public: explicit ParameterObserver(NotificationArea* notificationarea); - ~ParameterObserver(); + ~ParameterObserver() override; void OnChange(Base::Subject& rCaller, const char* sReason) override; @@ -61,7 +61,7 @@ public: }; NotificationArea(QWidget* parent = nullptr); - ~NotificationArea(); + ~NotificationArea() override; void pushNotification(const QString& notifiername, const QString& message, Base::LogStyle level); diff --git a/src/Gui/Placement.cpp b/src/Gui/Placement.cpp index b7259bcc9d..1dc3029982 100644 --- a/src/Gui/Placement.cpp +++ b/src/Gui/Placement.cpp @@ -48,7 +48,7 @@ using namespace Gui::Dialog; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace Gui { namespace Dialog { class find_placement @@ -274,7 +274,7 @@ void PlacementHandler::applyPlacement(App::DocumentObject* obj, const QString& d QString PlacementHandler::getIncrementalPlacement(App::DocumentObject* obj, const QString& data) const { return QString::fromLatin1( - "App.getDocument(\"%1\").%2.%3=%4.multiply(App.getDocument(\"%1\").%2.%3)") + R"(App.getDocument("%1").%2.%3=%4.multiply(App.getDocument("%1").%2.%3))") .arg(QString::fromLatin1(obj->getDocument()->getName()), QString::fromLatin1(obj->getNameInDocument()), QString::fromLatin1(this->propertyName.c_str()), @@ -393,8 +393,10 @@ void Placement::setupSignalMapper() void Placement::setupDocument() { + //NOLINTBEGIN connectAct = Application::Instance->signalActiveDocument.connect - (boost::bind(&Placement::slotActiveDocument, this, bp::_1)); + (std::bind(&Placement::slotActiveDocument, this, sp::_1)); + //NOLINTEND App::Document* activeDoc = App::GetApplication().getActiveDocument(); if (activeDoc) { handler.appendDocument(activeDoc->getName()); diff --git a/src/Gui/PreferencePackTemplates/View.cfg b/src/Gui/PreferencePackTemplates/View.cfg index a0ef5b960d..6ad815c14c 100644 --- a/src/Gui/PreferencePackTemplates/View.cfg +++ b/src/Gui/PreferencePackTemplates/View.cfg @@ -18,6 +18,7 @@ + Gui::CADNavigationStyle diff --git a/src/Gui/PreferencePacks/CMakeLists.txt b/src/Gui/PreferencePacks/CMakeLists.txt index e7c235b9e0..7b9a17260d 100644 --- a/src/Gui/PreferencePacks/CMakeLists.txt +++ b/src/Gui/PreferencePacks/CMakeLists.txt @@ -4,7 +4,9 @@ SET(PreferencePacks_Files ) SET(PreferencePacks_Directories -"FreeCAD Classic Colors" +"Classic theme" +"Dark theme" +"Light theme" ) ADD_CUSTOM_TARGET(PreferencePacks_data ALL diff --git a/src/Gui/PreferencePacks/FreeCAD Classic Colors/FreeCAD Classic Colors.cfg b/src/Gui/PreferencePacks/Classic theme/Classic theme.cfg similarity index 100% rename from src/Gui/PreferencePacks/FreeCAD Classic Colors/FreeCAD Classic Colors.cfg rename to src/Gui/PreferencePacks/Classic theme/Classic theme.cfg diff --git a/src/Gui/PreferencePacks/Dark modern theme/Dark modern theme.cfg b/src/Gui/PreferencePacks/Dark modern theme/Dark modern theme.cfg new file mode 100644 index 0000000000..f9f2891d69 --- /dev/null +++ b/src/Gui/PreferencePacks/Dark modern theme/Dark modern theme.cfg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + #9b4de6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dark-modern-blue.qss + + + + + diff --git a/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg new file mode 100644 index 0000000000..2da60e23e2 --- /dev/null +++ b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + #9b4de6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dark-blue.qss + + + + + diff --git a/src/Gui/PreferencePacks/Darker theme/Darker theme.cfg b/src/Gui/PreferencePacks/Darker theme/Darker theme.cfg new file mode 100644 index 0000000000..b364a33bed --- /dev/null +++ b/src/Gui/PreferencePacks/Darker theme/Darker theme.cfg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + #9b4de6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Darker-blue.qss + + + + + diff --git a/src/Gui/PreferencePacks/Light modern theme/Light modern theme.cfg b/src/Gui/PreferencePacks/Light modern theme/Light modern theme.cfg new file mode 100644 index 0000000000..9e2fd76d1b --- /dev/null +++ b/src/Gui/PreferencePacks/Light modern theme/Light modern theme.cfg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + #feff9e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Light-modern-blue.qss + + + + + + diff --git a/src/Gui/PreferencePacks/Light theme/Light theme.cfg b/src/Gui/PreferencePacks/Light theme/Light theme.cfg new file mode 100644 index 0000000000..b904a717bf --- /dev/null +++ b/src/Gui/PreferencePacks/Light theme/Light theme.cfg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + #feff9e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Light-blue.qss + + + + + + diff --git a/src/Gui/PreferencePacks/package.xml b/src/Gui/PreferencePacks/package.xml index 31e1eadb47..aff173db12 100644 --- a/src/Gui/PreferencePacks/package.xml +++ b/src/Gui/PreferencePacks/package.xml @@ -3,17 +3,42 @@ Built-In Preference Packs Preference Packs included with the FreeCAD distribution 1.0.0 - No Maintainer + MisterMaker LGPL2 https://github.com/FreeCAD/FreeCAD - FreeCAD Classic Colors - FreeCAD default colors for core app and included Mods. + Classic theme + Theme + Removes stylesheets, and applies the classic purple/gray background. Resets all colors to default 1.0.0 built-in - colors + background + no stylesheet + classic theme + + + Dark theme + Theme + Applies a dark background and a darker stylesheet, you can choose other stylesheets as you wish. + 0.5.0 + built-in + dark + background + stylesheet + theme + + + Light theme + Theme + Applies a light background and a light stylesheet, you can choose other stylesheets as you wish. + 0.5.0 + built-in + light + background + stylesheet + theme diff --git a/src/Gui/DlgSettings3DView.ui b/src/Gui/PreferencePages/DlgSettings3DView.ui similarity index 100% rename from src/Gui/DlgSettings3DView.ui rename to src/Gui/PreferencePages/DlgSettings3DView.ui diff --git a/src/Gui/DlgSettings3DViewImp.cpp b/src/Gui/PreferencePages/DlgSettings3DViewImp.cpp similarity index 96% rename from src/Gui/DlgSettings3DViewImp.cpp rename to src/Gui/PreferencePages/DlgSettings3DViewImp.cpp index d6d60cc8b9..54da5b482e 100644 --- a/src/Gui/DlgSettings3DViewImp.cpp +++ b/src/Gui/PreferencePages/DlgSettings3DViewImp.cpp @@ -1,169 +1,169 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - -#include "PreCompiled.h" - -#ifndef _PreComp_ -# include -# include -#endif - -#include -#include -#include - -#include "DlgSettings3DViewImp.h" -#include "ui_DlgSettings3DView.h" -#include "View3DInventorViewer.h" - - -using namespace Gui::Dialog; - -/* TRANSLATOR Gui::Dialog::DlgSettings3DViewImp */ - -bool DlgSettings3DViewImp::showMsg = true; - -/** - * Constructs a DlgSettings3DViewImp which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgSettings3DViewImp::DlgSettings3DViewImp(QWidget* parent) - : PreferencePage( parent ) - , ui(new Ui_DlgSettings3DView) -{ - ui->setupUi(this); -} - -/** - * Destroys the object and frees any allocated resources - */ -DlgSettings3DViewImp::~DlgSettings3DViewImp() -{ - // no need to delete child widgets, Qt does it all for us -} - -void DlgSettings3DViewImp::saveSettings() -{ - // must be done as very first because we create a new instance of NavigatorStyle - // where we set some attributes afterwards - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath - ("User parameter:BaseApp/Preferences/View"); - - int index = ui->comboAliasing->currentIndex(); - hGrp->SetInt("AntiAliasing", index); - - index = ui->renderCache->currentIndex(); - hGrp->SetInt("RenderCache", index); - - ui->comboTransparentRender->onSave(); - - QVariant const &vBoxMarkerSize = ui->boxMarkerSize->itemData(ui->boxMarkerSize->currentIndex()); - hGrp->SetInt("MarkerSize", vBoxMarkerSize.toInt()); - - ui->CheckBox_CornerCoordSystem->onSave(); - ui->SpinBox_CornerCoordSystemSize->onSave(); - ui->CheckBox_ShowAxisCross->onSave(); - ui->CheckBox_ShowFPS->onSave(); - ui->CheckBox_use_SW_OpenGL->onSave(); - ui->CheckBox_useVBO->onSave(); - ui->FloatSpinBox_EyeDistance->onSave(); - ui->checkBoxBacklight->onSave(); - ui->backlightColor->onSave(); - ui->sliderIntensity->onSave(); - ui->radioPerspective->onSave(); - ui->radioOrthographic->onSave(); -} - -void DlgSettings3DViewImp::loadSettings() -{ - ui->CheckBox_CornerCoordSystem->onRestore(); - ui->SpinBox_CornerCoordSystemSize->onRestore(); - ui->CheckBox_ShowAxisCross->onRestore(); - ui->CheckBox_ShowFPS->onRestore(); - ui->CheckBox_use_SW_OpenGL->onRestore(); - ui->CheckBox_useVBO->onRestore(); - ui->FloatSpinBox_EyeDistance->onRestore(); - ui->checkBoxBacklight->onRestore(); - ui->backlightColor->onRestore(); - ui->sliderIntensity->onRestore(); - ui->radioPerspective->onRestore(); - ui->radioOrthographic->onRestore(); - - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath - ("User parameter:BaseApp/Preferences/View"); - - int index = hGrp->GetInt("AntiAliasing", int(Gui::View3DInventorViewer::None)); - index = Base::clamp(index, 0, ui->comboAliasing->count()-1); - ui->comboAliasing->setCurrentIndex(index); - // connect after setting current item of the combo box - connect(ui->comboAliasing, qOverload(&QComboBox::currentIndexChanged), - this, &DlgSettings3DViewImp::onAliasingChanged); - - index = hGrp->GetInt("RenderCache", 0); - ui->renderCache->setCurrentIndex(index); - - ui->comboTransparentRender->onRestore(); - - int const current = hGrp->GetInt("MarkerSize", 9L); - ui->boxMarkerSize->addItem(tr("5px"), QVariant(5)); - ui->boxMarkerSize->addItem(tr("7px"), QVariant(7)); - ui->boxMarkerSize->addItem(tr("9px"), QVariant(9)); - ui->boxMarkerSize->addItem(tr("11px"), QVariant(11)); - ui->boxMarkerSize->addItem(tr("13px"), QVariant(13)); - ui->boxMarkerSize->addItem(tr("15px"), QVariant(15)); - index = ui->boxMarkerSize->findData(QVariant(current)); - if (index < 0) index = 2; - ui->boxMarkerSize->setCurrentIndex(index); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgSettings3DViewImp::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - ui->comboAliasing->blockSignals(true); - int aliasing = ui->comboAliasing->currentIndex(); - ui->retranslateUi(this); - ui->comboAliasing->setCurrentIndex(aliasing); - ui->comboAliasing->blockSignals(false); - } - else { - QWidget::changeEvent(e); - } -} - -void DlgSettings3DViewImp::onAliasingChanged(int index) -{ - if (index < 0 || !isVisible()) - return; - // Show this message only once per application session to reduce - // annoyance when showing it too often. - if (showMsg) { - showMsg = false; - QMessageBox::information(this, tr("Anti-aliasing"), - tr("Open a new viewer or restart %1 to apply anti-aliasing changes.").arg(qApp->applicationName())); - } -} - -#include "moc_DlgSettings3DViewImp.cpp" - +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#ifndef _PreComp_ +# include +# include +#endif + +#include +#include +#include +#include + +#include "DlgSettings3DViewImp.h" +#include "ui_DlgSettings3DView.h" + + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettings3DViewImp */ + +bool DlgSettings3DViewImp::showMsg = true; + +/** + * Constructs a DlgSettings3DViewImp which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgSettings3DViewImp::DlgSettings3DViewImp(QWidget* parent) + : PreferencePage( parent ) + , ui(new Ui_DlgSettings3DView) +{ + ui->setupUi(this); +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettings3DViewImp::~DlgSettings3DViewImp() +{ + // no need to delete child widgets, Qt does it all for us +} + +void DlgSettings3DViewImp::saveSettings() +{ + // must be done as very first because we create a new instance of NavigatorStyle + // where we set some attributes afterwards + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath + ("User parameter:BaseApp/Preferences/View"); + + int index = ui->comboAliasing->currentIndex(); + hGrp->SetInt("AntiAliasing", index); + + index = ui->renderCache->currentIndex(); + hGrp->SetInt("RenderCache", index); + + ui->comboTransparentRender->onSave(); + + QVariant const &vBoxMarkerSize = ui->boxMarkerSize->itemData(ui->boxMarkerSize->currentIndex()); + hGrp->SetInt("MarkerSize", vBoxMarkerSize.toInt()); + + ui->CheckBox_CornerCoordSystem->onSave(); + ui->SpinBox_CornerCoordSystemSize->onSave(); + ui->CheckBox_ShowAxisCross->onSave(); + ui->CheckBox_ShowFPS->onSave(); + ui->CheckBox_use_SW_OpenGL->onSave(); + ui->CheckBox_useVBO->onSave(); + ui->FloatSpinBox_EyeDistance->onSave(); + ui->checkBoxBacklight->onSave(); + ui->backlightColor->onSave(); + ui->sliderIntensity->onSave(); + ui->radioPerspective->onSave(); + ui->radioOrthographic->onSave(); +} + +void DlgSettings3DViewImp::loadSettings() +{ + ui->CheckBox_CornerCoordSystem->onRestore(); + ui->SpinBox_CornerCoordSystemSize->onRestore(); + ui->CheckBox_ShowAxisCross->onRestore(); + ui->CheckBox_ShowFPS->onRestore(); + ui->CheckBox_use_SW_OpenGL->onRestore(); + ui->CheckBox_useVBO->onRestore(); + ui->FloatSpinBox_EyeDistance->onRestore(); + ui->checkBoxBacklight->onRestore(); + ui->backlightColor->onRestore(); + ui->sliderIntensity->onRestore(); + ui->radioPerspective->onRestore(); + ui->radioOrthographic->onRestore(); + + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath + ("User parameter:BaseApp/Preferences/View"); + + int index = hGrp->GetInt("AntiAliasing", int(Gui::View3DInventorViewer::None)); + index = Base::clamp(index, 0, ui->comboAliasing->count()-1); + ui->comboAliasing->setCurrentIndex(index); + // connect after setting current item of the combo box + connect(ui->comboAliasing, qOverload(&QComboBox::currentIndexChanged), + this, &DlgSettings3DViewImp::onAliasingChanged); + + index = hGrp->GetInt("RenderCache", 0); + ui->renderCache->setCurrentIndex(index); + + ui->comboTransparentRender->onRestore(); + + int const current = hGrp->GetInt("MarkerSize", 9L); + ui->boxMarkerSize->addItem(tr("5px"), QVariant(5)); + ui->boxMarkerSize->addItem(tr("7px"), QVariant(7)); + ui->boxMarkerSize->addItem(tr("9px"), QVariant(9)); + ui->boxMarkerSize->addItem(tr("11px"), QVariant(11)); + ui->boxMarkerSize->addItem(tr("13px"), QVariant(13)); + ui->boxMarkerSize->addItem(tr("15px"), QVariant(15)); + index = ui->boxMarkerSize->findData(QVariant(current)); + if (index < 0) index = 2; + ui->boxMarkerSize->setCurrentIndex(index); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettings3DViewImp::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + ui->comboAliasing->blockSignals(true); + int aliasing = ui->comboAliasing->currentIndex(); + ui->retranslateUi(this); + ui->comboAliasing->setCurrentIndex(aliasing); + ui->comboAliasing->blockSignals(false); + } + else { + QWidget::changeEvent(e); + } +} + +void DlgSettings3DViewImp::onAliasingChanged(int index) +{ + if (index < 0 || !isVisible()) + return; + // Show this message only once per application session to reduce + // annoyance when showing it too often. + if (showMsg) { + showMsg = false; + QMessageBox::information(this, tr("Anti-aliasing"), + tr("Open a new viewer or restart %1 to apply anti-aliasing changes.").arg(qApp->applicationName())); + } +} + +#include "moc_DlgSettings3DViewImp.cpp" + diff --git a/src/Gui/DlgSettings3DViewImp.h b/src/Gui/PreferencePages/DlgSettings3DViewImp.h similarity index 96% rename from src/Gui/DlgSettings3DViewImp.h rename to src/Gui/PreferencePages/DlgSettings3DViewImp.h index 5c8ade7c74..03f402aaa1 100644 --- a/src/Gui/DlgSettings3DViewImp.h +++ b/src/Gui/PreferencePages/DlgSettings3DViewImp.h @@ -1,66 +1,66 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H -#define GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H - -#include "PropertyPage.h" -#include - -class QDoubleSpinBox; - -namespace Gui { -namespace Dialog { -class Ui_DlgSettings3DView; - -/** - * The DlgSettings3DViewImp class implements a preference page to change settings - * for the Inventor viewer. - * \author Jürgen Riegel - */ -class DlgSettings3DViewImp : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettings3DViewImp(QWidget* parent = nullptr); - ~DlgSettings3DViewImp() override; - - void saveSettings() override; - void loadSettings() override; - -private Q_SLOTS: - void onAliasingChanged(int); - -protected: - void changeEvent(QEvent *e) override; - -private: - std::unique_ptr ui; - static bool showMsg; -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H +#define GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H + +#include +#include + +class QDoubleSpinBox; + +namespace Gui { +namespace Dialog { +class Ui_DlgSettings3DView; + +/** + * The DlgSettings3DViewImp class implements a preference page to change settings + * for the Inventor viewer. + * \author Jürgen Riegel + */ +class DlgSettings3DViewImp : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettings3DViewImp(QWidget* parent = nullptr); + ~DlgSettings3DViewImp() override; + + void saveSettings() override; + void loadSettings() override; + +private Q_SLOTS: + void onAliasingChanged(int); + +protected: + void changeEvent(QEvent *e) override; + +private: + std::unique_ptr ui; + static bool showMsg; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGS3DVIEWIMP_H diff --git a/src/Gui/DlgSettingsCacheDirectory.cpp b/src/Gui/PreferencePages/DlgSettingsCacheDirectory.cpp similarity index 99% rename from src/Gui/DlgSettingsCacheDirectory.cpp rename to src/Gui/PreferencePages/DlgSettingsCacheDirectory.cpp index eda5e9f2cb..2bd7b63049 100644 --- a/src/Gui/DlgSettingsCacheDirectory.cpp +++ b/src/Gui/PreferencePages/DlgSettingsCacheDirectory.cpp @@ -37,11 +37,11 @@ #include #include +#include +#include #include "DlgSettingsCacheDirectory.h" #include "ui_DlgSettingsCacheDirectory.h" -#include "DocumentRecovery.h" -#include "MainWindow.h" using namespace Gui::Dialog; diff --git a/src/Gui/DlgSettingsCacheDirectory.h b/src/Gui/PreferencePages/DlgSettingsCacheDirectory.h similarity index 99% rename from src/Gui/DlgSettingsCacheDirectory.h rename to src/Gui/PreferencePages/DlgSettingsCacheDirectory.h index 19fcf17ab4..e8bffe5154 100644 --- a/src/Gui/DlgSettingsCacheDirectory.h +++ b/src/Gui/PreferencePages/DlgSettingsCacheDirectory.h @@ -24,7 +24,7 @@ #ifndef GUI_DIALOG_DLGSETTINGSCACHEDIRECTORY_H #define GUI_DIALOG_DLGSETTINGSCACHEDIRECTORY_H -#include "PropertyPage.h" +#include #include namespace Gui { diff --git a/src/Gui/DlgSettingsCacheDirectory.ui b/src/Gui/PreferencePages/DlgSettingsCacheDirectory.ui similarity index 100% rename from src/Gui/DlgSettingsCacheDirectory.ui rename to src/Gui/PreferencePages/DlgSettingsCacheDirectory.ui diff --git a/src/Gui/DlgSettingsDocument.ui b/src/Gui/PreferencePages/DlgSettingsDocument.ui similarity index 99% rename from src/Gui/DlgSettingsDocument.ui rename to src/Gui/PreferencePages/DlgSettingsDocument.ui index 2d90093047..6e9a18fc34 100644 --- a/src/Gui/DlgSettingsDocument.ui +++ b/src/Gui/PreferencePages/DlgSettingsDocument.ui @@ -340,6 +340,9 @@ automatically run a file recovery when it is started. A thumbnail will be stored when document is saved + + true + Save thumbnail into project file when saving document @@ -511,6 +514,9 @@ Common sizes are 128, 256 and 512
Backup files will get extension '.FCbak' and file names get date suffix according to the specified format + + true + Use date and FCBak extension diff --git a/src/Gui/DlgSettingsDocumentImp.cpp b/src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp similarity index 96% rename from src/Gui/DlgSettingsDocumentImp.cpp rename to src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp index 7c788bb2df..7653d19f5c 100644 --- a/src/Gui/DlgSettingsDocumentImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsDocumentImp.cpp @@ -1,184 +1,184 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - -#include "PreCompiled.h" - -#include - -#include "DlgSettingsDocumentImp.h" -#include "ui_DlgSettingsDocument.h" -#include "AutoSaver.h" -#include - - -using namespace Gui::Dialog; - -/* TRANSLATOR Gui::Dialog::DlgSettingsDocumentImp */ - -/** - * Constructs a DlgSettingsDocumentImp which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgSettingsDocumentImp::DlgSettingsDocumentImp( QWidget* parent ) - : PreferencePage( parent ) - , ui(new Ui_DlgSettingsDocument) -{ - ui->setupUi(this); - addLicenseTypes(); - - ui->prefSaveTransaction->hide(); - ui->prefDiscardTransaction->hide(); - - QString tip = QString::fromLatin1("

%1

" - "

%2: %Y%m%d-%H%M%S

" - "

%3: C++ strftime" - "

").arg(tr("The format of the date to use."), tr("Default"), tr("Format")); - ui->prefSaveBackupDateFormat->setToolTip(tip); - - ui->prefCountBackupFiles->setMaximum(INT_MAX); - ui->prefCompression->setMinimum(Z_NO_COMPRESSION); - ui->prefCompression->setMaximum(Z_BEST_COMPRESSION); - connect(ui->prefLicenseType, qOverload(&QComboBox::currentIndexChanged), - this, &DlgSettingsDocumentImp::onLicenseTypeChanged); -} - -/** - * Destroys the object and frees any allocated resources - */ -DlgSettingsDocumentImp::~DlgSettingsDocumentImp() -{ - // no need to delete child widgets, Qt does it all for us -} - - -void DlgSettingsDocumentImp::saveSettings() -{ - ui->prefCheckNewDoc->onSave(); - ui->prefCompression->onSave(); - - ui->prefUndoRedo->onSave(); - ui->prefUndoRedoSize->onSave(); - ui->prefSaveTransaction->onSave(); - ui->prefDiscardTransaction->onSave(); - ui->prefSaveThumbnail->onSave(); - ui->prefThumbnailSize->onSave(); - ui->prefAddLogo->onSave(); - ui->prefSaveBackupFiles->onSave(); - ui->prefCountBackupFiles->onSave(); - ui->prefSaveBackupExtension->onSave(); - ui->prefSaveBackupDateFormat->onSave(); - ui->prefDuplicateLabel->onSave(); - ui->prefPartialLoading->onSave(); - ui->prefLicenseType->onSave(); - ui->prefLicenseUrl->onSave(); - ui->prefAuthor->onSave(); - ui->prefSetAuthorOnSave->onSave(); - ui->prefCompany->onSave(); - ui->prefRecovery->onSave(); - ui->prefAutoSaveEnabled->onSave(); - ui->prefAutoSaveTimeout->onSave(); - ui->prefCanAbortRecompute->onSave(); - - int timeout = ui->prefAutoSaveTimeout->value(); - if (!ui->prefAutoSaveEnabled->isChecked()) - timeout = 0; - AutoSaver::instance()->setTimeout(timeout * 60000); -} - -void DlgSettingsDocumentImp::loadSettings() -{ - ui->prefCheckNewDoc->onRestore(); - ui->prefCompression->onRestore(); - - ui->prefUndoRedo->onRestore(); - ui->prefUndoRedoSize->onRestore(); - ui->prefSaveTransaction->onRestore(); - ui->prefDiscardTransaction->onRestore(); - ui->prefSaveThumbnail->onRestore(); - ui->prefThumbnailSize->onRestore(); - ui->prefAddLogo->onRestore(); - ui->prefSaveBackupFiles->onRestore(); - ui->prefCountBackupFiles->onRestore(); - ui->prefSaveBackupExtension->onRestore(); - ui->prefSaveBackupDateFormat->onRestore(); - ui->prefDuplicateLabel->onRestore(); - ui->prefPartialLoading->onRestore(); - ui->prefLicenseType->onRestore(); - ui->prefLicenseUrl->onRestore(); - ui->prefAuthor->onRestore(); - ui->prefSetAuthorOnSave->onRestore(); - ui->prefCompany->onRestore(); - ui->prefRecovery->onRestore(); - ui->prefAutoSaveEnabled->onRestore(); - ui->prefAutoSaveTimeout->onRestore(); - ui->prefCanAbortRecompute->onRestore(); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgSettingsDocumentImp::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - ui->retranslateUi(this); - int index = ui->prefLicenseType->currentIndex(); - addLicenseTypes(); - ui->prefLicenseType->setCurrentIndex(index); - } - else { - QWidget::changeEvent(e); - } -} - -void DlgSettingsDocumentImp::addLicenseTypes() -{ - auto add = [&](const char* what) { - ui->prefLicenseType->addItem( - QApplication::translate("Gui::Dialog::DlgSettingsDocument", what)); - }; - - ui->prefLicenseType->clear(); - for (const auto& licenseItem : App::licenseItems) { - add(licenseItem.at(App::posnOfFullName)); - } - add("Other"); -} - -/** - * Fix Url according to changed type - */ -void DlgSettingsDocumentImp::onLicenseTypeChanged(int index) -{ - if (index >= 0 && index < App::countOfLicenses) { - // existing license - const char* url {App::licenseItems.at(index).at(App::posnOfUrl)}; - ui->prefLicenseUrl->setText(QString::fromLatin1(url)); - ui->prefLicenseUrl->setReadOnly(true); - } - else { - // Other - ui->prefLicenseUrl->clear(); - ui->prefLicenseUrl->setReadOnly(false); - } -} - -#include "moc_DlgSettingsDocumentImp.cpp" +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#include +#include +#include + +#include "DlgSettingsDocumentImp.h" +#include "ui_DlgSettingsDocument.h" + + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettingsDocumentImp */ + +/** + * Constructs a DlgSettingsDocumentImp which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgSettingsDocumentImp::DlgSettingsDocumentImp( QWidget* parent ) + : PreferencePage( parent ) + , ui(new Ui_DlgSettingsDocument) +{ + ui->setupUi(this); + addLicenseTypes(); + + ui->prefSaveTransaction->hide(); + ui->prefDiscardTransaction->hide(); + + QString tip = QString::fromLatin1("

%1

" + "

%2: %Y%m%d-%H%M%S

" + "

%3: C++ strftime" + "

").arg(tr("The format of the date to use."), tr("Default"), tr("Format")); + ui->prefSaveBackupDateFormat->setToolTip(tip); + + ui->prefCountBackupFiles->setMaximum(INT_MAX); + ui->prefCompression->setMinimum(Z_NO_COMPRESSION); + ui->prefCompression->setMaximum(Z_BEST_COMPRESSION); + connect(ui->prefLicenseType, qOverload(&QComboBox::currentIndexChanged), + this, &DlgSettingsDocumentImp::onLicenseTypeChanged); +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettingsDocumentImp::~DlgSettingsDocumentImp() +{ + // no need to delete child widgets, Qt does it all for us +} + + +void DlgSettingsDocumentImp::saveSettings() +{ + ui->prefCheckNewDoc->onSave(); + ui->prefCompression->onSave(); + + ui->prefUndoRedo->onSave(); + ui->prefUndoRedoSize->onSave(); + ui->prefSaveTransaction->onSave(); + ui->prefDiscardTransaction->onSave(); + ui->prefSaveThumbnail->onSave(); + ui->prefThumbnailSize->onSave(); + ui->prefAddLogo->onSave(); + ui->prefSaveBackupFiles->onSave(); + ui->prefCountBackupFiles->onSave(); + ui->prefSaveBackupExtension->onSave(); + ui->prefSaveBackupDateFormat->onSave(); + ui->prefDuplicateLabel->onSave(); + ui->prefPartialLoading->onSave(); + ui->prefLicenseType->onSave(); + ui->prefLicenseUrl->onSave(); + ui->prefAuthor->onSave(); + ui->prefSetAuthorOnSave->onSave(); + ui->prefCompany->onSave(); + ui->prefRecovery->onSave(); + ui->prefAutoSaveEnabled->onSave(); + ui->prefAutoSaveTimeout->onSave(); + ui->prefCanAbortRecompute->onSave(); + + int timeout = ui->prefAutoSaveTimeout->value(); + if (!ui->prefAutoSaveEnabled->isChecked()) + timeout = 0; + AutoSaver::instance()->setTimeout(timeout * 60000); +} + +void DlgSettingsDocumentImp::loadSettings() +{ + ui->prefCheckNewDoc->onRestore(); + ui->prefCompression->onRestore(); + + ui->prefUndoRedo->onRestore(); + ui->prefUndoRedoSize->onRestore(); + ui->prefSaveTransaction->onRestore(); + ui->prefDiscardTransaction->onRestore(); + ui->prefSaveThumbnail->onRestore(); + ui->prefThumbnailSize->onRestore(); + ui->prefAddLogo->onRestore(); + ui->prefSaveBackupFiles->onRestore(); + ui->prefCountBackupFiles->onRestore(); + ui->prefSaveBackupExtension->onRestore(); + ui->prefSaveBackupDateFormat->onRestore(); + ui->prefDuplicateLabel->onRestore(); + ui->prefPartialLoading->onRestore(); + ui->prefLicenseType->onRestore(); + ui->prefLicenseUrl->onRestore(); + ui->prefAuthor->onRestore(); + ui->prefSetAuthorOnSave->onRestore(); + ui->prefCompany->onRestore(); + ui->prefRecovery->onRestore(); + ui->prefAutoSaveEnabled->onRestore(); + ui->prefAutoSaveTimeout->onRestore(); + ui->prefCanAbortRecompute->onRestore(); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsDocumentImp::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + ui->retranslateUi(this); + int index = ui->prefLicenseType->currentIndex(); + addLicenseTypes(); + ui->prefLicenseType->setCurrentIndex(index); + } + else { + QWidget::changeEvent(e); + } +} + +void DlgSettingsDocumentImp::addLicenseTypes() +{ + auto add = [&](const char* what) { + ui->prefLicenseType->addItem( + QApplication::translate("Gui::Dialog::DlgSettingsDocument", what)); + }; + + ui->prefLicenseType->clear(); + for (const auto& licenseItem : App::licenseItems) { + add(licenseItem.at(App::posnOfFullName)); + } + add("Other"); +} + +/** + * Fix Url according to changed type + */ +void DlgSettingsDocumentImp::onLicenseTypeChanged(int index) +{ + if (index >= 0 && index < App::countOfLicenses) { + // existing license + const char* url {App::licenseItems.at(index).at(App::posnOfUrl)}; + ui->prefLicenseUrl->setText(QString::fromLatin1(url)); + ui->prefLicenseUrl->setReadOnly(true); + } + else { + // Other + ui->prefLicenseUrl->clear(); + ui->prefLicenseUrl->setReadOnly(false); + } +} + +#include "moc_DlgSettingsDocumentImp.cpp" diff --git a/src/Gui/DlgSettingsDocumentImp.h b/src/Gui/PreferencePages/DlgSettingsDocumentImp.h similarity index 96% rename from src/Gui/DlgSettingsDocumentImp.h rename to src/Gui/PreferencePages/DlgSettingsDocumentImp.h index 0ccee6b560..80f2357034 100644 --- a/src/Gui/DlgSettingsDocumentImp.h +++ b/src/Gui/PreferencePages/DlgSettingsDocumentImp.h @@ -1,64 +1,64 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H -#define GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H - -#include "PropertyPage.h" -#include - -namespace Gui { -namespace Dialog { -class Ui_DlgSettingsDocument; - -/** - * The DlgSettingsDocumentImp class implements a preference page to change settings - * for the document. - * \author Jürgen Riegel - */ -class DlgSettingsDocumentImp : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettingsDocumentImp( QWidget* parent = nullptr ); - ~DlgSettingsDocumentImp() override; - - void saveSettings() override; - void loadSettings() override; - -protected Q_SLOTS: - void onLicenseTypeChanged(int index); - -protected: - void changeEvent(QEvent *e) override; - void addLicenseTypes(); - -private: - std::unique_ptr ui; -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H +#define GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H + +#include +#include + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsDocument; + +/** + * The DlgSettingsDocumentImp class implements a preference page to change settings + * for the document. + * \author Jürgen Riegel + */ +class DlgSettingsDocumentImp : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsDocumentImp( QWidget* parent = nullptr ); + ~DlgSettingsDocumentImp() override; + + void saveSettings() override; + void loadSettings() override; + +protected Q_SLOTS: + void onLicenseTypeChanged(int index); + +protected: + void changeEvent(QEvent *e) override; + void addLicenseTypes(); + +private: + std::unique_ptr ui; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSDOCUMENT_IMP_H diff --git a/src/Gui/DlgEditorImp.cpp b/src/Gui/PreferencePages/DlgSettingsEditor.cpp similarity index 88% rename from src/Gui/DlgEditorImp.cpp rename to src/Gui/PreferencePages/DlgSettingsEditor.cpp index 7b66a50625..4dd9734c49 100644 --- a/src/Gui/DlgEditorImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsEditor.cpp @@ -1,352 +1,353 @@ -/*************************************************************************** - * Copyright (c) 2004 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#include "PreCompiled.h" -#ifndef _PreComp_ -# include -#endif - -#include "DlgEditorImp.h" -#include "ui_DlgEditor.h" -#include "PythonEditor.h" -#include "Tools.h" -#include - - -using namespace Gui; -using namespace Gui::Dialog; - -namespace Gui { -namespace Dialog { -struct DlgSettingsEditorP -{ - QVector > colormap; // Color map -}; -} // namespace Dialog -} // namespace Gui - -namespace -{ - -/** - * Get some kind of font that is monospaced, suitable for coding. - * - * Based on - * https://stackoverflow.com/questions/18896933/qt-qfont-selection-of-a-monospace-font-doesnt-work - */ -QFont getMonospaceFont() -{ - QFont font(QString::fromLatin1("monospace")); - if (font.fixedPitch()) - return font; - font.setStyleHint(QFont::Monospace); - if (font.fixedPitch()) - return font; - font.setStyleHint(QFont::TypeWriter); - if (font.fixedPitch()) - return font; - font.setFamily(QString::fromLatin1("courier")); - if (font.fixedPitch()) - return font; - return font; // We failed, but return whatever we have anyway -} -} - -/* TRANSLATOR Gui::Dialog::DlgSettingsEditorImp */ - -/** - * Constructs a DlgSettingsEditorImp which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - * - * The dialog will by default be modeless, unless you set 'modal' to - * true to construct a modal dialog. - */ -DlgSettingsEditorImp::DlgSettingsEditorImp( QWidget* parent ) - : PreferencePage( parent ) - , ui(new Ui_DlgEditorSettings) -{ - ui->setupUi(this); - ui->EnableFolding->hide(); // Switch off until we have an editor with folding - - setupConnections(); - -#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) - ui->textEdit1->setTabStopWidth(40); -#else - ui->textEdit1->setTabStopDistance(40.0); -#endif - - d = new DlgSettingsEditorP(); - QColor col; - col = qApp->palette().windowText().color(); - unsigned int lText = App::Color::asPackedRGB(col); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Text")), lText)); - - unsigned int lBookmarks = App::Color::asPackedRGB(QColor(Qt::cyan)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Bookmark")), lBookmarks)); - - unsigned int lBreakpnts = App::Color::asPackedRGB(QColor(Qt::red)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Breakpoint")), lBreakpnts)); - - unsigned int lKeywords = App::Color::asPackedRGB(QColor(Qt::blue)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Keyword")), lKeywords)); - - unsigned int lComments = App::Color::asPackedRGB(QColor(0, 170, 0)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Comment")), lComments)); - - unsigned int lBlockCom = App::Color::asPackedRGB(QColor(160, 160, 164)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Block comment")), lBlockCom)); - - unsigned int lNumbers = App::Color::asPackedRGB(QColor(Qt::blue)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Number")), lNumbers)); - - unsigned int lStrings = App::Color::asPackedRGB(QColor(Qt::red)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("String")), lStrings)); - - unsigned int lCharacter = App::Color::asPackedRGB(QColor(Qt::red)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Character")), lCharacter)); - - unsigned int lClass = App::Color::asPackedRGB(QColor(255, 170, 0)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Class name")), lClass)); - - unsigned int lDefine = App::Color::asPackedRGB(QColor(255, 170, 0)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Define name")), lDefine)); - - unsigned int lOperat = App::Color::asPackedRGB(QColor(160, 160, 164)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Operator")), lOperat)); - - unsigned int lPyOutput = App::Color::asPackedRGB(QColor(170, 170, 127)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Python output")), lPyOutput)); - - unsigned int lPyError = App::Color::asPackedRGB(QColor(Qt::red)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Python error")), lPyError)); - - unsigned int lCLine = App::Color::asPackedRGB(QColor(224, 224, 224)); - d->colormap.push_back(QPair - (QString::fromLatin1(QT_TR_NOOP("Current line highlight")), lCLine)); - - QStringList labels; labels << tr("Items"); - ui->displayItems->setHeaderLabels(labels); - ui->displayItems->header()->hide(); - for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) { - auto item = new QTreeWidgetItem(ui->displayItems); - item->setText(0, tr((*it).first.toLatin1())); - } - pythonSyntax = new PythonSyntaxHighlighter(ui->textEdit1); - pythonSyntax->setDocument(ui->textEdit1->document()); -} - -/** Destroys the object and frees any allocated resources */ -DlgSettingsEditorImp::~DlgSettingsEditorImp() -{ - // no need to delete child widgets, Qt does it all for us - delete pythonSyntax; - delete d; -} - -void DlgSettingsEditorImp::setupConnections() -{ - connect(ui->displayItems, &QTreeWidget::currentItemChanged, - this, &DlgSettingsEditorImp::onDisplayItemsCurrentItemChanged); - connect(ui->colorButton, &ColorButton::changed, - this, &DlgSettingsEditorImp::onColorButtonChanged); -#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) - connect(ui->fontFamily, qOverload(&QComboBox::activated), - this, &DlgSettingsEditorImp::onFontFamilyActivated); - connect(ui->fontSize, qOverload(&PrefSpinBox::valueChanged), - this, &DlgSettingsEditorImp::onFontSizeValueChanged); -#else - connect(ui->fontFamily, &QComboBox::textActivated, - this, &DlgSettingsEditorImp::onFontFamilyActivated); - connect(ui->fontSize, &PrefSpinBox::textChanged, - this, &DlgSettingsEditorImp::onFontSizeValueChanged); -#endif -} - -/** Searches for the color value corresponding to \e name in current editor - * settings ColorMap and assigns it to the color button - * @see Gui::ColorButton - */ -void DlgSettingsEditorImp::onDisplayItemsCurrentItemChanged(QTreeWidgetItem *item) -{ - int index = ui->displayItems->indexOfTopLevelItem(item); - unsigned int col = d->colormap[index].second; - ui->colorButton->setColor(App::Color::fromPackedRGB(col)); -} - -/** Updates the color map if a color was changed */ -void DlgSettingsEditorImp::onColorButtonChanged() -{ - QColor col = ui->colorButton->color(); - unsigned int lcol = App::Color::asPackedRGB(col); - - int index = ui->displayItems->indexOfTopLevelItem(ui->displayItems->currentItem()); - d->colormap[index].second = lcol; - pythonSyntax->setColor( d->colormap[index].first, col ); -} - -void DlgSettingsEditorImp::setEditorTabWidth(int tabWidth) -{ - QFontMetrics metric(font()); - int fontSize = QtTools::horizontalAdvance(metric, QLatin1Char('0')); -#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) - ui->textEdit1->setTabStopWidth(tabWidth * fontSize); -#else - ui->textEdit1->setTabStopDistance(tabWidth * fontSize); -#endif -} - -void DlgSettingsEditorImp::saveSettings() -{ - ui->EnableLineNumber->onSave(); - ui->EnableBlockCursor->onSave(); - ui->EnableFolding->onSave(); - ui->tabSize->onSave(); - ui->indentSize->onSave(); - ui->radioTabs->onSave(); - ui->radioSpaces->onSave(); - - // Saves the color map - ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Editor"); - for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) { - auto col = static_cast((*it).second); - hGrp->SetUnsigned((*it).first.toLatin1(), col); - } - - hGrp->SetInt( "FontSize", ui->fontSize->value() ); - hGrp->SetASCII( "Font", ui->fontFamily->currentText().toLatin1() ); - - setEditorTabWidth(ui->tabSize->value()); -} - -void DlgSettingsEditorImp::loadSettings() -{ - ui->EnableLineNumber->onRestore(); - ui->EnableBlockCursor->onRestore(); - ui->EnableFolding->onRestore(); - ui->tabSize->onRestore(); - ui->indentSize->onRestore(); - ui->radioTabs->onRestore(); - ui->radioSpaces->onRestore(); - - setEditorTabWidth(ui->tabSize->value()); - ui->textEdit1->setPlainText(QString::fromLatin1("# Short Python sample\n" - "import sys\n" - "\n" - "def foo(begin, end):\n" - " i = begin\n" - " while i < end:\n" - " print(i)\n" - " i = i + 1\n" - " print(\"Text\")\n" - " return None\n" - "\n" - "foo(0, 20)\n")); - - // Restores the color map - ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Editor"); - for (QVector>::Iterator it = d->colormap.begin(); - it != d->colormap.end(); ++it) { - auto col = static_cast((*it).second); - col = hGrp->GetUnsigned((*it).first.toLatin1(), col); - (*it).second = static_cast(col); - QColor color = App::Color::fromPackedRGB(col); - pythonSyntax->setColor((*it).first, color); - } - - // fill up font styles - // - ui->fontSize->setValue(10); - ui->fontSize->setValue(hGrp->GetInt("FontSize", ui->fontSize->value())); - - QByteArray defaultMonospaceFont = getMonospaceFont().family().toLatin1(); - -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QStringList familyNames = QFontDatabase().families(QFontDatabase::Any); - QStringList fixedFamilyNames; - for (const auto &name : familyNames) { - if (QFontDatabase().isFixedPitch(name)) { - fixedFamilyNames.append(name); - } - } -#else - QStringList familyNames = QFontDatabase::families(QFontDatabase::Any); - QStringList fixedFamilyNames; - for (const auto &name : familyNames) { - if (QFontDatabase::isFixedPitch(name)) { - fixedFamilyNames.append(name); - } - } -#endif - ui->fontFamily->addItems(fixedFamilyNames); - int index = fixedFamilyNames.indexOf( - QString::fromLatin1(hGrp->GetASCII("Font", defaultMonospaceFont).c_str())); - if (index < 0) - index = 0; - ui->fontFamily->setCurrentIndex(index); - onFontFamilyActivated(ui->fontFamily->currentText()); - ui->displayItems->setCurrentItem(ui->displayItems->topLevelItem(0)); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgSettingsEditorImp::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - int index = 0; - for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) - ui->displayItems->topLevelItem(index++)->setText(0, tr((*it).first.toLatin1())); - ui->retranslateUi(this); - } else { - QWidget::changeEvent(e); - } -} - -void DlgSettingsEditorImp::onFontFamilyActivated(const QString& fontFamily) -{ - int fontSize = ui->fontSize->value(); - QFont ft(fontFamily, fontSize); - ui->textEdit1->setFont(ft); -} - -void DlgSettingsEditorImp::onFontSizeValueChanged(const QString&) -{ - onFontFamilyActivated(ui->fontFamily->currentText()); -} - -#include "moc_DlgEditorImp.cpp" +/*************************************************************************** + * Copyright (c) 2004 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif + +#include +#include +#include + +#include "DlgSettingsEditor.h" +#include "ui_DlgSettingsEditor.h" + + +using namespace Gui; +using namespace Gui::Dialog; + +namespace Gui { +namespace Dialog { +struct DlgSettingsEditorP +{ + QVector > colormap; // Color map +}; +} // namespace Dialog +} // namespace Gui + +namespace +{ + +/** + * Get some kind of font that is monospaced, suitable for coding. + * + * Based on + * https://stackoverflow.com/questions/18896933/qt-qfont-selection-of-a-monospace-font-doesnt-work + */ +QFont getMonospaceFont() +{ + QFont font(QString::fromLatin1("monospace")); + if (font.fixedPitch()) + return font; + font.setStyleHint(QFont::Monospace); + if (font.fixedPitch()) + return font; + font.setStyleHint(QFont::TypeWriter); + if (font.fixedPitch()) + return font; + font.setFamily(QString::fromLatin1("courier")); + if (font.fixedPitch()) + return font; + return font; // We failed, but return whatever we have anyway +} +} + +/* TRANSLATOR Gui::Dialog::DlgSettingsEditor */ + +/** + * Constructs a DlgSettingsEditor which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * true to construct a modal dialog. + */ +DlgSettingsEditor::DlgSettingsEditor( QWidget* parent ) + : PreferencePage( parent ) + , ui(new Ui_DlgSettingsEditor) +{ + ui->setupUi(this); + ui->EnableFolding->hide(); // Switch off until we have an editor with folding + + setupConnections(); + +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + ui->textEdit1->setTabStopWidth(40); +#else + ui->textEdit1->setTabStopDistance(40.0); +#endif + + d = new DlgSettingsEditorP(); + QColor col; + col = qApp->palette().windowText().color(); + unsigned int lText = App::Color::asPackedRGB(col); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Text")), lText)); + + unsigned int lBookmarks = App::Color::asPackedRGB(QColor(Qt::cyan)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Bookmark")), lBookmarks)); + + unsigned int lBreakpnts = App::Color::asPackedRGB(QColor(Qt::red)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Breakpoint")), lBreakpnts)); + + unsigned int lKeywords = App::Color::asPackedRGB(QColor(Qt::blue)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Keyword")), lKeywords)); + + unsigned int lComments = App::Color::asPackedRGB(QColor(0, 170, 0)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Comment")), lComments)); + + unsigned int lBlockCom = App::Color::asPackedRGB(QColor(160, 160, 164)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Block comment")), lBlockCom)); + + unsigned int lNumbers = App::Color::asPackedRGB(QColor(Qt::blue)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Number")), lNumbers)); + + unsigned int lStrings = App::Color::asPackedRGB(QColor(Qt::red)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("String")), lStrings)); + + unsigned int lCharacter = App::Color::asPackedRGB(QColor(Qt::red)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Character")), lCharacter)); + + unsigned int lClass = App::Color::asPackedRGB(QColor(255, 170, 0)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Class name")), lClass)); + + unsigned int lDefine = App::Color::asPackedRGB(QColor(255, 170, 0)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Define name")), lDefine)); + + unsigned int lOperat = App::Color::asPackedRGB(QColor(160, 160, 164)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Operator")), lOperat)); + + unsigned int lPyOutput = App::Color::asPackedRGB(QColor(170, 170, 127)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Python output")), lPyOutput)); + + unsigned int lPyError = App::Color::asPackedRGB(QColor(Qt::red)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Python error")), lPyError)); + + unsigned int lCLine = App::Color::asPackedRGB(QColor(224, 224, 224)); + d->colormap.push_back(QPair + (QString::fromLatin1(QT_TR_NOOP("Current line highlight")), lCLine)); + + QStringList labels; labels << tr("Items"); + ui->displayItems->setHeaderLabels(labels); + ui->displayItems->header()->hide(); + for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) { + auto item = new QTreeWidgetItem(ui->displayItems); + item->setText(0, tr((*it).first.toLatin1())); + } + pythonSyntax = new PythonSyntaxHighlighter(ui->textEdit1); + pythonSyntax->setDocument(ui->textEdit1->document()); +} + +/** Destroys the object and frees any allocated resources */ +DlgSettingsEditor::~DlgSettingsEditor() +{ + // no need to delete child widgets, Qt does it all for us + delete pythonSyntax; + delete d; +} + +void DlgSettingsEditor::setupConnections() +{ + connect(ui->displayItems, &QTreeWidget::currentItemChanged, + this, &DlgSettingsEditor::onDisplayItemsCurrentItemChanged); + connect(ui->colorButton, &ColorButton::changed, + this, &DlgSettingsEditor::onColorButtonChanged); +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + connect(ui->fontFamily, qOverload(&QComboBox::activated), + this, &DlgSettingsEditor::onFontFamilyActivated); + connect(ui->fontSize, qOverload(&PrefSpinBox::valueChanged), + this, &DlgSettingsEditor::onFontSizeValueChanged); +#else + connect(ui->fontFamily, &QComboBox::textActivated, + this, &DlgSettingsEditor::onFontFamilyActivated); + connect(ui->fontSize, &PrefSpinBox::textChanged, + this, &DlgSettingsEditor::onFontSizeValueChanged); +#endif +} + +/** Searches for the color value corresponding to \e name in current editor + * settings ColorMap and assigns it to the color button + * @see Gui::ColorButton + */ +void DlgSettingsEditor::onDisplayItemsCurrentItemChanged(QTreeWidgetItem *item) +{ + int index = ui->displayItems->indexOfTopLevelItem(item); + unsigned int col = d->colormap[index].second; + ui->colorButton->setColor(App::Color::fromPackedRGB(col)); +} + +/** Updates the color map if a color was changed */ +void DlgSettingsEditor::onColorButtonChanged() +{ + QColor col = ui->colorButton->color(); + unsigned int lcol = App::Color::asPackedRGB(col); + + int index = ui->displayItems->indexOfTopLevelItem(ui->displayItems->currentItem()); + d->colormap[index].second = lcol; + pythonSyntax->setColor( d->colormap[index].first, col ); +} + +void DlgSettingsEditor::setEditorTabWidth(int tabWidth) +{ + QFontMetrics metric(font()); + int fontSize = QtTools::horizontalAdvance(metric, QLatin1Char('0')); +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + ui->textEdit1->setTabStopWidth(tabWidth * fontSize); +#else + ui->textEdit1->setTabStopDistance(tabWidth * fontSize); +#endif +} + +void DlgSettingsEditor::saveSettings() +{ + ui->EnableLineNumber->onSave(); + ui->EnableBlockCursor->onSave(); + ui->EnableFolding->onSave(); + ui->tabSize->onSave(); + ui->indentSize->onSave(); + ui->radioTabs->onSave(); + ui->radioSpaces->onSave(); + + // Saves the color map + ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Editor"); + for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) { + auto col = static_cast((*it).second); + hGrp->SetUnsigned((*it).first.toLatin1(), col); + } + + hGrp->SetInt( "FontSize", ui->fontSize->value() ); + hGrp->SetASCII( "Font", ui->fontFamily->currentText().toLatin1() ); + + setEditorTabWidth(ui->tabSize->value()); +} + +void DlgSettingsEditor::loadSettings() +{ + ui->EnableLineNumber->onRestore(); + ui->EnableBlockCursor->onRestore(); + ui->EnableFolding->onRestore(); + ui->tabSize->onRestore(); + ui->indentSize->onRestore(); + ui->radioTabs->onRestore(); + ui->radioSpaces->onRestore(); + + setEditorTabWidth(ui->tabSize->value()); + ui->textEdit1->setPlainText(QString::fromLatin1("# Short Python sample\n" + "import sys\n" + "\n" + "def foo(begin, end):\n" + " i = begin\n" + " while i < end:\n" + " print(i)\n" + " i = i + 1\n" + " print(\"Text\")\n" + " return None\n" + "\n" + "foo(0, 20)\n")); + + // Restores the color map + ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Editor"); + for (QVector>::Iterator it = d->colormap.begin(); + it != d->colormap.end(); ++it) { + auto col = static_cast((*it).second); + col = hGrp->GetUnsigned((*it).first.toLatin1(), col); + (*it).second = static_cast(col); + QColor color = App::Color::fromPackedRGB(col); + pythonSyntax->setColor((*it).first, color); + } + + // fill up font styles + // + ui->fontSize->setValue(10); + ui->fontSize->setValue(hGrp->GetInt("FontSize", ui->fontSize->value())); + + QByteArray defaultMonospaceFont = getMonospaceFont().family().toLatin1(); + +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QStringList familyNames = QFontDatabase().families(QFontDatabase::Any); + QStringList fixedFamilyNames; + for (const auto &name : familyNames) { + if (QFontDatabase().isFixedPitch(name)) { + fixedFamilyNames.append(name); + } + } +#else + QStringList familyNames = QFontDatabase::families(QFontDatabase::Any); + QStringList fixedFamilyNames; + for (const auto &name : familyNames) { + if (QFontDatabase::isFixedPitch(name)) { + fixedFamilyNames.append(name); + } + } +#endif + ui->fontFamily->addItems(fixedFamilyNames); + int index = fixedFamilyNames.indexOf( + QString::fromLatin1(hGrp->GetASCII("Font", defaultMonospaceFont).c_str())); + if (index < 0) + index = 0; + ui->fontFamily->setCurrentIndex(index); + onFontFamilyActivated(ui->fontFamily->currentText()); + ui->displayItems->setCurrentItem(ui->displayItems->topLevelItem(0)); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsEditor::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + int index = 0; + for (QVector >::Iterator it = d->colormap.begin(); it != d->colormap.end(); ++it) + ui->displayItems->topLevelItem(index++)->setText(0, tr((*it).first.toLatin1())); + ui->retranslateUi(this); + } else { + QWidget::changeEvent(e); + } +} + +void DlgSettingsEditor::onFontFamilyActivated(const QString& fontFamily) +{ + int fontSize = ui->fontSize->value(); + QFont ft(fontFamily, fontSize); + ui->textEdit1->setFont(ft); +} + +void DlgSettingsEditor::onFontSizeValueChanged(const QString&) +{ + onFontFamilyActivated(ui->fontFamily->currentText()); +} + +#include "moc_DlgSettingsEditor.cpp" diff --git a/src/Gui/DlgEditorImp.h b/src/Gui/PreferencePages/DlgSettingsEditor.h similarity index 80% rename from src/Gui/DlgEditorImp.h rename to src/Gui/PreferencePages/DlgSettingsEditor.h index 40feddc0e2..cf6e7ecb6d 100644 --- a/src/Gui/DlgEditorImp.h +++ b/src/Gui/PreferencePages/DlgSettingsEditor.h @@ -1,78 +1,78 @@ -/*************************************************************************** - * Copyright (c) 2004 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGEDITORSETTINGSIMP_H -#define GUI_DIALOG_DLGEDITORSETTINGSIMP_H - -#include "PropertyPage.h" -#include - -class QTreeWidgetItem; - -namespace Gui { -class PythonSyntaxHighlighter; - -namespace Dialog { -class Ui_DlgEditorSettings; - -/** This class implements a preferences page for the editor settings. - * Here you can change different color settings and font for editors. - * @author Werner Mayer - */ -struct DlgSettingsEditorP; -class DlgSettingsEditorImp : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettingsEditorImp( QWidget* parent = nullptr ); - ~DlgSettingsEditorImp() override; - -public: - void saveSettings() override; - void loadSettings() override; - -private: - void setupConnections(); - void onDisplayItemsCurrentItemChanged(QTreeWidgetItem *i); - void onColorButtonChanged(); - void onFontFamilyActivated(const QString&); - void onFontSizeValueChanged(const QString&); - -protected: - void changeEvent(QEvent *e) override; - void setEditorTabWidth(int); - -private: - std::unique_ptr ui; - DlgSettingsEditorP* d; - Gui::PythonSyntaxHighlighter* pythonSyntax; - - DlgSettingsEditorImp( const DlgSettingsEditorImp & ); - DlgSettingsEditorImp& operator=( const DlgSettingsEditorImp & ); -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGEDITORSETTINGSIMP_H +/*************************************************************************** + * Copyright (c) 2004 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSEDITOR_H +#define GUI_DIALOG_DLGSETTINGSEDITOR_H + +#include +#include + +class QTreeWidgetItem; + +namespace Gui { +class PythonSyntaxHighlighter; + +namespace Dialog { +class Ui_DlgSettingsEditor; + +/** This class implements a preferences page for the editor settings. + * Here you can change different color settings and font for editors. + * @author Werner Mayer + */ +struct DlgSettingsEditorP; +class DlgSettingsEditor : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsEditor( QWidget* parent = nullptr ); + ~DlgSettingsEditor() override; + +public: + void saveSettings() override; + void loadSettings() override; + +private: + void setupConnections(); + void onDisplayItemsCurrentItemChanged(QTreeWidgetItem *i); + void onColorButtonChanged(); + void onFontFamilyActivated(const QString&); + void onFontSizeValueChanged(const QString&); + +protected: + void changeEvent(QEvent *e) override; + void setEditorTabWidth(int); + +private: + std::unique_ptr ui; + DlgSettingsEditorP* d; + Gui::PythonSyntaxHighlighter* pythonSyntax; + + DlgSettingsEditor( const DlgSettingsEditor & ); + DlgSettingsEditor& operator=( const DlgSettingsEditor & ); +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSEDITOR_H diff --git a/src/Gui/DlgEditor.ui b/src/Gui/PreferencePages/DlgSettingsEditor.ui similarity index 99% rename from src/Gui/DlgEditor.ui rename to src/Gui/PreferencePages/DlgSettingsEditor.ui index ac5ea06568..5cecc7f9a8 100644 --- a/src/Gui/DlgEditor.ui +++ b/src/Gui/PreferencePages/DlgSettingsEditor.ui @@ -1,7 +1,7 @@ - Gui::Dialog::DlgEditorSettings - + Gui::Dialog::DlgSettingsEditor + 0 diff --git a/src/Gui/DlgGeneralImp.cpp b/src/Gui/PreferencePages/DlgSettingsGeneral.cpp similarity index 80% rename from src/Gui/DlgGeneralImp.cpp rename to src/Gui/PreferencePages/DlgSettingsGeneral.cpp index 46b44ba964..44e530e6ce 100644 --- a/src/Gui/DlgGeneralImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsGeneral.cpp @@ -40,53 +40,55 @@ #include -#include "DlgGeneralImp.h" -#include "ui_DlgGeneral.h" -#include "Action.h" -#include "Application.h" -#include "DlgCreateNewPreferencePackImp.h" -#include "DlgPreferencesImp.h" -#include "DlgPreferencePackManagementImp.h" -#include "DlgRevertToBackupConfigImp.h" -#include "MainWindow.h" -#include "PreferencePackManager.h" -#include "Language/Translator.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "DlgSettingsGeneral.h" +#include "ui_DlgSettingsGeneral.h" using namespace Gui::Dialog; namespace fs = boost::filesystem; using namespace Base; -/* TRANSLATOR Gui::Dialog::DlgGeneralImp */ +/* TRANSLATOR Gui::Dialog::DlgSettingsGeneral */ /** - * Constructs a DlgGeneralImp which is a child of 'parent', with the + * Constructs a DlgSettingsGeneral which is a child of 'parent', with the * name 'name' and widget flags set to 'f' * * The dialog will by default be modeless, unless you set 'modal' to * true to construct a modal dialog. */ -DlgGeneralImp::DlgGeneralImp( QWidget* parent ) +DlgSettingsGeneral::DlgSettingsGeneral( QWidget* parent ) : PreferencePage(parent) , localeIndex(0) - , ui(new Ui_DlgGeneral) + , themeChanged(false) + , ui(new Ui_DlgSettingsGeneral) { ui->setupUi(this); recreatePreferencePackMenu(); - connect(ui->ImportConfig, &QPushButton::clicked, this, &DlgGeneralImp::onImportConfigClicked); - connect(ui->SaveNewPreferencePack, &QPushButton::clicked, this, &DlgGeneralImp::saveAsNewPreferencePack); + connect(ui->ImportConfig, &QPushButton::clicked, this, &DlgSettingsGeneral::onImportConfigClicked); + connect(ui->SaveNewPreferencePack, &QPushButton::clicked, this, &DlgSettingsGeneral::saveAsNewPreferencePack); + connect(ui->themesCombobox, qOverload(&QComboBox::activated), this, &DlgSettingsGeneral::onThemeChanged); ui->ManagePreferencePacks->setToolTip(tr("Manage preference packs")); - connect(ui->ManagePreferencePacks, &QPushButton::clicked, this, &DlgGeneralImp::onManagePreferencePacksClicked); + connect(ui->ManagePreferencePacks, &QPushButton::clicked, this, &DlgSettingsGeneral::onManagePreferencePacksClicked); // If there are any saved config file backs, show the revert button, otherwise hide it: const auto & backups = Application::Instance->prefPackManager()->configBackups(); ui->RevertToSavedConfig->setEnabled(backups.empty()); - connect(ui->RevertToSavedConfig, &QPushButton::clicked, this, &DlgGeneralImp::revertToSavedConfig); + connect(ui->RevertToSavedConfig, &QPushButton::clicked, this, &DlgSettingsGeneral::revertToSavedConfig); - connect(ui->comboBox_UnitSystem, qOverload(&QComboBox::currentIndexChanged), this, &DlgGeneralImp::onUnitSystemIndexChanged); + connect(ui->comboBox_UnitSystem, qOverload(&QComboBox::currentIndexChanged), this, &DlgSettingsGeneral::onUnitSystemIndexChanged); ui->spinBoxDecimals->setMaximum(std::numeric_limits::digits10 + 1); int num = static_cast(Base::UnitSystem::NumUnitSystemTypes); @@ -112,7 +114,7 @@ DlgGeneralImp::DlgGeneralImp( QWidget* parent ) /** * Destroys the object and frees any allocated resources */ -DlgGeneralImp::~DlgGeneralImp() +DlgSettingsGeneral::~DlgSettingsGeneral() { } @@ -120,7 +122,7 @@ DlgGeneralImp::~DlgGeneralImp() * @see RecentFilesAction * @see StdCmdRecentFiles */ -void DlgGeneralImp::setRecentFileSize() +void DlgSettingsGeneral::setRecentFileSize() { auto recent = getMainWindow()->findChild (QLatin1String("recentFiles")); @@ -130,7 +132,7 @@ void DlgGeneralImp::setRecentFileSize() } } -bool DlgGeneralImp::setLanguage() +bool DlgSettingsGeneral::setLanguage() { ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General"); QString lang = QLocale::languageToString(QLocale().language()); @@ -144,7 +146,7 @@ bool DlgGeneralImp::setLanguage() return false; } -void DlgGeneralImp::setNumberLocale(bool force/* = false*/) +void DlgSettingsGeneral::setNumberLocale(bool force/* = false*/) { int localeFormat = ui->UseLocaleFormatting->currentIndex(); @@ -170,14 +172,14 @@ void DlgGeneralImp::setNumberLocale(bool force/* = false*/) localeIndex = localeFormat; } -void DlgGeneralImp::setDecimalPointConversion(bool on) +void DlgSettingsGeneral::setDecimalPointConversion(bool on) { if (Translator::instance()->isEnabledDecimalPointConversion() != on) { Translator::instance()->enableDecimalPointConversion(on); } } -void DlgGeneralImp::saveSettings() +void DlgSettingsGeneral::saveSettings() { // must be done as very first because we create a new instance of NavigatorStyle // where we set some attributes afterwards @@ -264,12 +266,11 @@ void DlgGeneralImp::saveSettings() hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); hGrp->SetBool("TiledBackground", ui->tiledBackground->isChecked()); - QVariant sheet = ui->StyleSheets->itemData(ui->StyleSheets->currentIndex()); - hGrp->SetASCII("StyleSheet", (const char*)sheet.toByteArray()); - Application::Instance->setStyleSheet(sheet.toString(), ui->tiledBackground->isChecked()); + if (themeChanged) + saveThemes(); } -void DlgGeneralImp::loadSettings() +void DlgSettingsGeneral::loadSettings() { int FracInch; int cbIndex; @@ -384,57 +385,58 @@ void DlgGeneralImp::loadSettings() hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); ui->tiledBackground->setChecked(hGrp->GetBool("TiledBackground", false)); - // List all .qss/.css files - QMap cssFiles; - QDir dir; - QStringList filter; - filter << QString::fromLatin1("*.qss"); - filter << QString::fromLatin1("*.css"); - - // read from user, resource and built-in directory - QStringList qssPaths = QDir::searchPaths(QString::fromLatin1("qss")); - for (const auto & qssPath : qssPaths) { - dir.setPath(qssPath); - QFileInfoList fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name); - for (const auto & fileName : qAsConst(fileNames)) { - if (cssFiles.find(fileName.baseName()) == cssFiles.end()) { - cssFiles[fileName.baseName()] = fileName.fileName(); - } - } - } - - // now add all unique items - ui->StyleSheets->clear(); - ui->StyleSheets->addItem(tr("No style sheet"), QString::fromLatin1("")); - for (QMap::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) { - ui->StyleSheets->addItem(it.key(), it.value()); - } - - QString selectedStyleSheet = QString::fromLatin1(hGrp->GetASCII("StyleSheet").c_str()); - index = ui->StyleSheets->findData(selectedStyleSheet); - - // might be an absolute path name - if (index < 0 && !selectedStyleSheet.isEmpty()) { - QFileInfo fi(selectedStyleSheet); - if (fi.isAbsolute()) { - QString path = fi.absolutePath(); - if (qssPaths.indexOf(path) >= 0) { - selectedStyleSheet = fi.fileName(); - } - else { - selectedStyleSheet = fi.absoluteFilePath(); - ui->StyleSheets->addItem(fi.baseName(), selectedStyleSheet); - } - - index = ui->StyleSheets->findData(selectedStyleSheet); - } - } - - if (index > -1) - ui->StyleSheets->setCurrentIndex(index); + loadThemes(); } -void DlgGeneralImp::changeEvent(QEvent *event) +void DlgSettingsGeneral::saveThemes() +{ + // First we save the name of the theme + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); + + std::string theme = ui->themesCombobox->currentText().toStdString(); + hGrp->SetASCII("Theme", theme); + + // Then we apply the themepack. + Application::Instance->prefPackManager()->rescan(); + auto packs = Application::Instance->prefPackManager()->preferencePacks(); + + for (const auto& pack : packs) { + if (pack.first == theme) { + + Application::Instance->prefPackManager()->apply(pack.first); + break; + } + } + + // Set the StyleSheet + QString sheet = QString::fromStdString(hGrp->GetASCII("StyleSheet")); + bool tiledBackground = hGrp->GetBool("TiledBackground", false); + Application::Instance->setStyleSheet(sheet, tiledBackground); +} + +void DlgSettingsGeneral::loadThemes() +{ + ui->themesCombobox->clear(); + + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); + + QString currentTheme = QString::fromLatin1(hGrp->GetASCII("Theme", "").c_str()); + + Application::Instance->prefPackManager()->rescan(); + auto packs = Application::Instance->prefPackManager()->preferencePacks(); + for (const auto& pack : packs) { + if (pack.second.metadata().type() == "Theme") { + ui->themesCombobox->addItem(QString::fromStdString(pack.first)); + } + } + + int index = ui->themesCombobox->findText(currentTheme); + if (index >= 0 && index < ui->themesCombobox->count()) { + ui->themesCombobox->setCurrentIndex(index); + } +} + +void DlgSettingsGeneral::changeEvent(QEvent *event) { if (event->type() == QEvent::LanguageChange) { int index = ui->UseLocaleFormatting->currentIndex(); @@ -450,7 +452,7 @@ void DlgGeneralImp::changeEvent(QEvent *event) } } -void DlgGeneralImp::recreatePreferencePackMenu() +void DlgSettingsGeneral::recreatePreferencePackMenu() { ui->PreferencePacks->setRowCount(0); // Begin by clearing whatever is there ui->PreferencePacks->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); @@ -470,6 +472,17 @@ void DlgGeneralImp::recreatePreferencePackMenu() Application::Instance->prefPackManager()->rescan(); auto packs = Application::Instance->prefPackManager()->preferencePacks(); + // Remove the Themes. + std::vector packsToRemove; + for (const auto& pack : packs) { + if (pack.second.metadata().type() == "Theme") { + packsToRemove.push_back(pack.first); // Store the keys to remove later + } + } + for (const auto& key : packsToRemove) { + packs.erase(key); // Remove the elements from the map + } + ui->PreferencePacks->setRowCount(packs.size()); int row = 0; @@ -496,18 +509,18 @@ void DlgGeneralImp::recreatePreferencePackMenu() } } -void DlgGeneralImp::saveAsNewPreferencePack() +void DlgSettingsGeneral::saveAsNewPreferencePack() { // Create and run a modal New PreferencePack dialog box auto packs = Application::Instance->prefPackManager()->preferencePackNames(); newPreferencePackDialog = std::make_unique(this); newPreferencePackDialog->setPreferencePackTemplates(Application::Instance->prefPackManager()->templateFiles()); newPreferencePackDialog->setPreferencePackNames(packs); - connect(newPreferencePackDialog.get(), &DlgCreateNewPreferencePackImp::accepted, this, &DlgGeneralImp::newPreferencePackDialogAccepted); + connect(newPreferencePackDialog.get(), &DlgCreateNewPreferencePackImp::accepted, this, &DlgSettingsGeneral::newPreferencePackDialogAccepted); newPreferencePackDialog->open(); } -void DlgGeneralImp::revertToSavedConfig() +void DlgSettingsGeneral::revertToSavedConfig() { revertToBackupConfigDialog = std::make_unique(this); connect(revertToBackupConfigDialog.get(), &DlgRevertToBackupConfigImp::accepted, this, [this]() { @@ -519,7 +532,7 @@ void DlgGeneralImp::revertToSavedConfig() revertToBackupConfigDialog->open(); } -void DlgGeneralImp::newPreferencePackDialogAccepted() +void DlgSettingsGeneral::newPreferencePackDialogAccepted() { auto preferencePackTemplates = Application::Instance->prefPackManager()->templateFiles(); auto selection = newPreferencePackDialog->selectedTemplates(); @@ -537,17 +550,17 @@ void DlgGeneralImp::newPreferencePackDialogAccepted() recreatePreferencePackMenu(); } -void DlgGeneralImp::onManagePreferencePacksClicked() +void DlgSettingsGeneral::onManagePreferencePacksClicked() { if (!this->preferencePackManagementDialog) { this->preferencePackManagementDialog = std::make_unique(this); connect(this->preferencePackManagementDialog.get(), &DlgPreferencePackManagementImp::packVisibilityChanged, - this, &DlgGeneralImp::recreatePreferencePackMenu); + this, &DlgSettingsGeneral::recreatePreferencePackMenu); } this->preferencePackManagementDialog->show(); } -void DlgGeneralImp::onImportConfigClicked() +void DlgSettingsGeneral::onImportConfigClicked() { auto path = fs::path(QFileDialog::getOpenFileName(this, tr("Choose a FreeCAD config file to import"), @@ -572,7 +585,7 @@ void DlgGeneralImp::onImportConfigClicked() } } -void DlgGeneralImp::onLoadPreferencePackClicked(const std::string& packName) +void DlgSettingsGeneral::onLoadPreferencePackClicked(const std::string& packName) { if (Application::Instance->prefPackManager()->apply(packName)) { auto parentDialog = qobject_cast (this->window()); @@ -581,7 +594,7 @@ void DlgGeneralImp::onLoadPreferencePackClicked(const std::string& packName) } } -void DlgGeneralImp::onUnitSystemIndexChanged(int index) +void DlgSettingsGeneral::onUnitSystemIndexChanged(int index) { if (index < 0) return; // happens when clearing the combo box in retranslateUi() @@ -612,4 +625,9 @@ void DlgGeneralImp::on_checkBox_projectUnitSystemIgnore_stateChanged(int state) } } -#include "moc_DlgGeneralImp.cpp" +void DlgSettingsGeneral::onThemeChanged(int index) { + Q_UNUSED(index); + themeChanged = true; +} + +#include "moc_DlgSettingsGeneral.cpp" diff --git a/src/Gui/DlgGeneralImp.h b/src/Gui/PreferencePages/DlgSettingsGeneral.h similarity index 84% rename from src/Gui/DlgGeneralImp.h rename to src/Gui/PreferencePages/DlgSettingsGeneral.h index 1d40b8f370..7e7b7ba55b 100644 --- a/src/Gui/DlgGeneralImp.h +++ b/src/Gui/PreferencePages/DlgSettingsGeneral.h @@ -23,10 +23,10 @@ ***************************************************************************/ -#ifndef GUI_DIALOG_DLGGENERALIMP_H -#define GUI_DIALOG_DLGGENERALIMP_H - -#include "PropertyPage.h" +#ifndef GUI_DIALOG_DLGSETTINGSGENERAL_H +#define GUI_DIALOG_DLGSETTINGSGENERAL_H + +#include #include #include @@ -34,7 +34,7 @@ class QTabWidget; namespace Gui { namespace Dialog { -class Ui_DlgGeneral; +class Ui_DlgSettingsGeneral; class DlgCreateNewPreferencePackImp; class DlgPreferencePackManagementImp; class DlgRevertToBackupConfigImp; @@ -43,17 +43,20 @@ class DlgRevertToBackupConfigImp; * You can change window style, size of pixmaps, size of recent file list and so on * \author Werner Mayer */ -class DlgGeneralImp : public PreferencePage +class DlgSettingsGeneral : public PreferencePage { Q_OBJECT public: - explicit DlgGeneralImp( QWidget* parent = nullptr ); - ~DlgGeneralImp() override; + explicit DlgSettingsGeneral( QWidget* parent = nullptr ); + ~DlgSettingsGeneral() override; void saveSettings() override; void loadSettings() override; + void saveThemes(); + void loadThemes(); + protected: void changeEvent(QEvent *event) override; @@ -63,6 +66,7 @@ protected Q_SLOTS: void newPreferencePackDialogAccepted(); void onManagePreferencePacksClicked(); void onImportConfigClicked(); + void onThemeChanged(int index); public Q_SLOTS: void onUnitSystemIndexChanged(int index); @@ -78,7 +82,8 @@ private: private: int localeIndex; - std::unique_ptr ui; + bool themeChanged; + std::unique_ptr ui; std::unique_ptr newPreferencePackDialog; std::unique_ptr preferencePackManagementDialog; std::unique_ptr revertToBackupConfigDialog; @@ -87,4 +92,4 @@ private: } // namespace Dialog } // namespace Gui -#endif // GUI_DIALOG_DLGGENERALIMP_H +#endif // GUI_DIALOG_DLGSETTINGSGENERAL_H diff --git a/src/Gui/DlgGeneral.ui b/src/Gui/PreferencePages/DlgSettingsGeneral.ui similarity index 98% rename from src/Gui/DlgGeneral.ui rename to src/Gui/PreferencePages/DlgSettingsGeneral.ui index ef0816048b..e457b417c4 100644 --- a/src/Gui/DlgGeneral.ui +++ b/src/Gui/PreferencePages/DlgSettingsGeneral.ui @@ -1,7 +1,7 @@ - Gui::Dialog::DlgGeneral - + Gui::Dialog::DlgSettingsGeneral + 0 @@ -240,16 +240,16 @@ dot/period will always be printed. 6 - + - Style sheet: + Theme: - + - Style sheet how user interface will look like + Customize how user interface will look like diff --git a/src/Gui/DlgSettingsMacro.ui b/src/Gui/PreferencePages/DlgSettingsMacro.ui similarity index 100% rename from src/Gui/DlgSettingsMacro.ui rename to src/Gui/PreferencePages/DlgSettingsMacro.ui diff --git a/src/Gui/DlgSettingsMacroImp.cpp b/src/Gui/PreferencePages/DlgSettingsMacroImp.cpp similarity index 95% rename from src/Gui/DlgSettingsMacroImp.cpp rename to src/Gui/PreferencePages/DlgSettingsMacroImp.cpp index bf57d012d3..fb548c6666 100644 --- a/src/Gui/DlgSettingsMacroImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsMacroImp.cpp @@ -1,119 +1,120 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - -#include "PreCompiled.h" - -#include "DlgSettingsMacroImp.h" -#include "ui_DlgSettingsMacro.h" -#include "Action.h" -#include "Application.h" -#include "MainWindow.h" - -using namespace Gui::Dialog; - -/* TRANSLATOR Gui::Dialog::DlgSettingsMacroImp */ - -/** - * Constructs a DlgSettingsMacroImp which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgSettingsMacroImp::DlgSettingsMacroImp( QWidget* parent ) - : PreferencePage( parent ) - , ui(new Ui_DlgSettingsMacro) -{ - ui->setupUi(this); - - // Was never implemented, so hide it - ui->FileLogCheckBox->hide(); - ui->MacroPath_2->hide(); - - if (ui->MacroPath->fileName().isEmpty()) { - QDir d(QString::fromUtf8(App::GetApplication().getUserMacroDir().c_str())); - ui->MacroPath->setFileName(d.path()); - } -} - -/** - * Destroys the object and frees any allocated resources - */ -DlgSettingsMacroImp::~DlgSettingsMacroImp() -{ - // no need to delete child widgets, Qt does it all for us -} -/** Sets the size of the recent macros list from the user parameters. - * @see RecentMacrosAction - * @see StdCmdRecentMacros - */ -void DlgSettingsMacroImp::setRecentMacroSize() -{ - auto recent = getMainWindow()->findChild(QLatin1String("recentMacros")); - if (recent) { - ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); - recent->resizeList(hGrp->GetInt("RecentMacros", 4)); - } -} - -void DlgSettingsMacroImp::saveSettings() -{ - ui->PrefCheckBox_LocalEnv->onSave(); - ui->MacroPath->onSave(); - ui->PrefCheckBox_RecordGui->onSave(); - ui->PrefCheckBox_GuiAsComment->onSave(); - ui->PConsoleCheckBox->onSave(); - ui->FileLogCheckBox->onSave(); - ui->MacroPath_2->onSave(); - ui->RecentMacros->onSave(); - ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); - hGrp->SetASCII("ShortcutModifiers", qPrintable(ui->ShortcutModifiers->text())); - ui->ShortcutCount->onSave(); - setRecentMacroSize(); -} - -void DlgSettingsMacroImp::loadSettings() -{ - ui->PrefCheckBox_LocalEnv->onRestore(); - ui->MacroPath->onRestore(); - ui->PrefCheckBox_RecordGui->onRestore(); - ui->PrefCheckBox_GuiAsComment->onRestore(); - ui->PConsoleCheckBox->onRestore(); - ui->FileLogCheckBox->onRestore(); - ui->MacroPath_2->onRestore(); - ui->RecentMacros->onRestore(); - ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); - ui->ShortcutModifiers->setText(QString::fromStdString(hGrp->GetASCII("ShortcutModifiers", "Ctrl+Shift+"))); - ui->ShortcutCount->onRestore(); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgSettingsMacroImp::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - ui->retranslateUi(this); - } - else { - QWidget::changeEvent(e); - } -} - -#include "moc_DlgSettingsMacroImp.cpp" +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#include +#include +#include + +#include "DlgSettingsMacroImp.h" +#include "ui_DlgSettingsMacro.h" + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettingsMacroImp */ + +/** + * Constructs a DlgSettingsMacroImp which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgSettingsMacroImp::DlgSettingsMacroImp( QWidget* parent ) + : PreferencePage( parent ) + , ui(new Ui_DlgSettingsMacro) +{ + ui->setupUi(this); + + // Was never implemented, so hide it + ui->FileLogCheckBox->hide(); + ui->MacroPath_2->hide(); + + if (ui->MacroPath->fileName().isEmpty()) { + QDir d(QString::fromUtf8(App::GetApplication().getUserMacroDir().c_str())); + ui->MacroPath->setFileName(d.path()); + } +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettingsMacroImp::~DlgSettingsMacroImp() +{ + // no need to delete child widgets, Qt does it all for us +} +/** Sets the size of the recent macros list from the user parameters. + * @see RecentMacrosAction + * @see StdCmdRecentMacros + */ +void DlgSettingsMacroImp::setRecentMacroSize() +{ + auto recent = getMainWindow()->findChild(QLatin1String("recentMacros")); + if (recent) { + ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); + recent->resizeList(hGrp->GetInt("RecentMacros", 4)); + } +} + +void DlgSettingsMacroImp::saveSettings() +{ + ui->PrefCheckBox_LocalEnv->onSave(); + ui->MacroPath->onSave(); + ui->PrefCheckBox_RecordGui->onSave(); + ui->PrefCheckBox_GuiAsComment->onSave(); + ui->PConsoleCheckBox->onSave(); + ui->FileLogCheckBox->onSave(); + ui->MacroPath_2->onSave(); + ui->RecentMacros->onSave(); + ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); + hGrp->SetASCII("ShortcutModifiers", qPrintable(ui->ShortcutModifiers->text())); + ui->ShortcutCount->onSave(); + setRecentMacroSize(); +} + +void DlgSettingsMacroImp::loadSettings() +{ + ui->PrefCheckBox_LocalEnv->onRestore(); + ui->MacroPath->onRestore(); + ui->PrefCheckBox_RecordGui->onRestore(); + ui->PrefCheckBox_GuiAsComment->onRestore(); + ui->PConsoleCheckBox->onRestore(); + ui->FileLogCheckBox->onRestore(); + ui->MacroPath_2->onRestore(); + ui->RecentMacros->onRestore(); + ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("RecentMacros"); + ui->ShortcutModifiers->setText(QString::fromStdString(hGrp->GetASCII("ShortcutModifiers", "Ctrl+Shift+"))); + ui->ShortcutCount->onRestore(); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsMacroImp::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + ui->retranslateUi(this); + } + else { + QWidget::changeEvent(e); + } +} + +#include "moc_DlgSettingsMacroImp.cpp" diff --git a/src/Gui/DlgSettingsMacroImp.h b/src/Gui/PreferencePages/DlgSettingsMacroImp.h similarity index 96% rename from src/Gui/DlgSettingsMacroImp.h rename to src/Gui/PreferencePages/DlgSettingsMacroImp.h index cff2bbdfa3..9ebb246d41 100644 --- a/src/Gui/DlgSettingsMacroImp.h +++ b/src/Gui/PreferencePages/DlgSettingsMacroImp.h @@ -1,61 +1,61 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGSMACROIMP_H -#define GUI_DIALOG_DLGSETTINGSMACROIMP_H - -#include "PropertyPage.h" -#include - -namespace Gui { -namespace Dialog { -class Ui_DlgSettingsMacro; - -/** - * The DlgSettingsMacroImp class implements a preference page to change settings - * for macro stuff. - * \author Jürgen Riegel - */ -class DlgSettingsMacroImp : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettingsMacroImp( QWidget* parent = nullptr ); - ~DlgSettingsMacroImp() override; - - void saveSettings() override; - void loadSettings() override; - -protected: - void changeEvent(QEvent *e) override; - -private: - std::unique_ptr ui; - void setRecentMacroSize(); -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGSMACROIMP_H +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSMACROIMP_H +#define GUI_DIALOG_DLGSETTINGSMACROIMP_H + +#include +#include + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsMacro; + +/** + * The DlgSettingsMacroImp class implements a preference page to change settings + * for macro stuff. + * \author Jürgen Riegel + */ +class DlgSettingsMacroImp : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsMacroImp( QWidget* parent = nullptr ); + ~DlgSettingsMacroImp() override; + + void saveSettings() override; + void loadSettings() override; + +protected: + void changeEvent(QEvent *e) override; + +private: + std::unique_ptr ui; + void setRecentMacroSize(); +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSMACROIMP_H diff --git a/src/Gui/DlgSettingsNavigation.cpp b/src/Gui/PreferencePages/DlgSettingsNavigation.cpp similarity index 96% rename from src/Gui/DlgSettingsNavigation.cpp rename to src/Gui/PreferencePages/DlgSettingsNavigation.cpp index 2b148cc1ce..3defa2a97c 100644 --- a/src/Gui/DlgSettingsNavigation.cpp +++ b/src/Gui/PreferencePages/DlgSettingsNavigation.cpp @@ -1,377 +1,378 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - -#include "PreCompiled.h" - -#ifndef _PreComp_ -# include -# include -# include -# include -#endif - -#include -#include -#include - -#include "DlgSettingsNavigation.h" -#include "ui_DlgSettingsNavigation.h" -#include "MainWindow.h" -#include "View3DSettings.h" -#include "NavigationStyle.h" -#include "View3DInventor.h" -#include "View3DInventorViewer.h" -#include "ui_MouseButtons.h" - - -using namespace Gui::Dialog; - -/* TRANSLATOR Gui::Dialog::DlgSettingsNavigation */ - -/** - * Constructs a DlgSettingsNavigation which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgSettingsNavigation::DlgSettingsNavigation(QWidget* parent) - : PreferencePage( parent ) - , ui(new Ui_DlgSettingsNavigation) - , q0(0), q1(0), q2(0), q3(1) -{ - ui->setupUi(this); - ui->naviCubeBaseColor->setAllowTransparency(true); - retranslate(); -} - -/** - * Destroys the object and frees any allocated resources - */ -DlgSettingsNavigation::~DlgSettingsNavigation() -{ -} - -void DlgSettingsNavigation::saveSettings() -{ - // must be done as very first because we create a new instance of NavigatorStyle - // where we set some attributes afterwards - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath - ("User parameter:BaseApp/Preferences/View"); - QVariant data = ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), - Qt::UserRole); - hGrp->SetASCII("NavigationStyle", (const char*)data.toByteArray()); - - int index = ui->comboOrbitStyle->currentIndex(); - hGrp->SetInt("OrbitStyle", index); - index = ui->comboRotationMode->currentIndex(); - hGrp->SetInt("RotationMode", index); - - ui->checkBoxZoomAtCursor->onSave(); - ui->checkBoxInvertZoom->onSave(); - ui->checkBoxDisableTilt->onSave(); - ui->spinBoxZoomStep->onSave(); - ui->checkBoxUseAutoRotation->onSave(); - ui->qspinNewDocScale->onSave(); - ui->prefStepByTurn->onSave(); - ui->naviCubeCorner->onSave(); - ui->naviCubeToNearest->onSave(); - ui->prefCubeSize->onSave(); - ui->naviCubeBaseColor->onSave(); - - bool showNaviCube = ui->groupBoxNaviCube->isChecked(); - hGrp->SetBool("ShowNaviCube", showNaviCube); - - QVariant camera = ui->comboNewDocView->itemData(ui->comboNewDocView->currentIndex(), - Qt::UserRole); - hGrp->SetASCII("NewDocumentCameraOrientation", (const char*)camera.toByteArray()); - if (camera == QByteArray("Custom")) { - ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); - hCustom->SetFloat("Q0", q0); - hCustom->SetFloat("Q1", q1); - hCustom->SetFloat("Q2", q2); - hCustom->SetFloat("Q3", q3); - } - hGrp = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/NaviCube"); - if (ui->naviCubeFontName->currentIndex()) { - hGrp->SetASCII("FontString", ui->naviCubeFontName->currentText().toLatin1()); - } else { - hGrp->RemoveASCII("FontString"); - } -} - -void DlgSettingsNavigation::loadSettings() -{ - ui->checkBoxZoomAtCursor->onRestore(); - ui->checkBoxInvertZoom->onRestore(); - ui->checkBoxDisableTilt->onRestore(); - ui->spinBoxZoomStep->onRestore(); - ui->checkBoxUseAutoRotation->onRestore(); - ui->qspinNewDocScale->onRestore(); - ui->prefStepByTurn->onRestore(); - ui->naviCubeCorner->onRestore(); - ui->naviCubeToNearest->onRestore(); - ui->prefCubeSize->onRestore(); - ui->naviCubeBaseColor->onRestore(); - - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath - ("User parameter:BaseApp/Preferences/View"); - std::string model = hGrp->GetASCII("NavigationStyle", CADNavigationStyle::getClassTypeId().getName()); - int index = ui->comboNavigationStyle->findData(QByteArray(model.c_str())); - if (index > -1) ui->comboNavigationStyle->setCurrentIndex(index); - - index = hGrp->GetInt("OrbitStyle", int(NavigationStyle::Trackball)); - index = Base::clamp(index, 0, ui->comboOrbitStyle->count()-1); - ui->comboOrbitStyle->setCurrentIndex(index); - - index = hGrp->GetInt("RotationMode", 1); - ui->comboRotationMode->setCurrentIndex(index); - - bool showNaviCube = hGrp->GetBool("ShowNaviCube", true); - ui->groupBoxNaviCube->setChecked(showNaviCube); - - ui->comboNewDocView->addItem(tr("Isometric"), QByteArray("Isometric")); - ui->comboNewDocView->addItem(tr("Dimetric"), QByteArray("Dimetric")); - ui->comboNewDocView->addItem(tr("Trimetric"), QByteArray("Trimetric")); - ui->comboNewDocView->addItem(tr("Top"), QByteArray("Top")); - ui->comboNewDocView->addItem(tr("Front"), QByteArray("Front")); - ui->comboNewDocView->addItem(tr("Left"), QByteArray("Left")); - ui->comboNewDocView->addItem(tr("Right"), QByteArray("Right")); - ui->comboNewDocView->addItem(tr("Rear"), QByteArray("Rear")); - ui->comboNewDocView->addItem(tr("Bottom"), QByteArray("Bottom")); - ui->comboNewDocView->addItem(tr("Custom"), QByteArray("Custom")); - std::string camera = hGrp->GetASCII("NewDocumentCameraOrientation", "Trimetric"); - index = ui->comboNewDocView->findData(QByteArray(camera.c_str())); - if (index > -1) ui->comboNewDocView->setCurrentIndex(index); - if (camera == "Custom") { - ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); - q0 = hCustom->GetFloat("Q0", q0); - q1 = hCustom->GetFloat("Q1", q1); - q2 = hCustom->GetFloat("Q2", q2); - q3 = hCustom->GetFloat("Q3", q3); - } - - connect(ui->comboNewDocView, qOverload(&QComboBox::currentIndexChanged), - this, &DlgSettingsNavigation::onNewDocViewChanged); - connect(ui->mouseButton, &QPushButton::clicked, - this, &DlgSettingsNavigation::onMouseButtonClicked); - - // fill up font styles - - // we purposely allow all available fonts on the system -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - QStringList familyNames = QFontDatabase().families(QFontDatabase::Any); -#else - QStringList familyNames = QFontDatabase::families(QFontDatabase::Any); -#endif - ui->naviCubeFontName->addItems(familyNames); - - hGrp = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/NaviCube"); - int indexFamilyNames = familyNames.indexOf( - QString::fromStdString(hGrp->GetASCII("FontString"))); - ui->naviCubeFontName->setCurrentIndex(indexFamilyNames + 1); - -} - -void DlgSettingsNavigation::onMouseButtonClicked() -{ - QDialog dlg(this); - Ui_MouseButtons uimb; - uimb.setupUi(&dlg); - - QVariant data = - ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), Qt::UserRole); - void* instance = Base::Type::createInstanceByName((const char*)data.toByteArray()); - std::unique_ptr ns(static_cast(instance)); - uimb.groupBox->setTitle(uimb.groupBox->title() + QString::fromLatin1(" ") - + ui->comboNavigationStyle->currentText()); - QString descr; - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::SELECTION)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.selectionLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::PANNING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.panningLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::DRAGGING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.rotationLabel->setText(QString::fromLatin1("%1").arg(descr)); - descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::ZOOMING)); - descr.replace(QLatin1String("\n"), QLatin1String("

")); - uimb.zoomingLabel->setText(QString::fromLatin1("%1").arg(descr)); - dlg.exec(); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgSettingsNavigation::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - int navigation = ui->comboNavigationStyle->currentIndex(); - int orbit = ui->comboOrbitStyle->currentIndex(); - int corner = ui->naviCubeCorner->currentIndex(); - ui->retranslateUi(this); - retranslate(); - ui->comboNavigationStyle->setCurrentIndex(navigation); - ui->comboOrbitStyle->setCurrentIndex(orbit); - ui->naviCubeCorner->setCurrentIndex(corner); - } - else { - QWidget::changeEvent(e); - } -} - -void DlgSettingsNavigation::retranslate() -{ - ui->comboNavigationStyle->clear(); - - // add submenu at the end to select navigation style - std::map styles = UserNavigationStyle::getUserFriendlyNames(); - for (const auto & style : styles) { - QByteArray data(style.first.getName()); - QString name = QApplication::translate(style.first.getName(), style.second.c_str()); - - ui->comboNavigationStyle->addItem(name, data); - } -} - -void DlgSettingsNavigation::onNewDocViewChanged(int index) -{ - QVariant camera = ui->comboNewDocView->itemData(index, Qt::UserRole); - if (camera == QByteArray("Custom")) { - CameraDialog dlg(this); - dlg.setValues(q0, q1, q2, q3); - if (dlg.exec()) { - dlg.getValues(q0, q1, q2, q3); - } - } -} - -// ---------------------------------------------------------------------------- - -CameraDialog::CameraDialog(QWidget* parent) - : QDialog(parent) -{ - this->setWindowTitle(tr("Camera settings")); - - QGridLayout *gridLayout; - gridLayout = new QGridLayout(this); - - QGroupBox *groupBox; - groupBox = new QGroupBox(this); - groupBox->setTitle(tr("Orientation")); - gridLayout->addWidget(groupBox, 0, 0, 1, 1); - - QDialogButtonBox *buttonBox; - buttonBox = new QDialogButtonBox(this); - buttonBox->setOrientation(Qt::Horizontal); - buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); - gridLayout->addWidget(buttonBox, 3, 0, 1, 1); - - QGridLayout *layout; - layout = new QGridLayout(groupBox); - - // Q0 - auto label0 = new QLabel(groupBox); - label0->setText(tr("Q0")); - layout->addWidget(label0, 0, 0, 1, 1); - - sb0 = new QDoubleSpinBox(groupBox); - sb0->setRange(-1, 1); - sb0->setSingleStep(0.1); - layout->addWidget(sb0, 0, 1, 1, 1); - - // Q1 - auto label1 = new QLabel(groupBox); - label1->setText(tr("Q1")); - layout->addWidget(label1, 1, 0, 1, 1); - - sb1 = new QDoubleSpinBox(groupBox); - sb1->setRange(-1, 1); - sb1->setSingleStep(0.1); - layout->addWidget(sb1, 1, 1, 1, 1); - - // Q2 - auto label2 = new QLabel(groupBox); - label2->setText(tr("Q2")); - layout->addWidget(label2, 2, 0, 1, 1); - - sb2 = new QDoubleSpinBox(groupBox); - sb2->setRange(-1, 1); - sb2->setSingleStep(0.1); - layout->addWidget(sb2, 2, 1, 1, 1); - - // Q3 - auto label3 = new QLabel(groupBox); - label3->setText(tr("Q3")); - layout->addWidget(label3, 3, 0, 1, 1); - - sb3 = new QDoubleSpinBox(groupBox); - sb3->setRange(-1, 1); - sb3->setSingleStep(0.1); - layout->addWidget(sb3, 3, 1, 1, 1); - - auto currentViewButton = new QPushButton(this); - currentViewButton->setText(tr("Current view")); - currentViewButton->setObjectName(QString::fromLatin1("currentView")); - layout->addWidget(currentViewButton, 4, 1, 2, 1); - - connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); - connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); - connect(currentViewButton, &QPushButton::clicked, this, - &CameraDialog::onCurrentViewClicked); -} - -CameraDialog::~CameraDialog() -{ -} - -void CameraDialog::setValues(double q0, double q1, double q2, double q3) -{ - sb0->setValue(q0); - sb1->setValue(q1); - sb2->setValue(q2); - sb3->setValue(q3); -} - -void CameraDialog::getValues(double& q0, double& q1, double& q2, double& q3) const -{ - q0 = sb0->value(); - q1 = sb1->value(); - q2 = sb2->value(); - q3 = sb3->value(); -} - -void CameraDialog::onCurrentViewClicked() -{ - auto mdi = qobject_cast(getMainWindow()->activeWindow()); - if (mdi) { - SbRotation rot = mdi->getViewer()->getCameraOrientation(); - const float* q = rot.getValue(); - sb0->setValue(q[0]); - sb1->setValue(q[1]); - sb2->setValue(q[2]); - sb3->setValue(q[3]); - } -} - -#include "moc_DlgSettingsNavigation.cpp" - +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#ifndef _PreComp_ +# include +# include +# include +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "DlgSettingsNavigation.h" +#include "ui_DlgSettingsNavigation.h" + +#include "../ui_MouseButtons.h" + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettingsNavigation */ + +/** + * Constructs a DlgSettingsNavigation which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgSettingsNavigation::DlgSettingsNavigation(QWidget* parent) + : PreferencePage( parent ) + , ui(new Ui_DlgSettingsNavigation) + , q0(0), q1(0), q2(0), q3(1) +{ + ui->setupUi(this); + ui->naviCubeBaseColor->setAllowTransparency(true); + retranslate(); +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettingsNavigation::~DlgSettingsNavigation() +{ +} + +void DlgSettingsNavigation::saveSettings() +{ + // must be done as very first because we create a new instance of NavigatorStyle + // where we set some attributes afterwards + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath + ("User parameter:BaseApp/Preferences/View"); + QVariant data = ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), + Qt::UserRole); + hGrp->SetASCII("NavigationStyle", (const char*)data.toByteArray()); + + int index = ui->comboOrbitStyle->currentIndex(); + hGrp->SetInt("OrbitStyle", index); + index = ui->comboRotationMode->currentIndex(); + hGrp->SetInt("RotationMode", index); + + ui->checkBoxZoomAtCursor->onSave(); + ui->checkBoxInvertZoom->onSave(); + ui->checkBoxDisableTilt->onSave(); + ui->checkBoxShowRotationCenter->onSave(); + ui->spinBoxZoomStep->onSave(); + ui->checkBoxUseAutoRotation->onSave(); + ui->qspinNewDocScale->onSave(); + ui->prefStepByTurn->onSave(); + ui->naviCubeCorner->onSave(); + ui->naviCubeToNearest->onSave(); + ui->prefCubeSize->onSave(); + ui->naviCubeBaseColor->onSave(); + + bool showNaviCube = ui->groupBoxNaviCube->isChecked(); + hGrp->SetBool("ShowNaviCube", showNaviCube); + + QVariant camera = ui->comboNewDocView->itemData(ui->comboNewDocView->currentIndex(), + Qt::UserRole); + hGrp->SetASCII("NewDocumentCameraOrientation", (const char*)camera.toByteArray()); + if (camera == QByteArray("Custom")) { + ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); + hCustom->SetFloat("Q0", q0); + hCustom->SetFloat("Q1", q1); + hCustom->SetFloat("Q2", q2); + hCustom->SetFloat("Q3", q3); + } + hGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/NaviCube"); + if (ui->naviCubeFontName->currentIndex()) { + hGrp->SetASCII("FontString", ui->naviCubeFontName->currentText().toLatin1()); + } else { + hGrp->RemoveASCII("FontString"); + } +} + +void DlgSettingsNavigation::loadSettings() +{ + ui->checkBoxZoomAtCursor->onRestore(); + ui->checkBoxInvertZoom->onRestore(); + ui->checkBoxDisableTilt->onRestore(); + ui->checkBoxShowRotationCenter->onRestore(); + ui->spinBoxZoomStep->onRestore(); + ui->checkBoxUseAutoRotation->onRestore(); + ui->qspinNewDocScale->onRestore(); + ui->prefStepByTurn->onRestore(); + ui->naviCubeCorner->onRestore(); + ui->naviCubeToNearest->onRestore(); + ui->prefCubeSize->onRestore(); + ui->naviCubeBaseColor->onRestore(); + + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath + ("User parameter:BaseApp/Preferences/View"); + std::string model = hGrp->GetASCII("NavigationStyle", CADNavigationStyle::getClassTypeId().getName()); + int index = ui->comboNavigationStyle->findData(QByteArray(model.c_str())); + if (index > -1) ui->comboNavigationStyle->setCurrentIndex(index); + + index = hGrp->GetInt("OrbitStyle", int(NavigationStyle::Trackball)); + index = Base::clamp(index, 0, ui->comboOrbitStyle->count()-1); + ui->comboOrbitStyle->setCurrentIndex(index); + + index = hGrp->GetInt("RotationMode", 1); + ui->comboRotationMode->setCurrentIndex(index); + + bool showNaviCube = hGrp->GetBool("ShowNaviCube", true); + ui->groupBoxNaviCube->setChecked(showNaviCube); + + ui->comboNewDocView->addItem(tr("Isometric"), QByteArray("Isometric")); + ui->comboNewDocView->addItem(tr("Dimetric"), QByteArray("Dimetric")); + ui->comboNewDocView->addItem(tr("Trimetric"), QByteArray("Trimetric")); + ui->comboNewDocView->addItem(tr("Top"), QByteArray("Top")); + ui->comboNewDocView->addItem(tr("Front"), QByteArray("Front")); + ui->comboNewDocView->addItem(tr("Left"), QByteArray("Left")); + ui->comboNewDocView->addItem(tr("Right"), QByteArray("Right")); + ui->comboNewDocView->addItem(tr("Rear"), QByteArray("Rear")); + ui->comboNewDocView->addItem(tr("Bottom"), QByteArray("Bottom")); + ui->comboNewDocView->addItem(tr("Custom"), QByteArray("Custom")); + std::string camera = hGrp->GetASCII("NewDocumentCameraOrientation", "Trimetric"); + index = ui->comboNewDocView->findData(QByteArray(camera.c_str())); + if (index > -1) ui->comboNewDocView->setCurrentIndex(index); + if (camera == "Custom") { + ParameterGrp::handle hCustom = hGrp->GetGroup("Custom"); + q0 = hCustom->GetFloat("Q0", q0); + q1 = hCustom->GetFloat("Q1", q1); + q2 = hCustom->GetFloat("Q2", q2); + q3 = hCustom->GetFloat("Q3", q3); + } + + connect(ui->comboNewDocView, qOverload(&QComboBox::currentIndexChanged), + this, &DlgSettingsNavigation::onNewDocViewChanged); + connect(ui->mouseButton, &QPushButton::clicked, + this, &DlgSettingsNavigation::onMouseButtonClicked); + + // fill up font styles + + // we purposely allow all available fonts on the system +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QStringList familyNames = QFontDatabase().families(QFontDatabase::Any); +#else + QStringList familyNames = QFontDatabase::families(QFontDatabase::Any); +#endif + ui->naviCubeFontName->addItems(familyNames); + + hGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/NaviCube"); + int indexFamilyNames = familyNames.indexOf( + QString::fromStdString(hGrp->GetASCII("FontString"))); + ui->naviCubeFontName->setCurrentIndex(indexFamilyNames + 1); + +} + +void DlgSettingsNavigation::onMouseButtonClicked() +{ + QDialog dlg(this); + Ui_MouseButtons uimb; + uimb.setupUi(&dlg); + + QVariant data = + ui->comboNavigationStyle->itemData(ui->comboNavigationStyle->currentIndex(), Qt::UserRole); + void* instance = Base::Type::createInstanceByName((const char*)data.toByteArray()); + std::unique_ptr ns(static_cast(instance)); + uimb.groupBox->setTitle(uimb.groupBox->title() + QString::fromLatin1(" ") + + ui->comboNavigationStyle->currentText()); + QString descr; + descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::SELECTION)); + descr.replace(QLatin1String("\n"), QLatin1String("

")); + uimb.selectionLabel->setText(QString::fromLatin1("%1").arg(descr)); + descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::PANNING)); + descr.replace(QLatin1String("\n"), QLatin1String("

")); + uimb.panningLabel->setText(QString::fromLatin1("%1").arg(descr)); + descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::DRAGGING)); + descr.replace(QLatin1String("\n"), QLatin1String("

")); + uimb.rotationLabel->setText(QString::fromLatin1("%1").arg(descr)); + descr = qApp->translate((const char*)data.toByteArray(),ns->mouseButtons(NavigationStyle::ZOOMING)); + descr.replace(QLatin1String("\n"), QLatin1String("

")); + uimb.zoomingLabel->setText(QString::fromLatin1("%1").arg(descr)); + dlg.exec(); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsNavigation::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + int navigation = ui->comboNavigationStyle->currentIndex(); + int orbit = ui->comboOrbitStyle->currentIndex(); + int corner = ui->naviCubeCorner->currentIndex(); + ui->retranslateUi(this); + retranslate(); + ui->comboNavigationStyle->setCurrentIndex(navigation); + ui->comboOrbitStyle->setCurrentIndex(orbit); + ui->naviCubeCorner->setCurrentIndex(corner); + } + else { + QWidget::changeEvent(e); + } +} + +void DlgSettingsNavigation::retranslate() +{ + ui->comboNavigationStyle->clear(); + + // add submenu at the end to select navigation style + std::map styles = UserNavigationStyle::getUserFriendlyNames(); + for (const auto & style : styles) { + QByteArray data(style.first.getName()); + QString name = QApplication::translate(style.first.getName(), style.second.c_str()); + + ui->comboNavigationStyle->addItem(name, data); + } +} + +void DlgSettingsNavigation::onNewDocViewChanged(int index) +{ + QVariant camera = ui->comboNewDocView->itemData(index, Qt::UserRole); + if (camera == QByteArray("Custom")) { + CameraDialog dlg(this); + dlg.setValues(q0, q1, q2, q3); + if (dlg.exec()) { + dlg.getValues(q0, q1, q2, q3); + } + } +} + +// ---------------------------------------------------------------------------- + +CameraDialog::CameraDialog(QWidget* parent) + : QDialog(parent) +{ + this->setWindowTitle(tr("Camera settings")); + + QGridLayout *gridLayout; + gridLayout = new QGridLayout(this); + + QGroupBox *groupBox; + groupBox = new QGroupBox(this); + groupBox->setTitle(tr("Orientation")); + gridLayout->addWidget(groupBox, 0, 0, 1, 1); + + QDialogButtonBox *buttonBox; + buttonBox = new QDialogButtonBox(this); + buttonBox->setOrientation(Qt::Horizontal); + buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + gridLayout->addWidget(buttonBox, 3, 0, 1, 1); + + QGridLayout *layout; + layout = new QGridLayout(groupBox); + + // Q0 + auto label0 = new QLabel(groupBox); + label0->setText(tr("Q0")); + layout->addWidget(label0, 0, 0, 1, 1); + + sb0 = new QDoubleSpinBox(groupBox); + sb0->setRange(-1, 1); + sb0->setSingleStep(0.1); + layout->addWidget(sb0, 0, 1, 1, 1); + + // Q1 + auto label1 = new QLabel(groupBox); + label1->setText(tr("Q1")); + layout->addWidget(label1, 1, 0, 1, 1); + + sb1 = new QDoubleSpinBox(groupBox); + sb1->setRange(-1, 1); + sb1->setSingleStep(0.1); + layout->addWidget(sb1, 1, 1, 1, 1); + + // Q2 + auto label2 = new QLabel(groupBox); + label2->setText(tr("Q2")); + layout->addWidget(label2, 2, 0, 1, 1); + + sb2 = new QDoubleSpinBox(groupBox); + sb2->setRange(-1, 1); + sb2->setSingleStep(0.1); + layout->addWidget(sb2, 2, 1, 1, 1); + + // Q3 + auto label3 = new QLabel(groupBox); + label3->setText(tr("Q3")); + layout->addWidget(label3, 3, 0, 1, 1); + + sb3 = new QDoubleSpinBox(groupBox); + sb3->setRange(-1, 1); + sb3->setSingleStep(0.1); + layout->addWidget(sb3, 3, 1, 1, 1); + + auto currentViewButton = new QPushButton(this); + currentViewButton->setText(tr("Current view")); + currentViewButton->setObjectName(QString::fromLatin1("currentView")); + layout->addWidget(currentViewButton, 4, 1, 2, 1); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(currentViewButton, &QPushButton::clicked, this, + &CameraDialog::onCurrentViewClicked); +} + +CameraDialog::~CameraDialog() +{ +} + +void CameraDialog::setValues(double q0, double q1, double q2, double q3) +{ + sb0->setValue(q0); + sb1->setValue(q1); + sb2->setValue(q2); + sb3->setValue(q3); +} + +void CameraDialog::getValues(double& q0, double& q1, double& q2, double& q3) const +{ + q0 = sb0->value(); + q1 = sb1->value(); + q2 = sb2->value(); + q3 = sb3->value(); +} + +void CameraDialog::onCurrentViewClicked() +{ + auto mdi = qobject_cast(getMainWindow()->activeWindow()); + if (mdi) { + SbRotation rot = mdi->getViewer()->getCameraOrientation(); + const float* q = rot.getValue(); + sb0->setValue(q[0]); + sb1->setValue(q[1]); + sb2->setValue(q[2]); + sb3->setValue(q[3]); + } +} + +#include "moc_DlgSettingsNavigation.cpp" diff --git a/src/Gui/DlgSettingsNavigation.h b/src/Gui/PreferencePages/DlgSettingsNavigation.h similarity index 97% rename from src/Gui/DlgSettingsNavigation.h rename to src/Gui/PreferencePages/DlgSettingsNavigation.h index 41ec66f8f3..95edfc7def 100644 --- a/src/Gui/DlgSettingsNavigation.h +++ b/src/Gui/PreferencePages/DlgSettingsNavigation.h @@ -1,90 +1,90 @@ -/*************************************************************************** - * Copyright (c) 2002 Jürgen Riegel * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGSNAVIGATION_H -#define GUI_DIALOG_DLGSETTINGSNAVIGATION_H - -#include -#include "PropertyPage.h" -#include - -class QDoubleSpinBox; - -namespace Gui { -namespace Dialog { -class Ui_DlgSettingsNavigation; - -/** - * The Ui_DlgSettingsNavigation class implements a preference page to change settings - * for the Inventor viewer. - * \author Werner Mayer - */ -class DlgSettingsNavigation : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettingsNavigation(QWidget* parent = nullptr); - ~DlgSettingsNavigation() override; - - void saveSettings() override; - void loadSettings() override; - -private: - void onMouseButtonClicked(); - void onNewDocViewChanged(int); - -protected: - void changeEvent(QEvent *e) override; - void retranslate(); - -private: - std::unique_ptr ui; - double q0, q1, q2, q3; -}; - -class CameraDialog : public QDialog -{ - Q_OBJECT - -public: - explicit CameraDialog(QWidget* parent=nullptr); - ~CameraDialog() override; - void setValues(double q0, double q1, double q2, double q3); - void getValues(double& q0, double& q1, double& q2, double& q3) const; - - -private: - void onCurrentViewClicked(); - -private: - QDoubleSpinBox* sb0; - QDoubleSpinBox* sb1; - QDoubleSpinBox* sb2; - QDoubleSpinBox* sb3; -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGSNAVIGATION_H +/*************************************************************************** + * Copyright (c) 2002 Jürgen Riegel * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSNAVIGATION_H +#define GUI_DIALOG_DLGSETTINGSNAVIGATION_H + +#include +#include "PropertyPage.h" +#include + +class QDoubleSpinBox; + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsNavigation; + +/** + * The Ui_DlgSettingsNavigation class implements a preference page to change settings + * for the Inventor viewer. + * \author Werner Mayer + */ +class DlgSettingsNavigation : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsNavigation(QWidget* parent = nullptr); + ~DlgSettingsNavigation() override; + + void saveSettings() override; + void loadSettings() override; + +private: + void onMouseButtonClicked(); + void onNewDocViewChanged(int); + +protected: + void changeEvent(QEvent *e) override; + void retranslate(); + +private: + std::unique_ptr ui; + double q0, q1, q2, q3; +}; + +class CameraDialog : public QDialog +{ + Q_OBJECT + +public: + explicit CameraDialog(QWidget* parent=nullptr); + ~CameraDialog() override; + void setValues(double q0, double q1, double q2, double q3); + void getValues(double& q0, double& q1, double& q2, double& q3) const; + + +private: + void onCurrentViewClicked(); + +private: + QDoubleSpinBox* sb0; + QDoubleSpinBox* sb1; + QDoubleSpinBox* sb2; + QDoubleSpinBox* sb3; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSNAVIGATION_H diff --git a/src/Gui/DlgSettingsNavigation.ui b/src/Gui/PreferencePages/DlgSettingsNavigation.ui similarity index 96% rename from src/Gui/DlgSettingsNavigation.ui rename to src/Gui/PreferencePages/DlgSettingsNavigation.ui index 711cc07975..c2c33a3370 100644 --- a/src/Gui/DlgSettingsNavigation.ui +++ b/src/Gui/PreferencePages/DlgSettingsNavigation.ui @@ -615,6 +615,25 @@ Mouse tilting is not disabled by this setting. + + + + Show the rotation center when dragging. + + + Enable rotation center indication + + + true + + + ShowRotationCenter + + + View + + + diff --git a/src/Gui/DlgSettingsNotificationArea.cpp b/src/Gui/PreferencePages/DlgSettingsNotificationArea.cpp similarity index 66% rename from src/Gui/DlgSettingsNotificationArea.cpp rename to src/Gui/PreferencePages/DlgSettingsNotificationArea.cpp index 2a6bfab7c1..e7949cf651 100644 --- a/src/Gui/DlgSettingsNotificationArea.cpp +++ b/src/Gui/PreferencePages/DlgSettingsNotificationArea.cpp @@ -40,38 +40,13 @@ DlgSettingsNotificationArea::DlgSettingsNotificationArea(QWidget* parent) { ui->setupUi(this); + adaptUiToAreaEnabledState(ui->NotificationAreaEnabled->isChecked()); connect(ui->NotificationAreaEnabled, &QCheckBox::stateChanged, [this](int state) { - if (state == Qt::CheckState::Checked) { - ui->NonIntrusiveNotificationsEnabled->setEnabled(true); - ui->maxDuration->setEnabled(true); - ui->maxDuration->setEnabled(true); - ui->minDuration->setEnabled(true); - ui->maxNotifications->setEnabled(true); - ui->maxWidgetMessages->setEnabled(true); - ui->autoRemoveUserNotifications->setEnabled(true); - ui->hideNonIntrusiveNotificationsWhenWindowDeactivated->setEnabled(true); - ui->preventNonIntrusiveNotificationsWhenWindowNotActive->setEnabled(true); - ui->developerErrorSubscriptionEnabled->setEnabled(true); - ui->developerWarningSubscriptionEnabled->setEnabled(true); - QMessageBox::information(this, - tr("Notification Area"), - tr("Activation of the Notification Area only takes effect " - "after an application restart.")); - } - else { - ui->NonIntrusiveNotificationsEnabled->setEnabled(false); - ui->maxDuration->setEnabled(false); - ui->maxDuration->setEnabled(false); - ui->minDuration->setEnabled(false); - ui->maxNotifications->setEnabled(false); - ui->maxWidgetMessages->setEnabled(false); - ui->autoRemoveUserNotifications->setEnabled(false); - ui->hideNonIntrusiveNotificationsWhenWindowDeactivated->setEnabled(false); - ui->preventNonIntrusiveNotificationsWhenWindowNotActive->setEnabled(false); - ui->developerErrorSubscriptionEnabled->setEnabled(false); - ui->developerWarningSubscriptionEnabled->setEnabled(false); - // N.B: Deactivation is handled by the Notification Area itself, as it listens to all - // its configuration parameters. + bool enabled = state == Qt::CheckState::Checked; + this->adaptUiToAreaEnabledState(enabled); + + if (enabled) { + this->requireRestart(); } }); } @@ -111,6 +86,21 @@ void DlgSettingsNotificationArea::loadSettings() ui->developerWarningSubscriptionEnabled->onRestore(); } +void DlgSettingsNotificationArea::adaptUiToAreaEnabledState(bool enabled) +{ + ui->NonIntrusiveNotificationsEnabled->setEnabled(enabled); + ui->maxDuration->setEnabled(enabled); + ui->maxDuration->setEnabled(enabled); + ui->minDuration->setEnabled(enabled); + ui->maxNotifications->setEnabled(enabled); + ui->maxWidgetMessages->setEnabled(enabled); + ui->autoRemoveUserNotifications->setEnabled(enabled); + ui->hideNonIntrusiveNotificationsWhenWindowDeactivated->setEnabled(enabled); + ui->preventNonIntrusiveNotificationsWhenWindowNotActive->setEnabled(enabled); + ui->developerErrorSubscriptionEnabled->setEnabled(enabled); + ui->developerWarningSubscriptionEnabled->setEnabled(enabled); +} + void DlgSettingsNotificationArea::changeEvent(QEvent* e) { if (e->type() == QEvent::LanguageChange) { diff --git a/src/Gui/DlgSettingsNotificationArea.h b/src/Gui/PreferencePages/DlgSettingsNotificationArea.h similarity index 96% rename from src/Gui/DlgSettingsNotificationArea.h rename to src/Gui/PreferencePages/DlgSettingsNotificationArea.h index 4aac834a3b..94a675b2c1 100644 --- a/src/Gui/DlgSettingsNotificationArea.h +++ b/src/Gui/PreferencePages/DlgSettingsNotificationArea.h @@ -24,7 +24,7 @@ #ifndef GUI_DIALOG_DLGSETTINGSNOTIFICATIONAREA_H #define GUI_DIALOG_DLGSETTINGSNOTIFICATIONAREA_H -#include "PropertyPage.h" +#include #include namespace Gui { @@ -49,6 +49,9 @@ public: protected: void changeEvent(QEvent *e) override; +private: + void adaptUiToAreaEnabledState(bool enabled); + private: std::unique_ptr ui; }; diff --git a/src/Gui/DlgSettingsNotificationArea.ui b/src/Gui/PreferencePages/DlgSettingsNotificationArea.ui similarity index 100% rename from src/Gui/DlgSettingsNotificationArea.ui rename to src/Gui/PreferencePages/DlgSettingsNotificationArea.ui diff --git a/src/Gui/DlgSettingsPythonConsole.cpp b/src/Gui/PreferencePages/DlgSettingsPythonConsole.cpp similarity index 100% rename from src/Gui/DlgSettingsPythonConsole.cpp rename to src/Gui/PreferencePages/DlgSettingsPythonConsole.cpp diff --git a/src/Gui/DlgSettingsPythonConsole.h b/src/Gui/PreferencePages/DlgSettingsPythonConsole.h similarity index 98% rename from src/Gui/DlgSettingsPythonConsole.h rename to src/Gui/PreferencePages/DlgSettingsPythonConsole.h index 4afaebf92e..ab514c8718 100644 --- a/src/Gui/DlgSettingsPythonConsole.h +++ b/src/Gui/PreferencePages/DlgSettingsPythonConsole.h @@ -24,7 +24,7 @@ #ifndef GUI_DIALOG_DLGSETTINGSPYTHONCONSOLE_H #define GUI_DIALOG_DLGSETTINGSPYTHONCONSOLE_H -#include "PropertyPage.h" +#include #include namespace Gui { diff --git a/src/Gui/DlgSettingsPythonConsole.ui b/src/Gui/PreferencePages/DlgSettingsPythonConsole.ui similarity index 100% rename from src/Gui/DlgSettingsPythonConsole.ui rename to src/Gui/PreferencePages/DlgSettingsPythonConsole.ui diff --git a/src/Gui/DlgReportViewImp.cpp b/src/Gui/PreferencePages/DlgSettingsReportView.cpp similarity index 86% rename from src/Gui/DlgReportViewImp.cpp rename to src/Gui/PreferencePages/DlgSettingsReportView.cpp index ad6b219db2..e1032237e7 100644 --- a/src/Gui/DlgReportViewImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsReportView.cpp @@ -1,110 +1,110 @@ -/*************************************************************************** - * Copyright (c) 2004 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - -#include "PreCompiled.h" - -#include "DlgReportViewImp.h" -#include "ui_DlgReportView.h" - - -using namespace Gui::Dialog; - -/* TRANSLATOR Gui::Dialog::DlgReportViewImp */ - -/** - * Constructs a DlgReportViewImp which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - * - * The dialog will by default be modeless, unless you set 'modal' to - * true to construct a modal dialog. - */ -DlgReportViewImp::DlgReportViewImp( QWidget* parent ) - : PreferencePage(parent) - , ui(new Ui_DlgReportView) -{ - ui->setupUi(this); - ui->colorText->setColor(qApp->palette().windowText().color()); -} - -/** - * Destroys the object and frees any allocated resources - */ -DlgReportViewImp::~DlgReportViewImp() -{ -} - -void DlgReportViewImp::saveSettings() -{ - ui->checkMessage->onSave(); - ui->checkLogging->onSave(); - ui->checkWarning->onSave(); - ui->checkError->onSave(); - ui->checkShowReportViewOnWarning->onSave(); - ui->checkShowReportViewOnError->onSave(); - ui->checkShowReportViewOnNormalMessage->onSave(); - ui->checkShowReportViewOnLogMessage->onSave(); - ui->checkShowReportTimecode->onSave(); - ui->colorText->onSave(); - ui->colorLogging->onSave(); - ui->colorWarning->onSave(); - ui->colorError->onSave(); - ui->pythonOutput->onSave(); - ui->pythonError->onSave(); -} - -void DlgReportViewImp::loadSettings() -{ - ui->checkMessage->onRestore(); - ui->checkLogging->onRestore(); - ui->checkWarning->onRestore(); - ui->checkError->onRestore(); - ui->checkShowReportViewOnWarning->onRestore(); - ui->checkShowReportViewOnError->onRestore(); - ui->checkShowReportViewOnNormalMessage->onRestore(); - ui->checkShowReportViewOnLogMessage->onRestore(); - ui->checkShowReportTimecode->onRestore(); - ui->colorText->onRestore(); - ui->colorLogging->onRestore(); - ui->colorWarning->onRestore(); - ui->colorError->onRestore(); - ui->pythonOutput->blockSignals(true); - ui->pythonOutput->onRestore(); - ui->pythonOutput->blockSignals(false); - ui->pythonError->blockSignals(true); - ui->pythonError->onRestore(); - ui->pythonError->blockSignals(false); -} - -/** - * Sets the strings of the subwidgets using the current language. - */ -void DlgReportViewImp::changeEvent(QEvent *e) -{ - if (e->type() == QEvent::LanguageChange) { - ui->retranslateUi(this); - } - else { - QWidget::changeEvent(e); - } -} - -#include "moc_DlgReportViewImp.cpp" +/*************************************************************************** + * Copyright (c) 2004 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#include "DlgSettingsReportView.h" +#include "ui_DlgSettingsReportView.h" + + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettingsReportView */ + +/** + * Constructs a DlgSettingsReportView which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * true to construct a modal dialog. + */ +DlgSettingsReportView::DlgSettingsReportView( QWidget* parent ) + : PreferencePage(parent) + , ui(new Ui_DlgSettingsReportView) +{ + ui->setupUi(this); + ui->colorText->setColor(qApp->palette().windowText().color()); +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettingsReportView::~DlgSettingsReportView() +{ +} + +void DlgSettingsReportView::saveSettings() +{ + ui->checkMessage->onSave(); + ui->checkLogging->onSave(); + ui->checkWarning->onSave(); + ui->checkError->onSave(); + ui->checkShowReportViewOnWarning->onSave(); + ui->checkShowReportViewOnError->onSave(); + ui->checkShowReportViewOnNormalMessage->onSave(); + ui->checkShowReportViewOnLogMessage->onSave(); + ui->checkShowReportTimecode->onSave(); + ui->colorText->onSave(); + ui->colorLogging->onSave(); + ui->colorWarning->onSave(); + ui->colorError->onSave(); + ui->pythonOutput->onSave(); + ui->pythonError->onSave(); +} + +void DlgSettingsReportView::loadSettings() +{ + ui->checkMessage->onRestore(); + ui->checkLogging->onRestore(); + ui->checkWarning->onRestore(); + ui->checkError->onRestore(); + ui->checkShowReportViewOnWarning->onRestore(); + ui->checkShowReportViewOnError->onRestore(); + ui->checkShowReportViewOnNormalMessage->onRestore(); + ui->checkShowReportViewOnLogMessage->onRestore(); + ui->checkShowReportTimecode->onRestore(); + ui->colorText->onRestore(); + ui->colorLogging->onRestore(); + ui->colorWarning->onRestore(); + ui->colorError->onRestore(); + ui->pythonOutput->blockSignals(true); + ui->pythonOutput->onRestore(); + ui->pythonOutput->blockSignals(false); + ui->pythonError->blockSignals(true); + ui->pythonError->onRestore(); + ui->pythonError->blockSignals(false); +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsReportView::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + ui->retranslateUi(this); + } + else { + QWidget::changeEvent(e); + } +} + +#include "moc_DlgSettingsReportView.cpp" diff --git a/src/Gui/DlgReportViewImp.h b/src/Gui/PreferencePages/DlgSettingsReportView.h similarity index 80% rename from src/Gui/DlgReportViewImp.h rename to src/Gui/PreferencePages/DlgSettingsReportView.h index 98d9b4c14c..2486c26438 100644 --- a/src/Gui/DlgReportViewImp.h +++ b/src/Gui/PreferencePages/DlgSettingsReportView.h @@ -1,59 +1,59 @@ -/*************************************************************************** - * Copyright (c) 2004 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLG_REPORT_VIEW_IMP -#define GUI_DIALOG_DLG_REPORT_VIEW_IMP - -#include "PropertyPage.h" -#include - -namespace Gui { -namespace Dialog { -class Ui_DlgReportView; - -/** The DlgReportViewImp class implements the available settings for the - * Report View to change. - * \author Werner Mayer - */ -class DlgReportViewImp : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgReportViewImp( QWidget* parent = nullptr ); - ~DlgReportViewImp() override; - - void saveSettings() override; - void loadSettings() override; - -protected: - void changeEvent(QEvent *e) override; - -private: - std::unique_ptr ui; -}; - -} // namespace Dialog -} // namespace Gui - -#endif //GUI_DIALOG_DLG_REPORT_VIEW_IMP +/*************************************************************************** + * Copyright (c) 2004 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLG_SETTINGS_REPORT_VIEW +#define GUI_DIALOG_DLG_SETTINGS_REPORT_VIEW + +#include +#include + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsReportView; + +/** The DlgSettingsReportView class implements the available settings for the + * Report View to change. + * \author Werner Mayer + */ +class DlgSettingsReportView : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsReportView( QWidget* parent = nullptr ); + ~DlgSettingsReportView() override; + + void saveSettings() override; + void loadSettings() override; + +protected: + void changeEvent(QEvent *e) override; + +private: + std::unique_ptr ui; +}; + +} // namespace Dialog +} // namespace Gui + +#endif //GUI_DIALOG_DLG_SETTINGS_REPORT_VIEW diff --git a/src/Gui/DlgReportView.ui b/src/Gui/PreferencePages/DlgSettingsReportView.ui similarity index 99% rename from src/Gui/DlgReportView.ui rename to src/Gui/PreferencePages/DlgSettingsReportView.ui index aa0a5ff93f..88e700135d 100644 --- a/src/Gui/DlgReportView.ui +++ b/src/Gui/PreferencePages/DlgSettingsReportView.ui @@ -1,7 +1,7 @@ - Gui::Dialog::DlgReportView - + Gui::Dialog::DlgSettingsReportView + 0 diff --git a/src/Gui/DlgSettingsSelection.cpp b/src/Gui/PreferencePages/DlgSettingsSelection.cpp similarity index 69% rename from src/Gui/DlgSettingsSelection.cpp rename to src/Gui/PreferencePages/DlgSettingsSelection.cpp index 1f29bc5bd9..a079c37312 100644 --- a/src/Gui/DlgSettingsSelection.cpp +++ b/src/Gui/PreferencePages/DlgSettingsSelection.cpp @@ -45,24 +45,30 @@ DlgSettingsSelection::~DlgSettingsSelection() void DlgSettingsSelection::saveSettings() { + ui->checkBoxPreselection->onSave(); + ui->checkBoxSelection->onSave(); + ui->HighlightColor->onSave(); + ui->SelectionColor->onSave(); ui->spinPickRadius->onSave(); - auto handle = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/TreeView"); - handle->SetBool("SyncView", ui->checkBoxAutoSwitch->isChecked()); - handle->SetBool("SyncSelection", ui->checkBoxAutoExpand->isChecked()); - handle->SetBool("PreSelection", ui->checkBoxPreselect->isChecked()); - handle->SetBool("RecordSelection", ui->checkBoxRecord->isChecked()); - handle->SetBool("CheckBoxesSelection", ui->checkBoxSelectionCheckBoxes->isChecked()); + ui->checkBoxAutoSwitch->onSave(); + ui->checkBoxAutoExpand->onSave(); + ui->checkBoxPreselect->onSave(); + ui->checkBoxRecord->onSave(); + ui->checkBoxSelectionCheckBoxes->onSave(); } void DlgSettingsSelection::loadSettings() { + ui->checkBoxPreselection->onRestore(); + ui->checkBoxSelection->onRestore(); + ui->HighlightColor->onRestore(); + ui->SelectionColor->onRestore(); ui->spinPickRadius->onRestore(); - auto handle = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/TreeView"); - ui->checkBoxAutoSwitch->setChecked(handle->GetBool("SyncView", true)); - ui->checkBoxAutoExpand->setChecked(handle->GetBool("SyncSelection", true)); - ui->checkBoxPreselect->setChecked(handle->GetBool("PreSelection", true)); - ui->checkBoxRecord->setChecked(handle->GetBool("RecordSelection", true)); - ui->checkBoxSelectionCheckBoxes->setChecked(handle->GetBool("CheckBoxesSelection")); + ui->checkBoxAutoSwitch->onRestore(); + ui->checkBoxAutoExpand->onRestore(); + ui->checkBoxPreselect->onRestore(); + ui->checkBoxRecord->onRestore(); + ui->checkBoxSelectionCheckBoxes->onRestore(); } void DlgSettingsSelection::changeEvent(QEvent *e) @@ -76,4 +82,3 @@ void DlgSettingsSelection::changeEvent(QEvent *e) } #include "moc_DlgSettingsSelection.cpp" - diff --git a/src/Gui/DlgSettingsSelection.h b/src/Gui/PreferencePages/DlgSettingsSelection.h similarity index 96% rename from src/Gui/DlgSettingsSelection.h rename to src/Gui/PreferencePages/DlgSettingsSelection.h index fd56ced3e9..60c54be4c1 100644 --- a/src/Gui/DlgSettingsSelection.h +++ b/src/Gui/PreferencePages/DlgSettingsSelection.h @@ -1,62 +1,62 @@ -/*************************************************************************** - * Copyright (c) 2021 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGSSELECTION_H -#define GUI_DIALOG_DLGSETTINGSSELECTION_H - -#include "PropertyPage.h" -#include - -class QDoubleSpinBox; - -namespace Gui { -namespace Dialog { -class Ui_DlgSettingsSelection; - -/** - * The Ui_DlgSettingsSelection class implements a preference page to change settings - * for the selection. - * \author Werner Mayer - */ -class DlgSettingsSelection : public PreferencePage -{ - Q_OBJECT - -public: - DlgSettingsSelection(QWidget* parent = nullptr); - ~DlgSettingsSelection() override; - - void saveSettings() override; - void loadSettings() override; - -protected: - void changeEvent(QEvent *e) override; - -private: - std::unique_ptr ui; -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGSSELECTION_H +/*************************************************************************** + * Copyright (c) 2021 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSSELECTION_H +#define GUI_DIALOG_DLGSETTINGSSELECTION_H + +#include +#include + +class QDoubleSpinBox; + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsSelection; + +/** + * The Ui_DlgSettingsSelection class implements a preference page to change settings + * for the selection. + * \author Werner Mayer + */ +class DlgSettingsSelection : public PreferencePage +{ + Q_OBJECT + +public: + DlgSettingsSelection(QWidget* parent = nullptr); + ~DlgSettingsSelection() override; + + void saveSettings() override; + void loadSettings() override; + +protected: + void changeEvent(QEvent *e) override; + +private: + std::unique_ptr ui; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSSELECTION_H diff --git a/src/Gui/PreferencePages/DlgSettingsSelection.ui b/src/Gui/PreferencePages/DlgSettingsSelection.ui new file mode 100644 index 0000000000..fe81b0549f --- /dev/null +++ b/src/Gui/PreferencePages/DlgSettingsSelection.ui @@ -0,0 +1,293 @@ + + + Gui::Dialog::DlgSettingsSelection + + + + 0 + 0 + 670 + 411 + + + + Selection + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + + + + 240 + 0 + + + + Enable preselection, highlighted with specified color + + + Enable preselection + + + true + + + EnablePreselection + + + View + + + + + + + + + + + 225 + 225 + 20 + + + + HighlightColor + + + View + + + + + + + Enable selection, highlighted with specified color + + + Enable selection + + + true + + + EnableSelection + + + View + + + + + + + + + + + 28 + 173 + 28 + + + + SelectionColor + + + View + + + + + + + + + Pick radius (px): + + + + + + + Qt::Horizontal + + + + 250 + 10 + + + + + + + + + + + 120 + 0 + + + + Area for picking elements in 3D view. +Larger value eases to pick things, but can make small features impossible to select. + + + + Qt::ImhPreferNumbers + + + 1 + + + 0.500000000000000 + + + 200.000000000000000 + + + 5.000000000000000 + + + PickRadius + + + View + + + + + + + Auto switch to the 3D view containing the selected item + + + SyncView + + + TreeView + + + + + + + Auto expand tree item when the corresponding object is selected in 3D view + + + SyncSelection + + + TreeView + + + + + + + Preselect the object in 3D view when mouse over the tree item + + + PreSelection + + + TreeView + + + + + + + Record selection in tree view in order to go back/forward using navigation button + + + RecordSelection + + + TreeView + + + + + + + Add checkboxes for selection in document tree + + + CheckBoxesSelection + + + TreeView + + + + + + + Qt::Vertical + + + + 20 + 245 + + + + + + + + + Gui::PrefDoubleSpinBox + QDoubleSpinBox +

Gui/PrefWidgets.h
+ + + Gui::ColorButton + QPushButton +
Gui/Widgets.h
+
+ + Gui::PrefColorButton + Gui::ColorButton +
Gui/PrefWidgets.h
+
+ + Gui::PrefCheckBox + QCheckBox +
Gui/PrefWidgets.h
+
+ + + + + checkBoxPreselection + toggled(bool) + HighlightColor + setEnabled(bool) + + + checkBoxSelection + toggled(bool) + SelectionColor + setEnabled(bool) + + +
diff --git a/src/Gui/PreferencePages/DlgSettingsTheme.cpp b/src/Gui/PreferencePages/DlgSettingsTheme.cpp new file mode 100644 index 0000000000..07ccb4cbc5 --- /dev/null +++ b/src/Gui/PreferencePages/DlgSettingsTheme.cpp @@ -0,0 +1,164 @@ +/*************************************************************************** + * Copyright (c) 2009 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif + +#include + +#include "DlgSettingsTheme.h" +#include "ui_DlgSettingsTheme.h" + + +using namespace Gui::Dialog; + +/* TRANSLATOR Gui::Dialog::DlgSettingsTheme */ + +/** + * Constructs a DlgSettingsTheme which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +DlgSettingsTheme::DlgSettingsTheme(QWidget* parent) + : PreferencePage(parent) + , ui(new Ui_DlgSettingsTheme) + , styleSheetChanged(false) +{ + ui->setupUi(this); + + connect(ui->styleSheetsCombobox, qOverload(&QComboBox::activated), this, &DlgSettingsTheme::onStyleSheetChanged); +} + +/** + * Destroys the object and frees any allocated resources + */ +DlgSettingsTheme::~DlgSettingsTheme() +{ + // no need to delete child widgets, Qt does it all for us +} + +void DlgSettingsTheme::saveSettings() +{ + ui->ThemeSecondaryColor->onSave(); + ui->ThemeHighlightColor->onSave(); + ui->ThemeFocusColor->onSave(); + + if (styleSheetChanged) + saveStyleSheet(); +} + +void DlgSettingsTheme::loadSettings() +{ + ui->ThemeSecondaryColor->onRestore(); + ui->ThemeHighlightColor->onRestore(); + ui->ThemeFocusColor->onRestore(); + + loadStyleSheet(); +} + +void DlgSettingsTheme::saveStyleSheet() +{ + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); + + QVariant sheet = ui->styleSheetsCombobox->itemData(ui->styleSheetsCombobox->currentIndex()); + hGrp->SetASCII("StyleSheet", (const char*)sheet.toByteArray()); + bool tiledBackground = hGrp->GetBool("TiledBackground", false); + Application::Instance->setStyleSheet(sheet.toString(), tiledBackground); +} + +void DlgSettingsTheme::loadStyleSheet() +{ + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow"); + + // List all .qss/.css files + QMap cssFiles; + QDir dir; + QStringList filter; + filter << QString::fromLatin1("*.qss"); + filter << QString::fromLatin1("*.css"); + + // read from user, resource and built-in directory + QStringList qssPaths = QDir::searchPaths(QString::fromLatin1("qss")); + for (const auto& qssPath : qssPaths) { + dir.setPath(qssPath); + QFileInfoList fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name); + for (const auto& fileName : qAsConst(fileNames)) { + if (cssFiles.find(fileName.baseName()) == cssFiles.end()) { + cssFiles[fileName.baseName()] = fileName.fileName(); + } + } + } + + // now add all unique items + ui->styleSheetsCombobox->clear(); + ui->styleSheetsCombobox->addItem(tr("No style sheet"), QString::fromLatin1("")); + for (QMap::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) { + ui->styleSheetsCombobox->addItem(it.key(), it.value()); + } + + QString selectedStyleSheet = QString::fromLatin1(hGrp->GetASCII("StyleSheet").c_str()); + int index = ui->styleSheetsCombobox->findData(selectedStyleSheet); + + // might be an absolute path name + if (index < 0 && !selectedStyleSheet.isEmpty()) { + QFileInfo fi(selectedStyleSheet); + if (fi.isAbsolute()) { + QString path = fi.absolutePath(); + if (qssPaths.indexOf(path) >= 0) { + selectedStyleSheet = fi.fileName(); + } + else { + selectedStyleSheet = fi.absoluteFilePath(); + ui->styleSheetsCombobox->addItem(fi.baseName(), selectedStyleSheet); + } + + index = ui->styleSheetsCombobox->findData(selectedStyleSheet); + } + } + + if (index > -1) + ui->styleSheetsCombobox->setCurrentIndex(index); +} + +void DlgSettingsTheme::onStyleSheetChanged(int index) { + Q_UNUSED(index); + Base::Console().Warning("Hello"); + styleSheetChanged = true; +} + +/** + * Sets the strings of the subwidgets using the current language. + */ +void DlgSettingsTheme::changeEvent(QEvent *e) +{ + if (e->type() == QEvent::LanguageChange) { + ui->retranslateUi(this); + } + else { + QWidget::changeEvent(e); + } +} + + +#include "moc_DlgSettingsTheme.cpp" + diff --git a/src/Gui/PreferencePages/DlgSettingsTheme.h b/src/Gui/PreferencePages/DlgSettingsTheme.h new file mode 100644 index 0000000000..9779def18b --- /dev/null +++ b/src/Gui/PreferencePages/DlgSettingsTheme.h @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright (c) 2009 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSTHEME_H +#define GUI_DIALOG_DLGSETTINGSTHEME_H + +#include +#include + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsTheme; + +/** + * The DlgSettingsTheme class implements a preference page to change theme settings. + * @author Pierre-Louis Boyer + */ +class DlgSettingsTheme : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsTheme(QWidget* parent = nullptr); + ~DlgSettingsTheme() override; + + void saveSettings() override; + void loadSettings() override; + + void saveStyleSheet(); + void loadStyleSheet(); + +protected: + void changeEvent(QEvent *e) override; + +protected Q_SLOTS: + void onStyleSheetChanged(int index); + +private: + std::unique_ptr ui; + bool styleSheetChanged; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSTHEME_H diff --git a/src/Gui/PreferencePages/DlgSettingsTheme.ui b/src/Gui/PreferencePages/DlgSettingsTheme.ui new file mode 100644 index 0000000000..2a59465f41 --- /dev/null +++ b/src/Gui/PreferencePages/DlgSettingsTheme.ui @@ -0,0 +1,244 @@ + + + Gui::Dialog::DlgSettingsTheme + + + + 0 + 0 + 405 + 400 + + + + Theme + + + + + + This page let you customize your current theme. The offered settings are optional for theme developers so they may or may not have an effect in your current theme. + + + true + + + + + + + + + + + Style sheet: + + + + + + + Style sheet how user interface will look like + + + + + + + Secondary theme color + + + + + + + + 0 + 0 + + + + This color might be used by your theme to let you customize it. + + + + 85 + 123 + 182 + + + + ThemeSecondaryColor + + + Themes + + + + + + + Highlight color + + + + + + + + 0 + 0 + + + + This color might be used by your theme to let you customize it. + + + + 85 + 123 + 182 + + + + ThemeHighlightColor + + + Themes + + + + + + + Focus theme color + + + + + + + + 0 + 0 + + + + This color might be used by your theme to let you customize it. + + + + 85 + 123 + 182 + + + + ThemeFocusColor + + + Themes + + + + + + + + + Qt::Horizontal + + + + 183 + 23 + + + + + + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + Gui::ColorButton + QPushButton +
Gui/Widgets.h
+
+ + Gui::PrefColorButton + Gui::ColorButton +
Gui/PrefWidgets.h
+
+ + Gui::PrefRadioButton + QRadioButton +
Gui/PrefWidgets.h
+
+ + Gui::PrefCheckBox + QCheckBox +
Gui/PrefWidgets.h
+
+
+ + checkBoxPreselection + HighlightColor + checkBoxSelection + SelectionColor + SelectionColor_Background + backgroundColorFrom + backgroundColorTo + checkMidColor + backgroundColorMid + + + + + checkBoxPreselection + toggled(bool) + HighlightColor + setEnabled(bool) + + + 70 + 45 + + + 310 + 54 + + + + + checkBoxSelection + toggled(bool) + SelectionColor + setEnabled(bool) + + + 158 + 76 + + + 291 + 75 + + + + +
diff --git a/src/Gui/DlgSettingsViewColor.cpp b/src/Gui/PreferencePages/DlgSettingsViewColor.cpp similarity index 90% rename from src/Gui/DlgSettingsViewColor.cpp rename to src/Gui/PreferencePages/DlgSettingsViewColor.cpp index 19d781ae33..1e36731f87 100644 --- a/src/Gui/DlgSettingsViewColor.cpp +++ b/src/Gui/PreferencePages/DlgSettingsViewColor.cpp @@ -42,8 +42,6 @@ DlgSettingsViewColor::DlgSettingsViewColor(QWidget* parent) , ui(new Ui_DlgSettingsViewColor) { ui->setupUi(this); - ui->HighlightColor->setEnabled(ui->checkBoxPreselection->isChecked()); - ui->SelectionColor->setEnabled(ui->checkBoxSelection->isChecked()); connect(ui->SwitchGradientColors, &QPushButton::pressed, this, &DlgSettingsViewColor::onSwitchGradientColorsPressed); @@ -78,10 +76,6 @@ void DlgSettingsViewColor::saveSettings() ui->radioButtonGradient->onSave(); ui->rbRadialGradient->onSave(); ui->checkMidColor->onSave(); - ui->checkBoxPreselection->onSave(); - ui->checkBoxSelection->onSave(); - ui->HighlightColor->onSave(); - ui->SelectionColor->onSave(); ui->TreeEditColor->onSave(); ui->TreeActiveColor->onSave(); } @@ -96,10 +90,6 @@ void DlgSettingsViewColor::loadSettings() ui->radioButtonGradient->onRestore(); ui->rbRadialGradient->onRestore(); ui->checkMidColor->onRestore(); - ui->checkBoxPreselection->onRestore(); - ui->checkBoxSelection->onRestore(); - ui->HighlightColor->onRestore(); - ui->SelectionColor->onRestore(); ui->TreeEditColor->onRestore(); ui->TreeActiveColor->onRestore(); @@ -175,4 +165,3 @@ void DlgSettingsViewColor::setGradientColorVisibility(bool val) } #include "moc_DlgSettingsViewColor.cpp" - diff --git a/src/Gui/DlgSettingsViewColor.h b/src/Gui/PreferencePages/DlgSettingsViewColor.h similarity index 96% rename from src/Gui/DlgSettingsViewColor.h rename to src/Gui/PreferencePages/DlgSettingsViewColor.h index bed4835a2c..5809270ec8 100644 --- a/src/Gui/DlgSettingsViewColor.h +++ b/src/Gui/PreferencePages/DlgSettingsViewColor.h @@ -1,70 +1,70 @@ -/*************************************************************************** - * Copyright (c) 2009 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H -#define GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H - -#include "PropertyPage.h" -#include - -namespace Gui { -namespace Dialog { -class Ui_DlgSettingsViewColor; - -/** - * The DlgSettingsViewColor class implements a preference page to change color settings - * for the Inventor viewer like background and selection. - * @author Werner Mayer - */ -class DlgSettingsViewColor : public PreferencePage -{ - Q_OBJECT - -public: - explicit DlgSettingsViewColor(QWidget* parent = nullptr); - ~DlgSettingsViewColor() override; - - void saveSettings() override; - void loadSettings() override; - -protected: - void changeEvent(QEvent *e) override; - -protected Q_SLOTS: - void onSwitchGradientColorsPressed(); - void onRadioButtonSimpleToggled(bool val); - void onRadioButtonGradientToggled(bool val); - void onRadioButtonRadialGradientToggled(bool val); - void onCheckMidColorToggled(bool val); - -private: - void setGradientColorVisibility(bool val); - -private: - std::unique_ptr ui; -}; - -} // namespace Dialog -} // namespace Gui - -#endif // GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H +/*************************************************************************** + * Copyright (c) 2009 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H +#define GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H + +#include +#include + +namespace Gui { +namespace Dialog { +class Ui_DlgSettingsViewColor; + +/** + * The DlgSettingsViewColor class implements a preference page to change color settings + * for the Inventor viewer like background and selection. + * @author Werner Mayer + */ +class DlgSettingsViewColor : public PreferencePage +{ + Q_OBJECT + +public: + explicit DlgSettingsViewColor(QWidget* parent = nullptr); + ~DlgSettingsViewColor() override; + + void saveSettings() override; + void loadSettings() override; + +protected: + void changeEvent(QEvent *e) override; + +protected Q_SLOTS: + void onSwitchGradientColorsPressed(); + void onRadioButtonSimpleToggled(bool val); + void onRadioButtonGradientToggled(bool val); + void onRadioButtonRadialGradientToggled(bool val); + void onCheckMidColorToggled(bool val); + +private: + void setGradientColorVisibility(bool val); + +private: + std::unique_ptr ui; +}; + +} // namespace Dialog +} // namespace Gui + +#endif // GUI_DIALOG_DLGSETTINGSVIEWCOLOR_H diff --git a/src/Gui/DlgSettingsViewColor.ui b/src/Gui/PreferencePages/DlgSettingsViewColor.ui similarity index 72% rename from src/Gui/DlgSettingsViewColor.ui rename to src/Gui/PreferencePages/DlgSettingsViewColor.ui index 5e493a6a65..d3bc9309e0 100644 --- a/src/Gui/DlgSettingsViewColor.ui +++ b/src/Gui/PreferencePages/DlgSettingsViewColor.ui @@ -14,158 +14,6 @@ Colors - - - - Selection - - - - 9 - - - 9 - - - 9 - - - 9 - - - 6 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 6 - - - - - - 240 - 0 - - - - Enable preselection and highlight by specified color - - - Enable preselection highlighting - - - true - - - EnablePreselection - - - View - - - - - - - false - - - - 0 - 0 - - - - - - - - 225 - 225 - 20 - - - - HighlightColor - - - View - - - - - - - Enable selection highlighting and use specified color - - - Enable selection highlighting - - - true - - - EnableSelection - - - View - - - - - - - false - - - - - - - 28 - 173 - 28 - - - - SelectionColor - - - View - - - - - - - - - Qt::Horizontal - - - - 183 - 23 - - - - - - - @@ -607,38 +455,5 @@ backgroundColorMid - - - checkBoxPreselection - toggled(bool) - HighlightColor - setEnabled(bool) - - - 70 - 45 - - - 310 - 54 - - - - - checkBoxSelection - toggled(bool) - SelectionColor - setEnabled(bool) - - - 158 - 76 - - - 291 - 75 - - - - + diff --git a/src/Gui/DlgSettingsWorkbenches.ui b/src/Gui/PreferencePages/DlgSettingsWorkbenches.ui similarity index 100% rename from src/Gui/DlgSettingsWorkbenches.ui rename to src/Gui/PreferencePages/DlgSettingsWorkbenches.ui diff --git a/src/Gui/DlgSettingsWorkbenchesImp.cpp b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp similarity index 99% rename from src/Gui/DlgSettingsWorkbenchesImp.cpp rename to src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp index aea9e7b60c..89fa6bb717 100644 --- a/src/Gui/DlgSettingsWorkbenchesImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp @@ -30,12 +30,13 @@ #include #endif +#include +#include +#include +#include + #include "DlgSettingsWorkbenchesImp.h" #include "ui_DlgSettingsWorkbenches.h" -#include "Application.h" -#include "UserSettings.h" -#include "Workbench.h" -#include "WorkbenchManager.h" using namespace Gui::Dialog; diff --git a/src/Gui/DlgSettingsWorkbenchesImp.h b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.h similarity index 99% rename from src/Gui/DlgSettingsWorkbenchesImp.h rename to src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.h index ce91a31034..13c3b4ba65 100644 --- a/src/Gui/DlgSettingsWorkbenchesImp.h +++ b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.h @@ -26,7 +26,7 @@ #ifndef GUI_DIALOG_DLGSETTINGSWORKBENCHES_IMP_H #define GUI_DIALOG_DLGSETTINGSWORKBENCHES_IMP_H -#include "PropertyPage.h" +#include #include namespace Gui::Dialog { diff --git a/src/Gui/ProgressBar.cpp b/src/Gui/ProgressBar.cpp index 82109e18f2..d8e5897756 100644 --- a/src/Gui/ProgressBar.cpp +++ b/src/Gui/ProgressBar.cpp @@ -24,7 +24,6 @@ #ifndef _PreComp_ # include # include -# include # include # include # include @@ -143,7 +142,7 @@ void SequencerBar::startStep() if (thr != currentThread) { d->guiThread = false; QMetaObject::invokeMethod(d->bar, "setRangeEx", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int, 0), Q_ARG(int, (int)nTotalSteps)); + Q_ARG(int, 0), Q_ARG(int, (int)nTotalSteps)); d->progressTime.start(); d->checkAbortTime.start(); d->measureTime.start(); @@ -247,7 +246,7 @@ void SequencerBar::setValue(int step) d->progressTime.restart(); if (thr != currentThread) { QMetaObject::invokeMethod(d->bar, "setValueEx", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,d->bar->value()+1)); + Q_ARG(int,d->bar->value()+1)); } else { d->bar->setValueEx(d->bar->value()+1); @@ -262,7 +261,7 @@ void SequencerBar::setValue(int step) d->progressTime.restart(); if (thr != currentThread) { QMetaObject::invokeMethod(d->bar, "setValueEx", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,step)); + Q_ARG(int,step)); if (d->bar->isVisible()) showRemainingTime(); } @@ -301,7 +300,6 @@ void SequencerBar::showRemainingTime() if (thr != currentThread) { QMetaObject::invokeMethod(getMainWindow(), "showMessage", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,status)); } else { @@ -320,11 +318,9 @@ void SequencerBar::resetData() QMetaObject::invokeMethod(d->bar, "aboutToHide", Qt::QueuedConnection); QMetaObject::invokeMethod(getMainWindow(), "showMessage", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,QString())); QMetaObject::invokeMethod(getMainWindow(), "setPaneText", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,1), Q_ARG(QString,QString())); d->bar->leaveControlEvents(d->guiThread); @@ -363,7 +359,6 @@ void SequencerBar::setText (const char* pszTxt) if (thr != currentThread) { QMetaObject::invokeMethod(getMainWindow(), "showMessage", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,d->text)); } else { diff --git a/src/Gui/ProgressDialog.cpp b/src/Gui/ProgressDialog.cpp index ea22e63352..7ad667e1d4 100644 --- a/src/Gui/ProgressDialog.cpp +++ b/src/Gui/ProgressDialog.cpp @@ -88,7 +88,7 @@ void SequencerDialog::startStep() if (thr != currentThread) { d->guiThread = false; QMetaObject::invokeMethod(d->dlg, "setRangeEx", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int, 0), Q_ARG(int, (int)nTotalSteps)); + Q_ARG(int, 0), Q_ARG(int, (int)nTotalSteps)); d->dlg->setModal(false); if (nTotalSteps == 0) { d->progressTime.start(); @@ -96,7 +96,7 @@ void SequencerDialog::startStep() d->measureTime.start(); QMetaObject::invokeMethod(d->dlg, "setValueEx", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,0)); + Q_ARG(int,0)); QMetaObject::invokeMethod(d->dlg, "aboutToShow", Qt::QueuedConnection); } else { @@ -174,7 +174,7 @@ void SequencerDialog::setValue(int step) d->progressTime.restart(); if (thr != currentThread) { QMetaObject::invokeMethod(d->dlg, "setValueEx", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,d->dlg->value()+1)); + Q_ARG(int,d->dlg->value()+1)); } else { d->dlg->setValueEx(d->dlg->value()+1); @@ -185,7 +185,7 @@ void SequencerDialog::setValue(int step) else { if (thr != currentThread) { QMetaObject::invokeMethod(d->dlg, "setValueEx", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,step)); + Q_ARG(int,step)); if (d->dlg->isVisible()) showRemainingTime(); } @@ -222,7 +222,6 @@ void SequencerDialog::showRemainingTime() if (thr != currentThread) { QMetaObject::invokeMethod(d->dlg, "setLabelText", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,status)); } else { @@ -241,7 +240,6 @@ void SequencerDialog::resetData() QMetaObject::invokeMethod(d->dlg, "hide", Qt::QueuedConnection); QMetaObject::invokeMethod(d->dlg, "setLabelText", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,QString())); } else { @@ -279,7 +277,6 @@ void SequencerDialog::setText (const char* pszTxt) if (thr != currentThread) { QMetaObject::invokeMethod(d->dlg, "setLabelText", Qt::/*Blocking*/QueuedConnection, - QGenericReturnArgument(), Q_ARG(QString,d->text)); } else { diff --git a/src/Gui/PropertyView.cpp b/src/Gui/PropertyView.cpp index 3058e9f100..39c927dc15 100644 --- a/src/Gui/PropertyView.cpp +++ b/src/Gui/PropertyView.cpp @@ -49,7 +49,7 @@ using namespace std; using namespace Gui; using namespace Gui::DockWnd; using namespace Gui::PropertyEditor; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; static ParameterGrp::handle _GetParam() { static ParameterGrp::handle hGrp; @@ -101,41 +101,43 @@ PropertyView::PropertyView(QWidget *parent) // connect after adding all tabs, so adding doesn't thrash the parameter connect(tabs, &QTabWidget::currentChanged, this, &PropertyView::tabChanged); + //NOLINTBEGIN this->connectPropData = - App::GetApplication().signalChangedObject.connect(boost::bind - (&PropertyView::slotChangePropertyData, this, bp::_2)); + App::GetApplication().signalChangedObject.connect(std::bind + (&PropertyView::slotChangePropertyData, this, sp::_2)); this->connectPropView = - Gui::Application::Instance->signalChangedObject.connect(boost::bind - (&PropertyView::slotChangePropertyView, this, bp::_1, bp::_2)); + Gui::Application::Instance->signalChangedObject.connect(std::bind + (&PropertyView::slotChangePropertyView, this, sp::_1, sp::_2)); this->connectPropAppend = - App::GetApplication().signalAppendDynamicProperty.connect(boost::bind - (&PropertyView::slotAppendDynamicProperty, this, bp::_1)); + App::GetApplication().signalAppendDynamicProperty.connect(std::bind + (&PropertyView::slotAppendDynamicProperty, this, sp::_1)); this->connectPropRemove = - App::GetApplication().signalRemoveDynamicProperty.connect(boost::bind - (&PropertyView::slotRemoveDynamicProperty, this, bp::_1)); + App::GetApplication().signalRemoveDynamicProperty.connect(std::bind + (&PropertyView::slotRemoveDynamicProperty, this, sp::_1)); this->connectPropChange = - App::GetApplication().signalChangePropertyEditor.connect(boost::bind - (&PropertyView::slotChangePropertyEditor, this, bp::_1, bp::_2)); + App::GetApplication().signalChangePropertyEditor.connect(std::bind + (&PropertyView::slotChangePropertyEditor, this, sp::_1, sp::_2)); this->connectUndoDocument = - App::GetApplication().signalUndoDocument.connect(boost::bind + App::GetApplication().signalUndoDocument.connect(std::bind (&PropertyView::slotRollback, this)); this->connectRedoDocument = - App::GetApplication().signalRedoDocument.connect(boost::bind + App::GetApplication().signalRedoDocument.connect(std::bind (&PropertyView::slotRollback, this)); this->connectActiveDoc = - Application::Instance->signalActiveDocument.connect(boost::bind - (&PropertyView::slotActiveDocument, this, bp::_1)); + Application::Instance->signalActiveDocument.connect(std::bind + (&PropertyView::slotActiveDocument, this, sp::_1)); this->connectDelDocument = Application::Instance->signalDeleteDocument.connect( - boost::bind(&PropertyView::slotDeleteDocument, this, bp::_1)); + std::bind(&PropertyView::slotDeleteDocument, this, sp::_1)); this->connectDelViewObject = Application::Instance->signalDeletedObject.connect( - boost::bind(&PropertyView::slotDeletedViewObject, this, bp::_1)); + std::bind(&PropertyView::slotDeletedViewObject, this, sp::_1)); this->connectDelObject = App::GetApplication().signalDeletedObject.connect( - boost::bind(&PropertyView::slotDeletedObject, this, bp::_1)); + std::bind(&PropertyView::slotDeletedObject, this, sp::_1)); this->connectChangedDocument = App::GetApplication().signalChangedDocument.connect( - boost::bind(&PropertyView::slotChangePropertyData, this, bp::_2)); + std::bind(&PropertyView::slotChangePropertyData, this, sp::_2)); + //NOLINTEND } PropertyView::~PropertyView() diff --git a/src/Gui/PythonConsole.cpp b/src/Gui/PythonConsole.cpp index 42c053fa01..8a7e73cee9 100644 --- a/src/Gui/PythonConsole.cpp +++ b/src/Gui/PythonConsole.cpp @@ -992,7 +992,13 @@ void PythonConsole::mouseReleaseEvent( QMouseEvent *e ) // Now we must amend the received event and pass forward. As e->setLocalPos() is only // available in Qt>=5.8, let's stop the original event propagation and generate a fake event // with corrected pointer position (inside the prompt line of the widget) - QMouseEvent newEv(e->type(), QPoint(newPos.x(),newPos.y()), e->button(), e->buttons(), e->modifiers()); +#if QT_VERSION < QT_VERSION_CHECK(6,4,0) + QMouseEvent newEv(e->type(), QPoint(newPos.x(),newPos.y()), + e->button(), e->buttons(), e->modifiers()); +#else + QMouseEvent newEv(e->type(), QPoint(newPos.x(),newPos.y()), e->globalPosition(), + e->button(), e->buttons(), e->modifiers()); +#endif e->accept(); QCoreApplication::sendEvent(this->viewport(), &newEv); return; @@ -1318,7 +1324,8 @@ void PythonConsole::contextMenuEvent ( QContextMenuEvent * e ) QAction *a; bool mayPasteHere = cursorBeyond( this->textCursor(), this->inputBegin() ); - a = menu.addAction(tr("&Copy"), this, &PythonConsole::copy, QKeySequence(QString::fromLatin1("CTRL+C"))); + a = menu.addAction(tr("&Copy"), this, &PythonConsole::copy); + a->setShortcut(QKeySequence(QString::fromLatin1("CTRL+C"))); a->setEnabled(textCursor().hasSelection()); a = menu.addAction(tr("&Copy command"), this, &PythonConsole::onCopyCommand); @@ -1337,11 +1344,13 @@ void PythonConsole::contextMenuEvent ( QContextMenuEvent * e ) menu.addSeparator(); - a = menu.addAction(tr("&Paste"), this, &PythonConsole::paste, QKeySequence(QString::fromLatin1("CTRL+V"))); + a = menu.addAction(tr("&Paste"), this, &PythonConsole::paste); + a->setShortcut(QKeySequence(QString::fromLatin1("CTRL+V"))); const QMimeData *md = QApplication::clipboard()->mimeData(); a->setEnabled( mayPasteHere && md && canInsertFromMimeData(md)); - a = menu.addAction(tr("Select All"), this, &PythonConsole::selectAll, QKeySequence(QString::fromLatin1("CTRL+A"))); + a = menu.addAction(tr("Select All"), this, &PythonConsole::selectAll); + a->setShortcut(QKeySequence(QString::fromLatin1("CTRL+A"))); a->setEnabled(!document()->isEmpty()); a = menu.addAction(tr("Clear console"), this, &PythonConsole::onClearConsole); diff --git a/src/Gui/PythonDebugger.h b/src/Gui/PythonDebugger.h index 489c992b15..ec9df7370f 100644 --- a/src/Gui/PythonDebugger.h +++ b/src/Gui/PythonDebugger.h @@ -26,6 +26,8 @@ #include #include #include +#include +#include namespace Gui { @@ -98,7 +100,7 @@ public: static void init_module(); PythonDebugModule(); - virtual ~PythonDebugModule(); + ~PythonDebugModule() override; private: Py::Object getFunctionCallCount(const Py::Tuple &a); @@ -116,9 +118,9 @@ public: static void init_type(); // announce properties and methods PythonDebugStdout(); - ~PythonDebugStdout(); + ~PythonDebugStdout() override; - Py::Object repr(); + Py::Object repr() override; Py::Object write(const Py::Tuple&); Py::Object flush(const Py::Tuple&); }; @@ -132,9 +134,9 @@ public: static void init_type(); // announce properties and methods PythonDebugStderr(); - ~PythonDebugStderr(); + ~PythonDebugStderr() override; - Py::Object repr(); + Py::Object repr() override; Py::Object write(const Py::Tuple&); }; @@ -147,9 +149,9 @@ public: static void init_type(); // announce properties and methods PythonDebugExcept(); - ~PythonDebugExcept(); + ~PythonDebugExcept() override; - Py::Object repr(); + Py::Object repr() override; Py::Object excepthook(const Py::Tuple&); }; @@ -159,7 +161,7 @@ class GuiExport PythonDebugger : public QObject public: PythonDebugger(); - ~PythonDebugger(); + ~PythonDebugger() override; Breakpoint getBreakpoint(const QString&) const; bool toggleBreakpoint(int line, const QString&); void runFile(const QString& fn); diff --git a/src/Gui/PythonEditor.cpp b/src/Gui/PythonEditor.cpp index b589fbdb04..de015145aa 100644 --- a/src/Gui/PythonEditor.cpp +++ b/src/Gui/PythonEditor.cpp @@ -71,7 +71,7 @@ PythonEditor::PythonEditor(QWidget* parent) d = new PythonEditorP(); this->setSyntaxHighlighter(new PythonSyntaxHighlighter(this)); - // set acelerators + // set accelerators auto comment = new QShortcut(this); comment->setKey(QKeySequence(QString::fromLatin1("ALT+C"))); @@ -150,8 +150,10 @@ void PythonEditor::contextMenuEvent ( QContextMenuEvent * e ) QMenu* menu = createStandardContextMenu(); if (!isReadOnly()) { menu->addSeparator(); - menu->addAction( tr("Comment"), this, &PythonEditor::onComment, QKeySequence(QString::fromLatin1("ALT+C"))); - menu->addAction( tr("Uncomment"), this, &PythonEditor::onUncomment, QKeySequence(QString::fromLatin1("ALT+U"))); + QAction* comment = menu->addAction( tr("Comment"), this, &PythonEditor::onComment); + comment->setShortcut(QKeySequence(QString::fromLatin1("ALT+C"))); + QAction* uncomment = menu->addAction( tr("Uncomment"), this, &PythonEditor::onUncomment); + uncomment->setShortcut(QKeySequence(QString::fromLatin1("ALT+U"))); } menu->exec(e->globalPos()); diff --git a/src/Gui/PythonEditor.h b/src/Gui/PythonEditor.h index 7ddc5aa628..c291fe8a49 100644 --- a/src/Gui/PythonEditor.h +++ b/src/Gui/PythonEditor.h @@ -80,9 +80,9 @@ class GuiExport PythonSyntaxHighlighter : public SyntaxHighlighter { public: explicit PythonSyntaxHighlighter(QObject* parent); - virtual ~PythonSyntaxHighlighter(); + ~PythonSyntaxHighlighter() override; - void highlightBlock (const QString & text); + void highlightBlock (const QString & text) override; private: PythonSyntaxHighlighterP* d; diff --git a/src/Gui/PythonWrapper.cpp b/src/Gui/PythonWrapper.cpp index 5339c1f64c..c460d17bf9 100644 --- a/src/Gui/PythonWrapper.cpp +++ b/src/Gui/PythonWrapper.cpp @@ -352,7 +352,7 @@ private: this, &WrapperManager::clear); wrapQApplication(); } - ~WrapperManager() = default; + ~WrapperManager() override = default; }; template @@ -583,9 +583,39 @@ QGraphicsObject* PythonWrapper::toQGraphicsObject(PyObject* pyPtr) QGraphicsObject* PythonWrapper::toQGraphicsObject(const Py::Object& pyobject) { -return toQGraphicsObject(pyobject.ptr()); + return toQGraphicsObject(pyobject.ptr()); } +Py::Object PythonWrapper::fromQImage(const QImage& img) +{ +#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) +#if defined (HAVE_SHIBOKEN2) + PyObject* pyobj = Shiboken::Conversions::copyToPython(reinterpret_cast(getPyTypeObjectForTypeName()), + const_cast(&img)); +#else + PyObject* pyobj = Shiboken::Conversions::copyToPython(getPyTypeObjectForTypeName(), + const_cast(&img)); +#endif + if (pyobj) { + return Py::asObject(pyobj); + } +#else + // Access shiboken/PySide via Python + // + return qt_wrapInstance(&img, "QImage", shiboken, PySide + ".QtGui", "wrapInstance"); +#endif + throw Py::RuntimeError("Failed to wrap icon"); +} + +QImage *PythonWrapper::toQImage(PyObject *pyobj) +{ +#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) + return qt_getCppType(pyobj); +#else + Q_UNUSED(pyobj); +#endif + return nullptr; +} Py::Object PythonWrapper::fromQIcon(const QIcon* icon) { diff --git a/src/Gui/PythonWrapper.h b/src/Gui/PythonWrapper.h index c31f30e471..8326d69e39 100644 --- a/src/Gui/PythonWrapper.h +++ b/src/Gui/PythonWrapper.h @@ -31,6 +31,7 @@ QT_BEGIN_NAMESPACE class QDir; class QIcon; +class QImage; class QGraphicsObject; class QGraphicsItem; class QObject; @@ -61,6 +62,9 @@ public: Py::Object fromQObject(QObject*, const char* className=nullptr); Py::Object fromQWidget(QWidget*, const char* className=nullptr); const char* getWrapperName(QObject*) const; + + Py::Object fromQImage(const QImage&); + QImage *toQImage(PyObject *pyobj); /*! Create a Python wrapper for the icon. The icon must be created on the heap and the Python wrapper takes ownership of it. diff --git a/src/Gui/QSint/actionpanel/actionbox.cpp b/src/Gui/QSint/actionpanel/actionbox.cpp index bc9d582c79..88f6665f3c 100644 --- a/src/Gui/QSint/actionpanel/actionbox.cpp +++ b/src/Gui/QSint/actionpanel/actionbox.cpp @@ -148,7 +148,7 @@ QList ActionBox::createItems(QList actions) QLayout *l = createHBoxLayout(); - foreach (QAction *action, actions) { + Q_FOREACH (QAction *action, actions) { ActionLabel *act = createItem(action, l); if (act) list.append(act); diff --git a/src/Gui/QSint/actionpanel/actionbox.h b/src/Gui/QSint/actionpanel/actionbox.h index 3692d9938a..7c5a32cd57 100644 --- a/src/Gui/QSint/actionpanel/actionbox.h +++ b/src/Gui/QSint/actionpanel/actionbox.h @@ -242,7 +242,7 @@ public: */ void addWidget(QWidget * w, QLayout * l = nullptr); - virtual QSize minimumSizeHint() const; + QSize minimumSizeHint() const override; protected: void init(); diff --git a/src/Gui/QSint/actionpanel/actiongroup.h b/src/Gui/QSint/actionpanel/actiongroup.h index b8a87dc8d6..479fe18477 100644 --- a/src/Gui/QSint/actionpanel/actiongroup.h +++ b/src/Gui/QSint/actionpanel/actiongroup.h @@ -121,7 +121,7 @@ public: */ QString headerText() const; - QSize minimumSizeHint() const; + QSize minimumSizeHint() const override; public Q_SLOTS: /** Expands/collapses the group. @@ -155,7 +155,7 @@ protected Q_SLOTS: protected: void init(bool header); - virtual void paintEvent ( QPaintEvent * event ); + void paintEvent ( QPaintEvent * event ) override; double m_foldStep, m_foldDelta, m_fullHeight, m_tempHeight; int m_foldDirection; diff --git a/src/Gui/QSint/actionpanel/actionlabel.h b/src/Gui/QSint/actionpanel/actionlabel.h index f3bca6abb7..988906de7f 100644 --- a/src/Gui/QSint/actionpanel/actionlabel.h +++ b/src/Gui/QSint/actionpanel/actionlabel.h @@ -79,10 +79,10 @@ public: */ explicit ActionLabel(QAction *action, QWidget *parent = nullptr); - virtual ~ActionLabel() {} + ~ActionLabel() override {} - virtual QSize sizeHint() const; - virtual QSize minimumSizeHint() const; + QSize sizeHint() const override; + QSize minimumSizeHint() const override; protected: void init(); diff --git a/src/Gui/QSint/actionpanel/actionpanel.cpp b/src/Gui/QSint/actionpanel/actionpanel.cpp index c376926271..3b31e3dc38 100644 --- a/src/Gui/QSint/actionpanel/actionpanel.cpp +++ b/src/Gui/QSint/actionpanel/actionpanel.cpp @@ -39,7 +39,7 @@ void ActionPanel::setScheme(ActionPanelScheme *scheme) // set scheme for children QObjectList list(children()); - foreach(QObject *obj, list) { + Q_FOREACH(QObject *obj, list) { if (dynamic_cast(obj)) { ((ActionGroup*)obj)->setScheme(scheme); continue; diff --git a/src/Gui/QSint/actionpanel/actionpanel.h b/src/Gui/QSint/actionpanel/actionpanel.h index c563259895..7f029a58e6 100644 --- a/src/Gui/QSint/actionpanel/actionpanel.h +++ b/src/Gui/QSint/actionpanel/actionpanel.h @@ -89,7 +89,7 @@ public: */ void setScheme(ActionPanelScheme *scheme); - virtual QSize minimumSizeHint() const; + QSize minimumSizeHint() const override; protected: //virtual void paintEvent ( QPaintEvent * event ); diff --git a/src/Gui/QSint/actionpanel/taskgroup_p.h b/src/Gui/QSint/actionpanel/taskgroup_p.h index 16b71491c6..3833d4395b 100644 --- a/src/Gui/QSint/actionpanel/taskgroup_p.h +++ b/src/Gui/QSint/actionpanel/taskgroup_p.h @@ -40,9 +40,9 @@ public: QPixmap transparentRender(); protected: - virtual void paintEvent ( QPaintEvent * event ); - virtual void keyPressEvent ( QKeyEvent * event ); - virtual void keyReleaseEvent ( QKeyEvent * event ); + void paintEvent ( QPaintEvent * event ) override; + void keyPressEvent ( QKeyEvent * event ) override; + void keyReleaseEvent ( QKeyEvent * event ) override; ActionPanelScheme *myScheme; diff --git a/src/Gui/QuantitySpinBox.cpp b/src/Gui/QuantitySpinBox.cpp index 6b60ed6a1d..5d9c570c7a 100644 --- a/src/Gui/QuantitySpinBox.cpp +++ b/src/Gui/QuantitySpinBox.cpp @@ -187,18 +187,31 @@ public: static const std::string regexConstants = "e|ip|lomm|lom"; static const std::string regexNumber = "\\d+\\s*\\.?\\s*\\d*|\\.\\s*\\d+"; - //Find units and replace 1/2mm -> 1/2*(1mm), 1^2mm -> 1^2*(1mm) - copyChunk.replace(QRegularExpression(QString::fromStdString("("+regexUnits+")(\\)|(?:\\*|(?:\\)(?:(?:\\s*(?:"+regexConstants+"|\\)(?:[^()]|(?R))*\\((?:"+regexUnitlessFunctions+")|"+regexNumber+"))|(?R))*\\(|(?:\\s*(?:"+regexConstants+"|\\)(?:[^()]|(?R))*\\((?:"+regexUnitlessFunctions+")|"+regexNumber+"))))+[\\/\\^](?!("+regexUnits+")))")), QString::fromUtf8(")\\11(*\\2")); + // If expression does not contain /*() or ^, this regex will not find anything + if (copy.contains(QLatin1Char('/')) || copy.contains(QLatin1Char('*')) || copy.contains(QLatin1Char('(')) || copy.contains(QLatin1Char(')')) || copy.contains(QLatin1Char('^'))){ + //Find units and replace 1/2mm -> 1/2*(1mm), 1^2mm -> 1^2*(1mm) + QRegularExpression fixUnits(QString::fromStdString("("+regexUnits+")(\\s*\\)|(?:\\*|(?:\\)(?:(?:\\s*(?:"+regexConstants+"|\\)(?:[^()]|(?R))*\\((?:"+regexUnitlessFunctions+")|"+regexNumber+"))|(?R))*\\(|(?:\\s*(?:"+regexConstants+"|\\)(?:[^()]|(?R))*\\((?:"+regexUnitlessFunctions+")|"+regexNumber+"))))+(?:[\\/\\^]|(.*$))(?!("+regexUnits+")))")); + QRegularExpressionMatch fixUnitsMatch = fixUnits.match(copyChunk); + + //3rd capture group being filled indicates regex bailed out; no match. + if (fixUnitsMatch.lastCapturedIndex() == 2 || (fixUnitsMatch.lastCapturedIndex() == 3 && fixUnitsMatch.captured(3).isEmpty())){ + QString matchUnits = fixUnitsMatch.captured(1); + QString matchNumbers = fixUnitsMatch.captured(2); + copyChunk.replace(matchUnits+matchNumbers, QString::fromUtf8(")")+matchUnits+QString::fromUtf8("1(*")+matchNumbers); + } + } //Add default units to string if none are present - QRegularExpression unitsRe(QString::fromStdString("(?<=\\b|[^a-zA-Z])("+regexUnits+")(?=\\b|[^a-zA-Z])|°|″|′|\"|'|\\p{L}\\.\\p{L}|\\[\\p{L}")); + if (!copyChunk.contains(unitStr)){ // Fast check + QRegularExpression unitsRe(QString::fromStdString("(?<=\\b|[^a-zA-Z])("+regexUnits+")(?=\\b|[^a-zA-Z])|°|″|′|\"|'|\\p{L}\\.\\p{L}|\\[\\p{L}")); - QRegularExpressionMatch match = unitsRe.match(copyChunk); - std::reverse(copyChunk.begin(), copyChunk.end()); - if (!match.hasMatch() && !copyChunk.isEmpty()){ //If no units are found, use default units - copyChunk.append(QString::fromUtf8("*(1")+unitStr+QString::fromUtf8(")")); // Add units to the end of chunk *(1unit) + QRegularExpressionMatch match = unitsRe.match(copyChunk); + if (!match.hasMatch() && !copyChunk.isEmpty()) //If no units are found, use default units + copyChunk.prepend(QString::fromUtf8(")")+unitStr+QString::fromUtf8("1(*")); // Add units to the end of chunk *(1unit) } + std::reverse(copyChunk.begin(), copyChunk.end()); + copy.replace(matchChunk.capturedStart() + lengthOffset, matchChunk.capturedEnd() - matchChunk.capturedStart(), copyChunk); lengthOffset += copyChunk.length() - origionalChunk.length(); diff --git a/src/Gui/Quarter/CMakeLists.txt b/src/Gui/Quarter/CMakeLists.txt index 45ee147fdd..cc657e946e 100644 --- a/src/Gui/Quarter/CMakeLists.txt +++ b/src/Gui/Quarter/CMakeLists.txt @@ -13,16 +13,9 @@ FILE(GLOB_RECURSE Sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) FILE(GLOB_RECURSE PublicHeaders RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h) FILE(GLOB_RECURSE PrivateHeaders RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../../include/Quarter/*.h) -# Find the headers that should be Moc'ed -FILE(GLOB_RECURSE MocPrivateHeaders RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h) -FILE(GLOB_RECURSE MocPublicHeaders RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ../../include/Quarter/*.h) - -# Moc both the public and private headers -SIM_QT4_AUTO_WRAP_CPP(MocPrivateSources ${MocPrivateHeaders}) -SIM_QT4_AUTO_WRAP_CPP(MocPublicSources ${MocPublicHeaders}) # Some convenient variables. The inclusion of the headers in the source variable is to force CMake to include the headers in VS project generation. -SET(AllSources ${Sources} ${MocPublicSources} ${MocPrivateSources} ${PublicHeaders} ${PrivateHeaders} ${CMakeCache}) +SET(AllSources ${Sources} ${PublicHeaders} ${PrivateHeaders} ${CMakeCache}) IF (Spacenav_FOUND) diff --git a/src/Gui/Quarter/ContextMenu.cpp b/src/Gui/Quarter/ContextMenu.cpp index 9cd4e1becd..8ad8eab991 100644 --- a/src/Gui/Quarter/ContextMenu.cpp +++ b/src/Gui/Quarter/ContextMenu.cpp @@ -60,7 +60,7 @@ ContextMenu::ContextMenu(QuarterWidget * quarterwidget) QActionGroup * stereomodegroup = nullptr; QActionGroup * transparencytypegroup = nullptr; - foreach (QAction * action, quarterwidget->renderModeActions()) { + Q_FOREACH (QAction * action, quarterwidget->renderModeActions()) { if (!rendermodegroup) { rendermodegroup = action->actionGroup(); } else { @@ -73,7 +73,7 @@ ContextMenu::ContextMenu(QuarterWidget * quarterwidget) rendermenu->addAction(action); } - foreach (QAction * action, quarterwidget->stereoModeActions()) { + Q_FOREACH (QAction * action, quarterwidget->stereoModeActions()) { if (!stereomodegroup) { stereomodegroup = action->actionGroup(); } else { @@ -86,7 +86,7 @@ ContextMenu::ContextMenu(QuarterWidget * quarterwidget) stereomenu->addAction(action); } - foreach (QAction * action, quarterwidget->transparencyTypeActions()) { + Q_FOREACH (QAction * action, quarterwidget->transparencyTypeActions()) { if (!transparencytypegroup) { transparencytypegroup = action->actionGroup(); } else { diff --git a/src/Gui/Quarter/ContextMenu.h b/src/Gui/Quarter/ContextMenu.h index 13603e194d..8638684297 100644 --- a/src/Gui/Quarter/ContextMenu.h +++ b/src/Gui/Quarter/ContextMenu.h @@ -46,7 +46,7 @@ class ContextMenu : public QObject { Q_OBJECT public: ContextMenu(QuarterWidget * quarterwidget); - ~ContextMenu(); + ~ContextMenu() override; QMenu * getMenu() const; diff --git a/src/Gui/Quarter/EventFilter.cpp b/src/Gui/Quarter/EventFilter.cpp index 51a72a7c60..5f381f1229 100644 --- a/src/Gui/Quarter/EventFilter.cpp +++ b/src/Gui/Quarter/EventFilter.cpp @@ -58,7 +58,7 @@ public: this->windowsize = SbVec2s(event->size().width(), event->size().height()); - foreach(InputDevice * device, this->devices) { + Q_FOREACH(InputDevice * device, this->devices) { device->setWindowSize(this->windowsize); } } @@ -75,7 +75,7 @@ public: SbVec2s mousepos(event->pos().x(), this->windowsize[1] - event->pos().y() - 1); // the following corrects for high-dpi displays (e.g. mac retina) mousepos *= quarterwidget->devicePixelRatio(); - foreach(InputDevice * device, this->devices) { + Q_FOREACH(InputDevice * device, this->devices) { device->setMousePosition(mousepos); } } @@ -162,7 +162,7 @@ EventFilter::eventFilter(QObject * obj, QEvent * qevent) // translate QEvent into SoEvent and see if it is handled by scene // graph - foreach(InputDevice * device, PRIVATE(this)->devices) { + Q_FOREACH(InputDevice * device, PRIVATE(this)->devices) { const SoEvent * soevent = device->translateEvent(qevent); if (soevent && PRIVATE(this)->quarterwidget->processSoEvent(soevent)) { return true; diff --git a/src/Gui/Quarter/InteractionMode.h b/src/Gui/Quarter/InteractionMode.h index 0f03f10432..d0444d9a33 100644 --- a/src/Gui/Quarter/InteractionMode.h +++ b/src/Gui/Quarter/InteractionMode.h @@ -53,7 +53,7 @@ class QUARTER_DLL_API InteractionMode : public QObject { Q_OBJECT public: InteractionMode(QuarterWidget * quarterwidget); - virtual ~InteractionMode(); + ~InteractionMode() override; void setEnabled(bool yes); bool enabled() const; @@ -62,7 +62,7 @@ public: bool on() const; protected: - virtual bool eventFilter(QObject *, QEvent * event); + bool eventFilter(QObject *, QEvent * event) override; private: bool keyPressEvent(QKeyEvent * event); diff --git a/src/Gui/Quarter/NativeEvent.h b/src/Gui/Quarter/NativeEvent.h index 92e59bb03e..165b8c965a 100644 --- a/src/Gui/Quarter/NativeEvent.h +++ b/src/Gui/Quarter/NativeEvent.h @@ -50,7 +50,7 @@ public: NativeEvent(); #endif // !HAVE_SPACENAV_LIB - virtual ~NativeEvent(); + ~NativeEvent() override; private: void * rawevent; diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index f43c168712..bf97ad6e59 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -164,10 +164,10 @@ public: #endif setFormat(surfaceFormat); } - ~CustomGLWidget() + ~CustomGLWidget() override { } - void initializeGL() + void initializeGL() override { QOpenGLContext *context = QOpenGLContext::currentContext(); #if defined (_DEBUG) && 0 @@ -193,7 +193,7 @@ public: // gl = mdi.findChild(QtWidgets.QOpenGLWidget) // img = gl.grabFramebuffer() // \endcode - void paintGL() + void paintGL() override { QuarterWidget* qw = qobject_cast(parentWidget()); if (qw) { @@ -211,7 +211,7 @@ public: Qt::DirectConnection, QGenericReturnArgument()); } - bool event(QEvent *e) + bool event(QEvent *e) override { // If a debug logger is activated then Qt's default implementation // first releases the context before stopping the logger. However, @@ -233,7 +233,7 @@ public: { qDebug() << message; } - void showEvent(QShowEvent*) + void showEvent(QShowEvent*) override { update(); // force update when changing window mode } @@ -828,7 +828,7 @@ QuarterWidget::updateDevicePixelRatio() { } if(PRIVATE(this)->device_pixel_ratio != dev_pix_ratio) { PRIVATE(this)->device_pixel_ratio = dev_pix_ratio; - emit devicePixelRatioChanged(dev_pix_ratio); + Q_EMIT devicePixelRatioChanged(dev_pix_ratio); return true; } return false; diff --git a/src/Gui/Quarter/QuarterWidget.h b/src/Gui/Quarter/QuarterWidget.h index f1d7f586cc..5b50cac0cf 100644 --- a/src/Gui/Quarter/QuarterWidget.h +++ b/src/Gui/Quarter/QuarterWidget.h @@ -117,7 +117,7 @@ public: explicit QuarterWidget(QWidget * parent = nullptr, const QtGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit QuarterWidget(QtGLContext * context, QWidget * parent = nullptr, const QtGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit QuarterWidget(const QtGLFormat & format, QWidget * parent = nullptr, const QtGLWidget * shareWidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); - virtual ~QuarterWidget(); + ~QuarterWidget() override; TransparencyType transparencyType() const; RenderMode renderMode() const; @@ -172,7 +172,7 @@ public: void removeStateMachine(SoScXMLStateMachine * statemachine); virtual bool processSoEvent(const SoEvent * event); - virtual QSize minimumSizeHint() const; + QSize minimumSizeHint() const override; QList transparencyTypeActions() const; QList stereoModeActions() const; @@ -196,9 +196,9 @@ private Q_SLOTS: virtual void aboutToDestroyGLContext(); protected: - virtual void paintEvent(QPaintEvent*); - virtual void resizeEvent(QResizeEvent*); - virtual bool viewportEvent(QEvent* event); + void paintEvent(QPaintEvent*) override; + void resizeEvent(QResizeEvent*) override; + bool viewportEvent(QEvent* event) override; virtual void actualRedraw(); virtual bool updateDevicePixelRatio(); diff --git a/src/Gui/Quarter/SensorManager.h b/src/Gui/Quarter/SensorManager.h index 4b8043b3a8..8ab8f422e8 100644 --- a/src/Gui/Quarter/SensorManager.h +++ b/src/Gui/Quarter/SensorManager.h @@ -46,7 +46,7 @@ class SensorManager : public QObject { typedef QObject inherited; public: SensorManager(); - ~SensorManager(); + ~SensorManager() override; public Q_SLOTS: void idleTimeout(); diff --git a/src/Gui/Quarter/SignalThread.h b/src/Gui/Quarter/SignalThread.h index 2b350c7719..f96f2245ae 100644 --- a/src/Gui/Quarter/SignalThread.h +++ b/src/Gui/Quarter/SignalThread.h @@ -46,9 +46,9 @@ class SignalThread : public QThread { Q_OBJECT public: SignalThread(); - virtual ~SignalThread(); + ~SignalThread() override; - virtual void run(); + void run() override; void trigger(); void stopThread(); diff --git a/src/Gui/Quarter/SoQTQuarterAdaptor.h b/src/Gui/Quarter/SoQTQuarterAdaptor.h index d3bcb90a29..f9f46a25ee 100644 --- a/src/Gui/Quarter/SoQTQuarterAdaptor.h +++ b/src/Gui/Quarter/SoQTQuarterAdaptor.h @@ -40,7 +40,7 @@ namespace Coin3D { namespace Quarter { class SoQTQuarterAdaptor; -typedef void SoQTQuarterAdaptorCB(void* data, SoQTQuarterAdaptor* viewer); +using SoQTQuarterAdaptorCB = void (void* data, SoQTQuarterAdaptor* viewer); class QUARTER_DLL_API SoQTQuarterAdaptor : public QuarterWidget { @@ -50,7 +50,7 @@ public: explicit SoQTQuarterAdaptor(QWidget* parent = nullptr, const QtGLWidget* sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit SoQTQuarterAdaptor(const QtGLFormat& format, QWidget* parent = nullptr, const QtGLWidget* shareWidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); explicit SoQTQuarterAdaptor(QtGLContext* context, QWidget* parent = nullptr, const QtGLWidget* sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); - virtual ~SoQTQuarterAdaptor(); + ~SoQTQuarterAdaptor() override; //the functions available in soqtviewer but missing in quarter QWidget* getWidget(); @@ -93,12 +93,12 @@ public: virtual void resetToHomePosition(); virtual bool hasHomePosition() const {return m_storedcamera;} - virtual void setSceneGraph(SoNode* root) { + void setSceneGraph(SoNode* root) override { QuarterWidget::setSceneGraph(root); } - virtual bool processSoEvent(const SoEvent* event); - virtual void paintEvent(QPaintEvent*); + bool processSoEvent(const SoEvent* event) override; + void paintEvent(QPaintEvent*) override; //this functions still need to be ported virtual void afterRealizeHook() {} //enables spacenav and joystick in soqt, dunno if this is needed diff --git a/src/Gui/Quarter/devices/Keyboard.h b/src/Gui/Quarter/devices/Keyboard.h index 2299adf3d9..d63cf30aa8 100644 --- a/src/Gui/Quarter/devices/Keyboard.h +++ b/src/Gui/Quarter/devices/Keyboard.h @@ -45,9 +45,9 @@ class QUARTER_DLL_API Keyboard : public InputDevice { public: Keyboard(QuarterWidget* quarter); Keyboard(); - virtual ~Keyboard(); + ~Keyboard() override; - virtual const SoEvent * translateEvent(QEvent * event); + const SoEvent * translateEvent(QEvent * event) override; private: friend class KeyboardP; diff --git a/src/Gui/Quarter/devices/Mouse.h b/src/Gui/Quarter/devices/Mouse.h index 6ac878063d..988a06ec8c 100644 --- a/src/Gui/Quarter/devices/Mouse.h +++ b/src/Gui/Quarter/devices/Mouse.h @@ -45,9 +45,9 @@ class QUARTER_DLL_API Mouse : public InputDevice { public: Mouse(QuarterWidget* quarter); Mouse(); - virtual ~Mouse(); + ~Mouse() override; - virtual const SoEvent * translateEvent(QEvent * event); + const SoEvent * translateEvent(QEvent * event) override; private: friend class MouseP; diff --git a/src/Gui/Quarter/devices/SpaceNavigatorDevice.h b/src/Gui/Quarter/devices/SpaceNavigatorDevice.h index c8f6e8a5b3..f9e99fba61 100644 --- a/src/Gui/Quarter/devices/SpaceNavigatorDevice.h +++ b/src/Gui/Quarter/devices/SpaceNavigatorDevice.h @@ -44,8 +44,8 @@ class QUARTER_DLL_API SpaceNavigatorDevice : public InputDevice { public: SpaceNavigatorDevice(QuarterWidget* quarter); SpaceNavigatorDevice(); - virtual ~SpaceNavigatorDevice(); - virtual const SoEvent * translateEvent(QEvent * event); + ~SpaceNavigatorDevice() override; + const SoEvent * translateEvent(QEvent * event) override; private: class SpaceNavigatorDeviceP * pimpl; diff --git a/src/Gui/Quarter/eventhandlers/DragDropHandler.h b/src/Gui/Quarter/eventhandlers/DragDropHandler.h index 83d439c261..5f194f6d27 100644 --- a/src/Gui/Quarter/eventhandlers/DragDropHandler.h +++ b/src/Gui/Quarter/eventhandlers/DragDropHandler.h @@ -47,10 +47,10 @@ class QUARTER_DLL_API DragDropHandler : public QObject { Q_OBJECT public: DragDropHandler(QuarterWidget * parent); - virtual ~DragDropHandler(); + ~DragDropHandler() override; protected: - virtual bool eventFilter(QObject *, QEvent * event); + bool eventFilter(QObject *, QEvent * event) override; private: friend class DragDropHandlerP; diff --git a/src/Gui/Quarter/eventhandlers/EventFilter.h b/src/Gui/Quarter/eventhandlers/EventFilter.h index 5f4f95bd1b..5fa746f6e9 100644 --- a/src/Gui/Quarter/eventhandlers/EventFilter.h +++ b/src/Gui/Quarter/eventhandlers/EventFilter.h @@ -48,7 +48,7 @@ class QUARTER_DLL_API EventFilter : public QObject { public: EventFilter(QObject * parent); - ~EventFilter(); + ~EventFilter() override; void registerInputDevice(InputDevice * device); void unregisterInputDevice(InputDevice * device); @@ -56,7 +56,7 @@ public: const QPoint & globalMousePosition() const; protected: - bool eventFilter(QObject * obj, QEvent * event); + bool eventFilter(QObject * obj, QEvent * event) override; private: class EventFilterP * pimpl; diff --git a/src/Gui/Quarter/eventhandlers/FocusHandler.h b/src/Gui/Quarter/eventhandlers/FocusHandler.h index 20edca610c..4c5200cc2c 100644 --- a/src/Gui/Quarter/eventhandlers/FocusHandler.h +++ b/src/Gui/Quarter/eventhandlers/FocusHandler.h @@ -46,10 +46,10 @@ class FocusHandler : public QObject { Q_OBJECT public: FocusHandler(QObject * parent); - virtual ~FocusHandler(); + ~FocusHandler() override; protected: - virtual bool eventFilter(QObject *, QEvent * event); + bool eventFilter(QObject *, QEvent * event) override; private: void focusEvent(const SbName & focusevent); diff --git a/src/Gui/ReportView.cpp b/src/Gui/ReportView.cpp index 27947f2a5f..e5d349b717 100644 --- a/src/Gui/ReportView.cpp +++ b/src/Gui/ReportView.cpp @@ -653,7 +653,8 @@ void ReportOutput::contextMenuEvent ( QContextMenuEvent * e ) // Use Qt's internal translation of the Copy & Select All commands const char* context = "QWidgetTextControl"; QString copyStr = QCoreApplication::translate(context, "&Copy"); - QAction* copy = menu->addAction(copyStr, this, &ReportOutput::copy, QKeySequence(QKeySequence::Copy)); + QAction* copy = menu->addAction(copyStr, this, &ReportOutput::copy); + copy->setShortcut(QKeySequence(QKeySequence::Copy)); copy->setEnabled(textCursor().hasSelection()); QIcon icon = QIcon::fromTheme(QString::fromLatin1("edit-copy")); if (!icon.isNull()) @@ -661,7 +662,8 @@ void ReportOutput::contextMenuEvent ( QContextMenuEvent * e ) menu->addSeparator(); QString selectStr = QCoreApplication::translate(context, "Select All"); - menu->addAction(selectStr, this, &ReportOutput::selectAll, QKeySequence(QKeySequence::SelectAll)); + QAction* select = menu->addAction(selectStr, this, &ReportOutput::selectAll); + select->setShortcut(QKeySequence(QKeySequence::SelectAll)); menu->addAction(tr("Clear"), this, &ReportOutput::clear); menu->addSeparator(); diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp index cd08beb108..067e349500 100644 --- a/src/Gui/Selection.cpp +++ b/src/Gui/Selection.cpp @@ -56,7 +56,7 @@ FC_LOG_LEVEL_INIT("Selection",false,true,true) using namespace Gui; using namespace std; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; SelectionGateFilterExternal::SelectionGateFilterExternal(const char *docName, const char *objName) { if(docName) { @@ -131,8 +131,10 @@ void SelectionObserver::attachSelection() auto &signal = newStyle ? Selection().signalSelectionChanged3 : oldStyle ? Selection().signalSelectionChanged2 : Selection().signalSelectionChanged ; - connectSelection = signal.connect(boost::bind - (&SelectionObserver::_onSelectionChanged, this, bp::_1)); + //NOLINTBEGIN + connectSelection = signal.connect(std::bind + (&SelectionObserver::_onSelectionChanged, this, sp::_1)); + //NOLINTEND if (!filterDocName.empty()) { Selection().addSelectionGate( @@ -1011,7 +1013,7 @@ void SelectionSingleton::selStackGoForward(int count) { } std::deque tmpStack; _SelStackForward.swap(tmpStack); - while(1) { + while(true) { bool found = false; for(auto &sobjT : _SelStackBack.back()) { if(sobjT.getSubObject()) { @@ -1613,8 +1615,10 @@ SelectionSingleton::SelectionSingleton() hz = 0; ActiveGate = nullptr; gateResolve = ResolveMode::OldStyleElement; - App::GetApplication().signalDeletedObject.connect(boost::bind(&Gui::SelectionSingleton::slotDeletedObject, this, bp::_1)); - signalSelectionChanged.connect(boost::bind(&Gui::SelectionSingleton::slotSelectionChanged, this, bp::_1)); + //NOLINTBEGIN + App::GetApplication().signalDeletedObject.connect(std::bind(&Gui::SelectionSingleton::slotDeletedObject, this, sp::_1)); + signalSelectionChanged.connect(std::bind(&Gui::SelectionSingleton::slotSelectionChanged, this, sp::_1)); + //NOLINTEND } /** diff --git a/src/Gui/SelectionView.cpp b/src/Gui/SelectionView.cpp index 35eaddbd01..ce592d3658 100644 --- a/src/Gui/SelectionView.cpp +++ b/src/Gui/SelectionView.cpp @@ -333,7 +333,7 @@ void SelectionView::select(QListWidgetItem* item) //Gui::Selection().clearSelection(); Gui::Command::runCommand(Gui::Command::Gui,"Gui.Selection.clearSelection()"); //Gui::Selection().addSelection(elements[0].toLatin1(),elements[1].toLatin1(),0); - QString cmd = QString::fromLatin1("Gui.Selection.addSelection(App.getDocument(\"%1\").getObject(\"%2\"))").arg(elements[0],elements[1]); + QString cmd = QString::fromLatin1(R"(Gui.Selection.addSelection(App.getDocument("%1").getObject("%2")))").arg(elements[0],elements[1]); Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); }catch(Base::Exception &e) { e.ReportException(); @@ -350,7 +350,7 @@ void SelectionView::deselect() return; //Gui::Selection().rmvSelection(elements[0].toLatin1(),elements[1].toLatin1(),0); - QString cmd = QString::fromLatin1("Gui.Selection.removeSelection(App.getDocument(\"%1\").getObject(\"%2\"))").arg(elements[0],elements[1]); + QString cmd = QString::fromLatin1(R"(Gui.Selection.removeSelection(App.getDocument("%1").getObject("%2")))").arg(elements[0],elements[1]); try { Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); }catch(Base::Exception &e) { @@ -457,7 +457,7 @@ void SelectionView::touch() QStringList elements = item->data(Qt::UserRole).toStringList(); if (elements.size() < 2) return; - QString cmd = QString::fromLatin1("App.getDocument(\"%1\").getObject(\"%2\").touch()").arg(elements[0],elements[1]); + QString cmd = QString::fromLatin1(R"(App.getDocument("%1").getObject("%2").touch())").arg(elements[0],elements[1]); try { Gui::Command::runCommand(Gui::Command::Doc,cmd.toLatin1()); }catch(Base::Exception &e) { @@ -475,19 +475,19 @@ void SelectionView::toPython() return; try { - QString cmd = QString::fromLatin1("obj = App.getDocument(\"%1\").getObject(\"%2\")").arg(elements[0], elements[1]); + QString cmd = QString::fromLatin1(R"(obj = App.getDocument("%1").getObject("%2"))").arg(elements[0], elements[1]); Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); if (elements.length() > 2) { App::Document* doc = App::GetApplication().getDocument(elements[0].toLatin1()); App::DocumentObject* obj = doc->getObject(elements[1].toLatin1()); QString property = getProperty(obj); - cmd = QString::fromLatin1("shp = App.getDocument(\"%1\").getObject(\"%2\").%3") + cmd = QString::fromLatin1(R"(shp = App.getDocument("%1").getObject("%2").%3)") .arg(elements[0], elements[1], property); Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); if (supportPart(obj, elements[2])) { - cmd = QString::fromLatin1("elt = App.getDocument(\"%1\").getObject(\"%2\").%3.%4") + cmd = QString::fromLatin1(R"(elt = App.getDocument("%1").getObject("%2").%3.%4)") .arg(elements[0], elements[1], property, elements[2]); Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); } @@ -512,7 +512,7 @@ void SelectionView::showPart() if (!module.isEmpty() && !property.isEmpty() && supportPart(obj, elements[2])) { try { Gui::Command::addModule(Gui::Command::Gui, module.toLatin1()); - QString cmd = QString::fromLatin1("%1.show(App.getDocument(\"%2\").getObject(\"%3\").%4.%5)") + QString cmd = QString::fromLatin1(R"(%1.show(App.getDocument("%2").getObject("%3").%4.%5))") .arg(module, elements[0], elements[1], property, elements[2]); Gui::Command::runCommand(Gui::Command::Gui,cmd.toLatin1()); } diff --git a/src/Gui/ShortcutManager.cpp b/src/Gui/ShortcutManager.cpp index b35053f887..16830c514e 100644 --- a/src/Gui/ShortcutManager.cpp +++ b/src/Gui/ShortcutManager.cpp @@ -344,7 +344,7 @@ std::vector> ShortcutManager::getActionsByShortc { const auto &index = actionMap.get<1>(); std::vector> res; - std::multimap> map; + std::multimap> map; for (auto it = index.lower_bound(ActionKey(shortcut)); it != index.end(); ++it) { if (it->key.shortcut != shortcut) break; diff --git a/src/Gui/ShortcutManager.h b/src/Gui/ShortcutManager.h index 2af637b6ea..e18582134a 100644 --- a/src/Gui/ShortcutManager.h +++ b/src/Gui/ShortcutManager.h @@ -48,7 +48,7 @@ class GuiExport ShortcutManager : public QObject, public ParameterGrp::ObserverT public: ShortcutManager(); - ~ShortcutManager(); + ~ShortcutManager() override; static ShortcutManager *instance(); static void destroy(); diff --git a/src/Gui/SoAxisCrossKit.h b/src/Gui/SoAxisCrossKit.h index d8c9b5c62b..922e35d13b 100644 --- a/src/Gui/SoAxisCrossKit.h +++ b/src/Gui/SoAxisCrossKit.h @@ -29,6 +29,7 @@ #include #include #include +#include class SbViewport; @@ -54,8 +55,8 @@ public: SoSFFloat scaleFactor; protected: - virtual void GLRender(SoGLRenderAction * action); - virtual ~SoShapeScale(); + void GLRender(SoGLRenderAction * action) override; + ~SoShapeScale() override; }; class GuiExport SoAxisCrossKit : public SoBaseKit { @@ -75,16 +76,16 @@ public: // Overrides default method. All the parts are shapeKits, // so this node will not affect the state. - virtual SbBool affectsState() const; - virtual void addWriteReference(SoOutput * out, SbBool isfromfield = false); - virtual void getBoundingBox(SoGetBoundingBoxAction * action); + SbBool affectsState() const override; + void addWriteReference(SoOutput * out, SbBool isfromfield = false) override; + void getBoundingBox(SoGetBoundingBoxAction * action) override; static void initClass(); private: // Constructor calls to build and set up parts. void createAxes(); - virtual ~SoAxisCrossKit(); + ~SoAxisCrossKit() override; }; class GuiExport SoRegPoint : public SoShape { @@ -96,7 +97,7 @@ public: static void initClass(); SoRegPoint(); - void notify(SoNotList * node); + void notify(SoNotList * node) override; SoSFVec3f base; SoSFVec3f normal; @@ -105,10 +106,10 @@ public: SoSFString text; protected: - virtual ~SoRegPoint(); - virtual void GLRender(SoGLRenderAction *action); - virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er); - virtual void generatePrimitives(SoAction *action); + ~SoRegPoint() override; + void GLRender(SoGLRenderAction *action) override; + void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er) override; + void generatePrimitives(SoAction *action) override; private: SoSeparator* root; diff --git a/src/Gui/SoFCBackgroundGradient.h b/src/Gui/SoFCBackgroundGradient.h index 1398248a0b..2648111429 100644 --- a/src/Gui/SoFCBackgroundGradient.h +++ b/src/Gui/SoFCBackgroundGradient.h @@ -48,7 +48,7 @@ public: static void finish(); SoFCBackgroundGradient(); - void GLRender (SoGLRenderAction *action); + void GLRender (SoGLRenderAction *action) override; void setGradient(Gradient grad); Gradient getGradient() const; void setColorGradient(const SbColor& fromColor, @@ -61,7 +61,7 @@ private: Gradient gradient; protected: - virtual ~SoFCBackgroundGradient(); + ~SoFCBackgroundGradient() override; SbColor fCol, tCol, mCol; }; diff --git a/src/Gui/SoFCBoundingBox.h b/src/Gui/SoFCBoundingBox.h index 26667bb3b0..b394d4942a 100644 --- a/src/Gui/SoFCBoundingBox.h +++ b/src/Gui/SoFCBoundingBox.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace Gui { @@ -62,10 +63,10 @@ public: protected: - virtual ~SoFCBoundingBox(); - virtual void GLRender(SoGLRenderAction *action); - virtual void generatePrimitives (SoAction *action); - virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er); + ~SoFCBoundingBox() override; + void GLRender(SoGLRenderAction *action) override; + void generatePrimitives (SoAction *action) override; + void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er) override; private: SoSeparator *root, *textSep, *dimSep; @@ -93,10 +94,10 @@ public: SoSFEnum mode; - virtual void getBoundingBox(SoGetBoundingBoxAction *action); + void getBoundingBox(SoGetBoundingBoxAction *action) override; protected: - virtual ~SoSkipBoundingGroup(); + ~SoSkipBoundingGroup() override; }; } // namespace Gui diff --git a/src/Gui/SoFCCSysDragger.cpp b/src/Gui/SoFCCSysDragger.cpp index 27e91c55a8..05874a701c 100644 --- a/src/Gui/SoFCCSysDragger.cpp +++ b/src/Gui/SoFCCSysDragger.cpp @@ -128,7 +128,13 @@ TDragger::TDragger() TDragger::~TDragger() { + fieldSensor.setData(nullptr); + fieldSensor.detach(); + this->removeStartCallback(&TDragger::startCB); + this->removeMotionCallback(&TDragger::motionCB); + this->removeFinishCallback(&TDragger::finishCB); + removeValueChangedCallback(&TDragger::valueChangedCB); } void TDragger::buildFirstInstance() @@ -197,18 +203,21 @@ SoGroup* TDragger::buildGeometry() void TDragger::startCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->dragStart(); } void TDragger::motionCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->drag(); } void TDragger::finishCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->dragFinish(); } @@ -216,9 +225,12 @@ void TDragger::fieldSensorCB(void *f, SoSensor *) { auto sudoThis = static_cast(f); - SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft - sudoThis->workFieldsIntoTransform(matrix); - sudoThis->setMotionMatrix(matrix); + if(!f) + return; + + SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft + sudoThis->workFieldsIntoTransform(matrix); + sudoThis->setMotionMatrix(matrix); } void TDragger::valueChangedCB(void *, SoDragger *d) @@ -402,7 +414,13 @@ RDragger::RDragger() RDragger::~RDragger() { + fieldSensor.setData(nullptr); + fieldSensor.detach(); + this->removeStartCallback(&RDragger::startCB); + this->removeMotionCallback(&RDragger::motionCB); + this->removeFinishCallback(&RDragger::finishCB); + removeValueChangedCallback(&RDragger::valueChangedCB); } void RDragger::buildFirstInstance() @@ -469,18 +487,21 @@ SoGroup* RDragger::buildGeometry() void RDragger::startCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->dragStart(); } void RDragger::motionCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->drag(); } void RDragger::finishCB(void *, SoDragger *d) { auto sudoThis = static_cast(d); + assert(sudoThis); sudoThis->dragFinish(); } @@ -488,9 +509,12 @@ void RDragger::fieldSensorCB(void *f, SoSensor *) { auto sudoThis = static_cast(f); - SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft - sudoThis->workFieldsIntoTransform(matrix); - sudoThis->setMotionMatrix(matrix); + if(!f) + return; + + SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft + sudoThis->workFieldsIntoTransform(matrix); + sudoThis->setMotionMatrix(matrix); } void RDragger::valueChangedCB(void *, SoDragger *d) @@ -812,6 +836,17 @@ SoFCCSysDragger::SoFCCSysDragger() SoFCCSysDragger::~SoFCCSysDragger() { + translationSensor.setData(nullptr); + translationSensor.detach(); + rotationSensor.setData(nullptr); + rotationSensor.detach(); + cameraSensor.setData(nullptr); + cameraSensor.detach(); + idleSensor.setData(nullptr); + idleSensor.unschedule(); + + removeValueChangedCallback(&SoFCCSysDragger::valueChangedCB); + removeFinishCallback(&SoFCCSysDragger::finishDragCB, this); } @@ -869,6 +904,8 @@ SbBool SoFCCSysDragger::setUpConnections(SbBool onoff, SbBool doitalways) void SoFCCSysDragger::translationSensorCB(void *f, SoSensor *) { auto sudoThis = static_cast(f); + if(!f) + return; SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft sudoThis->workFieldsIntoTransform(matrix); @@ -878,6 +915,8 @@ void SoFCCSysDragger::translationSensorCB(void *f, SoSensor *) void SoFCCSysDragger::rotationSensorCB(void *f, SoSensor *) { auto sudoThis = static_cast(f); + if(!f) + return; SbMatrix matrix = sudoThis->getMotionMatrix(); // clazy:exclude=rule-of-two-soft sudoThis->workFieldsIntoTransform(matrix); @@ -936,6 +975,8 @@ void SoFCCSysDragger::setUpAutoScale(SoCamera *cameraIn) void SoFCCSysDragger::cameraCB(void *data, SoSensor *) { auto sudoThis = static_cast(data); + if (!sudoThis) + return; if (!sudoThis->idleSensor.isScheduled()) sudoThis->idleSensor.schedule(); } @@ -981,6 +1022,8 @@ void SoFCCSysDragger::handleEvent(SoHandleEventAction * action) void SoFCCSysDragger::idleCB(void *data, SoSensor *) { auto sudoThis = static_cast(data); + if (!data) + return; SoField* field = sudoThis->cameraSensor.getAttachedField(); if (field) { @@ -1004,6 +1047,7 @@ void SoFCCSysDragger::idleCB(void *data, SoSensor *) void SoFCCSysDragger::finishDragCB(void *data, SoDragger *) { auto sudoThis = static_cast(data); + assert(sudoThis); // note: when creating a second view of the document and then closing // the first viewer it deletes the camera. However, the attached field diff --git a/src/Gui/SoFCCSysDragger.h b/src/Gui/SoFCCSysDragger.h index a0ac0f5934..91aa418d68 100644 --- a/src/Gui/SoFCCSysDragger.h +++ b/src/Gui/SoFCCSysDragger.h @@ -33,6 +33,7 @@ #include #include #include +#include class SoCamera; @@ -181,7 +182,7 @@ class GuiExport SoFCCSysDragger : public SoDragger public: static void initClass(); SoFCCSysDragger(); - ~SoFCCSysDragger(); + ~SoFCCSysDragger() override; SoSFVec3f translation; //!< initial translation and reflects single precision movement. SoSFDouble translationIncrement; //!< set from outside used for rounding. @@ -240,11 +241,11 @@ public: bool isHiddenRotationZ(); //!< is x rotation dragger hidden. //@} - virtual void GLRender(SoGLRenderAction * action) override; + void GLRender(SoGLRenderAction * action) override; protected: - virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways = FALSE) override; - virtual void handleEvent(SoHandleEventAction * action) override; + SbBool setUpConnections(SbBool onoff, SbBool doitalways = FALSE) override; + void handleEvent(SoHandleEventAction * action) override; static void translationSensorCB(void *f, SoSensor *); static void rotationSensorCB(void *f, SoSensor *); diff --git a/src/Gui/SoFCDB.cpp b/src/Gui/SoFCDB.cpp index 08598a269b..deac328c32 100644 --- a/src/Gui/SoFCDB.cpp +++ b/src/Gui/SoFCDB.cpp @@ -592,7 +592,7 @@ void Gui::SoFCDB::writeX3D(SoVRMLGroup* node, bool exportViewpoints, std::ostrea << "\" centerOfRotation=\"" << cnt[0] << " " << cnt[1] << " " << cnt[2] << "\" position=\"" << pos[0] << " " << pos[1] << " " << pos[2] << "\" orientation=\"" << axis[0] << " " << axis[1] << " " << axis[2] << " " << angle - << "\" description=\"camera\" fieldOfView=\"0.9\">" + << R"(" description="camera" fieldOfView="0.9">)" << "\n"; }; @@ -659,14 +659,14 @@ bool Gui::SoFCDB::writeToFile(SoNode* node, const char* filename, bool binary) Base::FileInfo fi(filename); // Write VRML V2.0 - if (fi.hasExtension("wrl") || fi.hasExtension("vrml") || fi.hasExtension("wrz")) { + if (fi.hasExtension({"wrl", "vrml", "wrz"})) { // If 'wrz' is set then force compression if (fi.hasExtension("wrz")) binary = true; ret = SoFCDB::writeToVRML(node, filename, binary); } - else if (fi.hasExtension("x3d") || fi.hasExtension("x3dz")) { + else if (fi.hasExtension({"x3d", "x3dz"})) { // If 'x3dz' is set then force compression if (fi.hasExtension("x3dz")) binary = true; diff --git a/src/Gui/SoFCInteractiveElement.h b/src/Gui/SoFCInteractiveElement.h index c95016c60e..d8ad66def7 100644 --- a/src/Gui/SoFCInteractiveElement.h +++ b/src/Gui/SoFCInteractiveElement.h @@ -30,6 +30,7 @@ #include #include +#include namespace Gui { @@ -44,13 +45,13 @@ class GuiExport SoFCInteractiveElement : public SoReplacedElement { public: static void initClass(); - virtual void init(SoState * state); + void init(SoState * state) override; static void set(SoState * const state, SoNode * const node, SbBool mode); static SbBool get(SoState * const state); static const SoFCInteractiveElement * getInstance(SoState * state); protected: - virtual ~SoFCInteractiveElement(); + ~SoFCInteractiveElement() override; virtual void setElt(SbBool mode); private: @@ -65,18 +66,18 @@ class GuiExport SoGLWidgetElement : public SoElement { public: static void initClass(); - virtual void init(SoState * state); - virtual void push(SoState * state); - virtual void pop(SoState * state, const SoElement * prevTopElement); + void init(SoState * state) override; + void push(SoState * state) override; + void pop(SoState * state, const SoElement * prevTopElement) override; - virtual SbBool matches(const SoElement * element) const; - virtual SoElement * copyMatchInfo() const; + SbBool matches(const SoElement * element) const override; + SoElement * copyMatchInfo() const override; static void set(SoState * state, QtGLWidget * window); static void get(SoState * state, QtGLWidget *& window); protected: - virtual ~SoGLWidgetElement(); + ~SoGLWidgetElement() override; protected: QtGLWidget * window; @@ -90,18 +91,18 @@ class GuiExport SoGLRenderActionElement : public SoElement { public: static void initClass(); - virtual void init(SoState * state); - virtual void push(SoState * state); - virtual void pop(SoState * state, const SoElement * prevTopElement); + void init(SoState * state) override; + void push(SoState * state) override; + void pop(SoState * state, const SoElement * prevTopElement) override; - virtual SbBool matches(const SoElement * element) const; - virtual SoElement * copyMatchInfo() const; + SbBool matches(const SoElement * element) const override; + SoElement * copyMatchInfo() const override; static void set(SoState * state, SoGLRenderAction * action); static void get(SoState * state, SoGLRenderAction * & action); protected: - virtual ~SoGLRenderActionElement(); + ~SoGLRenderActionElement() override; protected: SoGLRenderAction * glRenderAction; @@ -118,11 +119,11 @@ public: QtGLWidget * window; - virtual void doAction(SoAction * action); - virtual void GLRender(SoGLRenderAction * action); + void doAction(SoAction * action) override; + void GLRender(SoGLRenderAction * action) override; protected: - virtual ~SoGLWidgetNode(); + ~SoGLWidgetNode() override; }; class GuiExport SoGLVBOActivatedElement : public SoElement { @@ -133,18 +134,18 @@ class GuiExport SoGLVBOActivatedElement : public SoElement { public: static void initClass(); - virtual void init(SoState * state); - virtual void push(SoState * state); - virtual void pop(SoState * state, const SoElement * prevTopElement); + void init(SoState * state) override; + void push(SoState * state) override; + void pop(SoState * state, const SoElement * prevTopElement) override; - virtual SbBool matches(const SoElement * element) const; - virtual SoElement * copyMatchInfo() const; + SbBool matches(const SoElement * element) const override; + SoElement * copyMatchInfo() const override; static void set(SoState * state, SbBool); static void get(SoState * state, SbBool& active); protected: - virtual ~SoGLVBOActivatedElement(); + ~SoGLVBOActivatedElement() override; protected: SbBool active; diff --git a/src/Gui/SoFCOffscreenRenderer.cpp b/src/Gui/SoFCOffscreenRenderer.cpp index bf5baffef8..edf07964e6 100644 --- a/src/Gui/SoFCOffscreenRenderer.cpp +++ b/src/Gui/SoFCOffscreenRenderer.cpp @@ -107,7 +107,7 @@ void SoFCOffscreenRenderer::writeToImageFile(const char* filename, const char* c } Base::FileInfo file(filename); - if (file.hasExtension("JPG") || file.hasExtension("JPEG")) { + if (file.hasExtension({"JPG", "JPEG"})) { // writing comment in case of jpeg (Qt ignores setText() in case of jpeg) std::string com; if (strcmp(comment,"")==0) @@ -194,7 +194,7 @@ void SoFCOffscreenRenderer::writeToImageFile(const char* filename, const char* c if (!writeToFile(filename, file.extension().c_str())) throw Base::FileException("Error writing image file", filename); } - else if (file.hasExtension("EPS") || file.hasExtension("PS")) { + else if (file.hasExtension({"EPS", "PS"})) { // Any format which is supported by Coin only #ifdef FC_OS_WIN32 FILE* fd = _wfopen(file.toStdWString().c_str(), L"w"); @@ -206,7 +206,7 @@ void SoFCOffscreenRenderer::writeToImageFile(const char* filename, const char* c if (!ok) throw Base::FileException("Error writing image file", filename); } - else if (file.hasExtension("RGB") || file.hasExtension("SGI")) { + else if (file.hasExtension({"RGB", "SGI"})) { // Any format which is supported by Coin only #ifdef FC_OS_WIN32 FILE* fd = _wfopen(file.toStdWString().c_str(), L"w"); @@ -228,17 +228,8 @@ QStringList SoFCOffscreenRenderer::getWriteImageFiletypeInfo() // get all supported formats by Coin3D int num = getNumWriteFiletypes(); for (int i=0; i < num; i++) { -#if (COIN_MAJOR_VERSION < 2) // Coin3D <= 1.x - SbList extlist; -#elif (COIN_MAJOR_VERSION < 3) // Coin3D <= 2.x -# if (COIN_MINOR_VERSION < 3) // Coin3D <= 2.2.x - SbList extlist; -# else // Coin3D >= 2.3.x + SbPList extlist; -# endif -#else // Coin3D >= 3.x - SbPList extlist; -#endif SbString fullname, description; getWriteFiletypeInfo(i, extlist, fullname, description); diff --git a/src/Gui/SoFCSelectionAction.h b/src/Gui/SoFCSelectionAction.h index 325a23507e..4661d3fd54 100644 --- a/src/Gui/SoFCSelectionAction.h +++ b/src/Gui/SoFCSelectionAction.h @@ -28,6 +28,7 @@ #include #include #include +#include class SoSFString; class SoSFColor; @@ -47,7 +48,7 @@ class GuiExport SoFCHighlightAction : public SoAction public: SoFCHighlightAction (const SelectionChanges &SelCh); - ~SoFCHighlightAction(); + ~SoFCHighlightAction() override; static void initClass(); static void finish(); @@ -55,7 +56,7 @@ public: const SelectionChanges &SelChange; protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -72,7 +73,7 @@ class GuiExport SoFCSelectionAction : public SoAction public: SoFCSelectionAction (const SelectionChanges &SelCh); - ~SoFCSelectionAction(); + ~SoFCSelectionAction() override; static void initClass(); static void finish(); @@ -80,7 +81,7 @@ public: const SelectionChanges &SelChange; protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -97,7 +98,7 @@ class GuiExport SoFCEnableSelectionAction : public SoAction public: SoFCEnableSelectionAction (const SbBool& sel); - ~SoFCEnableSelectionAction(); + ~SoFCEnableSelectionAction() override; SbBool selection; @@ -105,7 +106,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -122,7 +123,7 @@ class GuiExport SoFCEnableHighlightAction : public SoAction public: SoFCEnableHighlightAction (const SbBool& sel); - ~SoFCEnableHighlightAction(); + ~SoFCEnableHighlightAction() override; SbBool highlight; @@ -130,7 +131,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -147,7 +148,7 @@ class GuiExport SoFCSelectionColorAction : public SoAction public: SoFCSelectionColorAction (const SoSFColor& col); - ~SoFCSelectionColorAction(); + ~SoFCSelectionColorAction() override; SoSFColor selectionColor; @@ -155,7 +156,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -172,7 +173,7 @@ class GuiExport SoFCHighlightColorAction : public SoAction public: SoFCHighlightColorAction (const SoSFColor& col); - ~SoFCHighlightColorAction(); + ~SoFCHighlightColorAction() override; SoSFColor highlightColor; @@ -180,7 +181,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -197,7 +198,7 @@ class GuiExport SoFCDocumentAction : public SoAction public: SoFCDocumentAction (const SoSFString& docName); - ~SoFCDocumentAction(); + ~SoFCDocumentAction() override; SoSFString documentName; @@ -205,7 +206,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -222,7 +223,7 @@ class GuiExport SoFCDocumentObjectAction : public SoAction public: SoFCDocumentObjectAction (); - ~SoFCDocumentObjectAction(); + ~SoFCDocumentObjectAction() override; void setHandled(); SbBool isHandled() const; @@ -231,7 +232,7 @@ public: static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -255,7 +256,7 @@ class GuiExport SoGLSelectAction : public SoAction public: SoGLSelectAction (const SbViewportRegion& region, const SbViewportRegion& select); - ~SoGLSelectAction(); + ~SoGLSelectAction() override; void setHandled(); SbBool isHandled() const; @@ -264,7 +265,7 @@ public: static void initClass(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -287,7 +288,7 @@ class GuiExport SoVisibleFaceAction : public SoAction public: SoVisibleFaceAction (); - ~SoVisibleFaceAction(); + ~SoVisibleFaceAction() override; void setHandled(); SbBool isHandled() const; @@ -295,7 +296,7 @@ public: static void initClass(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); @@ -317,13 +318,13 @@ class GuiExport SoBoxSelectionRenderAction : public SoGLRenderAction { public: SoBoxSelectionRenderAction(); SoBoxSelectionRenderAction(const SbViewportRegion & viewportregion); - virtual ~SoBoxSelectionRenderAction(); + ~SoBoxSelectionRenderAction() override; static void initClass(); - virtual void apply(SoNode * node); - virtual void apply(SoPath * path); - virtual void apply(const SoPathList & pathlist, SbBool obeysrules = false); + void apply(SoNode * node) override; + void apply(SoPath * path) override; + void apply(const SoPathList & pathlist, SbBool obeysrules = false) override; void setVisible(SbBool b) { hlVisible = b; } SbBool isVisible() const { return hlVisible; } void setColor(const SbColor & color); @@ -353,13 +354,13 @@ class GuiExport SoUpdateVBOAction : public SoAction public: SoUpdateVBOAction (); - ~SoUpdateVBOAction(); + ~SoUpdateVBOAction() override; static void initClass(); static void finish(); protected: - virtual void beginTraversal(SoNode *node); + void beginTraversal(SoNode *node) override; private: static void callDoAction(SoAction *action,SoNode *node); diff --git a/src/Gui/SoFCSelectionContext.h b/src/Gui/SoFCSelectionContext.h index 293fc77196..68ee2d2720 100644 --- a/src/Gui/SoFCSelectionContext.h +++ b/src/Gui/SoFCSelectionContext.h @@ -41,8 +41,10 @@ using SoFCSelectionContextBasePtr = std::shared_ptr; struct GuiExport SoFCSelectionContextBase { virtual ~SoFCSelectionContextBase() {} - typedef int MergeFunc(int status, SoFCSelectionContextBasePtr &output, - SoFCSelectionContextBasePtr input, SoFCSelectionRoot *node); + using MergeFunc = int (int status, + SoFCSelectionContextBasePtr &output, + SoFCSelectionContextBasePtr input, + SoFCSelectionRoot *node); }; struct SoFCSelectionContext; diff --git a/src/Gui/SoFCUnifiedSelection.cpp b/src/Gui/SoFCUnifiedSelection.cpp index 6356a1c797..2bc0581b17 100644 --- a/src/Gui/SoFCUnifiedSelection.cpp +++ b/src/Gui/SoFCUnifiedSelection.cpp @@ -1030,11 +1030,11 @@ void SoFCSeparator::finish() // Thread local data for bounding box rendering // // The code is inspred by Coin SoLevelOfDetails.cpp. -typedef struct { +using SoFCBBoxRenderInfo = struct { SoGetBoundingBoxAction * bboxaction; SoCube *cube; SoColorPacker *packer; -} SoFCBBoxRenderInfo; +}; static void so_bbox_construct_data(void * closure) { @@ -1565,7 +1565,7 @@ bool SoFCSelectionRoot::doActionPrivate(Stack &stack, SoAction *action) { touch(); } // applied to a node means clear all visibility setting, so - // return true to propgate the action + // return true to propagate the action return selAction->getType()==SoSelectionElementAction::Color || action->getWhatAppliedTo()==SoAction::NODE; diff --git a/src/Gui/SoFCVectorizeSVGAction.cpp b/src/Gui/SoFCVectorizeSVGAction.cpp index 3f70660331..f3ca2a172b 100644 --- a/src/Gui/SoFCVectorizeSVGAction.cpp +++ b/src/Gui/SoFCVectorizeSVGAction.cpp @@ -402,11 +402,11 @@ SoFCVectorizeSVGAction::getSVGOutput() const void SoFCVectorizeSVGAction::printHeader() const { std::ostream& str = this->getSVGOutput()->getFileStream(); - str << "" << std::endl; + str << R"()" << std::endl; str << "" << std::endl; str << "getOrientation() == LANDSCAPE) { diff --git a/src/Gui/SoFCVectorizeSVGAction.h b/src/Gui/SoFCVectorizeSVGAction.h index f3f577717d..6325b4e1c0 100644 --- a/src/Gui/SoFCVectorizeSVGAction.h +++ b/src/Gui/SoFCVectorizeSVGAction.h @@ -27,6 +27,7 @@ #include #include +#include namespace Gui { @@ -34,10 +35,10 @@ namespace Gui { class GuiExport SoSVGVectorOutput : public SoVectorOutput { public: SoSVGVectorOutput(); - virtual ~SoSVGVectorOutput(); + ~SoSVGVectorOutput() override; - virtual SbBool openFile (const char *filename); - virtual void closeFile (); + SbBool openFile (const char *filename) override; + void closeFile () override; std::fstream& getFileStream(); private: @@ -55,24 +56,24 @@ class GuiExport SoFCVectorizeSVGAction : public SoVectorizeAction { public: SoFCVectorizeSVGAction(); - virtual ~SoFCVectorizeSVGAction(); + ~SoFCVectorizeSVGAction() override; static void initClass(); SoSVGVectorOutput * getSVGOutput() const; - virtual void setBackgroundState(bool b) { m_backgroundState = b; } - virtual bool getBackgroundState(void) const { return m_backgroundState; } + virtual void setBackgroundState(bool b) { m_backgroundState = b; } + virtual bool getBackgroundState() const { return m_backgroundState; } virtual void setLineWidth(double w) { m_lineWidth = w; } - virtual double getLineWidth(void) const { return m_lineWidth; } + virtual double getLineWidth() const { return m_lineWidth; } virtual void setUseMM(bool b) { m_usemm = b; } - virtual bool getUseMM(void) const { return m_usemm; } + virtual bool getUseMM() const { return m_usemm; } protected: - virtual void printHeader() const; - virtual void printFooter() const; - virtual void printBackground() const; - virtual void printItem(const SoVectorizeItem * item) const; - virtual void printViewport() const; + void printHeader() const override; + void printFooter() const override; + void printBackground() const override; + void printItem(const SoVectorizeItem * item) const override; + void printViewport() const override; private: SoFCVectorizeSVGActionP* p; diff --git a/src/Gui/SoFCVectorizeU3DAction.h b/src/Gui/SoFCVectorizeU3DAction.h index e70f91d8ca..a83655e18b 100644 --- a/src/Gui/SoFCVectorizeU3DAction.h +++ b/src/Gui/SoFCVectorizeU3DAction.h @@ -33,10 +33,10 @@ namespace Gui { class GuiExport SoU3DVectorOutput : public SoVectorOutput { public: SoU3DVectorOutput(); - virtual ~SoU3DVectorOutput(); + ~SoU3DVectorOutput() override; - virtual SbBool openFile (const char *filename); - virtual void closeFile (); + SbBool openFile (const char *filename) override; + void closeFile () override; std::fstream& getFileStream(); private: @@ -54,19 +54,19 @@ class GuiExport SoFCVectorizeU3DAction : public SoVectorizeAction { public: SoFCVectorizeU3DAction(); - virtual ~SoFCVectorizeU3DAction(); + ~SoFCVectorizeU3DAction() override; static void initClass(); SoU3DVectorOutput * getU3DOutput() const; protected: - virtual void beginTraversal(SoNode * node); - virtual void endTraversal(SoNode *node); - virtual void printHeader() const; - virtual void printFooter() const; - virtual void printBackground() const; - virtual void printItem(const SoVectorizeItem * item) const; - virtual void printViewport() const; + void beginTraversal(SoNode * node) override; + void endTraversal(SoNode *node) override; + void printHeader() const override; + void printFooter() const override; + void printBackground() const override; + void printItem(const SoVectorizeItem * item) const override; + void printViewport() const override; private: static void actionMethod(SoAction *, SoNode *); diff --git a/src/Gui/SoMouseWheelEvent.h b/src/Gui/SoMouseWheelEvent.h index de630bbbb5..403f7be256 100644 --- a/src/Gui/SoMouseWheelEvent.h +++ b/src/Gui/SoMouseWheelEvent.h @@ -26,6 +26,7 @@ #include #include +#include /** * @brief The SoMouseWheelEvent class is a temporary replacement for @@ -44,7 +45,7 @@ public: //methods /// smaller values come from high-resolution devices like touchpads int getDelta() const {return delta;} void setDelta(int delta) {this->delta = delta;} - ~SoMouseWheelEvent(){} + ~SoMouseWheelEvent() override {} private: //data int delta; diff --git a/src/Gui/Splashscreen.cpp b/src/Gui/Splashscreen.cpp index 9bd14e1fc6..8d4b48017e 100644 --- a/src/Gui/Splashscreen.cpp +++ b/src/Gui/Splashscreen.cpp @@ -204,7 +204,7 @@ public: } else { // ignore activation of commands - rx.setPattern(QLatin1String("^\\s*(\\+App::|Create|CmdC:|CmdG:|Act:)\\s*")); + rx.setPattern(QLatin1String(R"(^\s*(\+App::|Create|CmdC:|CmdG:|Act:)\s*)")); match = rx.match(msg); if (match.hasMatch() && match.capturedStart() == 0) return; @@ -375,6 +375,7 @@ void AboutDialog::setupLabels() QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromLatin1(config["BuildVersionSuffix"].c_str()); QString build = QString::fromLatin1(config["BuildRevision"].c_str()); QString disda = QString::fromLatin1(config["BuildRevisionDate"].c_str()); QString mturl = QString::fromLatin1(config["MaintainerUrl"].c_str()); @@ -393,7 +394,7 @@ void AboutDialog::setupLabels() } QString version = ui->labelBuildVersion->text(); - version.replace(QString::fromLatin1("Unknown"), QString::fromLatin1("%1.%2.%3").arg(major, minor, point)); + version.replace(QString::fromLatin1("Unknown"), QString::fromLatin1("%1.%2.%3%4").arg(major, minor, point, suffix)); ui->labelBuildVersion->setText(version); QString revision = ui->labelBuildRevision->text(); @@ -787,6 +788,7 @@ void AboutDialog::copyToClipboard() QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromLatin1(config["BuildVersionSuffix"].c_str()); QString build = QString::fromLatin1(config["BuildRevision"].c_str()); QString deskEnv = QProcessEnvironment::systemEnvironment().value(QStringLiteral("XDG_CURRENT_DESKTOP"), QString()); @@ -803,7 +805,7 @@ void AboutDialog::copyToClipboard() str << "[code]\n"; str << "OS: " << prettyProductInfoWrapper() << deskInfo << '\n'; str << "Word size of " << exe << ": " << QSysInfo::WordSize << "-bit\n"; - str << "Version: " << major << "." << minor << "." << point << "." << build; + str << "Version: " << major << "." << minor << "." << point << suffix << "." << build; char *appimage = getenv("APPIMAGE"); if (appimage) str << " AppImage"; diff --git a/src/Gui/Stylesheets/CMakeLists.txt b/src/Gui/Stylesheets/CMakeLists.txt index 2e07d61990..4ce327c3d5 100644 --- a/src/Gui/Stylesheets/CMakeLists.txt +++ b/src/Gui/Stylesheets/CMakeLists.txt @@ -4,14 +4,25 @@ SET(Stylesheets_Files "Dark-blue.qss" "Dark-green.qss" "Dark-orange.qss" + "Dark-pink.qss" "Darker-blue.qss" "Darker-green.qss" "Darker-orange.qss" + "Darker-pink.qss" "Light-blue.qss" "Light-green.qss" "Light-orange.qss" + "Light-pink.qss" "Dark-contrast.qss" "ProDark.qss" + "Dark-modern-green.qss" + "Dark-modern-orange.qss" + "Dark-modern-pink.qss" + "Dark-modern-blue.qss" + "Light-modern-blue.qss" + "Light-modern-pink.qss" + "Light-modern-orange.qss" + "Light-modern-green.qss" ) # Find all the image files diff --git a/src/Gui/Stylesheets/Dark-blue.qss b/src/Gui/Stylesheets/Dark-blue.qss index 5ec40443ed..a90c1410fc 100644 --- a/src/Gui/Stylesheets/Dark-blue.qss +++ b/src/Gui/Stylesheets/Dark-blue.qss @@ -1,782 +1,68 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #3c3c3c - #505050 - #5a5a5a - #646464 - #6e6e6e = main background color - #787878 - #8c8c8c - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #1b3774 - #2053c0 - #3874f2 - #5e90fa = main selection color - #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle - #7cabf9 - #adc5ed - #cbd8e6 +TO MODIFY USE THESE COLORS: + #4882ff + #3f7cff -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: black; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } +/*hacks */ -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #6e6e6e; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #505050; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #e0e0e0; - background-color: #6e6e6e; /* main background color */ -} - -QMenu, -QMenu::item { - color: #e0e0e0; - background-color: #5a5a5a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #5e90fa; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #5e90fa; - border: 2px #5e90fa; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #5e90fa; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox::title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #1e1e1e; - background-color: #b4b4b4; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,20); - border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(255,255,255,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #c8c8c8; - border: 1px solid #505050; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #5a5a5a; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #5a5a5a; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #5a5a5a; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #5a5a5a; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #d2d2d2; - background-color: #6e6e6e; /* same as tab content background color */ - border-color: #5a5a5a; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-bottom-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-top-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-right-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-left-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,180); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #6e6e6e) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #b4b4b4; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #5e90fa; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #6e6e6e; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #c8c8c8; - alternate-background-color: #bebebe; /* related with QListView background */ - border: 1px solid #505050; - selection-color: white; - selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #5e90fa; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #a0a0a0; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #cbd8e6; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -787,25 +73,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #cbd8e6; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -815,249 +82,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #4882ff; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - color: #c8c8c8; - background-color: #505050; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #7F7F7F; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #505050; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #7F7F7F; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #4882ff; + selection-color: White; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #4882ff; + selection-color: #c2c7cb; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); +QWidget::item:selected { + background-color: #4882ff; } -QTableCornerButton::section { - background-color: #505050; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #4882ff; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #505050; - qproperty-groupBackground: #8c8c8c; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #4882ff, stop:0.8 transparent); + /*background-color: #4882ff;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #4882ff, stop:0.8 transparent); + /*background-color: #4882ff;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #505050; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #7F7F7F; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #7F7F7F; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #3f7cff; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #505050; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #505050; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #4882ff; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #7F7F7F; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #505050; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #4882ff; +} + +QCheckBox::indicator:checked:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #505050; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #4882ff; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #4882ff; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #505050; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #4882ff; +} + +QGroupBox::indicator:checked:disabled { + background-color: #4882ff; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #3f7cff; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #4882ff; + border: 1px solid #4882ff; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #4882ff; + border: 1px solid #4882ff; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #505050; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #4882ff; +} + +QMenuBar:focus { + border: 1px solid #3f7cff; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #4882ff; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #4882ff; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #505050; + selection-background-color: #4882ff; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #4882ff; +} + +QMenu::item:pressed { + background-color: #4882ff; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #3f7cff; + margin-left: -5px; + border: 5px solid #3f7cff; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #4882ff; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #4882ff; +} + +QMenu::indicator:non-exclusive:checked:disabled { +image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #4882ff; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #4882ff; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #7F7F7F; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #7F7F7F; +} + +QScrollBar:vertical { + background-color: #7F7F7F; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #7F7F7F; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #4882ff; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #3f7cff; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #4882ff; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #3f7cff; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #4882ff; + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #7F7F7F; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #3f7cff; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #3f7cff; +} + +QPlainTextEdit:selected { + background: #4882ff; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #7F7F7F; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #7F7F7F; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #4882ff; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #4882ff; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #c8c8c8; - selection-color: white; - selection-background-color: #3874f2; - border: 1px solid #505050; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #505050; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #4882ff; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #3f7cff; +} + +QAbstractSpinBox:selected { + background: #3f7cff; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #505050; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #4882ff; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #4882ff; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #505050; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #505050; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #4882ff; + color: #7F7F7F; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #505050; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #7F7F7F; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #4882ff; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #4882ff; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #4882ff; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4882ff, stop:1 #3f7cff); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3f7cff, stop:1 #4882ff); +} + +QPushButton:selected { + background: #3f7cff; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #4882ff; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #4882ff; + color: White; +} + +QToolButton:checked:pressed { + background-color: #4882ff; +} + +QToolButton:checked:selected { + background: #3f7cff; + color: White; +} + +QToolButton:hover { + background-color: #4882ff; + color: White; +} + +QToolButton:pressed { + background-color: #3f7cff; +} + +QToolButton:selected { + background: #4882ff; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #505050; + border-radius: 2px; + selection-background-color: #4882ff; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #505050; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #505050; + selection-background-color: #4882ff; +} + +QComboBox QAbstractItemView:hover { + background-color:#505050; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #4882ff; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #7F7F7F; + color: #353535; +} + +QComboBox:hover { + /*background-color: #4882ff;*/ + border: 1px solid #4882ff; +} + +QComboBox:focus { + border: 1px solid #3f7cff; +} + +QComboBox:on { + selection-background-color: #3f7cff; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #4882ff; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4882ff, stop:1 #3f7cff); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1255 +1509,1102 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #505050; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4882ff, stop:1 #3f7cff); } QSint--ActionGroup QToolButton[class="header"] { - color: #e0e0e0; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #8c8c8c; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #8c8c8c; /* Task Panel background color */ +background-color: #7F7F7F; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +border-bottom-color: #4882ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #8c8c8c; /* same as Task Panel background color */ +border-top-color: #4882ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #8c8c8c; /* same as Task Panel background color */ +border-right-color: #4882ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #8c8c8c; /* same as Task Panel background color */ +border-left-color: #4882ff; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #5a5a5a; - selection-color: white; - selection-background-color: #3874f2; - border: 1px solid #5a5a5a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #c8c8c8; - border: 1px solid #505050; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #7cabf9; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ - background-color: #cbd8e6; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #505050; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #5e90fa; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #5e90fa; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +color: white; +background-color: #505050; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #6e6e6e; - border: 1px solid #5a5a5a; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #6e6e6e; /* main background color */ - border: 1px solid #5a5a5a; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4882ff, stop:1 #3f7cff); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); + border: 1px solid #3f7cff; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; + color: #696969; + background-color: #505050; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4882ff, stop:1 #3f7cff); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #7F7F7F; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #e0e0e0; - background-color: #5a5a5a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; -} - -QRadioButton::indicator:checked { - background-color: #5e90fa; /* QCheckBox has the same color */ - border: 1px solid #3874f2; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #adc5ed; -} - -QRadioButton::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #adc5ed; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #5e90fa; /* QRadioButton has the same color */ - border: 1px solid #3874f2; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #5e90fa; - border: 1px solid #3874f2; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #7cabf9; /* slightly lighter than default */ - border-color: #2053c0; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #adc5ed; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #5e90fa; /* QRadioButton has the same color */ - border: 1px solid #3874f2; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #5e90fa; - border: 1px solid #3874f2; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /* border: 1px solid #3f7cff;*/ } QSlider::groove:horizontal { - height: 8px; + background: #7F7F7F; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #7F7F7F; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::add-page:vertical { + background: #4882ff; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #505050; - border: 1px solid #505050; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #4882ff; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #4882ff; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #4882ff; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #3f7cff; + border: 1px solid #3f7cff; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #5e90fa; - background-color: #5e90fa; +QSlider::handle:vertical:hover { + background: #4882ff; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::handle:vertical:focus { + border: 1px solid #3f7cff; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #505050; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #4882ff; + color: White; +} + +QLineEdit:focus { + border: 2px solid #3f7cff; +} + +QLineEdit:selected { + background-color: #4882ff; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #4882ff; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #4882ff; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #f5f5f5; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #f5f5f5; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #f5f5f5; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #4882ff; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #4882ff;*/ + border: 0px solid #4882ff; + background-color: #4882ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #4882ff; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #4882ff;*/ + border: 0px solid #4882ff; + background-color: #4882ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #7F7F7F; + border: 0px solid #3f7cff; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #4882ff; + background-color: #4882ff; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #7F7F7F; + border: 0px solid #3f7cff; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #4882ff; + background-color: #4882ff; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #7F7F7F; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #4882ff; + background-color: #4882ff; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #4882ff; + background-color: #4882ff; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #7F7F7F; + border: 1px solid #505051; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #4882ff;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #505050; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #4882ff; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #3f7cff; } -QToolBar > QPushButton:checked { - border: 1px solid #7cabf9; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #cbd8e6, stop:1 #7cabf9); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #4882ff; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #4882ff; } -QToolBar > QPushButton:checked:hover { - border-color: #6f9efa; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #cbd8e6; - border-color: #505050; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #4882ff; } -QToolBar > QPushButton:checked:pressed { - background-color: #7cabf9; +QTableCornerButton::section { + background-color: #7F7F7F; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,60); /* transparency for #7cabf9 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,80); /* transparency for #7cabf9 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #1b3774; - selection-background-color: #cbd8e6; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #8c8c8c; -} - -QTableView::item:selected { - color: #1b3774; - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #1b3774; - selection-color: white; - selection-background-color: #5e90fa; - border-color: #cbd8e6; - background-color: #cbd8e6; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #6e6e6e; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #7f7f7f; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #696968; } -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #505051; } +QHeaderView::section::vertical:disabled { + border-top: 2px solid #505051; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #4882ff; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #7F7F7F; +} + +QToolBox::tab:hover { + background-color: #4882ff; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #7F7F7F; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #4882ff, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #4882ff, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #4882ff; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #4882ff; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #7F7F7F; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #4882ff; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #4882ff; + color: White; +} + +QAbstractView:selected { + background: #4882ff; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} /*================================================================================================== SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } - diff --git a/src/Gui/Stylesheets/Dark-green.qss b/src/Gui/Stylesheets/Dark-green.qss index 77c0c7eaa0..5d85be7a43 100644 --- a/src/Gui/Stylesheets/Dark-green.qss +++ b/src/Gui/Stylesheets/Dark-green.qss @@ -1,782 +1,67 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #3c3c3c - #505050 - #5a5a5a - #646464 - #6e6e6e = main background color - #787878 - #8c8c8c - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #566214 - #74831d - #819c0c - #94b30f = main selection color - #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle - #a5c61a - #c5d675 - #dadfc5 +TO MODIFY USE THESE COLORS: + #a1bd00 + #819700 -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: black; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #6e6e6e; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #505050; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #e0e0e0; - background-color: #6e6e6e; /* main background color */ -} - -QMenu, -QMenu::item { - color: #e0e0e0; - background-color: #5a5a5a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #94b30f; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #94b30f; - border: 2px #94b30f; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #94b30f; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox::title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #1e1e1e; - background-color: #b4b4b4; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,20); - border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(255,255,255,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #c8c8c8; - border: 1px solid #505050; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #819c0c, stop:1 #94b30f); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #5a5a5a; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #5a5a5a; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #5a5a5a; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #5a5a5a; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #d2d2d2; - background-color: #6e6e6e; /* same as tab content background color */ - border-color: #5a5a5a; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-bottom-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-top-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-right-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-left-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,180); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #6e6e6e) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #b4b4b4; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #94b30f; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #6e6e6e; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #c8c8c8; - alternate-background-color: #bebebe; /* related with QListView background */ - border: 1px solid #505050; - selection-color: white; - selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #94b30f; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #a0a0a0; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #dadfc5; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -787,25 +72,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #dadfc5; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -815,249 +81,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #a1bd00; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #dadfc5; /* same as focused background color */ - border-bottom-color: #a5c61a; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - color: #c8c8c8; - background-color: #505050; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #7F7F7F; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #505050; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #7F7F7F; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #a1bd00; + selection-color: White; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #a1bd00; + selection-color: #c2c7cb; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); +QWidget::item:selected { + background-color: #a1bd00; } -QTableCornerButton::section { - background-color: #505050; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #a1bd00; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #505050; - qproperty-groupBackground: #8c8c8c; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #a1bd00, stop:0.8 transparent); + /*background-color: #a1bd00;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #a1bd00, stop:0.8 transparent); + /*background-color: #a1bd00;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #505050; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #7F7F7F; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #7F7F7F; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #819700; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #505050; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #505050; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #a1bd00; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #7F7F7F; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #505050; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #a1bd00; +} + +QCheckBox::indicator:checked:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #505050; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #a1bd00; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #a1bd00; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #505050; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #a1bd00; +} + +QGroupBox::indicator:checked:disabled { + background-color: #a1bd00; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #819700; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #a1bd00; + border: 1px solid #a1bd00; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #a1bd00; + border: 1px solid #a1bd00; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #505050; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #a1bd00; +} + +QMenuBar:focus { + border: 1px solid #819700; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #a1bd00; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #a1bd00; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #505050; + selection-background-color: #a1bd00; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #a1bd00; +} + +QMenu::item:pressed { + background-color: #a1bd00; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #819700; + margin-left: -5px; + border: 5px solid #819700; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #a1bd00; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #a1bd00; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #a1bd00; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #a1bd00; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #7F7F7F; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #7F7F7F; +} + +QScrollBar:vertical { + background-color: #7F7F7F; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #7F7F7F; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #a1bd00; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #819700; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #a1bd00; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #819700; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #a1bd00; + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #7F7F7F; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #819700; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #819700; +} + +QPlainTextEdit:selected { + background: #a1bd00; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #7F7F7F; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #7F7F7F; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #a1bd00; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #a1bd00; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #c8c8c8; - selection-color: white; - selection-background-color: #819c0c; - border: 1px solid #505050; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #505050; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #a1bd00; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #819700; +} + +QAbstractSpinBox:selected { + background: #819700; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #505050; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #a1bd00; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #a1bd00; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #505050; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #505050; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #a1bd00; + color: #7F7F7F; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #505050; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #7F7F7F; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #a1bd00; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #a1bd00; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #a1bd00; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #a1bd00, stop:1 #819700); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #819700, stop:1 #a1bd00); +} + +QPushButton:selected { + background: #819700; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #a1bd00; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #a1bd00; + color: White; +} + +QToolButton:checked:pressed { + background-color: #a1bd00; +} + +QToolButton:checked:selected { + background: #819700; + color: White; +} + +QToolButton:hover { + background-color: #a1bd00; + color: White; +} + +QToolButton:pressed { + background-color: #819700; +} + +QToolButton:selected { + background: #a1bd00; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #505050; + border-radius: 2px; + selection-background-color: #a1bd00; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #505050; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #505050; + selection-background-color: #a1bd00; +} + +QComboBox QAbstractItemView:hover { + background-color:#505050; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #a1bd00; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #7F7F7F; + color: #353535; +} + +QComboBox:hover { + /*background-color: #a1bd00;*/ + border: 1px solid #a1bd00; +} + +QComboBox:focus { + border: 1px solid #819700; +} + +QComboBox:on { + selection-background-color: #819700; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #a1bd00; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #a1bd00, stop:1 #819700); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1219 +1508,1068 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #505050; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #a1bd00, stop:1 #819700); } QSint--ActionGroup QToolButton[class="header"] { - color: #e0e0e0; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #8c8c8c; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #8c8c8c; /* Task Panel background color */ +background-color: #7F7F7F; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +border-bottom-color: #a1bd00; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #8c8c8c; /* same as Task Panel background color */ +border-top-color: #a1bd00; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #8c8c8c; /* same as Task Panel background color */ +border-right-color: #a1bd00; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #8c8c8c; /* same as Task Panel background color */ +border-left-color: #a1bd00; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #5a5a5a; - selection-color: white; - selection-background-color: #819c0c; - border: 1px solid #5a5a5a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #c8c8c8; - border: 1px solid #505050; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #a5c61a; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ - background-color: #dadfc5; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #505050; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #94b30f; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #94b30f; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +color: white; +background-color: #505050; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - -QPushButton:checked { - background-color: #94b30f; - border-color: #819c0c; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #6e6e6e; - border: 1px solid #5a5a5a; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #6e6e6e; /* main background color */ - border: 1px solid #5a5a5a; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #94b30f; - border-color: #819c0c; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #a1bd00, stop:1 #819700); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); + border: 1px solid #819700; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; + color: #696969; + background-color: #505050; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #a1bd00, stop:1 #819700); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + + --------------------------------------------------------------------------- */ +QSlider:disabled { +background: #7F7F7F; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #e0e0e0; - background-color: #5a5a5a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; -} - -QRadioButton::indicator:checked { - background-color: #94b30f; /* QCheckBox has the same color */ - border: 1px solid #819c0c; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #c5d675; -} - -QRadioButton::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #c5d675; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #94b30f; /* QRadioButton has the same color */ - border: 1px solid #819c0c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #94b30f; - border: 1px solid #819c0c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #a5c61a; /* slightly lighter than default */ - border-color: #74831d; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #c5d675; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #94b30f; /* QRadioButton has the same color */ - border: 1px solid #819c0c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #94b30f; - border: 1px solid #819c0c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /* border: 1px solid #819700;*/ } QSlider::groove:horizontal { - height: 8px; + background: #7F7F7F; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #7F7F7F; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::add-page:vertical { + background: #a1bd00; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #505050; - border: 1px solid #505050; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #a1bd00; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #a1bd00; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #a1bd00; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #819700; + border: 1px solid #819700; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #94b30f; - background-color: #94b30f; +QSlider::handle:vertical:hover { + background: #a1bd00; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::handle:vertical:focus { + border: 1px solid #819700; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #505050; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #a1bd00; + color: White; +} + +QLineEdit:focus { + border: 2px solid #819700; +} + +QLineEdit:selected { + background-color: #a1bd00; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #a1bd00; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #a1bd00; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #f5f5f5; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #f5f5f5; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #f5f5f5; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #a1bd00; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #a1bd00;*/ + border: 0px solid #a1bd00; + background-color: #a1bd00; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #a1bd00; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #a1bd00;*/ + border: 0px solid #a1bd00; + background-color: #a1bd00; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #7F7F7F; + border: 0px solid #819700; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #a1bd00; + background-color: #a1bd00; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #7F7F7F; + border: 0px solid #819700; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #a1bd00; + background-color: #a1bd00; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #7F7F7F; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #a1bd00; + background-color: #a1bd00; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #a1bd00; + background-color: #a1bd00; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #7F7F7F; + border: 1px solid #505051; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #a1bd00;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #505050; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #a1bd00; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #819700; } -QToolBar > QPushButton:checked { - border: 1px solid #a5c61a; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #dadfc5, stop:1 #a5c61a); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #a1bd00; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #a1bd00; } -QToolBar > QPushButton:checked:hover { - border-color: #9bbc12; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #dadfc5; - border-color: #505050; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #a1bd00; } -QToolBar > QPushButton:checked:pressed { - background-color: #a5c61a; +QTableCornerButton::section { + background-color: #7F7F7F; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #a5c61a; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,60); /* transparency for #a5c61a color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,80); /* transparency for #a5c61a color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #566214; - selection-background-color: #dadfc5; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #8c8c8c; -} - -QTableView::item:selected { - color: #566214; - border-color: #dadfc5; /* same as focused background color */ - border-bottom-color: #a5c61a; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #566214; - selection-color: white; - selection-background-color: #94b30f; - border-color: #dadfc5; - background-color: #dadfc5; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #6e6e6e; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #7f7f7f; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #696968; } -*[mandatoryField="true"] { background-color: cyan } +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #505051; +} -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #505051; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #a1bd00; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #7F7F7F; +} + +QToolBox::tab:hover { + background-color: #a1bd00; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #7F7F7F; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #a1bd00, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #a1bd00, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #a1bd00; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #a1bd00; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #7F7F7F; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #a1bd00; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #a1bd00; + color: White; +} + +QAbstractView:selected { + background: #a1bd00; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2287,32 +2577,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Dark-modern-blue.qss b/src/Gui/Stylesheets/Dark-modern-blue.qss new file mode 100644 index 0000000000..17c2b429af --- /dev/null +++ b/src/Gui/Stylesheets/Dark-modern-blue.qss @@ -0,0 +1,2627 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #557bb6 + #560062 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #557bb6; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #2b2b2b; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #557bb6; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #557bb6; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #557bb6; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #557bb6; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #557bb6, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #557bb6, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #2b2b2b; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #2b2b2b; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #560062; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #557BB6; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #2b2b2b; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #557BB6; +} + +QCheckBox::indicator:checked:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #557BB6; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #557BB6; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #557BB6; +} + +QGroupBox::indicator:checked:disabled { + background-color: #557BB6; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #560062; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #557bb6; + border: 1px solid #557bb6; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #557bb6; + border: 1px solid #557bb6; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #557bb6; +} + +QMenuBar:focus { + border: 1px solid #560062; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #557bb6; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #557bb6; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #557bb6; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #557bb6; +} + +QMenu::item:pressed { + background-color: #557bb6; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #560062; + margin-left: -5px; + border: 5px solid #560062; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #557BB6; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #557BB6; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #557BB6; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #557BB6; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #2b2b2b; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #2b2b2b; +} + +QScrollBar:vertical { + background-color: #2b2b2b; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #2b2b2b; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #557bb6; + border: #696968; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #560062; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #557bb6; + border: #696968; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #560062; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #2b2b2b; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #560062; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #560062; +} + +QPlainTextEdit:selected { + background: #557bb6; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #2b2b2b; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #2b2b2b; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #557bb6; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #557bb6; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid transparent; + border-bottom: 1px solid #1c1b22; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #696968; + border-top: 1px solid #696968; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #557bb6; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #560062; +} + +QAbstractSpinBox:selected { + background: #560062; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #557bb6; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #557bb6; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #557bb6; + color: #2b2b2b; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #696969; + color: White; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #2b2b2b; + color: #c2c7cb; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #557bb6; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #557bb6; + color: #3c3c3c; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #557bb6; +} + +QPushButton:hover { + background-color: #557bb6; + color: White; +} + +QPushButton:pressed { + background-color: #557bb6; +} + +QPushButton:selected { + background: #560062; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: transparent; + border-radius: 1px; + padding: 0px; + opacity: 1.0; +} + +QToolButton:checked { + background-color: #557bb6; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #557bb6; + color: White; +} + +QToolButton:checked:pressed { + background-color: #557bb6; +} + +QToolButton:checked:selected { + background: #560062; + color: White; +} + +QToolButton:hover { + background-color: #557bb6; + color: White; +} + +QToolButton:pressed { + background-color: #560062; +} + +QToolButton:selected { + background: #557bb6; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #557bb6; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #557bb6; +} + +QComboBox QAbstractItemView:hover { + background-color:Black; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #557bb6; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #2b2b2b; + color: #353535; +} + +QComboBox:hover { + /*background-color: #557bb6;*/ + border: 1px solid #557bb6; +} + +QComboBox:focus { + border: 1px solid #560062; +} + +QComboBox:on { + selection-background-color: #560062; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #557bb6; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #696969; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #696968; +} +QComboBox::drop-down:hover { + background-color: #557bb6; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: #696969; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #557BB6; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #2b2b2b; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #557bb6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #557bb6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #557bb6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #557bb6; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: black; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: #696969; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #557bb6; + border: 1px solid #557bb6; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #560062; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #1c1b22; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #557bb6; + border: 1px solid #557bb6; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #2b2b2b; +} + +QSlider:focus { + /*border: 1px solid #560062;*/ +} + +QSlider::groove:horizontal { + background: #2b2b2b; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #557bb6; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #557bb6; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #557bb6; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #557bb6; +} + +QSlider::handle:horizontal { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #557bb6; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #560062; + border: 1px solid #560062; +} + +QSlider::handle:vertical { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #557bb6; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #560062; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #557bb6; + color: White; +} + +QLineEdit:focus { + border: 2px solid #560062; +} + +QLineEdit:selected { + background-color: #557bb6; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #557bb6; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #696969; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #696969; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #696969; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #696969; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #696969; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #557bb6;*/ + border: 0px solid #557bb6; + background-color: #557bb6; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #696969; + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #557bb6;*/ + border: 0px solid #557bb6; + background-color: #557bb6; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #557bb6; + background-color: #557bb6; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #557bb6; + background-color: #557bb6; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #2b2b2b; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #557bb6; + background-color: #557bb6; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #557bb6; + background-color: #557bb6; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #2b2b2b; + border: 1px solid #696968; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #2b2b2b; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #557bb6; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #560062; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #557bb6; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #557bb6; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #557bb6; +} + +QTableCornerButton::section { + background-color: #2b2b2b; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #2b2b2b; + border: 1px solid #696968; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: #3c3c3c; + color: White; + border-radius: 0px; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #696968; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #696968; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical:disabled { + color: #7a7a7a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #557bb6; +} + +QToolBox::tab { + background-color: #696969; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #2b2b2b; +} + +QToolBox::tab:hover { + background-color: #557bb6; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #2b2b2b; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #557bb6, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #557bb6, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #557bb6; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #557bb6; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #2b2b2b; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #557bb6; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #557bb6; + color: White; +} + +QAbstractView:selected { + background: #557bb6; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Dark-modern-green.qss b/src/Gui/Stylesheets/Dark-modern-green.qss new file mode 100644 index 0000000000..f9a19c0c68 --- /dev/null +++ b/src/Gui/Stylesheets/Dark-modern-green.qss @@ -0,0 +1,2627 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #74b655 + #560062 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #74b655; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #2b2b2b; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #74b655; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #74b655; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #74b655; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #74b655; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #74b655, stop:0.8 transparent); + /*background-color: #74b655;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #74b655, stop:0.8 transparent); + /*background-color: #74b655;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #2b2b2b; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #2b2b2b; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #560062; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #74b655; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #2b2b2b; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #74b655; +} + +QCheckBox::indicator:checked:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #74b655; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #74b655; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #74b655; +} + +QGroupBox::indicator:checked:disabled { + background-color: #74b655; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #560062; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #74b655; + border: 1px solid #74b655; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #74b655; + border: 1px solid #74b655; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #74b655; +} + +QMenuBar:focus { + border: 1px solid #560062; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #74b655; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #74b655; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #74b655; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #74b655; +} + +QMenu::item:pressed { + background-color: #74b655; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #560062; + margin-left: -5px; + border: 5px solid #560062; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #74b655; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #74b655; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #74b655; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #74b655; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #2b2b2b; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #2b2b2b; +} + +QScrollBar:vertical { + background-color: #2b2b2b; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #2b2b2b; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #74b655; + border: #696968; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #560062; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #74b655; + border: #696968; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #560062; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #2b2b2b; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #560062; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #560062; +} + +QPlainTextEdit:selected { + background: #74b655; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #2b2b2b; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #2b2b2b; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #74b655; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #74b655; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid transparent; + border-bottom: 1px solid #1c1b22; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #74b655;*/ + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #696968; + border-top: 1px solid #696968; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #74b655; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #560062; +} + +QAbstractSpinBox:selected { + background: #560062; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #74b655; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #74b655; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #74b655; + color: #2b2b2b; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #696969; + color: White; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #2b2b2b; + color: #c2c7cb; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #74b655; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #74b655; + color: #3c3c3c; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #74b655; +} + +QPushButton:hover { + background-color: #74b655; + color: White; +} + +QPushButton:pressed { + background-color: #74b655; +} + +QPushButton:selected { + background: #560062; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: transparent; + border-radius: 1px; + padding: 0px; + opacity: 1.0; +} + +QToolButton:checked { + background-color: #74b655; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #74b655; + color: White; +} + +QToolButton:checked:pressed { + background-color: #74b655; +} + +QToolButton:checked:selected { + background: #560062; + color: White; +} + +QToolButton:hover { + background-color: #74b655; + color: White; +} + +QToolButton:pressed { + background-color: #560062; +} + +QToolButton:selected { + background: #74b655; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #74b655; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #74b655; +} + +QComboBox QAbstractItemView:hover { + background-color:Black; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #74b655; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #2b2b2b; + color: #353535; +} + +QComboBox:hover { + /*background-color: #74b655;*/ + border: 1px solid #74b655; +} + +QComboBox:focus { + border: 1px solid #560062; +} + +QComboBox:on { + selection-background-color: #560062; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #74b655; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #696969; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #696968; +} +QComboBox::drop-down:hover { + background-color: #74b655; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: #696969; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #74b655; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #2b2b2b; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #74b655; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #74b655; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #74b655; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #74b655; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: black; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: #696969; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #74b655; + border: 1px solid #74b655; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #560062; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #1c1b22; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #74b655; + border: 1px solid #74b655; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #2b2b2b; +} + +QSlider:focus { + /*border: 1px solid #560062;*/ +} + +QSlider::groove:horizontal { + background: #2b2b2b; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #74b655; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #74b655; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #74b655; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #74b655; +} + +QSlider::handle:horizontal { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #74b655; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #560062; + border: 1px solid #560062; +} + +QSlider::handle:vertical { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #74b655; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #560062; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #74b655; + color: White; +} + +QLineEdit:focus { + border: 2px solid #560062; +} + +QLineEdit:selected { + background-color: #74b655; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #74b655; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #74b655; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #696969; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #696969; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #696969; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #696969; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #696969; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #74b655;*/ + border: 0px solid #74b655; + background-color: #74b655; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #696969; + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #74b655;*/ + border: 0px solid #74b655; + background-color: #74b655; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #74b655; + background-color: #74b655; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #74b655; + background-color: #74b655; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #2b2b2b; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #74b655; + background-color: #74b655; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #74b655; + background-color: #74b655; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #2b2b2b; + border: 1px solid #696968; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #2b2b2b; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #74b655;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #74b655; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #560062; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #74b655; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #74b655; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #74b655; +} + +QTableCornerButton::section { + background-color: #2b2b2b; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #2b2b2b; + border: 1px solid #696968; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: #3c3c3c; + color: White; + border-radius: 0px; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #696968; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #696968; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical:disabled { + color: #7a7a7a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #74b655; +} + +QToolBox::tab { + background-color: #696969; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #2b2b2b; +} + +QToolBox::tab:hover { + background-color: #74b655; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #2b2b2b; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #74b655, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #74b655, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #74b655; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #74b655; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #2b2b2b; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #74b655; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #74b655; + color: White; +} + +QAbstractView:selected { + background: #74b655; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Dark-modern-orange.qss b/src/Gui/Stylesheets/Dark-modern-orange.qss new file mode 100644 index 0000000000..078003d9ff --- /dev/null +++ b/src/Gui/Stylesheets/Dark-modern-orange.qss @@ -0,0 +1,2627 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #cb9437 + #560062 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #cb9437; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #2b2b2b; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #cb9437; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #cb9437; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #cb9437; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #cb9437; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #cb9437, stop:0.8 transparent); + /*background-color: #cb9437;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #cb9437, stop:0.8 transparent); + /*background-color: #cb9437;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #2b2b2b; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #2b2b2b; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #560062; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #cb9437; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #2b2b2b; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #cb9437; +} + +QCheckBox::indicator:checked:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #cb9437; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #cb9437; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #cb9437; +} + +QGroupBox::indicator:checked:disabled { + background-color: #cb9437; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #560062; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #cb9437; + border: 1px solid #cb9437; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #cb9437; + border: 1px solid #cb9437; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #cb9437; +} + +QMenuBar:focus { + border: 1px solid #560062; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #cb9437; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #cb9437; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #cb9437; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #cb9437; +} + +QMenu::item:pressed { + background-color: #cb9437; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #560062; + margin-left: -5px; + border: 5px solid #560062; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #cb9437; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #cb9437; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #cb9437; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #cb9437; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #2b2b2b; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #2b2b2b; +} + +QScrollBar:vertical { + background-color: #2b2b2b; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #2b2b2b; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #cb9437; + border: #696968; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #560062; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #cb9437; + border: #696968; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #560062; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #2b2b2b; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #560062; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #560062; +} + +QPlainTextEdit:selected { + background: #cb9437; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #2b2b2b; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #2b2b2b; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #cb9437; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #cb9437; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid transparent; + border-bottom: 1px solid #1c1b22; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #cb9437;*/ + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #696968; + border-top: 1px solid #696968; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #cb9437; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #560062; +} + +QAbstractSpinBox:selected { + background: #560062; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #cb9437; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #cb9437; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #cb9437; + color: #2b2b2b; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #696969; + color: White; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #2b2b2b; + color: #c2c7cb; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #cb9437; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #cb9437; + color: #3c3c3c; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #cb9437; +} + +QPushButton:hover { + background-color: #cb9437; + color: White; +} + +QPushButton:pressed { + background-color: #cb9437; +} + +QPushButton:selected { + background: #560062; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: transparent; + border-radius: 1px; + padding: 0px; + opacity: 1.0; +} + +QToolButton:checked { + background-color: #cb9437; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #cb9437; + color: White; +} + +QToolButton:checked:pressed { + background-color: #cb9437; +} + +QToolButton:checked:selected { + background: #560062; + color: White; +} + +QToolButton:hover { + background-color: #cb9437; + color: White; +} + +QToolButton:pressed { + background-color: #560062; +} + +QToolButton:selected { + background: #cb9437; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #cb9437; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #cb9437; +} + +QComboBox QAbstractItemView:hover { + background-color:Black; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #cb9437; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #2b2b2b; + color: #353535; +} + +QComboBox:hover { + /*background-color: #cb9437;*/ + border: 1px solid #cb9437; +} + +QComboBox:focus { + border: 1px solid #560062; +} + +QComboBox:on { + selection-background-color: #560062; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #cb9437; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #696969; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #696968; +} +QComboBox::drop-down:hover { + background-color: #cb9437; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: #696969; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #cb9437; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #2b2b2b; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #cb9437; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #cb9437; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #cb9437; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #cb9437; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: black; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: #696969; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #cb9437; + border: 1px solid #cb9437; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #560062; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #1c1b22; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #cb9437; + border: 1px solid #cb9437; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #2b2b2b; +} + +QSlider:focus { + /*border: 1px solid #560062;*/ +} + +QSlider::groove:horizontal { + background: #2b2b2b; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #cb9437; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #cb9437; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #cb9437; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #cb9437; +} + +QSlider::handle:horizontal { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #cb9437; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #560062; + border: 1px solid #560062; +} + +QSlider::handle:vertical { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #cb9437; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #560062; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #cb9437; + color: White; +} + +QLineEdit:focus { + border: 2px solid #560062; +} + +QLineEdit:selected { + background-color: #cb9437; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #cb9437; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #cb9437; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #696969; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #696969; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #696969; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #696969; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #696969; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #cb9437;*/ + border: 0px solid #cb9437; + background-color: #cb9437; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #696969; + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #cb9437;*/ + border: 0px solid #cb9437; + background-color: #cb9437; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #cb9437; + background-color: #cb9437; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #cb9437; + background-color: #cb9437; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #2b2b2b; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #cb9437; + background-color: #cb9437; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #cb9437; + background-color: #cb9437; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #2b2b2b; + border: 1px solid #696968; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #2b2b2b; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #cb9437;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #cb9437; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #560062; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #cb9437; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #cb9437; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #cb9437; +} + +QTableCornerButton::section { + background-color: #2b2b2b; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #2b2b2b; + border: 1px solid #696968; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: #3c3c3c; + color: White; + border-radius: 0px; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #696968; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #696968; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical:disabled { + color: #7a7a7a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #cb9437; +} + +QToolBox::tab { + background-color: #696969; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #2b2b2b; +} + +QToolBox::tab:hover { + background-color: #cb9437; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #2b2b2b; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #cb9437, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #cb9437, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #cb9437; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #cb9437; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #2b2b2b; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #cb9437; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #cb9437; + color: White; +} + +QAbstractView:selected { + background: #cb9437; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Dark-modern-pink.qss b/src/Gui/Stylesheets/Dark-modern-pink.qss new file mode 100644 index 0000000000..c5a14106a4 --- /dev/null +++ b/src/Gui/Stylesheets/Dark-modern-pink.qss @@ -0,0 +1,2627 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #c849cd + #560062 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #c849cd; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #2b2b2b; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #c849cd; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #c849cd; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #c849cd; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #c849cd; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #c849cd, stop:0.8 transparent); + /*background-color: #c849cd;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #c849cd, stop:0.8 transparent); + /*background-color: #c849cd;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #2b2b2b; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #2b2b2b; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #560062; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #c849cd; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #2b2b2b; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #c849cd; +} + +QCheckBox::indicator:checked:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #2b2b2b; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #c849cd; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #c849cd; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #c849cd; +} + +QGroupBox::indicator:checked:disabled { + background-color: #c849cd; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #560062; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #c849cd; + border: 1px solid #c849cd; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #c849cd; + border: 1px solid #c849cd; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #c849cd; +} + +QMenuBar:focus { + border: 1px solid #560062; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #c849cd; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #c849cd; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #c849cd; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #c849cd; +} + +QMenu::item:pressed { + background-color: #c849cd; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #560062; + margin-left: -5px; + border: 5px solid #560062; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #c849cd; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #c849cd; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #c849cd; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #c849cd; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #2b2b2b; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #2b2b2b; +} + +QScrollBar:vertical { + background-color: #2b2b2b; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #2b2b2b; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #c849cd; + border: #696968; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #560062; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #c849cd; + border: #696968; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #560062; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #2b2b2b; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #560062; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #560062; +} + +QPlainTextEdit:selected { + background: #c849cd; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #2b2b2b; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #2b2b2b; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #c849cd; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #c849cd; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid transparent; + border-bottom: 1px solid #1c1b22; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #c849cd;*/ + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: #696968; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #696968; + border-top: 1px solid #696968; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #c849cd; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #560062; +} + +QAbstractSpinBox:selected { + background: #560062; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #c849cd; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #c849cd; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #c849cd; + color: #2b2b2b; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #696969; + color: White; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #2b2b2b; + color: #c2c7cb; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #c849cd; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #c849cd; + color: #3c3c3c; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #c849cd; +} + +QPushButton:hover { + background-color: #c849cd; + color: White; +} + +QPushButton:pressed { + background-color: #c849cd; +} + +QPushButton:selected { + background: #560062; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: transparent; + border-radius: 1px; + padding: 0px; + opacity: 1.0; +} + +QToolButton:checked { + background-color: #c849cd; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #c849cd; + color: White; +} + +QToolButton:checked:pressed { + background-color: #c849cd; +} + +QToolButton:checked:selected { + background: #560062; + color: White; +} + +QToolButton:hover { + background-color: #c849cd; + color: White; +} + +QToolButton:pressed { + background-color: #560062; +} + +QToolButton:selected { + background: #c849cd; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #c849cd; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #c849cd; +} + +QComboBox QAbstractItemView:hover { + background-color:Black; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #c849cd; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #2b2b2b; + color: #353535; +} + +QComboBox:hover { + /*background-color: #c849cd;*/ + border: 1px solid #c849cd; +} + +QComboBox:focus { + border: 1px solid #560062; +} + +QComboBox:on { + selection-background-color: #560062; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #c849cd; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #696969; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #696968; +} +QComboBox::drop-down:hover { + background-color: #c849cd; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: #696969; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #c849cd; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #2b2b2b; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #c849cd; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #c849cd; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #c849cd; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #c849cd; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: black; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: #696969; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #c849cd; + border: 1px solid #c849cd; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #560062; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #1c1b22; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #c849cd; + border: 1px solid #c849cd; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #2b2b2b; +} + +QSlider:focus { + /*border: 1px solid #560062;*/ +} + +QSlider::groove:horizontal { + background: #2b2b2b; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #c849cd; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #c849cd; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #c849cd; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #c849cd; +} + +QSlider::handle:horizontal { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #c849cd; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #560062; + border: 1px solid #560062; +} + +QSlider::handle:vertical { + background: #696968; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #c849cd; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #560062; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #2b2b2b; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #c849cd; + color: White; +} + +QLineEdit:focus { + border: 2px solid #560062; +} + +QLineEdit:selected { + background-color: #c849cd; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #c849cd; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #c849cd; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #696969; + color: #515151; + background-color: #696969; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #696969; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #696969; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #696969; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #696969; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #696969; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #c849cd;*/ + border: 0px solid #c849cd; + background-color: #c849cd; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #696969; + background-color: #2b2b2b; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #696969; + /*border: 1px solid #560062; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #c849cd;*/ + border: 0px solid #c849cd; + background-color: #c849cd; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #c849cd; + background-color: #c849cd; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #2b2b2b; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #2b2b2b; + border: 0px solid #560062; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #c849cd; + background-color: #c849cd; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #2b2b2b; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #c849cd; + background-color: #c849cd; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #c849cd; + background-color: #c849cd; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #2b2b2b; + border: 1px solid #696968; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #2b2b2b; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #c849cd;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #c849cd; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #560062; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #c849cd; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #c849cd; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #c849cd; +} + +QTableCornerButton::section { + background-color: #2b2b2b; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #2b2b2b; + border: 1px solid #696968; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #2b2b2b; + border: 1px solid #696968; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: #3c3c3c; + color: White; + border-radius: 0px; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #696968; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #696968; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #696968; +} + +QHeaderView::section::vertical:disabled { + color: #7a7a7a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: #696969; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #c849cd; +} + +QToolBox::tab { + background-color: #696969; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #2b2b2b; +} + +QToolBox::tab:hover { + background-color: #c849cd; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #2b2b2b; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #c849cd, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #c849cd, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #c849cd; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #c849cd; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #2b2b2b; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #c849cd; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #c849cd; + color: White; +} + +QAbstractView:selected { + background: #c849cd; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Dark-orange.qss b/src/Gui/Stylesheets/Dark-orange.qss index 9cb212b9ed..60fa01e371 100644 --- a/src/Gui/Stylesheets/Dark-orange.qss +++ b/src/Gui/Stylesheets/Dark-orange.qss @@ -1,782 +1,67 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #3c3c3c - #505050 - #5a5a5a - #646464 - #6e6e6e = main background color - #787878 - #8c8c8c - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #624b14 - #b28416 - #d0970c - #daa116 = main selection color - #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle - #e3b64d - #e0c992 - #e3d8b9 +TO MODIFY USE THESE COLORS: + #b28416 + #996b00 -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: black; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #6e6e6e; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #505050; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #e0e0e0; - background-color: #6e6e6e; /* main background color */ -} - -QMenu, -QMenu::item { - color: #e0e0e0; - background-color: #5a5a5a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #daa116; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #daa116; - border: 2px #daa116; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #daa116; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox::title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #1e1e1e; - background-color: #b4b4b4; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,20); - border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(255,255,255,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #c8c8c8; - border: 1px solid #505050; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #d0970c, stop:1 #daa116); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #5a5a5a; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #5a5a5a; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #5a5a5a; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #5a5a5a; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #d2d2d2; - background-color: #6e6e6e; /* same as tab content background color */ - border-color: #5a5a5a; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-bottom-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-top-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-right-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-left-color: #6e6e6e; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,180); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #6e6e6e) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #b4b4b4; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #daa116; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #6e6e6e; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #c8c8c8; - alternate-background-color: #bebebe; /* related with QListView background */ - border: 1px solid #505050; - selection-color: white; - selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #daa116; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #a0a0a0; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #e3d8b9; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -787,25 +72,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #e3d8b9; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -815,249 +81,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #b28416; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #e3d8b9; /* same as focused background color */ - border-bottom-color: #e3b64d; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - color: #c8c8c8; - background-color: #505050; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #7F7F7F; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #505050; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #7F7F7F; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #b28416; + selection-color: White; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #b28416; + selection-color: #c2c7cb; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); +QWidget::item:selected { + background-color: #b28416; } -QTableCornerButton::section { - background-color: #505050; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #b28416; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #505050; - qproperty-groupBackground: #8c8c8c; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #505050; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #7F7F7F; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #7F7F7F; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #996b00; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #505050; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #505050; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #b28416; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #7F7F7F; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #505050; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #b28416; +} + +QCheckBox::indicator:checked:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #505050; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #b28416; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #b28416; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #505050; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #b28416; +} + +QGroupBox::indicator:checked:disabled { + background-color: #b28416; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #996b00; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #b28416; + border: 1px solid #b28416; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #b28416; + border: 1px solid #b28416; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #505050; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #b28416; +} + +QMenuBar:focus { + border: 1px solid #996b00; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #b28416; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #b28416; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #505050; + selection-background-color: #b28416; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #b28416; +} + +QMenu::item:pressed { + background-color: #b28416; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #996b00; + margin-left: -5px; + border: 5px solid #996b00; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #b28416; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #b28416; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #b28416; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #b28416; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #7F7F7F; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #7F7F7F; +} + +QScrollBar:vertical { + background-color: #7F7F7F; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #7F7F7F; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #b28416; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #996b00; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #b28416; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #996b00; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #b28416; + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #7F7F7F; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #996b00; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #996b00; +} + +QPlainTextEdit:selected { + background: #b28416; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #7F7F7F; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #7F7F7F; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #b28416; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #b28416; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #c8c8c8; - selection-color: white; - selection-background-color: #d0970c; - border: 1px solid #505050; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #505050; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #b28416; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #996b00; +} + +QAbstractSpinBox:selected { + background: #996b00; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #505050; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #b28416; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #b28416; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #505050; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #505050; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #b28416; + color: #7F7F7F; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #505050; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #7F7F7F; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #b28416; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #b28416; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #b28416; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #996b00, stop:1 #b28416); +} + +QPushButton:selected { + background: #996b00; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #b28416; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #b28416; + color: White; +} + +QToolButton:checked:pressed { + background-color: #b28416; +} + +QToolButton:checked:selected { + background: #996b00; + color: White; +} + +QToolButton:hover { + background-color: #b28416; + color: White; +} + +QToolButton:pressed { + background-color: #996b00; +} + +QToolButton:selected { + background: #b28416; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #505050; + border-radius: 2px; + selection-background-color: #b28416; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #505050; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #505050; + selection-background-color: #b28416; +} + +QComboBox QAbstractItemView:hover { + background-color:#505050; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #b28416; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #7F7F7F; + color: #353535; +} + +QComboBox:hover { + /*background-color: #b28416;*/ + border: 1px solid #b28416; +} + +QComboBox:focus { + border: 1px solid #996b00; +} + +QComboBox:on { + selection-background-color: #996b00; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #b28416; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1220 +1508,1068 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #505050; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); } QSint--ActionGroup QToolButton[class="header"] { - color: #e0e0e0; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #8c8c8c; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #8c8c8c; /* Task Panel background color */ +background-color: #7F7F7F; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +border-bottom-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #8c8c8c; /* same as Task Panel background color */ +border-top-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #8c8c8c; /* same as Task Panel background color */ +border-right-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #8c8c8c; /* same as Task Panel background color */ +border-left-color: #b28416; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #5a5a5a; - selection-color: white; - selection-background-color: #d0970c; - border: 1px solid #5a5a5a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #c8c8c8; - border: 1px solid #505050; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #e3b64d; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ - background-color: #e3d8b9; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #505050; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #daa116; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #daa116; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +color: white; +background-color: #505050; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #787878; - background-color: #5a5a5a; /* same as enabled color */ - border-color: #5a5a5a; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - -QPushButton:checked { - background-color: #daa116; - border-color: #d0970c; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #6e6e6e; - border: 1px solid #5a5a5a; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #6e6e6e; /* main background color */ - border: 1px solid #5a5a5a; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #daa116; - border-color: #d0970c; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); + border: 1px solid #996b00; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #6e6e6e; - border-color: #5a5a5a; - background-color: #5a5a5a; + color: #696969; + background-color: #505050; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #7F7F7F; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #e0e0e0; - background-color: #5a5a5a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; -} - -QRadioButton::indicator:checked { - background-color: #daa116; /* QCheckBox has the same color */ - border: 1px solid #d0970c; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #e0c992; -} - -QRadioButton::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: black; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #e0c992; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #daa116; /* QRadioButton has the same color */ - border: 1px solid #d0970c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #daa116; - border: 1px solid #d0970c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #5a5a5a; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #e3b64d; /* slightly lighter than default */ - border-color: #b28416; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #e0c992; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #daa116; /* QRadioButton has the same color */ - border: 1px solid #d0970c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #daa116; - border: 1px solid #d0970c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #996b00;*/ } QSlider::groove:horizontal { - height: 8px; + background: #7F7F7F; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #7F7F7F; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::add-page:vertical { + background: #b28416; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #505050; - border: 1px solid #505050; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #b28416; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #b28416; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #b28416; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #996b00; + border: 1px solid #996b00; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #daa116; - background-color: #daa116; +QSlider::handle:vertical:hover { + background: #b28416; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #5a5a5a; - background-color: #5a5a5a; +QSlider::handle:vertical:focus { + border: 1px solid #996b00; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #505050; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #b28416; + color: White; +} + +QLineEdit:focus { + border: 2px solid #996b00; +} + +QLineEdit:selected { + background-color: #b28416; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #b28416; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #b28416; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #f5f5f5; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #f5f5f5; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #f5f5f5; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #b28416; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #b28416;*/ + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #b28416; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #b28416;*/ + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #7F7F7F; + border: 0px solid #996b00; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #7F7F7F; + border: 0px solid #996b00; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #7F7F7F; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #b28416; + background-color: #b28416; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #b28416; + background-color: #b28416; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #7F7F7F; + border: 1px solid #505051; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #505050; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #b28416; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #996b00; } -QToolBar > QPushButton:checked { - border: 1px solid #e3b64d; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #e3d8b9, stop:1 #e3b64d); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #b28416; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); - border: 1px solid #5a5a5a; - border-bottom-color: #505050; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #b28416; } -QToolBar > QPushButton:checked:hover { - border-color: #e2ac2a; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #e3d8b9; - border-color: #505050; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #b28416; } -QToolBar > QPushButton:checked:pressed { - background-color: #e3b64d; +QTableCornerButton::section { + background-color: #7F7F7F; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #e3b64d; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,60); /* transparency for #e3b64d color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,80); /* transparency for #e3b64d color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #5a5a5a; - background-color: #5a5a5a; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #624b14; - selection-background-color: #e3d8b9; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #8c8c8c; -} - -QTableView::item:selected { - color: #624b14; - border-color: #e3d8b9; /* same as focused background color */ - border-bottom-color: #e3b64d; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #624b14; - selection-color: white; - selection-background-color: #daa116; - border-color: #e3d8b9; - background-color: #e3d8b9; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #6e6e6e; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #7f7f7f; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #696968; } -*[mandatoryField="true"] { background-color: cyan } +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #505051; +} -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #505051; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #b28416; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #7F7F7F; +} + +QToolBox::tab:hover { + background-color: #b28416; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #7F7F7F; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #b28416; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #b28416; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #7F7F7F; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #b28416; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #b28416; + color: White; +} + +QAbstractView:selected { + background: #b28416; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2288,32 +2577,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Dark-pink.qss b/src/Gui/Stylesheets/Dark-pink.qss new file mode 100644 index 0000000000..a850fd0345 --- /dev/null +++ b/src/Gui/Stylesheets/Dark-pink.qss @@ -0,0 +1,2608 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #bc1cc8 + #920077 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #bc1cc8; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #7F7F7F; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #7F7F7F; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #bc1cc8; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #bc1cc8; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #bc1cc8; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #bc1cc8; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #bc1cc8, stop:0.8 transparent); + /*background-color: #bc1cc8;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #bc1cc8, stop:0.8 transparent); + /*background-color: #bc1cc8;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #505050; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #7F7F7F; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #7F7F7F; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #920077 ; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #505050; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #505050; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #bc1cc8; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #7F7F7F; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #505050; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #bc1cc8; +} + +QCheckBox::indicator:checked:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #505050; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #7F7F7F; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #bc1cc8; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #bc1cc8; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #505050; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #bc1cc8; +} + +QGroupBox::indicator:checked:disabled { + background-color: #bc1cc8; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #920077 ; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #bc1cc8; + border: 1px solid #bc1cc8; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #bc1cc8; + border: 1px solid #bc1cc8; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #505050; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #bc1cc8; +} + +QMenuBar:focus { + border: 1px solid #920077 ; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #bc1cc8; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #bc1cc8; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #505050; + selection-background-color: #bc1cc8; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #bc1cc8; +} + +QMenu::item:pressed { + background-color: #bc1cc8; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #920077 ; + margin-left: -5px; + border: 5px solid #920077 ; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #bc1cc8; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #bc1cc8; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #bc1cc8; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #bc1cc8; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #7F7F7F; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 1.9px; + background-color: #7F7F7F; +} + +QScrollBar:vertical { + background-color: #7F7F7F; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #7F7F7F; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #bc1cc8; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #920077 ; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #bc1cc8; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #920077 ; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #bc1cc8; + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #7F7F7F; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #920077 ; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #920077 ; +} + +QPlainTextEdit:selected { + background: #bc1cc8; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #7F7F7F; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #7F7F7F; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #bc1cc8; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #bc1cc8; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #505050; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #bc1cc8; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #920077 ; +} + +QAbstractSpinBox:selected { + background: #920077 ; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #505050; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #7F7F7F; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #bc1cc8; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #bc1cc8; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #505050; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #505050; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #bc1cc8; + color: #7F7F7F; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #505050; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #7F7F7F; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #bc1cc8; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #bc1cc8; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #bc1cc8; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #bc1cc8, stop:1 #920077 ); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #920077 , stop:1 #bc1cc8); +} + +QPushButton:selected { + background: #920077 ; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #bc1cc8; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #bc1cc8; + color: White; +} + +QToolButton:checked:pressed { + background-color: #bc1cc8; +} + +QToolButton:checked:selected { + background: #920077 ; + color: White; +} + +QToolButton:hover { + background-color: #bc1cc8; + color: White; +} + +QToolButton:pressed { + background-color: #920077 ; +} + +QToolButton:selected { + background: #bc1cc8; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #505050; + border-radius: 2px; + selection-background-color: #bc1cc8; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #505050; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #505050; + selection-background-color: #bc1cc8; +} + +QComboBox QAbstractItemView:hover { + background-color:#505050; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #bc1cc8; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #7F7F7F; + color: #353535; +} + +QComboBox:hover { + /*background-color: #bc1cc8;*/ + border: 1px solid #bc1cc8; +} + +QComboBox:focus { + border: 1px solid #920077 ; +} + +QComboBox:on { + selection-background-color: #920077 ; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #bc1cc8; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #bc1cc8, stop:1 #920077 ); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #bc1cc8, stop:1 #920077 ); +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #7F7F7F; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #bc1cc8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #bc1cc8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #bc1cc8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #bc1cc8; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: #505050; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #bc1cc8, stop:1 #920077 ); + +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #920077 ; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #505050; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #bc1cc8, stop:1 #920077 ); + +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #7F7F7F; +} + +QSlider:focus { + /*border: 1px solid #920077 ;*/ +} + +QSlider::groove:horizontal { + background: #7F7F7F; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #7F7F7F; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #bc1cc8; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #bc1cc8; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #bc1cc8; +} + +QSlider::handle:horizontal { + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #bc1cc8; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #920077; + border: 1px solid #920077; +} + +QSlider::handle:vertical { + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #bc1cc8; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #920077 ; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #505050; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #7F7F7F; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #bc1cc8; + color: White; +} + +QLineEdit:focus { + border: 2px solid #920077 ; +} + +QLineEdit:selected { + background-color: #bc1cc8; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #bc1cc8; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #bc1cc8; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #f5f5f5; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #f5f5f5; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #f5f5f5; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #f5f5f5; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #f5f5f5; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #f5f5f5; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #bc1cc8; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #bc1cc8;*/ + border: 0px solid #bc1cc8; + background-color: #bc1cc8; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #f5f5f5; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #bc1cc8; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #bc1cc8;*/ + border: 0px solid #bc1cc8; + background-color: #bc1cc8; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #7F7F7F; + border: 0px solid #920077 ; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #bc1cc8; + background-color: #bc1cc8; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #7F7F7F; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #7F7F7F; + border: 0px solid #920077 ; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #bc1cc8; + background-color: #bc1cc8; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #7F7F7F; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #bc1cc8; + background-color: #bc1cc8; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #bc1cc8; + background-color: #bc1cc8; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #7F7F7F; + border: 1px solid #505051; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #bc1cc8;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #505050; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #bc1cc8; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #920077 ; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #bc1cc8; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #bc1cc8; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #bc1cc8; +} + +QTableCornerButton::section { + background-color: #7F7F7F; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; +} + +QHeaderView:disabled { + background-color: #7f7f7f; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + color: White; + border: 1px solid #505051; + font-size: 13px; + font-weight: bold; +} + +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #696968; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #505051; +} + +QHeaderView::section::vertical:disabled { + border-top: 2px solid #505051; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #bc1cc8; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #7F7F7F; +} + +QToolBox::tab:hover { + background-color: #bc1cc8; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #7F7F7F; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #bc1cc8, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #bc1cc8, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #bc1cc8; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #bc1cc8; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #7F7F7F; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #bc1cc8; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #bc1cc8; + color: White; +} + +QAbstractView:selected { + background: #bc1cc8; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Darker-blue.qss b/src/Gui/Stylesheets/Darker-blue.qss index 257d91bf7d..ea7cc2a6c6 100644 --- a/src/Gui/Stylesheets/Darker-blue.qss +++ b/src/Gui/Stylesheets/Darker-blue.qss @@ -1,87 +1,100 @@ /* ABOUT ============================================================================================================ -version 2.22 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #444444 = main background color - #545454 = secondary - #787878 - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #1b3774 - #2053c0 - #3874f2 - #5e90fa = main selection color - #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle - #7cabf9 - #adc5ed - #cbd8e6 +TO MODIFY USE THESE COLORS: + #2053c0; + #1b3774 -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #f5f5f5; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ + +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; margin: 0px; padding: 0px; } +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #2053c0; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} /*================================================================================================== Main window @@ -94,970 +107,1398 @@ QToolBar { } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #444444; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #2053c0; + selection-color: White; } - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #2053c0; + selection-color: #c2c7cb; } - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #f5f5f5; - background-color: #444444; /* main background color */ +QWidget::item:selected { + background-color: #2053c0; } -QMenu, -QMenu::item { - color: #f5f5f5; - background-color: #2a2a2a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; + /* Causes issue with colorselector. + QWidget::item:hover:!selected { background-color: #2053c0; -} + }*/ -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} +/* QMainWindow ------------------------------------------------------------ -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #2053c0; - border: 2px #2053c0; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #2053c0; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(255,255,255,120); - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #1e1e1e; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,40); - border: 4px solid #444444; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,60); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,120); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #787878; - border: 1px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(255,255,255,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(255,255,255,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #787878; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #787878; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #787878; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #787878; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #787878; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #f5f5f5; - background-color: #444444; /* same as tab content background color */ - border-color: #787878; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-bottom-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-top-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-right-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-left-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: rgba(255,255,255,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #444444) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #787878; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #2053c0; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #444444; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #e0e0e0; - background-color: #545454; - alternate-background-color: #444444; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: #2053c0; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: #2053c0; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #444444; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #2053c0; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #1b3774; - background-color: #2053c0; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #2a2a2a; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #d2d2d2; - background-color: #2a2a2a; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #2a2a2a; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: #2a2a2a; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: #2a2a2a; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #2053c0, stop:0.8 transparent); + /*background-color: #2053c0;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #2053c0, stop:0.8 transparent); + /*background-color: #2053c0;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #444444; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #444444; + border: 1px solid #696968; + color: #444444; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #1b3774; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #2053c0; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #444444; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #2053c0; +} + +QCheckBox::indicator:checked:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #2053c0; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #2053c0; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #2053c0; +} + +QGroupBox::indicator:checked:disabled { + background-color: #2053c0; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #1b3774; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #2053c0; + border: 1px solid #2053c0; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #2053c0; + border: 1px solid #2053c0; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #2053c0; +} + +QMenuBar:focus { + border: 1px solid #1b3774; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #2053c0; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #2053c0; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #2053c0; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #2053c0; +} + +QMenu::item:pressed { + background-color: #2053c0; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #1b3774; + margin-left: -5px; + border: 5px solid #1b3774; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #2053c0; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #2053c0; +} + +QMenu::indicator:non-exclusive:checked:disabled { +image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #2053c0; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #2053c0; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #444444; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 4px; + background-color: #444444; +} + +QScrollBar:vertical { + background-color: #444444; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #444444; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #2053c0; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #1b3774; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #2053c0; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #1b3774; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #444444; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #1b3774; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #1b3774; +} + +QPlainTextEdit:selected { + background: #2053c0; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #444444; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #444444; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #2053c0; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #2053c0; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #787878; - selection-color: #cbd8e6; - selection-background-color: #2053c0; - border: 1px solid #333333; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #2053c0; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #1b3774; +} + +QAbstractSpinBox:selected { + background: #1b3774; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #444444; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #2053c0; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #2053c0; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #444444; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #2053c0; + color: #444444; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #444444; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #2053c0; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #2053c0; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #2053c0; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #2053c0); +} + +QPushButton:selected { + background: #1b3774; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #2053c0; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #2053c0; + color: White; +} + +QToolButton:checked:pressed { + background-color: #2053c0; +} + +QToolButton:checked:selected { + background: #1b3774; + color: White; +} + +QToolButton:hover { + background-color: #2053c0; + color: White; +} + +QToolButton:pressed { + background-color: #1b3774; +} + +QToolButton:selected { + background: #2053c0; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #2053c0; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #2053c0; +} + +QComboBox QAbstractItemView:hover { + background-color:#1c1b22; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #2053c0; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #444444; + color: #353535; +} + +QComboBox:hover { + /*background-color: #2053c0;*/ + border: 1px solid #2053c0; +} + +QComboBox:focus { + border: 1px solid #1b3774; +} + +QComboBox:on { + selection-background-color: #1b3774; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #2053c0; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1246 +1508,1069 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #2a2a2a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #1b3774); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); } QSint--ActionGroup QToolButton[class="header"] { - color: #f5f5f5; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #545454; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #545454; /* Task Panel background color */ +background-color: #444444; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #545454; /* same as Task Panel background color */ +border-bottom-color: #2053c0; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #545454; /* same as Task Panel background color */ +border-top-color: #2053c0; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #545454; /* same as Task Panel background color */ +border-right-color: #2053c0; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #545454; /* same as Task Panel background color */ +border-left-color: #2053c0; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ +/* Fix for lists inside task panels */ /* sketcher constraints list */ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; +color: white; +background-color: #1c1b22; } -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #2a2a2a; - selection-color: white; - selection-background-color: #1b3774 ; - border: 1px solid #2a2a2a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #787878; - border: 1px solid #424242; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: #f5f5f5; - border-color: #1b3774; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #1b3774, stop:1 #1b3774); /* same as up/down or drop-down button color */ - background-color: #2053c0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #545454; - background-color: #2a2a2a; /* same as enabled color */ - border-color: #2a2a2a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #2a2a2a; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #1b3774, stop:1 #1b3774); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #1b3774, stop:1 #1b3774); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #333333; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #1b3774, stop:1 #1b3774); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #f5f5f5; - selection-background-color: #2053c0; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: #f5f5f5; - selection-background-color: #2053c0; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - border: 1px solid #2a2a2a; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: #cbd8e6; - border-color: #1b3774; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #2a2a2a; - background-color: #3c3c3c; /* same as enabled color */ - border-color: #3c3c3c; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #2053c0); -} - -QPushButton:checked { - background-color: #2053c0; - border-color: #1b3774; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #1b3774; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #2053c0); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #2a2a2a; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #444444; /* main background color */ - border: 1px solid #444444; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #2053c0; - border-color: #2053c0; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #cbd8e6; - border-color: #1b3774; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #2053c0); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #1b3774; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); + border: 1px solid #1b3774; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; + color: #696969; + background-color: #1c1b22; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #1b3774, stop:1 #2053c0); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #1b3774); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #444444; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #f5f5f5; - background: #2a2a2a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: #2a2a2a; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: #2a2a2a; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; -} - -QRadioButton::indicator:checked { - background-color: #2053c0; /* QCheckBox has the same color */ - border: 1px solid #2053c0; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #cbd8e6; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #2053c0; /* QRadioButton has the same color */ - border: 1px solid #2053c0; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #2053c0; - border: 1px solid #2053c0; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #2053c0; /* slightly lighter than default */ - border-color: #2053c0; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #2053c0; /* QRadioButton has the same color */ - border: 1px solid #2053c0; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #2053c0; - border: 1px solid #2053c0; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(255,255,255,30); - border: 1px solid rgba(255,255,255,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #1b3774;*/ } QSlider::groove:horizontal { - height: 8px; + background: #444444; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #2053c0; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::add-page:vertical { + background: #2053c0; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #2a2a2a; - border: 1px solid #2a2a2a; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #2053c0; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #2053c0; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #2053c0; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #1b3774; + border: 1px solid #1b3774; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #adc5ed; - background-color: #2053c0; +QSlider::handle:vertical:hover { + background: #2053c0; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::handle:vertical:focus { + border: 1px solid #1b3774; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #444444; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #2053c0; + color: White; +} + +QLineEdit:focus { + border: 2px solid #1b3774; +} + +QLineEdit:selected { + background-color: #2053c0; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #2053c0; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #2053c0; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #adadad; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #adadad; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #adadad; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #adadad; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #adadad; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #adadad; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #696969; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #2053c0; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #2053c0;*/ + border: 0px solid #2053c0; + background-color: #2053c0; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #adadad; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #2053c0; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #2053c0;*/ + border: 0px solid #2053c0; + background-color: #2053c0; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #444444; + margin-top: 2px; + margin-left:10px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #444444; + border: 0px solid #1b3774; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #2053c0; + background-color: #2053c0; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #444444; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #444444; + border: 0px solid #1b3774; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #2053c0; + background-color: #2053c0; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #444444; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #2053c0; + background-color: #2053c0; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #2053c0; + background-color: #2053c0; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #444444; + border: 1px solid #2a2a2a; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #2053c0;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #2053c0; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #1b3774; } -QToolBar > QPushButton:checked { - border: 1px solid #7cabf9; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #2053c0, stop:1 #2053c0); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #2053c0; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #3c3c3c); - border: 1px solid #424242; - border-bottom-color: #333333; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #2053c0; } -QToolBar > QPushButton:checked:hover { - border-color: #6f9efa; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #cbd8e6; - border-color: #333333; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #2053c0; } -QToolBar > QPushButton:checked:pressed { - background-color: #2053c0; +QTableCornerButton::section { + background-color: #444444; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #424242, stop:1 #444444); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(255,255,255,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(255,255,255,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #2053c0, stop:1 #7cabf9); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,60); /* transparency for #7cabf9 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,80); /* transparency for #7cabf9 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #1b3774; - selection-background-color: #adc5ed; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #333333; -} - -QTableView::item:selected { - color: #1b3774; - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #1b3774; - selection-color: white; - selection-background-color: #2053c0; - border-color: #cbd8e6; - background-color: #cbd8e6; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #444444; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #444444; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #2a2a2a; } -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #2a2a2a; } -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #2a2a2a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #2053c0; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #444444; +} + +QToolBox::tab:hover { + background-color: #2053c0; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #444444; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #2053c0, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #2053c0, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #2053c0; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #2053c0; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #444444; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #2053c0; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #2053c0; + color: White; +} + +QAbstractView:selected { + background: #2053c0; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2314,32 +2578,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Darker-green.qss b/src/Gui/Stylesheets/Darker-green.qss index e121ab3fef..ecc50e84a5 100644 --- a/src/Gui/Stylesheets/Darker-green.qss +++ b/src/Gui/Stylesheets/Darker-green.qss @@ -1,87 +1,99 @@ /* ABOUT ============================================================================================================ -version 2.22 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #444444 = main background color - #545454 = secondary - #787878 - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #566214 - #74831d - #819c0c - #94b30f = main selection color - #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle - #a5c61a - #c5d675 - #dadfc5 +TO MODIFY USE THESE COLORS: + #74831d + #6d8000 -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #f5f5f5; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ + Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; margin: 0px; padding: 0px; } +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #74831d; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} /*================================================================================================== Main window @@ -94,970 +106,1398 @@ QToolBar { } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #444444; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #74831d; + selection-color: White; } - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #74831d; + selection-color: #c2c7cb; } - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #f5f5f5; - background-color: #444444; /* main background color */ +QWidget::item:selected { + background-color: #74831d; } -QMenu, -QMenu::item { - color: #f5f5f5; - background-color: #2a2a2a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; + /* Causes issue with colorselector. + QWidget::item:hover:!selected { background-color: #74831d; -} + }*/ -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} +/* QMainWindow ------------------------------------------------------------ -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #74831d; - border: 2px #74831d; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #74831d; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(255,255,255,120); - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #1e1e1e; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,40); - border: 4px solid #444444; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,60); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,120); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #787878; - border: 1px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #819c0c, stop:1 #94b30f); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(255,255,255,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(255,255,255,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #787878; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #787878; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #787878; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #787878; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #787878; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #f5f5f5; - background-color: #444444; /* same as tab content background color */ - border-color: #787878; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-bottom-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-top-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-right-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-left-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: rgba(255,255,255,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #444444) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #787878; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #74831d; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #444444; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #e0e0e0; - background-color: #545454; - alternate-background-color: #444444; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: #74831d; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: #74831d; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #444444; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #74831d; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #566214; - background-color: #74831d; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #2a2a2a; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #d2d2d2; - background-color: #2a2a2a; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #2a2a2a; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: #2a2a2a; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: #2a2a2a; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #74831d, stop:0.8 transparent); + /*background-color: #74831d;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #74831d, stop:0.8 transparent); + /*background-color: #74831d;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #444444; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #444444; + border: 1px solid #696968; + color: #444444; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #6d8000; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #74831d; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #444444; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #74831d; +} + +QCheckBox::indicator:checked:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #74831d; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #74831d; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #74831d; +} + +QGroupBox::indicator:checked:disabled { + background-color: #74831d; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #6d8000; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #74831d; + border: 1px solid #74831d; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #74831d; + border: 1px solid #74831d; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #74831d; +} + +QMenuBar:focus { + border: 1px solid #6d8000; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #74831d; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #74831d; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #74831d; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #74831d; +} + +QMenu::item:pressed { + background-color: #74831d; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #6d8000; + margin-left: -5px; + border: 5px solid #6d8000; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #74831d; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #74831d; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #74831d; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #74831d; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #444444; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 4px; + background-color: #444444; +} + +QScrollBar:vertical { + background-color: #444444; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #444444; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #74831d; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #6d8000; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #74831d; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #6d8000; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #444444; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #6d8000; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #6d8000; +} + +QPlainTextEdit:selected { + background: #74831d; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #444444; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #444444; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #74831d; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #74831d; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #787878; - selection-color: #dadfc5; - selection-background-color: #74831d; - border: 1px solid #333333; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #74831d; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #6d8000; +} + +QAbstractSpinBox:selected { + background: #6d8000; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #444444; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #74831d; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #74831d; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #444444; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #74831d; + color: #444444; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #444444; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #74831d; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #74831d; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #74831d; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #6d8000); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6d8000, stop:1 #74831d); +} + +QPushButton:selected { + background: #6d8000; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #74831d; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #74831d; + color: White; +} + +QToolButton:checked:pressed { + background-color: #74831d; +} + +QToolButton:checked:selected { + background: #6d8000; + color: White; +} + +QToolButton:hover { + background-color: #74831d; + color: White; +} + +QToolButton:pressed { + background-color: #6d8000; +} + +QToolButton:selected { + background: #74831d; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #74831d; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #74831d; +} + +QComboBox QAbstractItemView:hover { + background-color:#1c1b22; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #74831d; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #444444; + color: #353535; +} + +QComboBox:hover { + /*background-color: #74831d;*/ + border: 1px solid #74831d; +} + +QComboBox:focus { + border: 1px solid #6d8000; +} + +QComboBox:on { + selection-background-color: #6d8000; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #74831d; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #6d8000); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1246 +1507,1044 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #2a2a2a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #566214, stop:1 #566214); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #6d8000); } QSint--ActionGroup QToolButton[class="header"] { - color: #f5f5f5; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #545454; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #545454; /* Task Panel background color */ +background-color: #444444; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #545454; /* same as Task Panel background color */ +border-bottom-color: #74831d; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #545454; /* same as Task Panel background color */ +border-top-color: #74831d; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #545454; /* same as Task Panel background color */ +border-right-color: #74831d; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #545454; /* same as Task Panel background color */ +border-left-color: #74831d; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ +/* Fix for lists inside task panels */ /* sketcher constraints list */ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; +color: white; +background-color: #1c1b22; } -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #2a2a2a; - selection-color: white; - selection-background-color: #566214 ; - border: 1px solid #2a2a2a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #787878; - border: 1px solid #424242; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: #f5f5f5; - border-color: #566214; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #566214, stop:1 #566214); /* same as up/down or drop-down button color */ - background-color: #74831d; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #545454; - background-color: #2a2a2a; /* same as enabled color */ - border-color: #2a2a2a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #2a2a2a; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #566214, stop:1 #566214); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #566214, stop:1 #566214); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #333333; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #566214, stop:1 #566214); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #f5f5f5; - selection-background-color: #74831d; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: #f5f5f5; - selection-background-color: #74831d; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - border: 1px solid #2a2a2a; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: #dadfc5; - border-color: #566214; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #566214); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #2a2a2a; - background-color: #3c3c3c; /* same as enabled color */ - border-color: #3c3c3c; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #566214, stop:1 #74831d); -} - -QPushButton:checked { - background-color: #74831d; - border-color: #566214; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #566214; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #566214); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #566214, stop:1 #74831d); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #2a2a2a; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #444444; /* main background color */ - border: 1px solid #444444; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #74831d; - border-color: #74831d; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #dadfc5; - border-color: #566214; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #566214); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #566214, stop:1 #74831d); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #6d8000); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #566214; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #566214); + border: 1px solid #6d8000; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; + color: #696969; + background-color: #1c1b22; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #566214, stop:1 #74831d); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #6d8000); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #444444; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #f5f5f5; - background: #2a2a2a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: #2a2a2a; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: #2a2a2a; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; -} - -QRadioButton::indicator:checked { - background-color: #74831d; /* QCheckBox has the same color */ - border: 1px solid #74831d; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #dadfc5; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #dadfc5; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #74831d; /* QRadioButton has the same color */ - border: 1px solid #74831d; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #74831d; - border: 1px solid #74831d; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #74831d; /* slightly lighter than default */ - border-color: #74831d; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #dadfc5; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #74831d; /* QRadioButton has the same color */ - border: 1px solid #74831d; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #74831d; - border: 1px solid #74831d; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(255,255,255,30); - border: 1px solid rgba(255,255,255,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #6d8000;*/ } QSlider::groove:horizontal { - height: 8px; + background: #444444; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #74831d; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::add-page:vertical { + background: #74831d; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #2a2a2a; - border: 1px solid #2a2a2a; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #74831d; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #74831d; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #74831d; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #6d8000; + border: 1px solid #6d8000; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #c5d675; - background-color: #74831d; +QSlider::handle:vertical:hover { + background: #74831d; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::handle:vertical:focus { + border: 1px solid #6d8000; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #444444; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #74831d; + color: White; +} + +QLineEdit:focus { + border: 2px solid #6d8000; +} + +QLineEdit:selected { + background-color: #74831d; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #74831d; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #74831d; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #adadad; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #adadad; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #adadad; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #adadad; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #adadad; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #adadad; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #696969; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #74831d; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #74831d;*/ + border: 0px solid #74831d; + background-color: #74831d; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #adadad; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #74831d; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #74831d;*/ + border: 0px solid #74831d; + background-color: #74831d; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #444444; + margin-top: 2px; + margin-left:10px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #444444; + border: 0px solid #6d8000; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #74831d; + background-color: #74831d; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #444444; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #444444; + border: 0px solid #6d8000; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #74831d; + background-color: #74831d; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #444444; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #74831d; + background-color: #74831d; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #74831d; + background-color: #74831d; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #444444; + border: 1px solid #2a2a2a; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #74831d;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #74831d; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #6d8000; } -QToolBar > QPushButton:checked { - border: 1px solid #a5c61a; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #74831d, stop:1 #74831d); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #74831d; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #3c3c3c); - border: 1px solid #424242; - border-bottom-color: #333333; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #74831d; } -QToolBar > QPushButton:checked:hover { - border-color: #9bbc12; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #dadfc5; - border-color: #333333; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #74831d; } -QToolBar > QPushButton:checked:pressed { - background-color: #74831d; +QTableCornerButton::section { + background-color: #444444; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #424242, stop:1 #444444); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(255,255,255,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(255,255,255,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #a5c61a; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #74831d, stop:1 #a5c61a); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,60); /* transparency for #a5c61a color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,80); /* transparency for #a5c61a color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #566214; - selection-background-color: #c5d675; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #333333; -} - -QTableView::item:selected { - color: #566214; - border-color: #dadfc5; /* same as focused background color */ - border-bottom-color: #a5c61a; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #566214; - selection-color: white; - selection-background-color: #74831d; - border-color: #dadfc5; - background-color: #dadfc5; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #444444; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #444444; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #2a2a2a; } -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #2a2a2a; } -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #2a2a2a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #74831d; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #444444; +} + +QToolBox::tab:hover { + background-color: #74831d; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #444444; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #74831d, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #74831d, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #74831d; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #74831d; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #444444; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #74831d; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #74831d; + color: White; +} + +QAbstractView:selected { + background: #74831d; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2314,32 +2552,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Darker-orange.qss b/src/Gui/Stylesheets/Darker-orange.qss index 6e6739fe8e..de04a185a7 100644 --- a/src/Gui/Stylesheets/Darker-orange.qss +++ b/src/Gui/Stylesheets/Darker-orange.qss @@ -1,87 +1,99 @@ /* ABOUT ============================================================================================================ -version 2.22 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #444444 = main background color - #545454 = secondary - #787878 - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - #624b14 - #b28416 - #d0970c - #daa116 = main selection color - #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle - #e3b64d - #e0c992 - #e3d8b9 +TO MODIFY USE THESE COLORS: + #b28416 + #996b00 -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +See Qt documentation: -*/ + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #f5f5f5; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ + Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; margin: 0px; padding: 0px; } +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #b28416; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} /*================================================================================================== Main window @@ -94,970 +106,1399 @@ QToolBar { } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #444444; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #b28416; + selection-color: White; } - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #b28416; + selection-color: #c2c7cb; } - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #f5f5f5; - background-color: #444444; /* main background color */ +QWidget::item:selected { + background-color: #b28416; } -QMenu, -QMenu::item { - color: #f5f5f5; - background-color: #2a2a2a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; + /* Causes issue with colorselector. + QWidget::item:hover:!selected { background-color: #b28416; -} + }*/ -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} +/* QMainWindow ------------------------------------------------------------ -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #b28416; - border: 2px #b28416; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #b28416; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(255,255,255,120); - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #1e1e1e; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,40); - border: 4px solid #444444; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,60); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,120); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #787878; - border: 1px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #d0970c, stop:1 #daa116); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(255,255,255,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(255,255,255,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #787878; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #787878; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #787878; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #787878; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #787878; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #f5f5f5; - background-color: #444444; /* same as tab content background color */ - border-color: #787878; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-bottom-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-top-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-right-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-left-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: rgba(255,255,255,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #444444) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #787878; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #b28416; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #444444; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #e0e0e0; - background-color: #545454; - alternate-background-color: #444444; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: #b28416; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: #b28416; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #444444; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #b28416; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #624b14; - background-color: #b28416; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #2a2a2a; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #d2d2d2; - background-color: #2a2a2a; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #2a2a2a; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: #2a2a2a; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: #2a2a2a; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #444444; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #444444; + border: 1px solid #696968; + color: #444444; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #996b00; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #b28416; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #444444; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #b28416; +} + +QCheckBox::indicator:checked:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #b28416; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #b28416; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #b28416; +} + +QGroupBox::indicator:checked:disabled { + background-color: #b28416; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #996b00; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #b28416; + border: 1px solid #b28416; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #b28416; + border: 1px solid #b28416; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #b28416; +} + +QMenuBar:focus { + border: 1px solid #996b00; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #b28416; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #b28416; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #b28416; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #b28416; +} + +QMenu::item:pressed { + background-color: #b28416; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #996b00; + margin-left: -5px; + border: 5px solid #996b00; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #b28416; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #b28416; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #b28416; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #b28416; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #444444; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 4px; + background-color: #444444; +} + +QScrollBar:vertical { + background-color: #444444; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #444444; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #b28416; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #996b00; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #b28416; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #996b00; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #444444; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #996b00; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #996b00; +} + +QPlainTextEdit:selected { + background: #b28416; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #444444; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #444444; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #b28416; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #b28416; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #787878; - selection-color: #e3d8b9; - selection-background-color: #b28416; - border: 1px solid #333333; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #b28416; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #996b00; +} + +QAbstractSpinBox:selected { + background: #996b00; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #444444; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #b28416; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #b28416; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #444444; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #b28416; + color: #444444; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #444444; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #b28416; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #b28416; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #b28416; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #996b00, stop:1 #b28416); +} + +QPushButton:selected { + background: #996b00; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #b28416; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #b28416; + color: White; +} + +QToolButton:checked:pressed { + background-color: #b28416; +} + +QToolButton:checked:selected { + background: #996b00; + color: White; +} + +QToolButton:hover { + background-color: #b28416; + color: White; +} + +QToolButton:pressed { + background-color: #996b00; +} + +QToolButton:selected { + background: #b28416; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #b28416; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #b28416; +} + +QComboBox QAbstractItemView:hover { + background-color:#1c1b22; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #b28416; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #444444; + color: #353535; +} + +QComboBox:hover { + /*background-color: #b28416;*/ + border: 1px solid #b28416; +} + +QComboBox:focus { + border: 1px solid #996b00; +} + +QComboBox:on { + selection-background-color: #996b00; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #b28416; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1067,1240 +1508,1069 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #2a2a2a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #624b14, stop:1 #624b14); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); } QSint--ActionGroup QToolButton[class="header"] { - color: #f5f5f5; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #545454; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #545454; /* Task Panel background color */ +background-color: #444444; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #545454; /* same as Task Panel background color */ +border-bottom-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #545454; /* same as Task Panel background color */ +border-top-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #545454; /* same as Task Panel background color */ +border-right-color: #b28416; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #545454; /* same as Task Panel background color */ +border-left-color: #b28416; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ +/* Fix for lists inside task panels */ /* sketcher constraints list */ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; +color: white; +background-color: #1c1b22; } -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: #2a2a2a; - selection-color: white; - selection-background-color: #624b14 ; - border: 1px solid #2a2a2a; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #787878; - border: 1px solid #424242; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: #f5f5f5; - border-color: #624b14; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #624b14, stop:1 #624b14); /* same as up/down or drop-down button color */ - background-color: #b28416; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #545454; - background-color: #2a2a2a; /* same as enabled color */ - border-color: #2a2a2a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #2a2a2a; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #624b14, stop:1 #624b14); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #624b14, stop:1 #624b14); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #333333; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #624b14, stop:1 #624b14); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #f5f5f5; - selection-background-color: #b28416; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: #f5f5f5; - selection-background-color: #b28416; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - border: 1px solid #2a2a2a; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: #e3d8b9; - border-color: #624b14; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #624b14); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #2a2a2a; - background-color: #3c3c3c; /* same as enabled color */ - border-color: #3c3c3c; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #624b14, stop:1 #b28416); -} - -QPushButton:checked { - background-color: #b28416; - border-color: #624b14; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #624b14; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #624b14); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #624b14, stop:1 #b28416); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { - background-color: #2a2a2a; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #444444; /* main background color */ - border: 1px solid #444444; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #b28416; - border-color: #b28416; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #e3d8b9; - border-color: #624b14; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #624b14); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #624b14, stop:1 #b28416); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #624b14; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #624b14); + border: 1px solid #996b00; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; + color: #696969; + background-color: #1c1b22; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #624b14, stop:1 #b28416); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #996b00); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #444444; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #f5f5f5; - background-color: #2a2a2a; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: #2a2a2a; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: #2a2a2a; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; -} - -QRadioButton::indicator:checked { - background-color: #b28416; /* QCheckBox has the same color */ - border: 1px solid #b28416; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #e3d8b9; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #e3d8b9; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #b28416; /* QRadioButton has the same color */ - border: 1px solid #b28416; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #b28416; - border: 1px solid #b28416; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #b28416; /* slightly lighter than default */ - border-color: #b28416; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #e3d8b9; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #b28416; /* QRadioButton has the same color */ - border: 1px solid #b28416; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #b28416; - border: 1px solid #b28416; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(255,255,255,30); - border: 1px solid rgba(255,255,255,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #996b00;*/ } QSlider::groove:horizontal { - height: 8px; + background: #444444; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #b28416; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::add-page:vertical { + background: #b28416; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #2a2a2a; - border: 1px solid #2a2a2a; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #b28416; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #b28416; } QSlider::handle:horizontal { - margin: -4px 0; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #b28416; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #996b00; + border: 1px solid #996b00; } QSlider::handle:vertical { - margin: 0 -4px; + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #e0c992; - background-color: #b28416; +QSlider::handle:vertical:hover { + background: #b28416; + border: 1px solid #696968; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #424242; - background-color: #424242; +QSlider::handle:vertical:focus { + border: 1px solid #996b00; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #444444; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #b28416; + color: White; +} + +QLineEdit:focus { + border: 2px solid #996b00; +} + +QLineEdit:selected { + background-color: #b28416; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #b28416; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #b28416; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #adadad; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #adadad; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #adadad; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #adadad; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #adadad; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #adadad; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #696969; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #b28416; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #b28416;*/ + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #adadad; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #b28416; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #b28416;*/ + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #444444; + margin-top: 2px; + margin-left:10px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #444444; + border: 0px solid #996b00; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #444444; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #444444; + border: 0px solid #996b00; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #b28416; + background-color: #b28416; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #444444; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #b28416; + background-color: #b28416; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #b28416; + background-color: #b28416; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #444444; + border: 1px solid #2a2a2a; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #b28416;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #b28416; + color: White; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #996b00; } -QToolBar > QPushButton:checked { - border: 1px solid #e3b64d; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b28416, stop:1 #b28416); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #b28416; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #3c3c3c); - border: 1px solid #424242; - border-bottom-color: #333333; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #b28416; } -QToolBar > QPushButton:checked:hover { - border-color: #e2ac2a; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; } -QToolBar > QPushButton:!checked:hover { - color: #e3d8b9; - border-color: #333333; +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #b28416; } -QToolBar > QPushButton:checked:pressed { - background-color: #b28416; +QTableCornerButton::section { + background-color: #444444; + border: 1px transparent #696968; + border-radius: 0px; } -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #424242, stop:1 #444444); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(255,255,255,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(255,255,255,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #e3b64d; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b28416, stop:1 #e3b64d); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,60); /* transparency for #e3b64d color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,80); /* transparency for #e3b64d color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: #624b14; - selection-background-color: #e0c992; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #333333; -} - -QTableView::item:selected { - color: #624b14; - border-color: #e3d8b9; /* same as focused background color */ - border-bottom-color: #e3b64d; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #624b14; - selection-color: white; - selection-background-color: #b28416; - border-color: #e3d8b9; - background-color: #e3d8b9; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { +QTableView::item { color: white; - background-color: #444444; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QHeaderView:disabled { + background-color: #444444; + color: rgb(174, 174, 174); } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + font-size: 13px; + font-weight: bold; } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +QHeaderView::section::horizontal:disabled { + color: #353535; } - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #2a2a2a; } -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #2a2a2a; } -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #2a2a2a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #b28416; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #444444; +} + +QToolBox::tab:hover { + background-color: #b28416; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #444444; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b28416, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #b28416; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #b28416; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #444444; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #b28416; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #b28416; + color: White; +} + +QAbstractView:selected { + background: #b28416; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2308,32 +2578,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Darker-pink.qss b/src/Gui/Stylesheets/Darker-pink.qss new file mode 100644 index 0000000000..dfc091f777 --- /dev/null +++ b/src/Gui/Stylesheets/Darker-pink.qss @@ -0,0 +1,2608 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #b216a0 + #770069 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ + Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #b216a0; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #444444; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad_dark.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #444444; + border: 0px solid #696968; + padding: 0px; + color: White; + selection-background-color: #b216a0; + selection-color: White; +} + +QWidget:disabled { + color: #c2c7cb; + selection-background-color: #b216a0; + selection-color: #c2c7cb; +} + +QWidget::item:selected { + background-color: #b216a0; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #b216a0; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b216a0, stop:0.8 transparent); + /*background-color: #b216a0;*/ + image: url(qss:images_dark-light/splitter_vertical_light.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b216a0, stop:0.8 transparent); + /*background-color: #b216a0;*/ + image: url(qss:images_dark-light/splitter_horizontal_light.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #1c1b22; + color: White; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #3c3c3c; + /* Fixes Spyder #9120, #9121 */ + background: #444444; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #444444; + border: 1px solid #696968; + color: #444444; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: white; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #770069; +} + +QCheckBox QWidget:disabled { + color: #c2c7cb; +} + +QCheckBox::indicator { + color: white; + background-color: #1c1b22; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #1c1b22; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #b216a0; + image:url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #444444; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #1c1b22; + /*border: 1px solid #696968; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #b216a0; +} + +QCheckBox::indicator:checked:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #1c1b22; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #444444; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #b216a0; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #696968; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: white; + background-color: #3c3c3c; + border: 1px solid #696968; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #696968; + border: 1px solid #696968; + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #b216a0; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #1c1b22; + border: 1px solid #696968; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #b216a0; +} + +QGroupBox::indicator:checked:disabled { + background-color: #b216a0; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: White; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #770069; +} + +QRadioButton:disabled { + background-color: #696968; + color: #353535; +} + +QRadioButton QWidget { + background-color: transparent; + color: White; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #3c3c3c; + border: 1px solid #696968; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #b216a0; + border: 1px solid #b216a0; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #696968; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #b216a0; + border: 1px solid #b216a0; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #696968; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #161616; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: White; + selection-background-color: #b216a0; +} + +QMenuBar:focus { + border: 1px solid #770069; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #696968; + background-color: #b216a0; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #696968; + background-color: #b216a0; + color: White; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: White; + margin: 0px; + background-color: #161616; + selection-background-color: #b216a0; +} + +QMenu::separator { + height: 2px; + background-color: #3c3c3c; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #696968; +} + +QMenu::item:selected { + color: White; + background-color: #b216a0; +} + +QMenu::item:pressed { + background-color: #b216a0; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #770069; + margin-left: -5px; + border: 5px solid #770069; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #b216a0; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_light.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #b216a0; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #b216a0; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #b216a0; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_light.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_lighter.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #5b5b5b; + color: White; + border: 1px solid #696968; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #696968; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: White; +} + +QAbstractScrollArea:disabled { + color: #353535; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #444444; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 8px 2px 8px; + border: 0px solid #696968; + border-radius: 4px; + background-color: #444444; +} + +QScrollBar:vertical { + background-color: #444444; + width: 16px; + margin: 8px 2px 8px 2px; + border: 0px solid #696968; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #696969; + border: 1px solid #444444; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #b216a0; + border: #696968; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #770069; +} + +QScrollBar::handle:vertical { + background-color: #696969; + border: 1px solid #696968; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #b216a0; + border: #696968; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #770069; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_light.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_lighter.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_light.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_lighter.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #444444; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QTextEdit:focus { + border: 1px solid #770069; +} + +QTextEdit:selected { + background: #346792; + color: white; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #3c3c3c; + color: White; + border-radius: 1.9px; + border: 0px solid #696968; +} + +QPlainTextEdit:focus { + border: 1px solid #770069; +} + +QPlainTextEdit:selected { + background: #b216a0; + color: White; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_light.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #696968; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #444444; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #444444; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #696969; +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +background-color: #b216a0; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_light.svg);*/ +border-color: #696968; +background-color: #b216a0; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #1c1b22; + border: 1px solid transparent; + color: White; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_light.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #b216a0; + color: White;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #770069; +} + +QAbstractSpinBox:selected { + background: #770069; + /*color: White;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #696968; + padding: 2px; + margin: 0px; + color: White; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #696968; + color: #c2c7cb; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #1c1b22; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #444444; + border: 1px solid #696968; + color: #c2c7cb; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #b216a0; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #b216a0; + color: White; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #1c1b22; + border: 0px solid #696968; + color: #c2c7cb; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #696968; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #353535; + color: #c2c7cb; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: White; +} + +QLCDNumber:disabled { + background-color: #444444; + color: #c2c7cb; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #c2c7cb; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #161616; + border: 1px solid #696968; + color: #696969; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #b216a0; + color: #444444; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #161616; + color: #696968; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + border-bottom-color: #1e1e1e; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #444444; + color: #c2c7cb; + +} + +QPushButton:checked { + background-color: #b216a0; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #b216a0; + color: #3c3c3c; + outline: none; +} + +QPushButton:checked:selected { + background: #b216a0; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b216a0, stop:1 #770069); + color: White; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #770069, stop:1 #b216a0); +} + +QPushButton:selected { + background: #770069; + color: White; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: White; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: rgba(0, 0, 0, 0.065); + color: #c2c7cb; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #b216a0; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #c2c7cb; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #b216a0; + color: White; +} + +QToolButton:checked:pressed { + background-color: #b216a0; +} + +QToolButton:checked:selected { + background: #770069; + color: White; +} + +QToolButton:hover { + background-color: #b216a0; + color: White; +} + +QToolButton:pressed { + background-color: #770069; +} + +QToolButton:selected { + background: #b216a0; + color: White; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #ffffff; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} +QToolButton::menu-arrow:hover { + image: url(qss:images_dark-light/more_arrow_light.svg); + width: 1.7ex; + height: 1.7ex; +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #696968; + color: White; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #c2c7cb; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #1c1b22; + border-radius: 2px; + selection-background-color: #b216a0; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #1c1b22; +} +QComboBox QAbstractItemView { + border: 0px solid #696968; + border-radius: 0px; + background-color: #1c1b22; + selection-background-color: #b216a0; +} + +QComboBox QAbstractItemView:hover { + background-color:#1c1b22; + color: White; +} + +QComboBox QAbstractItemView:selected { + background: #b216a0; + color: White; +} + +QComboBox QAbstractItemView:alternate { + background: #3c3c3c; +} + +QComboBox:disabled { + background-color: #444444; + color: #353535; +} + +QComboBox:hover { + /*background-color: #b216a0;*/ + border: 1px solid #b216a0; +} + +QComboBox:focus { + border: 1px solid #770069; +} + +QComboBox:on { + selection-background-color: #770069; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #b216a0; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #696968; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #3c3c3c; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b216a0, stop:1 #770069); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: white; + qproperty-groupBackground: #3c3c3c; + border: 0px solid #696968; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b216a0, stop:1 #770069); +} + +QSint--ActionGroup QToolButton[class="header"] { +color: white; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_light.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #696968; +border-left: 1px solid #696968; +border-right: 1px solid #696968; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #444444; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #b216a0; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #b216a0; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #b216a0; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #b216a0; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: white; +background-color: #1c1b22; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: white; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b216a0, stop:1 #770069); + +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #770069; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #696969; + background-color: #1c1b22; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b216a0, stop:1 #770069); + +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #444444; +} + +QSlider:focus { + /*border: 1px solid #770069;*/ +} + +QSlider::groove:horizontal { + background: #444444; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #b216a0; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #b216a0; + border: 1px solid #696968; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #696968; +} + +QSlider::sub-page:horizontal { + background: #b216a0; + border: 1px solid #696968; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #b216a0; +} + +QSlider::handle:horizontal { + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #b216a0; + border: 1px solid #696968; +} + +QSlider::handle:horizontal:focus { + background: #770069; + border: 1px solid #770069; +} + +QSlider::handle:vertical { + background: #353535; + border: 1px solid #696968; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #b216a0; + border: 1px solid #696968; +} + +QSlider::handle:vertical:focus { + border: 1px solid #770069; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #1c1b22; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #696968; + border-radius: 2px; + color: White; +} + +QLineEdit:disabled { + background-color: #444444; + color: #c2c7cb; +} + +QLineEdit:hover { + border: 1px solid #b216a0; + color: White; +} + +QLineEdit:focus { + border: 2px solid #770069; +} + +QLineEdit:selected { + background-color: #b216a0; + color: white; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #b216a0; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #b216a0; + border: 1px solid #346792; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #696969; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #696969; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #696969; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #696969; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_light.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #adadad; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #adadad; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #adadad; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #adadad; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #adadad; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #adadad; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #adadad; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #adadad; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #696969; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: white; + border-top: 4px solid #b216a0; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #b216a0;*/ + border: 0px solid #b216a0; + background-color: #b216a0; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #adadad; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #696969; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: white; + border-bottom: 4px solid #b216a0; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #696969; + border-right: 1px solid #696969; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #b216a0;*/ + border: 0px solid #b216a0; + background-color: #b216a0; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #444444; + margin-top: 2px; + margin-left:10px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #444444; + border: 0px solid #770069; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #b216a0; + background-color: #b216a0; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #444444; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #444444; + border: 0px solid #770069; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #b216a0; + background-color: #b216a0; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #444444; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #b216a0; + background-color: #b216a0; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #b216a0; + background-color: #b216a0; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_lighter.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_light.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_lighter.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_light.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #444444; + border: 1px solid #2a2a2a; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_light.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_light.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #b216a0;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_light.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_light.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_light.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_light.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #696968; + color: White; + gridline-color: #696968; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #1c1b22; + color: #c2c7cb; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #b216a0; + color: White; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #770069; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #b216a0; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #b216a0; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: White; + background-color: #353535; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: White; + background-color: #b216a0; +} + +QTableCornerButton::section { + background-color: #444444; + border: 1px transparent #696968; + border-radius: 0px; +} + +QTableView::item { + color: white; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; +} + +QHeaderView:disabled { + background-color: #444444; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + color: White; + border: 1px solid #2a2a2a; + font-size: 13px; + font-weight: bold; +} + +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #696968; +} + +QHeaderView::section::horizontal:disabled { + color: #353535; +} + +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 0px solid #2a2a2a; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #2a2a2a; +} + +QHeaderView::section::vertical:disabled { + border-top: 2px solid #2a2a2a; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_light.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_light.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #696969; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #b216a0; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #696969; + color: white; + background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #696969; +} + +QToolBox::tab:selected { + background-color: #696969; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #696969; + border-bottom: 0px solid #cccccc; + color: white; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #444444; +} + +QToolBox::tab:hover { + background-color: #b216a0; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #696968; + background-color: #696969; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #696968; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #696968; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #444444; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #b216a0, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #b216a0, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #b216a0; + border-style: solid; + border: 1px solid #696968; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #b216a0; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #696968; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_lighter.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #444444; + border-radius: 2px; + border: 1px solid #696968; + selection-background-color: #b216a0; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #b216a0; + color: White; +} + +QAbstractView:selected { + background: #b216a0; + color: White; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Light-blue.qss b/src/Gui/Stylesheets/Light-blue.qss index e26bc216b7..a5a5059eab 100644 --- a/src/Gui/Stylesheets/Light-blue.qss +++ b/src/Gui/Stylesheets/Light-blue.qss @@ -1,781 +1,68 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #505050 - #6e6e6e - #828282 - #a2a2a0 - #b6b6b6 - #c8c8c8 - #c3c3c3 - #d2d2d2 - #dcdcdc - #e0e0e0 - #e6e6e6 - #f0f0f0 - #f5f5f5 = main background color - white - - SELECTION (darker to lighter) - #1b3774 - #2053c0 - #3874f2 - #5e90fa = main selection color - #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle - #7cabf9 - #adc5ed - #cbd8e6 +TO MODIFY USE THESE COLORS: + #f892ff + #ffbff3 +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +/* Reset elements ------------------------------------------------------------ -*/ +Resetting everything helps to unify styles across different operating systems - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #505050; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } +/*hacks */ -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #f5f5f5; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #828282; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: black; - background-color: #f5f5f5; /* main background color */ -} - -QMenu, -QMenu::item { - color: black; - background-color: #f5f5f5; /* main background color */ - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #5e90fa; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #5e90fa; - border: 2px #5e90fa; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(0,0,0,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: black; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #5e90fa; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #6e6e6e; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #6e6e6e; +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #6e6e6e; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: white; - background-color: #828282; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,10); - border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #d2d2d2; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #d2d2d2; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #d2d2d2; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #d2d2d2; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - background-color: #f5f5f5; /* same as tab content background color */ - border-color: #d2d2d2; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-bottom-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-top-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-right-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ - border-left-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,160); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,220); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #f5f5f5) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 6px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #dcdcdc; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #5e90fa; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(0,0,0,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #f5f5f5; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #f0f0f0; - alternate-background-color: #e6e6e6; /* related with QListView background */ - border: 1px solid #c3c3c3; - selection-color: white; - selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #5e90fa; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #d2d2d2; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #cbd8e6; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -786,25 +73,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #cbd8e6; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -814,248 +82,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #8cb0ff; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - background-color: #c3c3c3; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #F6F6F6; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #c3c3c3; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #F6F6F6; + border: 0px solid #C1C1C1; + padding: 0px; + color: black; + selection-background-color: #8cb0ff; + selection-color: black; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(0,0,0,30); +QWidget:disabled { + color: #A3A3A3; + selection-background-color: #8cb0ff; + selection-color: #A3A3A3; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(0,0,0,30); +QWidget::item:selected { + background-color: #8cb0ff +; } -QTableCornerButton::section { - background-color: #c3c3c3; - border-top: none; - border-left: none; - border-right: 1px solid rgba(0,0,0,30); - border-bottom: 1px solid rgba(0,0,0,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #8cb0ff; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #828282; /* same as main background color */ - qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #f6f6f6;*/ + border: 0px solid #C1C1C1; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #8cb0ff, stop:0.8 transparent); + /*background-color: #8cb0ff;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #8cb0ff, stop:0.8 transparent); + /*background-color: #8cb0ff;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #ffffff; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #C1C1C1; + /* Fixes Spyder #9120, #9121 */ + background: #F6F6F6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #F6F6F6; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #b0c9ff; +} + +QCheckBox QWidget:disabled { + color: #A3A3A3; +} + +QCheckBox::indicator { + color: black; + background-color: #ffffff; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #ffffff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #8cb0ff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #F6F6F6; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #ffffff; + /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #8cb0ff; +} + +QCheckBox::indicator:checked:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #ffffff; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #8cb0ff; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #8cb0ff; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #8cb0ff; +} + +QGroupBox::indicator:checked:disabled { + background-color: #8cb0ff; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #b0c9ff; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #BABABA; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #8cb0ff; + border: 1px solid #8cb0ff; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + border: 1px solid #C1C1C1; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #8cb0ff; + border: 1px solid #8cb0ff; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #f6f6f6; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #ffffff; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: black; + selection-background-color: #8cb0ff; +} + +QMenuBar:focus { + border: 1px solid #8cb0ff; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #C1C1C1; + background-color: #8cb0ff; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #C1C1C1; + background-color: #8cb0ff; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: black; + margin: 0px; + background-color: #ffffff; + selection-background-color: #8cb0ff; +} + +QMenu::separator { + height: 2px; + background-color: #f6f6f6; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #f6f6f6; +} + +QMenu::item:selected { + color: black; + background-color: #8cb0ff; +} + +QMenu::item:pressed { + background-color: #8cb0ff; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #b0c9ff; + margin-left: -5px; + border: 5px solid #b0c9ff; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #8cb0ff; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #8cb0ff; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #8cb0ff; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #8cb0ff; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #ababab; + color: black; + border: 1px solid #C1C1C1; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #C1C1C1; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #A3A3A3; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #F6F6F6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; + background-color: #F6F6F6; +} + +QScrollBar:vertical { + background-color: #F6F6F6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #8cb0ff; + border: #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #b0c9ff; +} + +QScrollBar::handle:vertical { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #8cb0ff; + border: #f6f6f6; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #b0c9ff; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #F6F6F6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QTextEdit:focus { + border: 1px solid #b0c9ff; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QPlainTextEdit:focus { + border: 1px solid #b0c9ff; +} + +QPlainTextEdit:selected { + background: #8cb0ff; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #C1C1C1; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #F6F6F6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #F6F6F6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #A3A3A3; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #8cb0ff; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #f6f6f6; +background-color: #8cb0ff; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #f0f0f0; - selection-color: white; - selection-background-color: #3874f2; - border: 1px solid #c3c3c3; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #ffffff; + border: 1px solid transparent; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #8cb0ff; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #b0c9ff; +} + +QAbstractSpinBox:selected { + background: #b0c9ff; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #C1C1C1; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #C1C1C1; + color: #A3A3A3; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #8cb0ff; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #8cb0ff; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #ffffff; + border: 0px solid #C1C1C1; + color: #A3A3A3; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C1C1C1; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #BABABA; + color: #A3A3A3; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #8cb0ff; + color: #F6F6F6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #ffffff; + color: #f6f6f6; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #EDEDED; + border-bottom-color: #AFAFAF; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #F6F6F6; + color: #A3A3A3; + +} + +QPushButton:checked { + background-color: #8cb0ff; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #8cb0ff; + color: #f6f6f6; + outline: none; +} + +QPushButton:checked:selected { + background: #8cb0ff; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8cb0ff, stop:1 #b0c9ff); + color: black; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #b0c9ff, stop:1 #8cb0ff); +} + +QPushButton:selected { + background: #b0c9ff; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: transparent; + color: #A3A3A3; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #8cb0ff; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #A3A3A3; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #8cb0ff; + color: black; +} + +QToolButton:checked:pressed { + background-color: #8cb0ff; +} + +QToolButton:checked:selected { + background: #b0c9ff; + color: black; +} + +QToolButton:hover { + background-color: #8cb0ff; + color: black; +} + +QToolButton:pressed { + background-color: #b0c9ff; +} + +QToolButton:selected { + background: #8cb0ff; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #b2b2b2; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #A3A3A3; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #ffffff; + border-radius: 2px; + selection-background-color: #8cb0ff; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #ffffff; +} +QComboBox QAbstractItemView { + border: 0px solid #C1C1C1; + border-radius: 0px; + background-color: #ffffff; + selection-background-color: #8cb0ff; +} + +QComboBox QAbstractItemView:hover { + background-color:#ffffff; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #8cb0ff; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f6f6f6; +} + +QComboBox:disabled { + background-color: #F6F6F6; + color: #BABABA; +} + +QComboBox:hover { + /*background-color: #8cb0ff;*/ + border: 1px solid #8cb0ff; +} + +QComboBox:focus { + border: 1px solid #b0c9ff; +} + +QComboBox:on { + selection-background-color: #b0c9ff; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #8cb0ff; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #f6f6f6; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f6f6f6; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8cb0ff, stop:1 #b0c9ff); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f6f6f6; + border: 0px solid #C1C1C1; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1065,1223 +1509,1075 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #b6b6b6; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8cb0ff, stop:1 #b0c9ff); } QSint--ActionGroup QToolButton[class="header"] { - color: white; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #e6e6e6; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #e6e6e6; /* Task Panel background color */ +background-color: #F6F6F6; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +border-bottom-color: #8cb0ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #e6e6e6; /* same as Task Panel background color */ +border-top-color: #8cb0ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #e6e6e6; /* same as Task Panel background color */ +border-right-color: #8cb0ff; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #e6e6e6; /* same as Task Panel background color */ +border-left-color: #8cb0ff; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #6e6e6e; - background-color: #e0e0e0; - selection-color: white; - selection-background-color: #5e90fa; - border: 1px solid #e0e0e0; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #7cabf9; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ - background-color: #cbd8e6; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #c3c3c3; - background-color: #e0e0e0; /* same as enabled color */ - border-color: #e0e0e0; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ -QComboBox::drop-down { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #5e90fa; -} - -QComboBox QAbstractItemView { - color: #6e6e6e; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #5e90fa; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +color: black; +background-color: #ffffff; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #b6b6b6; - border: 1px solid #828282; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #f5f5f5; /* main background color */ - border: 1px solid #dcdcdc; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: black; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + border: 0px solid #C1C1C1; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8cb0ff, stop:1 #b0c9ff); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #3874f2; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); + border: 1px solid #b0c9ff +; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; + color: #A3A3A3; + background-color: #ffffff; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8cb0ff, stop:1 #b0c9ff); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #F6F6F6; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: black; - background: #f5f5f5; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: #505050; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; -} - -QRadioButton::indicator:checked { - background-color: #5e90fa; /* QCheckBox has the same color */ - border: 1px solid #3874f2; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(0,0,0,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #adc5ed; -} - -QRadioButton::indicator:disabled { - color: #6e6e6e; - background-color: transparent; - border: 1px solid #6e6e6e; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #adc5ed; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #5e90fa; /* QRadioButton has the same color */ - border: 1px solid #3874f2; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(0,0,0,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #5e90fa; - border: 1px solid #3874f2; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #7cabf9; /* slightly lighter than default */ - border-color: #2053c0; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #adc5ed; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #5e90fa; /* QRadioButton has the same color */ - border: 1px solid #3874f2; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #5e90fa; - border: 1px solid #3874f2; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #b0c9ff;*/ } QSlider::groove:horizontal { - height: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::add-page:vertical { + background: #8cb0ff; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #b6b6b6; - border: 1px solid #b6b6b6; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #f6f6f6; +} + +QSlider::sub-page:horizontal { + background: #8cb0ff; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #8cb0ff; } QSlider::handle:horizontal { - margin: -4px 0; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #8cb0ff; + border: 1px solid #C1C1C1; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #C1C1C1; + background: #8cb0ff; } QSlider::handle:vertical { - margin: 0 -4px; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #5e90fa; - background-color: #5e90fa; +QSlider::handle:vertical:hover { + background: #8cb0ff; + border: 1px solid #C1C1C1; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::handle:vertical:focus { + border: 1px solid #b0c9ff; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #ffffff; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QLineEdit:hover { + border: 1px solid #8cb0ff; + color: black; +} + +QLineEdit:focus { + border: 2px solid #b0c9ff; +} + +QLineEdit:selected { + background-color: #8cb0ff; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #8cb0ff; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #8cb0ff; + border: 1px solid #C1C1C1; +} + +QTabWidget::pane:selected { + background-color: #557bb6; + border: 1px solid #346792; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #A3A3A3; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #A3A3A3; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #A3A3A3; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #A3A3A3; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #797979; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #797979; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #A0A0A0; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #A0A0A0; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #A0A0A0; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: black; + border-top: 4px solid #8cb0ff; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #8cb0ff;*/ + border: 0px solid #8cb0ff; + background-color: #8cb0ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: black; + border-bottom: 4px solid #8cb0ff; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #8cb0ff;*/ + border: 0px solid #8cb0ff; + background-color: #8cb0ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #F6F6F6; + margin-top: 2px; + + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #F6F6F6; + border: 0px solid #b0c9ff; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #8cb0ff; + background-color: #8cb0ff; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; + color: black; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #F6F6F6; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #F6F6F6; + border: 0px solid #b0c9ff; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #8cb0ff; + background-color: #8cb0ff; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; + color: black; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #F6F6F6; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #8cb0ff; + background-color: #8cb0ff; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #8cb0ff; + background-color: #8cb0ff; + color: black; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #8cb0ff;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #C1C1C1; + color: black; + gridline-color: #A3A3A3; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #ffffff; + color: #A3A3A3; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #8cb0ff; + color: black; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #b0c9ff; } -QToolBar > QPushButton:checked { - border: 1px solid #7cabf9; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #cbd8e6, stop:1 #7cabf9); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #8cb0ff; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #8cb0ff; } -QToolBar > QPushButton:checked:hover { - border-color: #6f9efa; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #BABABA; } -QToolBar > QPushButton:!checked:hover { +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #8cb0ff; +} + +QTableCornerButton::section { + background-color: #F6F6F6; + border: 1px transparent #C1C1C1; + border-radius: 0px; +} + +QTableView::item { color: black; - border-color: #b6b6b6; } - -QToolBar > QPushButton:checked:pressed { - background-color: #7cabf9; -} - -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolButton:checked { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,60); /* transparency for #7cabf9 color */ -} - -QToolButton:checked:hover { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,80); /* transparency for #7cabf9 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ QTableView { - gridline-color: #d2d2d2; - selection-color: #1b3774; - selection-background-color: #cbd8e6; + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -QTableView::item:disabled { - color: #e6e6e6; +QHeaderView:disabled { + background-color: #F6F6F6; + color: rgb(174, 174, 174); } -QTableView::item:selected { - color: #1b3774; - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #C1C1C1; + font-size: 13px; + font-weight: bold; } -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #C1C1C1; } -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); +QHeaderView::section::horizontal:disabled { + color: #BABABA; } -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #1b3774; - selection-color: white; - selection-background-color: #5e90fa; - border-color: #cbd8e6; - background-color: #cbd8e6; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #C1C1C1; } - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_dark.svg); } -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); } -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #A3A3A3; + border-radius: 4px; + background-color: transparent; } -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; +QToolBox:selected { + padding: 0px; + border: 0px solid #8cb0ff; } -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; +QToolBox::tab { + background-color: transparent; + border: 0px solid #A3A3A3; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; } -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:disabled { + color: #A3A3A3; } -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:selected { + background-color: #A3A3A3; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; } -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; +QToolBox::tab:selected:disabled { + background-color: #A3A3A3; + border-bottom: 0px solid #cccccc; + color: black; } -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: black; - background-color: #f5f5f5; +QToolBox::tab:!selected { + } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +QToolBox::tab:!selected:disabled { + background-color: #F6F6F6; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QToolBox::tab:hover { + background-color: #8cb0ff; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #C1C1C1; + background-color: #A3A3A3; + /* No frame */ + /* HLine */ + /* HLine */ } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #C1C1C1; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #f6f6f6; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #F6F6F6; } +/* QSplitter -------------------------------------------------------------- -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; } -*[mandatoryField="true"] { background-color: cyan } +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #8cb0ff, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #8cb0ff, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #8cb0ff; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #8cb0ff; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C1C1C1; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #F6F6F6; + border-radius: 2px; + border: 1px solid #C1C1C1; + selection-background-color: #8cb0ff; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #8cb0ff; + color: black; +} + +QAbstractView:selected { + background: #8cb0ff; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2289,32 +2585,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(0,0,0,127); /* 50% opacity black */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(0,0,0,255); /* Black */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,0,255,255); /* Blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Light-green.qss b/src/Gui/Stylesheets/Light-green.qss index e6e0109e01..dfcf131d21 100644 --- a/src/Gui/Stylesheets/Light-green.qss +++ b/src/Gui/Stylesheets/Light-green.qss @@ -1,781 +1,68 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #505050 - #6e6e6e - #828282 - #a2a2a0 - #b6b6b6 - #c8c8c8 - #c3c3c3 - #d2d2d2 - #dcdcdc - #e0e0e0 - #e6e6e6 - #f0f0f0 - #f5f5f5 = main background color - white - - SELECTION (darker to lighter) - #566214 - #74831d - #819c0c - #94b30f = main selection color - #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle - #a5c61a - #c5d675 - #dadfc5 +TO MODIFY USE THESE COLORS: + #B7D300 + #E1FF00 +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +/* Reset elements ------------------------------------------------------------ -*/ +Resetting everything helps to unify styles across different operating systems - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #505050; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } +/*hacks */ -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #f5f5f5; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #828282; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: black; - background-color: #f5f5f5; /* main background color */ -} - -QMenu, -QMenu::item { - color: black; - background-color: #f5f5f5; /* main background color */ - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #94b30f; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #94b30f; - border: 2px #94b30f; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(0,0,0,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: black; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #94b30f; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #6e6e6e; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #6e6e6e; +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #6e6e6e; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: white; - background-color: #828282; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,10); - border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #819c0c, stop:1 #94b30f); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #d2d2d2; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #d2d2d2; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #d2d2d2; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #d2d2d2; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - background-color: #f5f5f5; /* same as tab content background color */ - border-color: #d2d2d2; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-bottom-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-top-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-right-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ - border-left-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,160); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,220); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #f5f5f5) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 6px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #dcdcdc; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #94b30f; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(0,0,0,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #f5f5f5; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #f0f0f0; - alternate-background-color: #e6e6e6; /* related with QListView background */ - border: 1px solid #c3c3c3; - selection-color: white; - selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #94b30f; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #d2d2d2; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #dadfc5; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -786,25 +73,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #dadfc5; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -814,248 +82,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #B7D300; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #dadfc5; /* same as focused background color */ - border-bottom-color: #a5c61a; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - background-color: #c3c3c3; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #F6F6F6; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #c3c3c3; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #F6F6F6; + border: 0px solid #C1C1C1; + padding: 0px; + color: black; + selection-background-color: #B7D300; + selection-color: black; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(0,0,0,30); +QWidget:disabled { + color: #A3A3A3; + selection-background-color: #B7D300; + selection-color: #A3A3A3; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(0,0,0,30); +QWidget::item:selected { + background-color: #B7D300 +; } -QTableCornerButton::section { - background-color: #c3c3c3; - border-top: none; - border-left: none; - border-right: 1px solid rgba(0,0,0,30); - border-bottom: 1px solid rgba(0,0,0,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #B7D300; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #828282; /* same as main background color */ - qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #f6f6f6;*/ + border: 0px solid #C1C1C1; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #B7D300, stop:0.8 transparent); + /*background-color: #B7D300;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #B7D300, stop:0.8 transparent); + /*background-color: #B7D300;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #ffffff; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #C1C1C1; + /* Fixes Spyder #9120, #9121 */ + background: #F6F6F6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #F6F6F6; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #E1FF00 ; +} + +QCheckBox QWidget:disabled { + color: #A3A3A3; +} + +QCheckBox::indicator { + color: black; + background-color: #ffffff; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #ffffff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #B7D300; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #F6F6F6; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #ffffff; + /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #B7D300; +} + +QCheckBox::indicator:checked:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #ffffff; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #B7D300; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #B7D300; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #B7D300; +} + +QGroupBox::indicator:checked:disabled { + background-color: #B7D300; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #E1FF00 ; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #A3A3A3; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #B7D300; + border: 1px solid #B7D300; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + border: 1px solid #C1C1C1; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #B7D300; + border: 1px solid #B7D300; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #f6f6f6; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #ffffff; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: black; + selection-background-color: #B7D300; +} + +QMenuBar:focus { + border: 1px solid #B7D300; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #C1C1C1; + background-color: #B7D300; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #C1C1C1; + background-color: #B7D300; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: black; + margin: 0px; + background-color: #ffffff; + selection-background-color: #B7D300; +} + +QMenu::separator { + height: 2px; + background-color: #f6f6f6; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #f6f6f6; +} + +QMenu::item:selected { + color: black; + background-color: #B7D300; +} + +QMenu::item:pressed { + background-color: #B7D300; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #E1FF00 ; + margin-left: -5px; + border: 5px solid #E1FF00 ; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #B7D300; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #B7D300; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #B7D300; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #B7D300; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #ababab; + color: black; + border: 1px solid #C1C1C1; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #C1C1C1; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #A3A3A3; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #F6F6F6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; + background-color: #F6F6F6; +} + +QScrollBar:vertical { + background-color: #F6F6F6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #B7D300; + border: #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #E1FF00 ; +} + +QScrollBar::handle:vertical { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #B7D300; + border: #f6f6f6; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #E1FF00 ; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #F6F6F6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QTextEdit:focus { + border: 1px solid #E1FF00 ; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QPlainTextEdit:focus { + border: 1px solid #E1FF00 ; +} + +QPlainTextEdit:selected { + background: #B7D300; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #C1C1C1; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #F6F6F6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #F6F6F6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #A3A3A3; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #B7D300; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #f6f6f6; +background-color: #B7D300; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #f0f0f0; - selection-color: white; - selection-background-color: #819c0c; - border: 1px solid #c3c3c3; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #ffffff; + border: 1px solid transparent; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #B7D300; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #E1FF00 ; +} + +QAbstractSpinBox:selected { + background: #E1FF00 ; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #C1C1C1; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #C1C1C1; + color: #A3A3A3; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #B7D300; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #B7D300; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #ffffff; + border: 0px solid #C1C1C1; + color: #A3A3A3; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C1C1C1; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #A3A3A3; + color: #A3A3A3; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #B7D300; + color: #F6F6F6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #ffffff; + color: #f6f6f6; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #EDEDED; + border-bottom-color: #AFAFAF; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #F6F6F6; + color: #A3A3A3; + +} + +QPushButton:checked { + background-color: #B7D300; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #B7D300; + color: #f6f6f6; + outline: none; +} + +QPushButton:checked:selected { + background: #B7D300; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B7D300, stop:1 #E1FF00 ); + color: black; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #E1FF00 , stop:1 #B7D300); +} + +QPushButton:selected { + background: #E1FF00 ; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: transparent; + color: #A3A3A3; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #B7D300; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #A3A3A3; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #B7D300; + color: black; +} + +QToolButton:checked:pressed { + background-color: #B7D300; +} + +QToolButton:checked:selected { + background: #E1FF00 ; + color: black; +} + +QToolButton:hover { + background-color: #B7D300; + color: black; +} + +QToolButton:pressed { + background-color: #E1FF00 ; +} + +QToolButton:selected { + background: #B7D300; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #b2b2b2; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #A3A3A3; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #ffffff; + border-radius: 2px; + selection-background-color: #B7D300; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #ffffff; +} +QComboBox QAbstractItemView { + border: 0px solid #C1C1C1; + border-radius: 0px; + background-color: #ffffff; + selection-background-color: #B7D300; +} + +QComboBox QAbstractItemView:hover { + background-color:#ffffff; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #B7D300; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f6f6f6; +} + +QComboBox:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QComboBox:hover { + /*background-color: #B7D300;*/ + border: 1px solid #B7D300; +} + +QComboBox:focus { + border: 1px solid #E1FF00 ; +} + +QComboBox:on { + selection-background-color: #E1FF00 ; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #B7D300; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #f6f6f6; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f6f6f6; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B7D300, stop:1 #E1FF00 ); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f6f6f6; + border: 0px solid #C1C1C1; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1065,1257 +1509,1103 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #b6b6b6; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B7D300, stop:1 #E1FF00 ); } QSint--ActionGroup QToolButton[class="header"] { - color: white; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #e6e6e6; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #e6e6e6; /* Task Panel background color */ +background-color: #F6F6F6; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +border-bottom-color: #B7D300; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #e6e6e6; /* same as Task Panel background color */ +border-top-color: #B7D300; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #e6e6e6; /* same as Task Panel background color */ +border-right-color: #B7D300; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #e6e6e6; /* same as Task Panel background color */ +border-left-color: #B7D300; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #6e6e6e; - background-color: #e0e0e0; - selection-color: white; - selection-background-color: #94b30f; - border: 1px solid #e0e0e0; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #a5c61a; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ - background-color: #dadfc5; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #c3c3c3; - background-color: #e0e0e0; /* same as enabled color */ - border-color: #e0e0e0; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ -QComboBox::drop-down { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #94b30f; -} - -QComboBox QAbstractItemView { - color: #6e6e6e; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #94b30f; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +color: black; +background-color: #ffffff; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - -QPushButton:checked { - background-color: #94b30f; - border-color: #819c0c; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #b6b6b6; - border: 1px solid #828282; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #f5f5f5; /* main background color */ - border: 1px solid #dcdcdc; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #94b30f; - border-color: #819c0c; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: black; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + border: 0px solid #C1C1C1; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B7D300, stop:1 #E1FF00 ); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #819c0c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); + border: 1px solid #E1FF00 +; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; + color: #A3A3A3; + background-color: #ffffff; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B7D300, stop:1 #E1FF00 ); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #F6F6F6; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: black; - background: #f5f5f5; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: #505050; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; -} - -QRadioButton::indicator:checked { - background-color: #94b30f; /* QCheckBox has the same color */ - border: 1px solid #819c0c; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(0,0,0,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #c5d675; -} - -QRadioButton::indicator:disabled { - color: #6e6e6e; - background-color: transparent; - border: 1px solid #6e6e6e; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #c5d675; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #94b30f; /* QRadioButton has the same color */ - border: 1px solid #819c0c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(0,0,0,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #94b30f; - border: 1px solid #819c0c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #a5c61a; /* slightly lighter than default */ - border-color: #74831d; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #c5d675; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #94b30f; /* QRadioButton has the same color */ - border: 1px solid #819c0c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #94b30f; - border: 1px solid #819c0c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #E1FF00;*/ } QSlider::groove:horizontal { - height: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::add-page:vertical { + background: #B7D300; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #b6b6b6; - border: 1px solid #b6b6b6; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #f6f6f6; +} + +QSlider::sub-page:horizontal { + background: #8cb0ff; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #B7D300; } QSlider::handle:horizontal { - margin: -4px 0; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #B7D300; + border: 1px solid #C1C1C1; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #C1C1C1; + background: #E1FF00; } QSlider::handle:vertical { - margin: 0 -4px; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #94b30f; - background-color: #94b30f; +QSlider::handle:vertical:hover { + background: #B7D300; + border: 1px solid #C1C1C1; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::handle:vertical:focus { + border: 1px solid #E1FF00 ; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #ffffff; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QLineEdit:hover { + border: 1px solid #B7D300; + color: black; +} + +QLineEdit:focus { + border: 2px solid #E1FF00 ; +} + +QLineEdit:selected { + background-color: #B7D300; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #B7D300; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #B7D300; + border: 1px solid #C1C1C1; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #A3A3A3; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #A3A3A3; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #A3A3A3; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #A3A3A3; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #797979; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #797979; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #A0A0A0; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #A0A0A0; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #A0A0A0; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: black; + border-top: 4px solid #B7D300; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #B7D300;*/ + border: 0px solid #B7D300; + background-color: #B7D300; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: black; + border-bottom: 4px solid #B7D300; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #B7D300;*/ + border: 0px solid #B7D300; + background-color: #B7D300; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #F6F6F6; + margin-top: 2px; + + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #F6F6F6; + border: 0px solid #E1FF00 ; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #B7D300; + background-color: #B7D300; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; + color: black; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #F6F6F6; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #F6F6F6; + border: 0px solid #E1FF00 ; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #B7D300; + background-color: #B7D300; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; + color: black; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #F6F6F6; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #B7D300; + background-color: #B7D300; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #B7D300; + background-color: #B7D300; + color: black; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #B7D300;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #C1C1C1; + color: black; + gridline-color: #A3A3A3; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #ffffff; + color: #A3A3A3; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #B7D300; + color: black; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #E1FF00 ; } -QToolBar > QPushButton:checked { - border: 1px solid #a5c61a; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #dadfc5, stop:1 #a5c61a); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #B7D300; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #B7D300; } -QToolBar > QPushButton:checked:hover { - border-color: #9bbc12; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #A3A3A3; } -QToolBar > QPushButton:!checked:hover { +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #B7D300; +} + +QTableCornerButton::section { + background-color: #F6F6F6; + border: 1px transparent #C1C1C1; + border-radius: 0px; +} + +QTableView::item { color: black; - border-color: #b6b6b6; } - -QToolBar > QPushButton:checked:pressed { - background-color: #a5c61a; -} - -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #a5c61a; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolButton:checked { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,60); /* transparency for #a5c61a color */ -} - -QToolButton:checked:hover { - border: 1px solid #a5c61a; - background-color: rgba(124,171,249,80); /* transparency for #a5c61a color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ QTableView { - gridline-color: #d2d2d2; - selection-color: #566214; - selection-background-color: #dadfc5; + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -QTableView::item:disabled { - color: #e6e6e6; +QHeaderView:disabled { + background-color: #F6F6F6; + color: rgb(174, 174, 174); } -QTableView::item:selected { - color: #566214; - border-color: #dadfc5; /* same as focused background color */ - border-bottom-color: #a5c61a; /* same as focused border color */ +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #C1C1C1; + font-size: 13px; + font-weight: bold; } -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #C1C1C1; } -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); +QHeaderView::section::horizontal:disabled { + color: #A3A3A3; } -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #566214; - selection-color: white; - selection-background-color: #94b30f; - border-color: #dadfc5; - background-color: #dadfc5; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #C1C1C1; } - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_dark.svg); } -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); } -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #A3A3A3; + border-radius: 4px; + background-color: transparent; } -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; +QToolBox:selected { + padding: 0px; + border: 0px solid #B7D300; } -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; +QToolBox::tab { + background-color: transparent; + border: 0px solid #A3A3A3; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; } -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:disabled { + color: #A3A3A3; } -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:selected { + background-color: #A3A3A3; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; } -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; +QToolBox::tab:selected:disabled { + background-color: #A3A3A3; + border-bottom: 0px solid #cccccc; + color: black; } -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: black; - background-color: #f5f5f5; +QToolBox::tab:!selected { + } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +QToolBox::tab:!selected:disabled { + background-color: #F6F6F6; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QToolBox::tab:hover { + background-color: #B7D300; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #C1C1C1; + background-color: #A3A3A3; + /* No frame */ + /* HLine */ + /* HLine */ } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #C1C1C1; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #f6f6f6; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #F6F6F6; } +/* QSplitter -------------------------------------------------------------- -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; } -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QSplitter::handle { + margin: 0px 0px; + padding: 0px; } +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #B7D300, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #B7D300, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #B7D300; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #B7D300; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C1C1C1; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #F6F6F6; + border-radius: 2px; + border: 1px solid #C1C1C1; + selection-background-color: #B7D300; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #B7D300; + color: black; +} + +QAbstractView:selected { + background: #B7D300; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} /*================================================================================================== SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(0,0,0,127); /* 50% opacity black */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(0,0,0,255); /* Black */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,0,255,255); /* Blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Light-modern-blue.qss b/src/Gui/Stylesheets/Light-modern-blue.qss new file mode 100644 index 0000000000..5e332c404c --- /dev/null +++ b/src/Gui/Stylesheets/Light-modern-blue.qss @@ -0,0 +1,2633 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #8ab6e9 + #dc00fa + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #8ab6e9; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #f6f6f6; + border: 0px solid #cccccc; + padding: 0px; + color: black; + selection-background-color: #8ab6e9; + selection-color: black; +} + +QWidget:disabled { + color: #515151; + selection-background-color: #8ab6e9; + selection-color: #515151; +} + +QWidget::item:selected { + background-color: #8ab6e9; +} + + /* Causes issue with colorselector. +QWidget::item:hover:!selected { + background-color: #8ab6e9; +}*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #8ab6e9, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #8ab6e9, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #f6f6f6; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #f5f5f5; + /* Fixes Spyder #9120, #9121 */ + background: #f6f6f6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: black; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #dc00fa; +} + +QCheckBox QWidget:disabled { + background-color: transparent; + color: #515151; +} + +QCheckBox::indicator { + color: black; + background-color: white; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: white; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #8ab6e9; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #f5f5f5; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: white; + /*border: 1px solid #cccccc; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #8ab6e9; +} + +QCheckBox::indicator:checked:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: white; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #8ab6e9; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #cccccc; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f5f5f5; + border: 1px solid #cccccc; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #cccccc; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #8ab6e9; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: white; + border: 1px solid #cccccc; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #8ab6e9; +} + +QGroupBox::indicator:checked:disabled { + background-color: #8ab6e9; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #dc00fa; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #515151; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f8f8f8; + border: 1px solid #cccccc; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #8ab6e9; + border: 1px solid #8ab6e9; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #cccccc; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #8ab6e9; + border: 1px solid #8ab6e9; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #cccccc; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #f8f8f8; + /*padding: 1px; + border: 0px solid rgba(255,255,255,140);*/ + color: black; + selection-background-color: #8ab6e9; +} + +QMenuBar:focus { + border: 1px solid #dc00fa; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #cccccc; + background-color: #8ab6e9; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #cccccc; + background-color: #8ab6e9; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(100,100,100,140); + border-right: 2px rgba(100,100,100,140); + color: black; + margin: 0px; + background-color: #f8f8f8; + selection-background-color: #8ab6e9; +} + +QMenu::separator { + height: 2px; + background-color: #cccccc; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #cccccc; +} + +QMenu::item:selected { + color: black; + background-color: #8ab6e9; +} + +QMenu::item:pressed { + background-color: #8ab6e9; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #8ab6e9; + margin-left: -5px; + border: 5px solid #8ab6e9; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #8ab6e9; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #8ab6e9; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #8ab6e9; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #8ab6e9; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #cfcfcf; + color: black; + border: 1px solid #cccccc; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #cccccc; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #515151; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #f6f6f6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #cccccc; + border-radius: 1.9px; + background-color: #f6f6f6; +} + +QScrollBar:vertical { + background-color: #f6f6f6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #cccccc; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #d4d4d4; + border: 1px solid #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #8ab6e9; + border: #cccccc; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::handle:vertical { + background-color: #d4d4d4; + border: 1px solid #cccccc; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #8ab6e9; + border: #cccccc; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + background-color: #8ab6e9; + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-color: #8ab6e9; + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + background-color: #8ab6e9; + height: 10px; + width: 8px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #8ab6e9; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QTextEdit:focus { + border: 1px solid #dc00fa; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: white; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QPlainTextEdit:focus { + border: 1px solid #dc00fa; +} + +QPlainTextEdit:selected { + background: #8ab6e9; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #cccccc; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #f6f6f6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #f6f6f6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #f6f6f6; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #8ab6e9; +} + +QToolButton#qt_toolbar_ext_button:on { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #cccccc; +background-color: #8ab6e9; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: white; + border: 1px solid #cccccc; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #8ab6e9;*/ + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + /*background-color: #8ab6e9;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #8ab6e9; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #dc00fa; +} + +QAbstractSpinBox:selected { + background: #dc00fa; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #cccccc; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #cccccc; + color: #9f0d00; +} + +QLabel[haslink="true"] { + color: darkblue; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: white; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #005aa4; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #455364; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: white; + border: 0px solid #cccccc; + color: #515151; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #cccccc; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #bfc1c0; + color: #515151; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #f6f6f6; + color: #515151; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #515151; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #f8f8f8; + border: 1px solid #cccccc; + color: #515151; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #8ab6e9; + color: #f6f6f6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #f8f8f8; + color: #cccccc; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #d4d4d4; + color: black; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #f6f6f6; + color: #515151; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #8ab6e9; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #8ab6e9; + color: #f5f5f5; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #8ab6e9; +} + +QPushButton:hover { + background-color: #8ab6e9; + color: black; +} + +QPushButton:pressed { + background-color: #8ab6e9; +} + +QPushButton:selected { + background: #dc00fa; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #f8f8f8; + color: #515151; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #8ab6e9; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #8ab6e9; + color: #515151; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #8ab6e9; + color: black; +} + +QToolButton:checked:pressed { + background-color: #8ab6e9; +} + +QToolButton:checked:selected { + background: #dc00fa; + color: black; +} + +QToolButton:hover { + background-color: #8ab6e9; + color: black; +} + +QToolButton:pressed { + background-color: #dc00fa; +} + +QToolButton:selected { + background: #8ab6e9; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #f6f6f6; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #515151; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #cccccc; + background: white; + border-radius: 2px; + selection-background-color: #8ab6e9; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: white; +} +QComboBox QAbstractItemView { + border: 0px solid #cccccc; + border-radius: 0px; + background-color: white; + selection-background-color: #8ab6e9; +} + +QComboBox QAbstractItemView:hover { + background-color:white; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #8ab6e9; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f5f5f5; +} + +QComboBox:disabled { + background-color: #cccccc; + color: #515151; +} + +QComboBox:hover { + /*background-color: #8ab6e9;*/ + border: 1px solid #8ab6e9; +} + +QComboBox:focus { + border: 1px solid #dc00fa; +} + +QComboBox:on { + selection-background-color: #dc00fa; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #8ab6e9; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #cccccc; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f5f5f5; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #d4d4d4; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #cccccc; +} +QComboBox::drop-down:hover { + background-color: #8ab6e9; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f5f5f5; + border: 0px solid #cccccc; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #d4d4d4; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #8ab6e9; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #f6f6f6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #8ab6e9; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #8ab6e9; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #8ab6e9; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #8ab6e9; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: black; +background-color: white; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: black; + text-align: center; + background-color: #d4d4d4; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #8ab6e9; + border: 1px solid #8ab6e9; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #dc00fa; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #455364; + background-color: #cccccc; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #8ab6e9; + border: 1px solid #8ab6e9; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #f6f6f6; +} + +QSlider:focus { + /*border: 1px solid #dc00fa;*/ +} + +QSlider::groove:horizontal { + background: #F6F6F6; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #F6F6F6; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #8ab6e9; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #cccccc; +} + +QSlider::sub-page:horizontal { + background: #8ab6e9; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #cccccc; +} + +QSlider::handle:horizontal { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #8ab6e9; + border: 1px solid #cccccc; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #cccccc; + background: #dc00fa; +} + +QSlider::handle:vertical { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #8ab6e9; + border: 1px solid #cccccc; +} + +QSlider::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: white; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #cccccc; + color: #454545; +} + +QLineEdit:hover { + border: 1px solid #8ab6e9; + color: black; +} + +QLineEdit:focus { + border: 2px solid #dc00fa; +} + +QLineEdit:selected { + background-color: #8ab6e9; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #8ab6e9; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #8ab6e9; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.392);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #d4d4d4; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #d4d4d4; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #d4d4d4; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #d4d4d4; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #f6f6f6; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #d4d4d4; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #8ab6e9;*/ + border: 0px solid #8ab6e9; + background-color: #8ab6e9; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #d4d4d4; + background-color: #f5f5f5; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #8ab6e9;*/ + border: 0px solid #8ab6e9; + background-color: #8ab6e9; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #8ab6e9; + background-color: #8ab6e9; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #8ab6e9; + background-color: #8ab6e9; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #f5f5f5; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #8ab6e9; + background-color: #8ab6e9; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #8ab6e9; + background-color: #8ab6e9; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #f6f6f6; + border: 1px solid #cccccc; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #f6f6f6; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /* background-color: #8ab6e9; */ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_dark_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #cccccc; + color: black; + gridline-color: #cccccc; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: white; + color: #515151; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #8ab6e9; + color: black; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #dc00fa; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #8ab6e9; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #8ab6e9; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #bfc1c0; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #8ab6e9; +} + +QTableCornerButton::section { + background-color: #f6f6f6; + border: 1px transparent #cccccc; + border-radius: 0px; +} + +QTableView::item { + color: black; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #f6f6f6; + border: 1px solid #cccccc; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #515151; +} + +QHeaderView::section { + background-color: #f5f5f5; + color: black; + border-radius: 0px; + text-align: center; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #cccccc; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #cccccc; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #515151; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical:disabled { + color: #515151; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/arrow_down.svg); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #d4d4d4; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #346792; +} + +QToolBox::tab { + background-color: #d4d4d4; + border: 0px solid #cccccc; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #515151; +} + +QToolBox::tab:selected { + background-color: #d4d4d4; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #d4d4d4; + border-bottom: 0px solid #cccccc; + color: #515151; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #f6f6f6; +} + +QToolBox::tab:hover { + background-color: #8ab6e9; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #cccccc; + background-color: #cccccc; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #cccccc; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #cccccc; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #f6f6f6; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #8ab6e9, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #8ab6e9, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #8ab6e9; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #8ab6e9; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #cccccc; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #f6f6f6; + border-radius: 2px; + border: 1px solid #cccccc; + selection-background-color: #8ab6e9; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #8ab6e9; + color: black; +} + +QAbstractView:selected { + background: #8ab6e9; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Light-modern-green.qss b/src/Gui/Stylesheets/Light-modern-green.qss new file mode 100644 index 0000000000..7cf40dc242 --- /dev/null +++ b/src/Gui/Stylesheets/Light-modern-green.qss @@ -0,0 +1,2634 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #a5e98a + #dc00fa + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #a5e98a; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #f6f6f6; + border: 0px solid #cccccc; + padding: 0px; + color: black; + selection-background-color: #a5e98a; + selection-color: black; +} + +QWidget:disabled { + color: #515151; + selection-background-color: #a5e98a; + selection-color: #515151; +} + +QWidget::item:selected { + background-color: #a5e98a; +} + + /* Causes issue with colorselector. +QWidget::item:hover:!selected { + background-color: #a5e98a; +}*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #a5e98a, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #a5e98a, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #f6f6f6; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #f5f5f5; + /* Fixes Spyder #9120, #9121 */ + background: #f6f6f6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: black; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #dc00fa; +} + +QCheckBox QWidget:disabled { + background-color: transparent; + color: #515151; +} + +QCheckBox::indicator { + color: black; + background-color: white; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: white; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #a5e98a; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #f5f5f5; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: white; + /*border: 1px solid #cccccc; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #a5e98a; +} + +QCheckBox::indicator:checked:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: white; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #a5e98a; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #cccccc; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f5f5f5; + border: 1px solid #cccccc; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #cccccc; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #a5e98a; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: white; + border: 1px solid #cccccc; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #a5e98a; +} + +QGroupBox::indicator:checked:disabled { + background-color: #a5e98a; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #dc00fa; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #515151; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f8f8f8; + border: 1px solid #cccccc; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #a5e98a; + border: 1px solid #a5e98a; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #cccccc; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #a5e98a; + border: 1px solid #a5e98a; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #cccccc; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #f8f8f8; + /*padding: 1px; + border: 0px solid rgba(255,255,255,140);*/ + color: black; + selection-background-color: #a5e98a; +} + +QMenuBar:focus { + border: 1px solid #dc00fa; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #cccccc; + background-color: #a5e98a; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #cccccc; + background-color: #a5e98a; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(100,100,100,140); + border-right: 2px rgba(100,100,100,140); + color: black; + margin: 0px; + background-color: #f8f8f8; + selection-background-color: #a5e98a; +} + +QMenu::separator { + height: 2px; + background-color: #cccccc; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #cccccc; +} + +QMenu::item:selected { + color: black; + background-color: #a5e98a; +} + +QMenu::item:pressed { + background-color: #a5e98a; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #a5e98a; + margin-left: -5px; + border: 5px solid #a5e98a; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #a5e98a; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #a5e98a; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #a5e98a; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #a5e98a; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #cfcfcf; + color: black; + border: 1px solid #cccccc; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #cccccc; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #515151; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #f6f6f6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #cccccc; + border-radius: 1.9px; + background-color: #f6f6f6; +} + +QScrollBar:vertical { + background-color: #f6f6f6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #cccccc; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #d4d4d4; + border: 1px solid #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #a5e98a; + border: #cccccc; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::handle:vertical { + background-color: #d4d4d4; + border: 1px solid #cccccc; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #a5e98a; + border: #cccccc; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + background-color: #a5e98a; + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-color: #a5e98a; + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + background-color: #a5e98a; + height: 10px; + width: 8px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #a5e98a; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QTextEdit:focus { + border: 1px solid #dc00fa; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: white; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QPlainTextEdit:focus { + border: 1px solid #dc00fa; +} + +QPlainTextEdit:selected { + background: #a5e98a; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #cccccc; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #f6f6f6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #f6f6f6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #f6f6f6; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #a5e98a; +} + +QToolButton#qt_toolbar_ext_button:on { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #cccccc; +background-color: #a5e98a; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: white; + border: 1px solid #cccccc; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #a5e98a;*/ + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + /*background-color: #a5e98a;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #a5e98a; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #dc00fa; +} + +QAbstractSpinBox:selected { + background: #dc00fa; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #cccccc; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #cccccc; + color: #9f0d00; +} + +QLabel[haslink="true"] { + color: darkblue; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: white; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #005aa4; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #455364; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: white; + border: 0px solid #cccccc; + color: #515151; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #cccccc; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #bfc1c0; + color: #515151; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #f6f6f6; + color: #515151; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #515151; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #f8f8f8; + border: 1px solid #cccccc; + color: #515151; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #a5e98a; + color: #f6f6f6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #f8f8f8; + color: #cccccc; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #d4d4d4; + color: black; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #f6f6f6; + color: #515151; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #a5e98a; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #a5e98a; + color: #f5f5f5; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #a5e98a; +} + +QPushButton:hover { + background-color: #a5e98a; + color: black; +} + +QPushButton:pressed { + background-color: #a5e98a; +} + +QPushButton:selected { + background: #dc00fa; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #f8f8f8; + color: #515151; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #a5e98a; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #a5e98a; + color: #515151; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #a5e98a; + color: black; +} + +QToolButton:checked:pressed { + background-color: #a5e98a; +} + +QToolButton:checked:selected { + background: #dc00fa; + color: black; +} + +QToolButton:hover { + background-color: #a5e98a; + color: black; +} + +QToolButton:pressed { + background-color: #dc00fa; +} + +QToolButton:selected { + background: #a5e98a; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #f6f6f6; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #515151; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #cccccc; + background: white; + border-radius: 2px; + selection-background-color: #a5e98a; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: white; +} +QComboBox QAbstractItemView { + border: 0px solid #cccccc; + border-radius: 0px; + background-color: white; + selection-background-color: #a5e98a; +} + +QComboBox QAbstractItemView:hover { + background-color:white; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #a5e98a; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f5f5f5; +} + +QComboBox:disabled { + background-color: #cccccc; + color: #515151; +} + +QComboBox:hover { + /*background-color: #a5e98a;*/ + border: 1px solid #a5e98a; +} + +QComboBox:focus { + border: 1px solid #dc00fa; +} + +QComboBox:on { + selection-background-color: #dc00fa; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #a5e98a; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #cccccc; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f5f5f5; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #d4d4d4; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #cccccc; +} +QComboBox::drop-down:hover { + background-color: #a5e98a; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f5f5f5; + border: 0px solid #cccccc; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #d4d4d4; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #a5e98a; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #f6f6f6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #a5e98a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #a5e98a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #a5e98a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #a5e98a; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: black; +background-color: white; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: black; + text-align: center; + background-color: #d4d4d4; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #a5e98a; + border: 1px solid #a5e98a; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #dc00fa; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #455364; + background-color: #cccccc; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #a5e98a; + border: 1px solid #a5e98a; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #f6f6f6; +} + +QSlider:focus { + /*border: 1px solid #dc00fa;*/ +} + +QSlider::groove:horizontal { + background: #F6F6F6; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #F6F6F6; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #a5e98a; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #cccccc; +} + +QSlider::sub-page:horizontal { + background: #a5e98a; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #cccccc; +} + +QSlider::handle:horizontal { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #a5e98a; + border: 1px solid #cccccc; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #cccccc; + background: #dc00fa; +} + +QSlider::handle:vertical { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #a5e98a; + border: 1px solid #cccccc; +} + +QSlider::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: white; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #cccccc; + color: #454545; +} + +QLineEdit:hover { + border: 1px solid #a5e98a; + color: black; +} + +QLineEdit:focus { + border: 2px solid #dc00fa; +} + +QLineEdit:selected { + background-color: #a5e98a; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #a5e98a; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #a5e98a; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.392);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #d4d4d4; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #d4d4d4; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #d4d4d4; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #d4d4d4; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #f6f6f6; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #d4d4d4; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #a5e98a;*/ + border: 0px solid #a5e98a; + background-color: #a5e98a; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #d4d4d4; + background-color: #f5f5f5; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #a5e98a;*/ + border: 0px solid #a5e98a; + background-color: #a5e98a; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #a5e98a; + background-color: #a5e98a; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #a5e98a; + background-color: #a5e98a; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #f5f5f5; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #a5e98a; + background-color: #a5e98a; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #a5e98a; + background-color: #a5e98a; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #f6f6f6; + border: 1px solid #cccccc; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #f6f6f6; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /* background-color: #a5e98a; */ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_dark_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #cccccc; + color: black; + gridline-color: #cccccc; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: white; + color: #515151; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #a5e98a; + color: black; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #dc00fa; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #a5e98a; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #a5e98a; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #bfc1c0; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #a5e98a; +} + +QTableCornerButton::section { + background-color: #f6f6f6; + border: 1px transparent #cccccc; + border-radius: 0px; +} + +QTableView::item { + color: black; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #f6f6f6; + border: 1px solid #cccccc; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #515151; +} + +QHeaderView::section { + background-color: #f5f5f5; + color: black; + border-radius: 0px; + text-align: center; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #cccccc; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #cccccc; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #515151; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical:disabled { + color: #515151; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/arrow_down.svg); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #d4d4d4; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #346792; +} + +QToolBox::tab { + background-color: #d4d4d4; + border: 0px solid #cccccc; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #515151; +} + +QToolBox::tab:selected { + background-color: #d4d4d4; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #d4d4d4; + border-bottom: 0px solid #cccccc; + color: #515151; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #f6f6f6; +} + +QToolBox::tab:hover { + background-color: #a5e98a; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #cccccc; + background-color: #cccccc; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #cccccc; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #cccccc; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #f6f6f6; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #a5e98a, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #a5e98a, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #a5e98a; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #a5e98a; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #cccccc; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #f6f6f6; + border-radius: 2px; + border: 1px solid #cccccc; + selection-background-color: #a5e98a; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #a5e98a; + color: black; +} + +QAbstractView:selected { + background: #a5e98a; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} + diff --git a/src/Gui/Stylesheets/Light-modern-orange.qss b/src/Gui/Stylesheets/Light-modern-orange.qss new file mode 100644 index 0000000000..4d07c76ef1 --- /dev/null +++ b/src/Gui/Stylesheets/Light-modern-orange.qss @@ -0,0 +1,2633 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #e9be8a + #dc00fa + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e9be8a; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #f6f6f6; + border: 0px solid #cccccc; + padding: 0px; + color: black; + selection-background-color: #e9be8a; + selection-color: black; +} + +QWidget:disabled { + color: #515151; + selection-background-color: #e9be8a; + selection-color: #515151; +} + +QWidget::item:selected { + background-color: #e9be8a; +} + + /* Causes issue with colorselector. +QWidget::item:hover:!selected { + background-color: #e9be8a; +}*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #e9be8a, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #e9be8a, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #f6f6f6; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #f5f5f5; + /* Fixes Spyder #9120, #9121 */ + background: #f6f6f6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: black; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #dc00fa; +} + +QCheckBox QWidget:disabled { + background-color: transparent; + color: #515151; +} + +QCheckBox::indicator { + color: black; + background-color: white; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: white; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #e9be8a; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #f5f5f5; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: white; + /*border: 1px solid #cccccc; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #e9be8a; +} + +QCheckBox::indicator:checked:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: white; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #e9be8a; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #cccccc; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f5f5f5; + border: 1px solid #cccccc; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #cccccc; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #e9be8a; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: white; + border: 1px solid #cccccc; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #e9be8a; +} + +QGroupBox::indicator:checked:disabled { + background-color: #e9be8a; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #dc00fa; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #515151; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f8f8f8; + border: 1px solid #cccccc; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #e9be8a; + border: 1px solid #e9be8a; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #cccccc; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #e9be8a; + border: 1px solid #e9be8a; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #cccccc; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #f8f8f8; + /*padding: 1px; + border: 0px solid rgba(255,255,255,140);*/ + color: black; + selection-background-color: #e9be8a; +} + +QMenuBar:focus { + border: 1px solid #dc00fa; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #cccccc; + background-color: #e9be8a; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #cccccc; + background-color: #e9be8a; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(100,100,100,140); + border-right: 2px rgba(100,100,100,140); + color: black; + margin: 0px; + background-color: #f8f8f8; + selection-background-color: #e9be8a; +} + +QMenu::separator { + height: 2px; + background-color: #cccccc; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #cccccc; +} + +QMenu::item:selected { + color: black; + background-color: #e9be8a; +} + +QMenu::item:pressed { + background-color: #e9be8a; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #e9be8a; + margin-left: -5px; + border: 5px solid #e9be8a; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #e9be8a; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #e9be8a; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #e9be8a; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #e9be8a; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #cfcfcf; + color: black; + border: 1px solid #cccccc; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #cccccc; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #515151; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #f6f6f6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #cccccc; + border-radius: 1.9px; + background-color: #f6f6f6; +} + +QScrollBar:vertical { + background-color: #f6f6f6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #cccccc; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #d4d4d4; + border: 1px solid #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #e9be8a; + border: #cccccc; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::handle:vertical { + background-color: #d4d4d4; + border: 1px solid #cccccc; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #e9be8a; + border: #cccccc; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + background-color: #e9be8a; + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-color: #e9be8a; + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + background-color: #e9be8a; + height: 10px; + width: 8px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #e9be8a; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QTextEdit:focus { + border: 1px solid #dc00fa; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: white; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QPlainTextEdit:focus { + border: 1px solid #dc00fa; +} + +QPlainTextEdit:selected { + background: #e9be8a; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #cccccc; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #f6f6f6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #f6f6f6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #f6f6f6; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #e9be8a; +} + +QToolButton#qt_toolbar_ext_button:on { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #cccccc; +background-color: #e9be8a; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: white; + border: 1px solid #cccccc; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #e9be8a;*/ + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + /*background-color: #e9be8a;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #e9be8a; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #dc00fa; +} + +QAbstractSpinBox:selected { + background: #dc00fa; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #cccccc; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #cccccc; + color: #9f0d00; +} + +QLabel[haslink="true"] { + color: darkblue; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: white; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #005aa4; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #455364; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: white; + border: 0px solid #cccccc; + color: #515151; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #cccccc; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #bfc1c0; + color: #515151; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #f6f6f6; + color: #515151; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #515151; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #f8f8f8; + border: 1px solid #cccccc; + color: #515151; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #e9be8a; + color: #f6f6f6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #f8f8f8; + color: #cccccc; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #d4d4d4; + color: black; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #f6f6f6; + color: #515151; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #e9be8a; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #e9be8a; + color: #f5f5f5; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #e9be8a; +} + +QPushButton:hover { + background-color: #e9be8a; + color: black; +} + +QPushButton:pressed { + background-color: #e9be8a; +} + +QPushButton:selected { + background: #dc00fa; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #f8f8f8; + color: #515151; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #e9be8a; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #e9be8a; + color: #515151; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #e9be8a; + color: black; +} + +QToolButton:checked:pressed { + background-color: #e9be8a; +} + +QToolButton:checked:selected { + background: #dc00fa; + color: black; +} + +QToolButton:hover { + background-color: #e9be8a; + color: black; +} + +QToolButton:pressed { + background-color: #dc00fa; +} + +QToolButton:selected { + background: #e9be8a; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #f6f6f6; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #515151; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #cccccc; + background: white; + border-radius: 2px; + selection-background-color: #e9be8a; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: white; +} +QComboBox QAbstractItemView { + border: 0px solid #cccccc; + border-radius: 0px; + background-color: white; + selection-background-color: #e9be8a; +} + +QComboBox QAbstractItemView:hover { + background-color:white; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #e9be8a; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f5f5f5; +} + +QComboBox:disabled { + background-color: #cccccc; + color: #515151; +} + +QComboBox:hover { + /*background-color: #e9be8a;*/ + border: 1px solid #e9be8a; +} + +QComboBox:focus { + border: 1px solid #dc00fa; +} + +QComboBox:on { + selection-background-color: #dc00fa; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #e9be8a; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #cccccc; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f5f5f5; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #d4d4d4; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #cccccc; +} +QComboBox::drop-down:hover { + background-color: #e9be8a; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f5f5f5; + border: 0px solid #cccccc; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #d4d4d4; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #e9be8a; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #f6f6f6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #e9be8a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #e9be8a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #e9be8a; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #e9be8a; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: black; +background-color: white; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: black; + text-align: center; + background-color: #d4d4d4; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #e9be8a; + border: 1px solid #e9be8a; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #dc00fa; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #455364; + background-color: #cccccc; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #e9be8a; + border: 1px solid #e9be8a; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #f6f6f6; +} + +QSlider:focus { + /*border: 1px solid #dc00fa;*/ +} + +QSlider::groove:horizontal { + background: #F6F6F6; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #F6F6F6; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #e9be8a; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #cccccc; +} + +QSlider::sub-page:horizontal { + background: #e9be8a; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #cccccc; +} + +QSlider::handle:horizontal { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #e9be8a; + border: 1px solid #cccccc; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #cccccc; + background: #dc00fa; +} + +QSlider::handle:vertical { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #e9be8a; + border: 1px solid #cccccc; +} + +QSlider::handle:vertical:focus { + border: 1px solid #dc00fa; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: white; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #cccccc; + color: #454545; +} + +QLineEdit:hover { + border: 1px solid #e9be8a; + color: black; +} + +QLineEdit:focus { + border: 2px solid #dc00fa; +} + +QLineEdit:selected { + background-color: #e9be8a; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #e9be8a; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #e9be8a; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.392);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #d4d4d4; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #d4d4d4; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #d4d4d4; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #d4d4d4; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #f6f6f6; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #d4d4d4; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #e9be8a;*/ + border: 0px solid #e9be8a; + background-color: #e9be8a; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #d4d4d4; + background-color: #f5f5f5; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #d4d4d4; + /*border: 1px solid #dc00fa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #e9be8a;*/ + border: 0px solid #e9be8a; + background-color: #e9be8a; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #e9be8a; + background-color: #e9be8a; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #f5f5f5; + border: 0px solid #dc00fa; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #e9be8a; + background-color: #e9be8a; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #f5f5f5; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #e9be8a; + background-color: #e9be8a; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #e9be8a; + background-color: #e9be8a; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #f6f6f6; + border: 1px solid #cccccc; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #f6f6f6; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /* background-color: #e9be8a; */ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_dark_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #cccccc; + color: black; + gridline-color: #cccccc; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: white; + color: #515151; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #e9be8a; + color: black; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #dc00fa; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #e9be8a; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #e9be8a; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #bfc1c0; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #e9be8a; +} + +QTableCornerButton::section { + background-color: #f6f6f6; + border: 1px transparent #cccccc; + border-radius: 0px; +} + +QTableView::item { + color: black; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #f6f6f6; + border: 1px solid #cccccc; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #515151; +} + +QHeaderView::section { + background-color: #f5f5f5; + color: black; + border-radius: 0px; + text-align: center; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #cccccc; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #cccccc; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #515151; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical:disabled { + color: #515151; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/arrow_down.svg); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #d4d4d4; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #346792; +} + +QToolBox::tab { + background-color: #d4d4d4; + border: 0px solid #cccccc; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #515151; +} + +QToolBox::tab:selected { + background-color: #d4d4d4; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #d4d4d4; + border-bottom: 0px solid #cccccc; + color: #515151; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #f6f6f6; +} + +QToolBox::tab:hover { + background-color: #e9be8a; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #cccccc; + background-color: #cccccc; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #cccccc; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #cccccc; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #f6f6f6; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #e9be8a, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #e9be8a, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #e9be8a; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #e9be8a; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #cccccc; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #f6f6f6; + border-radius: 2px; + border: 1px solid #cccccc; + selection-background-color: #e9be8a; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #e9be8a; + color: black; +} + +QAbstractView:selected { + background: #e9be8a; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Light-modern-pink.qss b/src/Gui/Stylesheets/Light-modern-pink.qss new file mode 100644 index 0000000000..4ddc84563a --- /dev/null +++ b/src/Gui/Stylesheets/Light-modern-pink.qss @@ -0,0 +1,2653 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #e98ad8 + #008efa + + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e98ad8; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #2b2b2b; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #f6f6f6; + border: 0px solid #cccccc; + padding: 0px; + color: black; + selection-background-color: #e98ad8; + selection-color: black; +} + +QWidget:disabled { + color: #515151; + selection-background-color: #e98ad8; + selection-color: #515151; +} + +QWidget::item:selected { + background-color: #e98ad8; +} + + /* Causes issue with colorselector. +QWidget::item:hover:!selected { + background-color: #e98ad8; +}*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #3c3c3c;*/ + border: 0px solid #696968; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #e98ad8, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #e98ad8, stop:0.8 transparent); + /*background-color: #557bb6;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #f6f6f6; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #f5f5f5; + /* Fixes Spyder #9120, #9121 */ + background: #f6f6f6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: black; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #008efa +; +} + +QCheckBox QWidget:disabled { + background-color: transparent; + color: #515151; +} + +QCheckBox::indicator { + color: black; + background-color: white; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: white; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #e98ad8; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #f5f5f5; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: white; + /*border: 1px solid #cccccc; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #e98ad8; +} + +QCheckBox::indicator:checked:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: white; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #f5f5f5; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #e98ad8; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #cccccc; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f5f5f5; + border: 1px solid #cccccc; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #cccccc; + border: 1px solid #cccccc; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #e98ad8; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: white; + border: 1px solid #cccccc; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #e98ad8; +} + +QGroupBox::indicator:checked:disabled { + background-color: #e98ad8; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #008efa; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #515151; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f8f8f8; + border: 1px solid #cccccc; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #e98ad8; + border: 1px solid #e98ad8; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ + border: 1px solid #cccccc; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #e98ad8; + border: 1px solid #e98ad8; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #cccccc; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #f8f8f8; + /*padding: 1px; + border: 0px solid rgba(255,255,255,140);*/ + color: black; + selection-background-color: #e98ad8; +} + +QMenuBar:focus { + border: 1px solid #008efa +; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #cccccc; + background-color: #e98ad8; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #cccccc; + background-color: #e98ad8; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(100,100,100,140); + border-right: 2px rgba(100,100,100,140); + color: black; + margin: 0px; + background-color: #f8f8f8; + selection-background-color: #e98ad8; +} + +QMenu::separator { + height: 2px; + background-color: #cccccc; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #cccccc; +} + +QMenu::item:selected { + color: black; + background-color: #e98ad8; +} + +QMenu::item:pressed { + background-color: #e98ad8; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #e98ad8; + margin-left: -5px; + border: 5px solid #e98ad8; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #e98ad8; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #e98ad8; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #e98ad8; + image: url(qss:images_dark-light/checkbox_unchecked_light.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #e98ad8; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #cfcfcf; + color: black; + border: 1px solid #cccccc; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #cccccc; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #515151; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #f6f6f6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #cccccc; + border-radius: 1.9px; + background-color: #f6f6f6; +} + +QScrollBar:vertical { + background-color: #f6f6f6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #cccccc; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #d4d4d4; + border: 1px solid #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #e98ad8; + border: #cccccc; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #008efa +; +} + +QScrollBar::handle:vertical { + background-color: #d4d4d4; + border: 1px solid #cccccc; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #e98ad8; + border: #cccccc; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #008efa +; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_darker.svg); + background-color: #e98ad8; + height: 10px; + width: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-color: #e98ad8; + height: 7px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 10px; + width: 7px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + background-color: #e98ad8; + height: 10px; + width: 8px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + background-color: #e98ad8; + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 8px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QTextEdit:focus { + border: 1px solid #008efa +; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: white; + color: black; + border-radius: 1.9px; + border: 0px solid #cccccc; +} + +QPlainTextEdit:focus { + border: 1px solid #008efa +; +} + +QPlainTextEdit:selected { + background: #e98ad8; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #cccccc; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #f6f6f6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #f6f6f6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #f6f6f6; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #e98ad8; +} + +QToolButton#qt_toolbar_ext_button:on { +/* background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #cccccc; +background-color: #e98ad8; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: white; + border: 1px solid #cccccc; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + /*background-color: #e98ad8;*/ + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: #cccccc; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + /*background-color: #e98ad8;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #e98ad8; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #008efa +; +} + +QAbstractSpinBox:selected { + background: #008efa +; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #cccccc; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #cccccc; + color: #9f0d00; +} + +QLabel[haslink="true"] { + color: darkblue; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: white; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #005aa4; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #455364; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: white; + border: 0px solid #cccccc; + color: #515151; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #cccccc; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #bfc1c0; + color: #515151; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #f6f6f6; + color: #515151; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #515151; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #f8f8f8; + border: 1px solid #cccccc; + color: #515151; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #e98ad8; + color: #f6f6f6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #f8f8f8; + color: #cccccc; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #d4d4d4; + color: black; + border-radius: 2px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #f6f6f6; + color: #515151; + border-radius: 2px; + padding: 2px; +} + +QPushButton:checked { + background-color: #e98ad8; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #e98ad8; + color: #f5f5f5; + border-radius: 2px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #e98ad8; +} + +QPushButton:hover { + background-color: #e98ad8; + color: black; +} + +QPushButton:pressed { + background-color: #e98ad8; +} + +QPushButton:selected { + background: #008efa +; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #f8f8f8; + color: #515151; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #e98ad8; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #e98ad8; + color: #515151; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #e98ad8; + color: black; +} + +QToolButton:checked:pressed { + background-color: #e98ad8; +} + +QToolButton:checked:selected { + background: #008efa +; + color: black; +} + +QToolButton:hover { + background-color: #e98ad8; + color: black; +} + +QToolButton:pressed { + background-color: #008efa +; +} + +QToolButton:selected { + background: #e98ad8; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #f6f6f6; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #cccccc; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #515151; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #cccccc; + background: white; + border-radius: 2px; + selection-background-color: #e98ad8; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: white; +} +QComboBox QAbstractItemView { + border: 0px solid #cccccc; + border-radius: 0px; + background-color: white; + selection-background-color: #e98ad8; +} + +QComboBox QAbstractItemView:hover { + background-color:white; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #e98ad8; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f5f5f5; +} + +QComboBox:disabled { + background-color: #cccccc; + color: #515151; +} + +QComboBox:hover { + /*background-color: #e98ad8;*/ + border: 1px solid #e98ad8; +} + +QComboBox:focus { + border: 1px solid #008efa +; +} + +QComboBox:on { + selection-background-color: #008efa +; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #e98ad8; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #cccccc; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f5f5f5; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: #d4d4d4; + subcontrol-position: top right; + width: 14px; + border-left: 1px solid #cccccc; +} +QComboBox::drop-down:hover { + background-color: #e98ad8; +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f5f5f5; + border: 0px solid #cccccc; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #d4d4d4; /* Task Panel Header background color */ +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: #e98ad8; +} + +QSint--ActionGroup QToolButton[class="header"] { +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #f6f6f6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #e98ad8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #e98ad8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #e98ad8; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #e98ad8; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: black; +background-color: white; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: black; + text-align: center; + background-color: #d4d4d4; + border: 0px solid #adadad; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background: #e98ad8; + border: 1px solid #e98ad8; +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #008efa +; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #455364; + background-color: #cccccc; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background: #e98ad8; + border: 1px solid #e98ad8; +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #f6f6f6; +} + +QSlider:focus { + /*border: 1px solid #008efa;*/ +} + +QSlider::groove:horizontal { + background: #F6F6F6; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #F6F6F6; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #e98ad8; + border: 1px solid #cccccc; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #cccccc; +} + +QSlider::sub-page:horizontal { + background: #e98ad8; + border: 1px solid #cccccc; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #cccccc; +} + +QSlider::handle:horizontal { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #e98ad8; + border: 1px solid #cccccc; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #cccccc; + background: #008efa; +} + +QSlider::handle:vertical { + background: #cccccc; + border: 1px solid #cccccc; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #e98ad8; + border: 1px solid #cccccc; +} + +QSlider::handle:vertical:focus { + border: 1px solid #008efa +; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: white; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #cccccc; + color: #454545; +} + +QLineEdit:hover { + border: 1px solid #e98ad8; + color: black; +} + +QLineEdit:focus { + border: 2px solid #008efa +; +} + +QLineEdit:selected { + background-color: #e98ad8; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #e98ad8; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + border: 0px solid #8c00ffa1; + border-radius: 1.9px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #e98ad8; + border: 1px solid #346792; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 2px; + margin: 0px; + padding: 2px; + border: 0; + alignment: center; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.392);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #d4d4d4; + color: #515151; + background-color: #d4d4d4; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #d4d4d4; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #d4d4d4; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #d4d4d4; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #d4d4d4; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #f6f6f6; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border: 1px solid #d4d4d4; + border-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #d4d4d4; + /*border: 1px solid #008efa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #e98ad8;*/ + border: 0px solid #e98ad8; + background-color: #e98ad8; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border: 1px solid #d4d4d4; + background-color: #f5f5f5; + margin-left: 3px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #d4d4d4; + /*border: 1px solid #008efa; + border-radius: 4px; + margin-left: 4px; + margin-right: 4px; + padding-left: 3px; + padding-right: 3px;*/ +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #e98ad8;*/ + border: 0px solid #e98ad8; + background-color: #e98ad8; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #f5f5f5; + border: 0px solid #008efa +; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #e98ad8; + background-color: #e98ad8; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #f5f5f5; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #f5f5f5; + border: 0px solid #008efa +; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #e98ad8; + background-color: #e98ad8; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #f5f5f5; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #e98ad8; + background-color: #e98ad8; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #e98ad8; + background-color: #e98ad8; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #f6f6f6; + border: 1px solid #cccccc; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #f6f6f6; + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /* background-color: #e98ad8; */ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_dark_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #cccccc; + color: black; + gridline-color: #cccccc; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: white; + color: #515151; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #e98ad8; + color: black; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #008efa +; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #e98ad8; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #e98ad8; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #bfc1c0; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #e98ad8; +} + +QTableCornerButton::section { + background-color: #f6f6f6; + border: 1px transparent #cccccc; + border-radius: 0px; +} + +QTableView::item { + color: black; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #f6f6f6; + border: 1px solid #cccccc; + padding: 0; + margin: 0; + border-radius: 0px; + text-align: center; +} + +QHeaderView:disabled { + background-color: #f6f6f6; + border: 1px solid #cccccc; + color: #515151; +} + +QHeaderView::section { + background-color: #f5f5f5; + color: black; + border-radius: 0px; + text-align: center; + font-size: 13px; + font-weight: bold; + text-align: center; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 10px; + padding-right: 10px; + border-left: 1px solid #cccccc; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #cccccc; + padding-left: 15px; +} + +QHeaderView::section::horizontal:disabled { + color: #515151; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 1px; + padding-right: 1px; + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #cccccc; +} + +QHeaderView::section::vertical:disabled { + color: #515151; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/arrow_down.svg); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #d4d4d4; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #346792; +} + +QToolBox::tab { + background-color: #d4d4d4; + border: 0px solid #cccccc; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #515151; +} + +QToolBox::tab:selected { + background-color: #d4d4d4; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #d4d4d4; + border-bottom: 0px solid #cccccc; + color: #515151; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #f6f6f6; +} + +QToolBox::tab:hover { + background-color: #e98ad8; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #cccccc; + background-color: #cccccc; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #cccccc; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #cccccc; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #f6f6f6; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #e98ad8, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #e98ad8, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #e98ad8; + border-style: solid; + border: 1px solid #cccccc; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #e98ad8; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #cccccc; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #f6f6f6; + border-radius: 2px; + border: 1px solid #cccccc; + selection-background-color: #e98ad8; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #e98ad8; + color: black; +} + +QAbstractView:selected { + background: #e98ad8; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/Light-orange.qss b/src/Gui/Stylesheets/Light-orange.qss index 43d942b3b7..e44fb5ed12 100644 --- a/src/Gui/Stylesheets/Light-orange.qss +++ b/src/Gui/Stylesheets/Light-orange.qss @@ -1,781 +1,68 @@ /* ABOUT ============================================================================================================ -version 2.21 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -LICENSE +KNOWN BUGS and TO DO ============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION +INSTALLATION WHEN NECESSARY ============================================================================================================ 1) Place the .qss files and /images/ folder in the path that fits your OS: OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -CUSTOMIZATION ============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #505050 - #6e6e6e - #828282 - #a2a2a0 - #b6b6b6 - #c8c8c8 - #c3c3c3 - #d2d2d2 - #dcdcdc - #e0e0e0 - #e6e6e6 - #f0f0f0 - #f5f5f5 = main background color - white - - SELECTION (darker to lighter) - #624b14 - #b28416 - #d0970c - #daa116 = main selection color - #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle - #e3b64d - #e0c992 - #e3d8b9 +TO MODIFY USE THESE COLORS: + #ffb916 + #ffe098 +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 +/* Reset elements ------------------------------------------------------------ -*/ +Resetting everything helps to unify styles across different operating systems - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ +--------------------------------------------------------------------------- */ * { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #505050; /* Default color for labels and different text elements that usually use dark colors */ + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; } /* specific reset for elements inside QToolBar */ QToolBar * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } +/*hacks */ -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #f5f5f5; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #828282; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: black; - background-color: #f5f5f5; /* main background color */ -} - -QMenu, -QMenu::item { - color: black; - background-color: #f5f5f5; /* main background color */ - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: white; - background-color: #daa116; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: #daa116; - border: 2px #daa116; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(0,0,0,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: black; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: #daa116; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #6e6e6e; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #6e6e6e; +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; background-color: transparent; - border: 1px solid #6e6e6e; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - border: none; - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(0,0,0,120); - border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255, 255, 255, 15); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: white; - background-color: #828282; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: rgba(0,0,0,120); - titlebar-close-icon: url(qss:images_dark-light/close_dark.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,10); - border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,15); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,10); - text-align: center; - border: 1px solid rgba(0,0,0,80); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #d0970c, stop:1 #daa116); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} + selection-color: transparent; + selection-background-color: transparent; -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; } - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(0,0,0,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(0,0,0,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_dark.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #d2d2d2; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #d2d2d2; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #d2d2d2; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #d2d2d2; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - background-color: #f5f5f5; /* same as tab content background color */ - border-color: #d2d2d2; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-bottom-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-top-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-right-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ - border-left-color: #f5f5f5; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(0,0,0,160); -} - -QTabBar::tab:!selected:hover { - color: rgba(0,0,0,220); - background-color: rgba(0,0,0,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #f5f5f5) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 6px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #dcdcdc; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: #daa116; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for QT 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(0,0,0,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(0,0,0,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #f5f5f5; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - background-color: #f0f0f0; - alternate-background-color: #e6e6e6; /* related with QListView background */ - border: 1px solid #c3c3c3; - selection-color: white; - selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; /* should be similar to QListView selection-color */ - background-color: #daa116; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #d2d2d2; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #e3d8b9; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { color: transparent; @@ -786,25 +73,6 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { padding: 0px; } -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: black; - background-color: #e3d8b9; -} - -/* hack to disable margin inside Property values to following elements */ Gui--PropertyEditor--PropertyEditor QSpinBox, Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, @@ -814,248 +82,1424 @@ Gui--PropertyEditor--PropertyEditor QComboBox { margin-right: 0px; padding-top: 0px; padding-bottom: 0px; + } -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #ffb916; /* same as focused background color */ } -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ } -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #e3d8b9; /* same as focused background color */ - border-bottom-color: #e3b64d; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - /*================================================================================================== -Header of tree and list views +Main window ==================================================================================================*/ -QHeaderView { - background-color: #c3c3c3; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #F6F6F6; /* main background color */ } -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #c3c3c3; +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #F6F6F6; + border: 0px solid #C1C1C1; + padding: 0px; + color: black; + selection-background-color: #ffb916; + selection-color: black; } -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(0,0,0,30); +QWidget:disabled { + color: #A3A3A3; + selection-background-color: #ffb916; + selection-color: #A3A3A3; } -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(0,0,0,30); +QWidget::item:selected { + background-color: #ffb916 +; } -QTableCornerButton::section { - background-color: #c3c3c3; - border-top: none; - border-left: none; - border-right: 1px solid rgba(0,0,0,30); - border-bottom: 1px solid rgba(0,0,0,30); -} + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #ffb916; + }*/ -QHeaderView::section:last { - border-right: none; -} +/* QMainWindow ------------------------------------------------------------ -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #828282; /* same as main background color */ - qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ +--------------------------------------------------------------------------- */ QMainWindow::separator { - background-position: center center; - background-repeat: none; + /*background-color: #f6f6f6;*/ + border: 0px solid #C1C1C1; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #ffb916 , stop:0.8 transparent); + /*background-color: #ffb916;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #ffb916 , stop:0.8 transparent); + /*background-color: #ffb916;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); } QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ } QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #ffffff; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #C1C1C1; + /* Fixes Spyder #9120, #9121 */ + background: #F6F6F6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #F6F6F6; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #ffe098; +} + +QCheckBox QWidget:disabled { + color: #A3A3A3; +} + +QCheckBox::indicator { + color: black; + background-color: #ffffff; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #ffffff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #ffb916; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #F6F6F6; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #ffffff; + /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #ffb916; +} + +QCheckBox::indicator:checked:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #ffffff; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #ffb916; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #ffb916; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #ffb916; +} + +QGroupBox::indicator:checked:disabled { + background-color: #ffb916; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #ffe098; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #A3A3A3; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #ffb916; + border: 1px solid #ffb916; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + border: 1px solid #C1C1C1; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #ffb916; + border: 1px solid #ffb916; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #f6f6f6; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #ffffff; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: black; + selection-background-color: #ffb916; +} + +QMenuBar:focus { + border: 1px solid #ffb916; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #C1C1C1; + background-color: #ffb916; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #C1C1C1; + background-color: #ffb916; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: black; + margin: 0px; + background-color: #ffffff; + selection-background-color: #ffb916; +} + +QMenu::separator { + height: 2px; + background-color: #f6f6f6; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #f6f6f6; +} + +QMenu::item:selected { + color: black; + background-color: #ffb916; +} + +QMenu::item:pressed { + background-color: #ffb916; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #ffe098; + margin-left: -5px; + border: 5px solid #ffe098; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #ffb916; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #ffb916; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #ffb916; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #ffb916; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #ababab; + color: black; + border: 1px solid #C1C1C1; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #C1C1C1; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #A3A3A3; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #F6F6F6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; + background-color: #F6F6F6; +} + +QScrollBar:vertical { + background-color: #F6F6F6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #ffb916; + border: #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #ffe098; +} + +QScrollBar::handle:vertical { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #ffb916; + border: #f6f6f6; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #ffe098; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #F6F6F6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QTextEdit:focus { + border: 1px solid #ffe098; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QPlainTextEdit:focus { + border: 1px solid #ffe098; +} + +QPlainTextEdit:selected { + background: #ffb916; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #C1C1C1; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #F6F6F6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #F6F6F6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #A3A3A3; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #ffb916; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #f6f6f6; +background-color: #ffb916; } -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #f0f0f0; - selection-color: white; - selection-background-color: #d0970c; - border: 1px solid #c3c3c3; - border-radius: 3px; - margin: 4px; +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #ffffff; + border: 1px solid transparent; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #ffb916; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #ffe098; +} + +QAbstractSpinBox:selected { + background: #ffe098; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #C1C1C1; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #C1C1C1; + color: #A3A3A3; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #ffb916; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #ffb916; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #ffffff; + border: 0px solid #C1C1C1; + color: #A3A3A3; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C1C1C1; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #A3A3A3; + color: #A3A3A3; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #ffb916; + color: #F6F6F6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #ffffff; + color: #f6f6f6; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #EDEDED; + border-bottom-color: #AFAFAF; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #F6F6F6; + color: #A3A3A3; + +} + +QPushButton:checked { + background-color: #ffb916; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #ffb916; + color: #f6f6f6; + outline: none; +} + +QPushButton:checked:selected { + background: #ffb916; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffb916 , stop:1 #ffe098); + color: black; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffe098, stop:1 #ffb916 ); +} + +QPushButton:selected { + background: #ffe098; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: transparent; + color: #A3A3A3; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #ffb916; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #A3A3A3; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #ffb916; + color: black; +} + +QToolButton:checked:pressed { + background-color: #ffb916; +} + +QToolButton:checked:selected { + background: #ffe098; + color: black; +} + +QToolButton:hover { + background-color: #ffb916; + color: black; +} + +QToolButton:pressed { + background-color: #ffe098; +} + +QToolButton:selected { + background: #ffb916; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #b2b2b2; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #A3A3A3; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #ffffff; + border-radius: 2px; + selection-background-color: #ffb916; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #ffffff; +} +QComboBox QAbstractItemView { + border: 0px solid #C1C1C1; + border-radius: 0px; + background-color: #ffffff; + selection-background-color: #ffb916; +} + +QComboBox QAbstractItemView:hover { + background-color:#ffffff; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #ffb916; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f6f6f6; +} + +QComboBox:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QComboBox:hover { + /*background-color: #ffb916;*/ + border: 1px solid #ffb916; +} + +QComboBox:focus { + border: 1px solid #ffe098; +} + +QComboBox:on { + selection-background-color: #ffe098; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #ffb916; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #f6f6f6; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f6f6f6; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffb916 , stop:1 #ffe098); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); } /*================================================================================================== Tasks panel (custom FreeCAD class) ==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f6f6f6; + border: 0px solid #C1C1C1; + +} + /* Action group */ QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ +background-color: transparent; /* temporal (transparent background) */ + } QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } /* Separator line */ @@ -1065,1223 +1509,1070 @@ QSint--ActionGroup QFrame[height="3"], QSint--ActionGroup QFrame[width="1"], QSint--ActionGroup QFrame[width="2"], QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); +border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #b6b6b6; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; +border-top: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffb916 , stop:1 #ffe098); } QSint--ActionGroup QToolButton[class="header"] { - color: white; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); } QSint--ActionGroup QFrame[class="content"] { - background-color: #e6e6e6; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #e6e6e6; /* Task Panel background color */ +background-color: #F6F6F6; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +border-bottom-color: #ffb916; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #e6e6e6; /* same as Task Panel background color */ +border-top-color: #ffb916; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #e6e6e6; /* same as Task Panel background color */ +border-right-color: #ffb916; /* same as Task Panel background color */ } QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #e6e6e6; /* same as Task Panel background color */ +border-left-color: #ffb916; /* same as Task Panel background color */ } /* Fix for buttons with icons that showed cropped (still not happy with result) */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; } -/* Fix for lists inside task panels */ -/* QSint--ActionGroup QFrame[class="content"] QTreeView, +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #787878; -} */ - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #6e6e6e; - background-color: #e0e0e0; - selection-color: white; - selection-background-color: #daa116; - border: 1px solid #e0e0e0; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTexEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: #f0f0f0; - border: 1px solid #c3c3c3; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: black; - border-color: #e3b64d; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ - background-color: #e3d8b9; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #c3c3c3; - background-color: #e0e0e0; /* same as enabled color */ - border-color: #e0e0e0; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_dark.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ -QComboBox::drop-down { - background-color: #d2d2d2; - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: white; - selection-background-color: #daa116; -} - -QComboBox QAbstractItemView { - color: #6e6e6e; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: white; - selection-background-color: #daa116; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +color: black; +background-color: #ffffff; } -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - -QPushButton:checked { - background-color: #daa116; - border-color: #d0970c; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #b6b6b6; - border: 1px solid #828282; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #f5f5f5; /* main background color */ - border: 1px solid #dcdcdc; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: #daa116; - border-color: #d0970c; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #6e6e6e; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; + color: black; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + border: 0px solid #C1C1C1; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffb916 , stop:1 #ffe098); + +} QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: #d0970c; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); + border: 1px solid #ffe098 +; } QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #b6b6b6; - border-color: #e6e6e6; - background-color: #e6e6e6; + color: #A3A3A3; + background-color: #ffffff; } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffb916 , stop:1 #ffe098); + } -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #F6F6F6; } -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: black; - background: #f5f5f5; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: #505050; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; -} - -QRadioButton::indicator:checked { - background-color: #daa116; /* QCheckBox has the same color */ - border: 1px solid #d0970c; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(0,0,0,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #e0c992; -} - -QRadioButton::indicator:disabled { - color: #6e6e6e; - background-color: transparent; - border: 1px solid #6e6e6e; -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #505050; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #e0c992; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #daa116; /* QRadioButton has the same color */ - border: 1px solid #d0970c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(0,0,0,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #daa116; - border: 1px solid #d0970c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(0,0,0,20); - border: 1px solid #505050; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #e3b64d; /* slightly lighter than default */ - border-color: #b28416; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #e0c992; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #daa116; /* QRadioButton has the same color */ - border: 1px solid #d0970c; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(0,0,0,20); - border: 1px solid rgba(0,0,0,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #daa116; - border: 1px solid #d0970c; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(0,0,0,30); - border: 1px solid rgba(0,0,0,40); - border-radius: 5px; - margin: 4px 0px; +QSlider:focus { + /*border: 1px solid #ffe098;*/ } QSlider::groove:horizontal { - height: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; } QSlider::groove:vertical { - width: 8px; + background: #F6F6F6; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::add-page:vertical { + background: #ffb916; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; } -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #b6b6b6; - border: 1px solid #b6b6b6; - width: 14px; - height: 14px; - border-radius: 8px; +QSlider::add-page:vertical :disabled { + background: #f6f6f6; +} + +QSlider::sub-page:horizontal { + background: #ffb916; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #ffb916; } QSlider::handle:horizontal { - margin: -4px 0; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #ffb916; + border: 1px solid #C1C1C1; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #C1C1C1; + background: #ffe098; } QSlider::handle:vertical { - margin: 0 -4px; + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; } -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #daa116; - background-color: #daa116; +QSlider::handle:vertical:hover { + background: #ffb916; + border: 1px solid #C1C1C1; } -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #dcdcdc; - background-color: #dcdcdc; +QSlider::handle:vertical:focus { + border: 1px solid #ffe098; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #ffffff; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QLineEdit:hover { + border: 1px solid #ffb916; + color: black; +} + +QLineEdit:focus { + border: 2px solid #ffe098; +} + +QLineEdit:selected { + background-color: #ffb916; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #ffb916; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #ffb916; + border: 1px solid #C1C1C1; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #A3A3A3; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #A3A3A3; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #A3A3A3; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #A3A3A3; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #797979; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #797979; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #A0A0A0; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #A0A0A0; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #A0A0A0; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: black; + border-top: 4px solid #ffb916; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #ffb916;*/ + border: 0px solid #ffb916; + background-color: #ffb916; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: black; + border-bottom: 4px solid #ffb916; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #ffb916;*/ + border: 0px solid #ffb916; + background-color: #ffb916; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #F6F6F6; + margin-top: 2px; + + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #F6F6F6; + border: 0px solid #ffe098; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #ffb916; + background-color: #ffb916; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; + color: black; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #F6F6F6; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #F6F6F6; + border: 0px solid #ffe098; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #ffb916; + background-color: #ffb916; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; + color: black; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #F6F6F6; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #ffb916; + background-color: #ffb916; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #ffb916; + background-color: #ffb916; + color: black; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #ffb916;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #C1C1C1; + color: black; + gridline-color: #A3A3A3; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ } -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #ffffff; + color: #A3A3A3; } -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #ffb916; + color: black; } -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #ffe098; } -QToolBar > QPushButton:checked { - border: 1px solid #e3b64d; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #e3d8b9, stop:1 #e3b64d); +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #ffb916; } -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); - border: 1px solid #d2d2d2; - border-bottom-color: #c3c3c3; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #ffb916; } -QToolBar > QPushButton:checked:hover { - border-color: #e2ac2a; +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #A3A3A3; } -QToolBar > QPushButton:!checked:hover { +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #ffb916; +} + +QTableCornerButton::section { + background-color: #F6F6F6; + border: 1px transparent #C1C1C1; + border-radius: 0px; +} + +QTableView::item { color: black; - border-color: #b6b6b6; } - -QToolBar > QPushButton:checked:pressed { - background-color: #e3b64d; -} - -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(0,0,0,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(0,0,0,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #e3b64d; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolButton:checked { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,60); /* transparency for #e3b64d color */ -} - -QToolButton:checked:hover { - border: 1px solid #e3b64d; - background-color: rgba(124,171,249,80); /* transparency for #e3b64d color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ QTableView { - gridline-color: #d2d2d2; - selection-color: #624b14; - selection-background-color: #e3d8b9; + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ } -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; } -QTableView::item:disabled { - color: #e6e6e6; +QHeaderView:disabled { + background-color: #F6F6F6; + color: rgb(174, 174, 174); } -QTableView::item:selected { - color: #624b14; - border-color: #e3d8b9; /* same as focused background color */ - border-bottom-color: #e3b64d; /* same as focused border color */ +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #C1C1C1; + font-size: 13px; + font-weight: bold; } -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; } -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #C1C1C1; } -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); +QHeaderView::section::horizontal:disabled { + color: #A3A3A3; } -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #624b14; - selection-color: white; - selection-background-color: #daa116; - border-color: #e3d8b9; - background-color: #e3d8b9; +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #C1C1C1; } -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; +QHeaderView::section::vertical:disabled { + border-top: 2px solid #C1C1C1; } - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_dark.svg); } -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); } -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #A3A3A3; + border-radius: 4px; + background-color: transparent; } -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; +QToolBox:selected { + padding: 0px; + border: 0px solid #ffb916; } -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; +QToolBox::tab { + background-color: transparent; + border: 0px solid #A3A3A3; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; } -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:disabled { + color: #A3A3A3; } -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ +QToolBox::tab:selected { + background-color: #A3A3A3; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; } -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; +QToolBox::tab:selected:disabled { + background-color: #A3A3A3; + border-bottom: 0px solid #cccccc; + color: black; } -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: black; - background-color: #f5f5f5; +QToolBox::tab:!selected { + } -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; +QToolBox::tab:!selected:disabled { + background-color: #F6F6F6; } -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); +QToolBox::tab:hover { + background-color: #ffb916; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; } -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #C1C1C1; + background-color: #A3A3A3; + /* No frame */ + /* HLine */ + /* HLine */ } - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #C1C1C1; } -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #f6f6f6; } -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #F6F6F6; } +/* QSplitter -------------------------------------------------------------- -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; } -*[mandatoryField="true"] { background-color: cyan } +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #ffb916, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #ffb916, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #ffb916; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #ffb916; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C1C1C1; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #F6F6F6; + border-radius: 2px; + border: 1px solid #C1C1C1; + selection-background-color: #ffb916; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #ffb916; + color: black; +} + +QAbstractView:selected { + background: #ffb916; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; } /*================================================================================================== @@ -2289,32 +2580,32 @@ SKETCHER ==================================================================================================*/ Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(0,0,0,127); /* 50% opacity black */ + color : rgba(255,255,255,127); /* 50% opacity white */ } Gui--StatefulLabel[state="under_constrained"] { - color : rgba(0,0,0,255); /* Black */ + color : rgba(255,255,255,255); /* White */ } Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ + color : rgba(255,0,0,255); /* Red */ } Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ + color : rgba(255,69,0,255); /* Orange red */ } Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ + color : rgba(65,105,225,255); /* Royal blue */ } Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; } Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; } Gui--UrlLabel { - color : rgba(0,0,255,255); /* Blue */ - text-decoration : underline; + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; } diff --git a/src/Gui/Stylesheets/Light-pink.qss b/src/Gui/Stylesheets/Light-pink.qss new file mode 100644 index 0000000000..26e4aa793d --- /dev/null +++ b/src/Gui/Stylesheets/Light-pink.qss @@ -0,0 +1,2611 @@ +/* +ABOUT +============================================================================================================ +Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker + +KNOWN BUGS and TO DO +============================================================================================================ +Please, follow the link to get updated information: +https://forum.freecad.org/viewtopic.php?t=78431 + +INSTALLATION WHEN NECESSARY +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +============================================================================================================ +TO MODIFY USE THESE COLORS: + #f892ff + #ffbff3 + + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ + + +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/*hacks */ + +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; + +} +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #f892ff; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { + color: #ffffff; + background-color: #ACC8E5; /* same as focused background color */ +} + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QDockWidget, +QToolBar { + background-color: #F6F6F6; /* main background color */ +} + +QMdiArea { + background-image: url(qss:images_dark-light/background_freecad.svg); + background-position: center center; + background-repeat: no-repeat; +} +/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ +Gui--NavigationIndicatorGui--BlenderNavigationStyle { +/*QAction#a4 {*/ + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); +} +/*===== +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #F6F6F6; + border: 0px solid #C1C1C1; + padding: 0px; + color: black; + selection-background-color: #f892ff; + selection-color: black; +} + +QWidget:disabled { + color: #A3A3A3; + selection-background-color: #f892ff; + selection-color: #A3A3A3; +} + +QWidget::item:selected { + background-color: #f892ff +; +} + + /* Causes issue with colorselector. + QWidget::item:hover:!selected { + background-color: #f892ff; + }*/ + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + /*background-color: #f6f6f6;*/ + border: 0px solid #C1C1C1; + spacing: 0px; + padding: 1px; +} + +QMainWindow::separator:vertical:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #f892ff , stop:0.8 transparent); + /*background-color: #f892ff;*/ + image: url(qss:images_dark-light/splitter_vertical_dark.svg); +} + +QMainWindow::separator:horizontal:hover { + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #f892ff , stop:0.8 transparent); + /*background-color: #f892ff;*/ + image: url(qss:images_dark-light/splitter_horizontal_dark.svg); +} + +QMainWindow::separator:horizontal { + width: 4px; + margin-top: 0.1px; + margin-bottom: 0.1px; + /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ +} + +QMainWindow::separator:vertical { + height: 4px; + margin-left: 0.1px; + margin-right: 0.1px; + /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #ffffff; + color: black; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 0px solid #C1C1C1; + /* Fixes Spyder #9120, #9121 */ + background: #F6F6F6; + /* Fixes #205, black vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #F6F6F6; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + color: black; + padding: 0px; + outline: none; + border: 1px solid transparent; + background-color: transparent; +} + +QCheckBox:focus { + border: 1px solid #ffbff3; +} + +QCheckBox QWidget:disabled { + color: #A3A3A3; +} + +QCheckBox::indicator { + color: black; + background-color: #ffffff; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked { + background-color: #ffffff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + background-color: #f892ff; + image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QCheckBox::indicator:unchecked:disabled { + background-color: #F6F6F6; + image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QCheckBox::indicator:checked { + background-color: #ffffff; + /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { + background-color: #f892ff; +} + +QCheckBox::indicator:checked:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:indeterminate { + background-color: #ffffff; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:disabled { + background-color: #F6F6F6; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + background-color: #f892ff; /* QRadioButton has the same color */ +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + padding: 2px; + margin-top: 10px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: 6px; +} + +QGroupBox::indicator { + color: black; + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + width: 12px; + height: 12px; + border-radius:1px; +} + +QGroupBox::indicator:unchecked { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + background-color: #f892ff; +} + +QGroupBox::indicator:unchecked:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; +} + +QGroupBox::indicator:checked { + border: none; + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + background-color: #f892ff; +} + +QGroupBox::indicator:checked:disabled { + background-color: #f892ff; +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: transparent; + color: black; + border: none; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + outline: none; +} + +QRadioButton:focus { + border: 1px solid #ffbff3; +} + +QRadioButton:disabled { + background-color: #f6f6f6; + color: #BABABA; +} + +QRadioButton QWidget { + background-color: transparent; + color: black; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + background-color: #f6f6f6; + border: 1px solid #C1C1C1; + border-radius: 6px; + margin-left: 0px; + height: 11px; + width: 11px; +} + +QRadioButton::indicator:unchecked { + /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { + background-color: #f892ff; + border: 1px solid #f892ff; + border-radius: 6px; +} + +QRadioButton::indicator:unchecked:disabled { + /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + border: 1px solid #C1C1C1; +} + +QRadioButton::indicator:checked { + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { + background-color: #f892ff; + border: 1px solid #f892ff; + border-radius: 6px; + image:url(qss:images_dark-light/radiobutton_dark.svg); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + background-color: #f6f6f6; + image:url(qss:images_dark-light/radiobutton_light.svg); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #ffffff; + /*padding: 1px; + border: 0px solid rgba(0,0,0,140);*/ + color: black; + selection-background-color: #f892ff; +} + +QMenuBar:focus { + border: 1px solid #f892ff; +} + +QMenuBar::item { + background: transparent; + /*padding-left:5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px;*/ +} + +QMenuBar::item:selected { + background: transparent; + border: 0px solid #C1C1C1; + background-color: #f892ff; +} + +QMenuBar::item:pressed { + /*padding: 2px; + padding-left: 10px; + padding-right: 10px;*/ + border: 0px solid #C1C1C1; + background-color: #f892ff; + color: black; + /*margin-bottom: 0px; + padding-bottom: 0px;*/ +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border-bottom: 2px rgba(0,0,0,140); + border-right: 2px rgba(0,0,0,140); + color: black; + margin: 0px; + background-color: #ffffff; + selection-background-color: #f892ff; +} + +QMenu::separator { + height: 2px; + background-color: #f6f6f6; + margin-left: 30%; + margin-right: 30%; +} + +QMenu::item { + background-color: transparent; + padding: 2px 2px; /* make room for icon at left */ + /* Reserve space for selection border */ + border: 0px transparent #f6f6f6; +} + +QMenu::item:selected { + color: black; + background-color: #f892ff; +} + +QMenu::item:pressed { + background-color: #f892ff; +} + +QMenu::icon { + margin-left: 5px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + margin-left: 2px; + margin-right: 2px; + padding: 0px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::icon:checked { /* appearance of a 'checked' icon */ + background: #ffbff3; + margin-left: -5px; + border: 5px solid #ffbff3; + position: absolute; + border-radius: 0px; +} +QMenu::indicator:non-exclusive:unchecked { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + background: #f892ff; +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); +} + +QMenu::indicator:non-exclusive:checked { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + background: #f892ff; +} + +QMenu::indicator:non-exclusive:checked:disabled { + image:url(qss:images_dark-light/checkbox_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QMenu::indicator:exclusive:unchecked { + image: url(qss:images_dark-light/transparent.svg); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + background: #f892ff; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + background: #f892ff; + image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(qss:images_dark-light/radiobutton_dark.svg); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image:url(qss:images_dark-light/right_arrow_darker.svg); + height: 12px; + width: 12px; + background-color: transparent; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #ababab; + color: black; + border: 1px solid #C1C1C1; + border-radius: 2px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: transparent; + border: 0px solid #C1C1C1; + border-radius: 0px; + /* fix #159 */ + padding: 0px; + /* remove min-height to fix #244 */ + color: black; +} + +QAbstractScrollArea:disabled { + color: #BABABA; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- +text input field disabled!!!!*/ +QScrollArea QWidget:disabled { + background-color: #F6F6F6; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; + background-color: #F6F6F6; +} + +QScrollBar:vertical { + background-color: #F6F6F6; + width: 16px; + margin: 16px 2px 16px 2px; + border: 0px solid #C1C1C1; + border-radius: 1.9px; +} + +QScrollBar::handle:horizontal { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #f892ff; + border: #f6f6f6; + border-radius: 1.9px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #ffbff3; +} + +QScrollBar::handle:vertical { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + min-height: 8px; + border-radius: 1.9px; +} + +QScrollBar::handle:vertical:hover { + background-color: #f892ff; + border: #f6f6f6; + border-radius: 1.9px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #ffbff3; +} + +QScrollBar::add-line:horizontal { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(qss:images_dark-light/right_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + border-image: url(qss:images_dark-light/down_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(qss:images_dark-light/down_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/left_arrow_dark.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images_dark-light/left_arrow_darker.svg); + height: 9px; + width: 5px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 0px 0px 0px 0px; + border-image: url(qss:images_dark-light/up_arrow_dark.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(qss:images_dark-light/up_arrow_darker.svg); + height: 5px; + width: 9px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + + +report view +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #F6F6F6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QTextEdit:focus { + border: 1px solid #ffbff3; +} + +QTextEdit:selected { + background: #346792; + color: black; +} + +/* QPlainTextEdit --------------------------------------------------------- +Python +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #f6f6f6; + color: black; + border-radius: 1.9px; + border: 0px solid #C1C1C1; +} + +QPlainTextEdit:focus { + border: 1px solid #ffbff3; +} + +QPlainTextEdit:selected { + background: #f892ff; + color: black; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image:url(qss:images_dark-light/sizegrip_dark.svg); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 0px; + border: 0px solid #C1C1C1; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #F6F6F6; + border-bottom: 0px solid rgba(0,0,0,120); + padding: 1px; + font-weight: bold; + spacing: 1px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #F6F6F6; +} + +QToolBar::handle:horizontal { + width: 8px; + margin: 3px 3px; + background-position: top right; + background-repeat: repeat-y; + background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); +} + +QToolBar::handle:vertical { + height: 8px; + margin: 3px 3px; + background-position: left bottom; + background-repeat: repeat-x; + background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); +} + +QToolBar::separator:horizontal { + width: 2px; + margin: 4px 4px; + background-color: transparent; +} + +QToolBar::separator:vertical { + height: 2px; + margin: 4px 4px; + background-color: transparent; +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ +QToolButton#qt_toolbar_ext_button { +margin: 0px; +padding: 0px; +background-color: #A3A3A3; +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-repeat: none; +background-position: center center; +} + +QToolButton#qt_toolbar_ext_button:hover { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +background-color: #f892ff; +} + +QToolButton#qt_toolbar_ext_button:on { +/*background-image: url(qss:images_dark-light/more_dark.svg);*/ +border-color: #f6f6f6; +background-color: #f892ff; +} + + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox, +QSpinBox { + background-color: #ffffff; + border: 1px solid transparent; + color: black; + /* This fixes 103, 111 */ + /* padding-top: 0px; + /* This fixes 103, 111 */ + /*padding-bottom: 0px; + /*padding-left: 4px; + /*padding-right: 4px; + border-radius: 1.9px;*/ + min-height: 1.7em; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: top right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-bottom: -1px;*/ +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); + /* height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::up-arrow:hover { + image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QAbstractSpinBox:down-button { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-origin: border; + subcontrol-position: bottom right; + border: 1px solid transparent; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + /*margin: 1px;*/ + /*width: 12px; + /*margin-top: -1px;*/ +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + /*height: 8px; + width: 8px;*/ +} + +QAbstractSpinBox::down-arrow:hover { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QAbstractSpinBox:hover { + /*border: 1px solid #f892ff; + color: black;*/ +} + +QAbstractSpinBox:focus { + border: 1px solid #ffbff3; +} + +QAbstractSpinBox:selected { + background: #ffbff3; + /*color: black;*/ +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: transparent; + border: 0px solid #C1C1C1; + padding: 2px; + margin: 0px; + color: black; +} + +QLabel:disabled { + background-color: transparent; + border: 0px solid #C1C1C1; + color: #A3A3A3; +} + +QLabel[haslink="true"] { + color: orange; +} + + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; +} + +QTextBrowser:disabled { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #f892ff; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: transparent; + border: 0px solid #f892ff; + color: black; + border-radius: 0px; +} + +QGraphicsView:disabled { + background-color: #ffffff; + border: 0px solid #C1C1C1; + color: #A3A3A3; + border-radius: 0px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 0px solid #ff00f7; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C1C1C1; + border-radius: 1.9px; +} + +QCalendarWidget:disabled { + background-color: #BABABA; + color: #A3A3A3; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #1aff00; + color: black; +} + +QLCDNumber:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #A3A3A3; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #ffffff; + border: 1px solid #C1C1C1; + color: #A3A3A3; + border-radius: 1.9px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #f892ff; + color: #F6F6F6; + border-radius: 1.9px; +} + +QProgressBar::chunk:disabled { + background-color: #ffffff; + color: #f6f6f6; + border-radius: 1.9px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #EDEDED; + border-bottom-color: #AFAFAF; /* simulates shadow under the button */ + border-radius: 4px; + padding: 2px; +} + +QPushButton:disabled { + background-color: #F6F6F6; + color: #A3A3A3; + +} + +QPushButton:checked { + background-color: #f892ff; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #f892ff; + color: #f6f6f6; + outline: none; +} + +QPushButton:checked:selected { + background: #f892ff; +} + +QPushButton:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f892ff , stop:1 #ffbff3); + color: black; +} + +QPushButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ffbff3, stop:1 #f892ff ); +} + +QPushButton:selected { + background: #ffbff3; + color: black; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: transparent; + color: black; + border-radius: 1px; + padding: 0px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: transparent; + color: #A3A3A3; + border-radius: 1px; + padding: 0px; +} + +QToolButton:checked { + background-color: #f892ff; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #b65555; + color: #A3A3A3; + border-radius: 1.9px; + padding: 0px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #f892ff; + color: black; +} + +QToolButton:checked:pressed { + background-color: #f892ff; +} + +QToolButton:checked:selected { + background: #ffbff3; + color: black; +} + +QToolButton:hover { + background-color: #f892ff; + color: black; +} + +QToolButton:pressed { + background-color: #ffbff3; +} + +QToolButton:selected { + background: #f892ff; + color: black; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} +QToolButton[popupMode="0"]::menu-button { + border: none; +} + +QToolButton[popupMode="0"]::menu-button:hover { + border: none; + border-left: 2px solid #fe0000; + border-radius: 0px; +} +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 2px solid #e5ff00; + border-radius: 0px; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 20px; +} + +QToolButton::menu-button { + border-bottom: 0px solid #b2b2b2; + border-radius: 2px; + /* 16px width + 4px for border = 20px allocated above */ + width: 1.6ex; + padding: 2px; + border-radius: 2px; + border: 0px #000000; +} + +QToolButton::menu-button:hover { + /* background: rgba(0, 0, 0, 0.5);*/ + +} + +QToolButton::menu-button:checked:hover { + /* background: rgba(0, 0, 0, 0.5);*/ +} + +QToolButton::menu-indicator { + /* Exclude a shift for better image */ + subcontrol-position: right bottom; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(qss:images_dark-light/more_arrow_dark.svg); + width: 1.5ex; + height: 1.5ex; + subcontrol-position: right bottom; + background: transparent; +} +QToolButton::menu-arrow:open { + subcontrol-position: right bottom; + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} +QToolButton::menu-arrow:hover { + width: 1.7ex; + height: 1.7ex; + image: url(qss:images_dark-light/more_arrow_dark.svg); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C1C1C1; + color: black; + border-radius: 1.9px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #A3A3A3; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid transparent; + background: #ffffff; + border-radius: 2px; + selection-background-color: #f892ff; + padding-left: 2px; + padding-right: 2px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} +QComboBox:editable { + background: #ffffff; +} +QComboBox QAbstractItemView { + border: 0px solid #C1C1C1; + border-radius: 0px; + background-color: #ffffff; + selection-background-color: #f892ff; +} + +QComboBox QAbstractItemView:hover { + background-color:#ffffff; + color: black; +} + +QComboBox QAbstractItemView:selected { + background: #f892ff; + color: black; +} + +QComboBox QAbstractItemView:alternate { + background: #f6f6f6; +} + +QComboBox:disabled { + background-color: #F6F6F6; + color: #BABABA; +} + +QComboBox:hover { + /*background-color: #f892ff;*/ + border: 1px solid #f892ff; +} + +QComboBox:focus { + border: 1px solid #ffbff3; +} + +QComboBox:on { + selection-background-color: #ffbff3; +} + +QComboBox::indicator { + border: none; + border-radius: 0px; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: #f892ff; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #f6f6f6; +} + +QComboBox::item { + /* Remove to fix #282, #285 and MR #288*/ + /*&:checked { + font-weight: bold; + } + + &:selected { + border: 0px solid transparent; + } + */ +} + +QComboBox::item:alternate { + background: #f6f6f6; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + subcontrol-position: top right; + width: 14px; + border-left: 1px solid transparent; +} +QComboBox::drop-down:hover { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f892ff , stop:1 #ffbff3); +} + +QComboBox::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 10px; + width: 10px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: black; + qproperty-groupBackground: #f6f6f6; + border: 0px solid #C1C1C1; + +} + +/* Action group */ +QFrame[class="panel"] { +background-color: transparent; /* temporal (transparent background) */ + +} + +QSint--ActionGroup { +padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { +border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { +border-top: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); +border-top-left-radius: 3px; +border-top-right-radius: 3px; +border-bottom-left-radius: 0px; +border-bottom-right-radius: 0px; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { +background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f892ff , stop:1 #ffbff3); +} + +QSint--ActionGroup QToolButton[class="header"] { +color: black; /* Task Panel Header text color */ +text-align: left; +font-weight: bold; +border: none; +margin: 0px; +padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_dark.svg); +background-repeat: none; +background-position: center center; +padding: 0px; +margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { +background-color: transparent; +background-image: url(qss:images_dark-light/up_arrow_darker.svg); +} + +QSint--ActionGroup QFrame[class="content"] { +background-color: transparent; /* Task Panel background color */ +margin: 0px; +padding: 0px; +border-bottom: 1px solid #C1C1C1; +border-left: 1px solid #C1C1C1; +border-right: 1px solid #C1C1C1; +border-top-left-radius: 0px; +border-top-right-radius: 0px; +border-bottom-left-radius: 3px; +border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { +background-color: #F6F6F6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { +border-bottom-color: #f892ff; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { +border-top-color: #f892ff; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { +border-right-color: #f892ff; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { +border-left-color: #f892ff; /* same as Task Panel background color */ +} + +/* Fix for buttons with icons that showed cropped (still not happy with result) */ +QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { +padding: 2px; /* bigger padding crops text and icons... */ +margin: 0px; +} + +/* Fix for lists inside task panels */ /* sketcher constraints list */ +QSint--ActionGroup QFrame[class="content"] QTreeView, +QSint--ActionGroup QFrame[class="content"] QListView, +QSint--ActionGroup QFrame[class="content"] QTableView { +color: black; +background-color: #ffffff; +} + + +/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ +QSint--ActionGroup QFrame[class="content"] QToolButton { + color: black; + text-align: center; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + border: 0px solid #C1C1C1; + padding: 1px 1px; /* different than regular QPushButton */ + margin: 0px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 1px; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f892ff , stop:1 #ffbff3); + +} +QSint--ActionGroup QFrame[class="content"] QToolButton:focus { + border: 1px solid #ffbff3 +; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, +QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { + color: #A3A3A3; + background-color: #ffffff; +} + +QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f892ff , stop:1 #ffbff3); + +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #F6F6F6; +} + +QSlider:focus { + /*border: 1px solid #ffbff3;*/ +} + +QSlider::groove:horizontal { + background: #F6F6F6; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::groove:vertical { + background: #f892ff; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical { + background: #f892ff; + border: 1px solid #C1C1C1; + width: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::add-page:vertical :disabled { + background: #f6f6f6; +} + +QSlider::sub-page:horizontal { + background: #f892ff; + border: 1px solid #C1C1C1; + height: 4px; + margin: 0px; + border-radius: 1.9px; +} + +QSlider::sub-page:horizontal:disabled { + background: #f892ff; +} + +QSlider::handle:horizontal { + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: -4px 0px; + border-radius: 6px; +} + +QSlider::handle:horizontal:hover { + background: #f892ff; + border: 1px solid #C1C1C1; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #C1C1C1; + background: #ffbff3; +} + +QSlider::handle:vertical { + background: #C1C1C1; + border: 1px solid #C1C1C1; + width: 10px; + height: 8px; + margin: 0px -4px; + border-radius: 6px; +} + +QSlider::handle:vertical:hover { + background: #f892ff; + border: 1px solid #C1C1C1; +} + +QSlider::handle:vertical:focus { + border: 1px solid #ffbff3; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #ffffff; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 2px; + color: black; +} + +QLineEdit:disabled { + background-color: #F6F6F6; + color: #A3A3A3; +} + +QLineEdit:hover { + border: 1px solid #f892ff; + color: black; +} + +QLineEdit:focus { + border: 2px solid #ffbff3; +} + +QLineEdit:selected { + background-color: #f892ff; + color: black; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #f892ff; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 0px; +} + +QTabWidget::pane { + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #f892ff; + border: 1px solid #C1C1C1; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #A3A3A3; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #A3A3A3; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #A3A3A3; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #A3A3A3; +} +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 1px; + image: url(qss:images_dark-light/close_dark.svg); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); + /*background-color: rgba(255, 0, 0, 0.3);*/ +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(qss:images_dark-light/close_.svg); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ + padding: 4px; +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + color: #797979; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + color: #797979; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + color: #A0A0A0; + +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + color: #A0A0A0; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + color: #A0A0A0; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + color: #A0A0A0; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + color: #A0A0A0; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + color: #A0A0A0; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + color: black; + border-top: 4px solid #f892ff; /* selection color */ + border-bottom: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + } + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + /*border: 1px solid #f892ff;*/ + border: 0px solid #f892ff; + background-color: #f892ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + color: #A0A0A0; + margin-left: 0px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-top: 1px solid #A3A3A3; /* same as tab content background color */ + border-radius: 0px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + color: black; + border-bottom: 4px solid #f892ff; /* selection color */ + border-top: 1px solid transparent; /* same as tab content background color */ + border-left: 1px solid #A3A3A3; + border-right: 1px solid #A3A3A3; + +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { +/*border: 1px solid #f892ff;*/ + border: 0px solid #f892ff; + background-color: #f892ff; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; + color: black; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #F6F6F6; + margin-top: 2px; + + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #F6F6F6; + border: 0px solid #ffbff3; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 0px solid #f892ff; + background-color: #f892ff; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; + color: black; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #F6F6F6; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + min-height: 5px; + border: 10px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #F6F6F6; + border: 0px solid #ffbff3; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 0px solid #f892ff; + background-color: #f892ff; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; + color: black; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #F6F6F6; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + border: 0px solid #f892ff; + background-color: #f892ff; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 0px solid #f892ff; + background-color: #f892ff; + color: black; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images_dark-light/left_arrow_darker.svg); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images_dark-light/right_arrow_darker.svg); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + background-color: #F6F6F6; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + titlebar-close-icon: url(qss:images_dark-light/transparent.svg); + titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + text-align: center; + font-weight: bold; +} + +QDockWidget::close-button { + icon-size: 10px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::close-button:hover { + image: url(qss:images_dark-light/close_red.svg); +} + +QDockWidget::close-button:pressed { + image: url(qss:images_dark-light/close_dark.svg); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(qss:images_dark-light/undock_dark.svg); +} + +QDockWidget::float-button:hover { + /*background-color: #f892ff;*/ + image: url(qss:images_dark-light/undock_blue.svg); +} + +QDockWidget::float-button:pressed { + image: url(qss:images_dark-light/undock_dark.svg); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; +} + +QTreeView::branch:has-children:!has-siblings:closed { + border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(qss:images_dark-light/checkbox_dark.svg); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(qss:images_dark-light/checkbox_light_hover.svg); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ + border: 0px solid #C1C1C1; + color: black; + gridline-color: #A3A3A3; + border-radius: 0px; +} + +QTableView, +QListView { + background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ +} + + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #ffffff; + color: #A3A3A3; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #f892ff; + color: black; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #ffbff3; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #f892ff; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #f892ff; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: black; + background-color: #BABABA; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: black; + background-color: #f892ff; +} + +QTableCornerButton::section { + background-color: #F6F6F6; + border: 1px transparent #C1C1C1; + border-radius: 0px; +} + +QTableView::item { + color: black; +} +QTableView { + /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ + /*qproperty-aliasBgColor: #f700ff;*/ +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: transparent; + text-align: center; +} + +QHeaderView:disabled { + background-color: #F6F6F6; + color: rgb(174, 174, 174); +} + +QHeaderView::section { + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); + color: black; + border: 1px solid #C1C1C1; + font-size: 13px; + font-weight: bold; +} + +QHeaderView::section::horizontal { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 5px; + padding-right: 0px; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 0px solid #C1C1C1; +} + +QHeaderView::section::horizontal:disabled { + color: #BABABA; +} + +QHeaderView::section::vertical { + padding-top: 1px; + padding-bottom: 0; + padding-left: 1px; + padding-right: 0px; + border-top: 2px solid #C1C1C1; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 2px solid #C1C1C1; +} + +QHeaderView::section::vertical:disabled { + border-top: 2px solid #C1C1C1; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/down_arrow_dark.svg); +} + +QHeaderView::up-arrow { + background-color: transparent; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(qss:images_dark-light/up_arrow_dark.svg); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox +used in PATH + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 1px solid #A3A3A3; + border-radius: 4px; + background-color: transparent; +} + +QToolBox:selected { + padding: 0px; + border: 0px solid #f892ff; +} + +QToolBox::tab { + background-color: transparent; + border: 0px solid #A3A3A3; + color: black; + background-image: url(qss:images_dark-light/down_arrow_darker.svg); + background-repeat: none; + background-position: center left; +} + +QToolBox::tab:disabled { + color: #A3A3A3; +} + +QToolBox::tab:selected { + background-color: #A3A3A3; + background-image: url(qss:images_dark-light/transparent.svg); + padding-right: 5px; + background-repeat: none; +} + +QToolBox::tab:selected:disabled { + background-color: #A3A3A3; + border-bottom: 0px solid #cccccc; + color: black; +} + +QToolBox::tab:!selected { + +} + +QToolBox::tab:!selected:disabled { + background-color: #F6F6F6; +} + +QToolBox::tab:hover { + background-color: #f892ff; + } + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: transparent; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 0px; + border: 0px solid #C1C1C1; + background-color: #A3A3A3; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 1.9px; + border: 1px solid #C1C1C1; +} + +.QFrame[frameShape="4"] { + max-height: 1px; + border: none; + background-color: #f6f6f6; +} + +.QFrame[frameShape="5"] { + max-width: 1px; + border: none; + background-color: #F6F6F6; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +---------------------------------------------------------------------------*/ +QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ + +} + +QSplitter::handle { + margin: 0px 0px; + padding: 0px; +} + +QSplitter::handle:horizontal { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + width: 1px; +} + +QSplitter::handle:vertical { + background-image: none; + background-position: center center; + background-repeat: none; + margin: 2px 2px 2px 2px; + height: 1px; +} +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 #f892ff, stop:0.8 transparent); + background-position: center center; + background-repeat: none; + } + +QSplitter::handle:vertical:hover { + background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); + background-position: center center; + background-repeat: none; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 #f892ff, stop:0.8 transparent); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #f892ff; + border-style: solid; + border: 1px solid #C1C1C1; + border-radius: 1.9px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #f892ff; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C1C1C1; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(qss:images_dark-light/down_arrow_darker.svg); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #F6F6F6; + border-radius: 2px; + border: 1px solid #C1C1C1; + selection-background-color: #f892ff; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #f892ff; + color: black; +} + +QAbstractView:selected { + background: #f892ff; + color: black; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} + +/*================================================================================================== +SKETCHER +==================================================================================================*/ + +Gui--StatefulLabel[state="empty_sketch"] { + color : rgba(255,255,255,127); /* 50% opacity white */ +} +Gui--StatefulLabel[state="under_constrained"] { + color : rgba(255,255,255,255); /* White */ +} +Gui--StatefulLabel[state="conflicting_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="malformed_constraints"] { + color : rgba(255,0,0,255); /* Red */ +} +Gui--StatefulLabel[state="redundant_constraints"] { + color : rgba(255,69,0,255); /* Orange red */ +} +Gui--StatefulLabel[state="partially_redundant_constraints"] { + color : rgba(65,105,225,255); /* Royal blue */ +} +Gui--StatefulLabel[state="solver_failed"] { + color : rgba(255,0,0,255); /* Red */ + font-weight: bold; +} +Gui--StatefulLabel[state="fully_constrained"] { + color : rgba(0,255,0,255); /* Green */ + font-weight: bold; +} +Gui--UrlLabel { + color : rgba(0,91,255,255); /* Deep sky blue */ + text-decoration : underline; +} diff --git a/src/Gui/Stylesheets/ProDark.qss b/src/Gui/Stylesheets/ProDark.qss index a5d6688ef4..0cc6d9d5b9 100644 --- a/src/Gui/Stylesheets/ProDark.qss +++ b/src/Gui/Stylesheets/ProDark.qss @@ -2554,6 +2554,6 @@ Gui--StatefulLabel[state="fully_constrained"] { /*================================================================================================== PREFERENCES PACKS ==================================================================================================*/ -Gui--Dialog--DlgGeneralImp > QGroupBox > QGroupBox > QTableWidget > QWidget > QPushButton { +Gui--Dialog--DlgSettingsGeneral > QGroupBox > QGroupBox > QTableWidget > QWidget > QPushButton { margin: 0px; } diff --git a/src/Gui/Stylesheets/images_dark-light/background_freecad.svg b/src/Gui/Stylesheets/images_dark-light/background_freecad.svg index 71cbb0b7b6..36e0a90441 100644 --- a/src/Gui/Stylesheets/images_dark-light/background_freecad.svg +++ b/src/Gui/Stylesheets/images_dark-light/background_freecad.svg @@ -2,21 +2,17 @@ + viewBox="0 0 200 187" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - + xlink:href="#linearGradient3864" /> - + xlink:href="#linearGradient3682" /> - - - @@ -181,7 +109,6 @@ image/svg+xml - Pablo Gil @@ -197,8 +124,6 @@ + style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3817);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:17.6867981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" /> + style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3661);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:17.6867981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" /> diff --git a/src/Gui/Stylesheets/images_dark-light/background_freecad_dark.svg b/src/Gui/Stylesheets/images_dark-light/background_freecad_dark.svg index 3a065cf0a6..afe8f4147c 100644 --- a/src/Gui/Stylesheets/images_dark-light/background_freecad_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/background_freecad_dark.svg @@ -2,21 +2,17 @@ + viewBox="0 0 200 187" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - @@ -159,7 +89,6 @@ image/svg+xml - Pablo Gil @@ -175,16 +104,12 @@ + id="rect3663" /> + viewBox="0 0 200 187" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - - - - @@ -159,7 +89,6 @@ image/svg+xml - Pablo Gil @@ -175,16 +104,12 @@ + id="rect3663" /> + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,23 +37,16 @@ + id="path1536" /> + id="layer1-4"> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_end_closed_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_end_closed_light.svg index 157066aa27..47d47dbf26 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_end_closed_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_end_closed_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,21 +37,15 @@ + id="path1536" /> + id="path2474" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_end_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_end_dark.svg index ff6154085a..34d262cc6a 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_end_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_end_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,15 +37,11 @@ + id="path1536" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_end_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_end_light.svg index 2c589e7423..00875a54a3 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_end_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_end_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,15 +37,11 @@ + id="path1536" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_end_open_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_end_open_dark.svg index ffcf76a567..7e3a634f3b 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_end_open_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_end_open_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,23 +37,16 @@ + id="path1536" /> + id="layer1-4"> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_end_open_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_end_open_light.svg index e384d064a1..4f801b526e 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_end_open_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_end_open_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,21 +37,15 @@ + id="path1536" /> + id="path2474" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_closed_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_closed_dark.svg index a1eeefc0b9..cd5cef38d7 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_closed_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_closed_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,25 +37,19 @@ + id="path1730" /> + id="path1728" /> + id="path2474" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_closed_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_closed_light.svg index 01a6e6d71c..7a4259e4e9 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_closed_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_closed_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,25 +37,17 @@ + id="path1536" /> + id="path2474" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_dark.svg index 0a5dc08e1d..03e926d7bd 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,19 +37,15 @@ + id="path1730" /> + id="path1728" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_light.svg index 2e843763e0..f72cc6c755 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,19 +37,13 @@ + id="path1536" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_open_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_open_dark.svg index 265aaefb34..e493d7937e 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_open_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_open_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,32 +37,24 @@ + id="layer1-4"> + id="layer1-6"> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_more_open_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_more_open_light.svg index 689f1c044f..9e0802f852 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_more_open_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_more_open_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,25 +37,17 @@ + id="path1536" /> + id="path2474" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_vline_dark.svg b/src/Gui/Stylesheets/images_dark-light/branch_vline_dark.svg index 9865088d90..fcb6f70e45 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_vline_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_vline_dark.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,14 +37,11 @@ + id="path1728" /> diff --git a/src/Gui/Stylesheets/images_dark-light/branch_vline_light.svg b/src/Gui/Stylesheets/images_dark-light/branch_vline_light.svg index c9118b390d..45ec3c3221 100644 --- a/src/Gui/Stylesheets/images_dark-light/branch_vline_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/branch_vline_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 20.000002 20.000001" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,15 +37,11 @@ + id="path1536" /> diff --git a/src/Gui/Stylesheets/images_dark-light/check_dark.svg b/src/Gui/Stylesheets/images_dark-light/check_dark.svg new file mode 100644 index 0000000000..e59cd85528 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/check_dark.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/check_light.svg b/src/Gui/Stylesheets/images_dark-light/check_light.svg new file mode 100644 index 0000000000..c442597aad --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/check_light.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_checked_disabled.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_checked_disabled.svg new file mode 100644 index 0000000000..cc0d345092 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_checked_disabled.svg @@ -0,0 +1,60 @@ + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_dark.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_dark.svg index 8b2149ed5d..ac3751b5d9 100644 --- a/src/Gui/Stylesheets/images_dark-light/checkbox_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_dark.svg @@ -44,8 +44,17 @@ d="m 1081.0663,345.09799 3.9999,4 12.0001,-12" style="opacity:1;vector-effect:none;fill:none;fill-opacity:0.60093898;stroke:#1b0909;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.11764706" /> + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_dark_hover.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_dark_hover.svg new file mode 100644 index 0000000000..eb6d84d489 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_dark_hover.svg @@ -0,0 +1,60 @@ + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_dark.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_dark.svg index b36e1f836a..f92a4a1e31 100644 --- a/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_dark.svg +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_dark.svg @@ -6,11 +6,7 @@ height="30" id="svg2" version="1.1" - inkscape:version="1.2-beta (1b65182ce9, 2022-04-05)" - sodipodi:docname="checkbox_indeterminate_dark.svg" viewBox="0 0 30 29.999999" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" @@ -18,52 +14,6 @@ xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -87,19 +37,24 @@ + id="path7899" /> + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_light.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_light.svg index 4e168c64fe..de3cc8021c 100644 --- a/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_indeterminate_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 30 29.999999" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,19 +37,24 @@ + id="path7899" /> + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_light.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_light.svg index 86dd9da58f..9a4cb6609f 100644 --- a/src/Gui/Stylesheets/images_dark-light/checkbox_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 30 29.999999" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,21 +37,24 @@ + id="path7899" /> + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_light_hover.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_light_hover.svg new file mode 100644 index 0000000000..6ef092ab06 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_light_hover.svg @@ -0,0 +1,60 @@ + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_dark.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_dark.svg new file mode 100644 index 0000000000..8b9fa578c8 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_disabled.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_disabled.svg new file mode 100644 index 0000000000..eec21243d3 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_disabled.svg @@ -0,0 +1,52 @@ + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_dark.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_dark.svg new file mode 100644 index 0000000000..186815581c --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_dark.svg @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_light.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_light.svg new file mode 100644 index 0000000000..fbbb75d691 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_hover_light.svg @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_light.svg b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_light.svg new file mode 100644 index 0000000000..09098bfaad --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/checkbox_unchecked_light.svg @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/close_light.svg b/src/Gui/Stylesheets/images_dark-light/close_light.svg index 557e5a4c6d..849b7c9b09 100644 --- a/src/Gui/Stylesheets/images_dark-light/close_light.svg +++ b/src/Gui/Stylesheets/images_dark-light/close_light.svg @@ -2,66 +2,18 @@ + viewBox="0 0 14 14" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> - - - @@ -70,7 +22,6 @@ image/svg+xml - Pablo Gil @@ -86,8 +37,6 @@ + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/more_arrow_dark.svg b/src/Gui/Stylesheets/images_dark-light/more_arrow_dark.svg new file mode 100644 index 0000000000..6316a4b76e --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/more_arrow_dark.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/more_arrow_light.svg b/src/Gui/Stylesheets/images_dark-light/more_arrow_light.svg new file mode 100644 index 0000000000..57bf837cc0 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/more_arrow_light.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/images_dark-light/undock_blue.svg b/src/Gui/Stylesheets/images_dark-light/undock_blue.svg new file mode 100644 index 0000000000..7fa802ad90 --- /dev/null +++ b/src/Gui/Stylesheets/images_dark-light/undock_blue.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + + + + diff --git a/src/Gui/SyntaxHighlighter.h b/src/Gui/SyntaxHighlighter.h index b510bfcc5d..8d208a4b89 100644 --- a/src/Gui/SyntaxHighlighter.h +++ b/src/Gui/SyntaxHighlighter.h @@ -39,7 +39,7 @@ class GuiExport SyntaxHighlighter : public QSyntaxHighlighter { public: SyntaxHighlighter(QObject* parent); - virtual ~SyntaxHighlighter(); + ~SyntaxHighlighter() override; int maximumUserState() const; diff --git a/src/Gui/TaskElementColors.cpp b/src/Gui/TaskElementColors.cpp index 17b649e1b1..a0a12969bc 100644 --- a/src/Gui/TaskElementColors.cpp +++ b/src/Gui/TaskElementColors.cpp @@ -47,7 +47,7 @@ FC_LOG_LEVEL_INIT("Gui", true, true) using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; class ElementColors::Private: public Gui::SelectionGate { @@ -332,10 +332,12 @@ ElementColors::ElementColors(ViewProviderDocumentObject* vp, bool noHide) Selection().addSelectionGate(d, ResolveMode::NoResolve); - d->connectDelDoc = Application::Instance->signalDeleteDocument.connect(boost::bind - (&ElementColors::slotDeleteDocument, this, bp::_1)); - d->connectDelObj = Application::Instance->signalDeletedObject.connect(boost::bind - (&ElementColors::slotDeleteObject, this, bp::_1)); + //NOLINTBEGIN + d->connectDelDoc = Application::Instance->signalDeleteDocument.connect(std::bind + (&ElementColors::slotDeleteDocument, this, sp::_1)); + d->connectDelObj = Application::Instance->signalDeletedObject.connect(std::bind + (&ElementColors::slotDeleteObject, this, sp::_1)); + //NOLINTEND d->populate(); } diff --git a/src/Gui/TaskView/TaskAppearance.cpp b/src/Gui/TaskView/TaskAppearance.cpp index 695686ef54..cecbcb8af4 100644 --- a/src/Gui/TaskView/TaskAppearance.cpp +++ b/src/Gui/TaskView/TaskAppearance.cpp @@ -35,7 +35,7 @@ using namespace Gui::TaskView; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR Gui::TaskView::TaskAppearance */ @@ -55,9 +55,11 @@ TaskAppearance::TaskAppearance(QWidget *parent) this->groupLayout()->addWidget(proxy); Gui::Selection().Attach(this); + //NOLINTBEGIN this->connectChangedObject = - Gui::Application::Instance->signalChangedObject.connect(boost::bind - (&TaskAppearance::slotChangedObject, this, bp::_1, bp::_2)); + Gui::Application::Instance->signalChangedObject.connect(std::bind + (&TaskAppearance::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND } TaskAppearance::~TaskAppearance() diff --git a/src/Gui/TaskView/TaskImage.h b/src/Gui/TaskView/TaskImage.h index abbc8107e6..720452238a 100644 --- a/src/Gui/TaskView/TaskImage.h +++ b/src/Gui/TaskView/TaskImage.h @@ -50,9 +50,9 @@ class InteractiveScale : public QObject public: explicit InteractiveScale(View3DInventorViewer* view, ViewProvider* vp, Base::Placement plc); - ~InteractiveScale(); + ~InteractiveScale() override; - bool eventFilter(QObject* object, QEvent* event); + bool eventFilter(QObject* object, QEvent* event) override; void activate(); void deactivate(); bool isActive() const { diff --git a/src/Gui/TaskView/TaskView.cpp b/src/Gui/TaskView/TaskView.cpp index 50e951c22b..97e56f92e8 100644 --- a/src/Gui/TaskView/TaskView.cpp +++ b/src/Gui/TaskView/TaskView.cpp @@ -48,7 +48,7 @@ using namespace Gui::TaskView; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; //************************************************************************** @@ -293,18 +293,20 @@ TaskView::TaskView(QWidget *parent) Gui::Selection().Attach(this); - connectApplicationActiveDocument = + //NOLINTBEGIN + connectApplicationActiveDocument = App::GetApplication().signalActiveDocument.connect - (boost::bind(&Gui::TaskView::TaskView::slotActiveDocument, this, bp::_1)); + (std::bind(&Gui::TaskView::TaskView::slotActiveDocument, this, sp::_1)); connectApplicationDeleteDocument = App::GetApplication().signalDeletedDocument.connect - (boost::bind(&Gui::TaskView::TaskView::slotDeletedDocument, this)); + (std::bind(&Gui::TaskView::TaskView::slotDeletedDocument, this)); connectApplicationUndoDocument = App::GetApplication().signalUndoDocument.connect - (boost::bind(&Gui::TaskView::TaskView::slotUndoDocument, this, bp::_1)); + (std::bind(&Gui::TaskView::TaskView::slotUndoDocument, this, sp::_1)); connectApplicationRedoDocument = App::GetApplication().signalRedoDocument.connect - (boost::bind(&Gui::TaskView::TaskView::slotRedoDocument, this, bp::_1)); + (std::bind(&Gui::TaskView::TaskView::slotRedoDocument, this, sp::_1)); + //NOLINTEND } TaskView::~TaskView() @@ -401,7 +403,9 @@ void TaskView::keyPressEvent(QKeyEvent* ke) func->setAutoDelete(true); Gui::Document* doc = Gui::Application::Instance->getDocument(ActiveDialog->getDocumentName().c_str()); if (doc) { - func->setFunction(std::bind(&Document::resetEdit, doc)); + func->setFunction([doc](){ + doc->resetEdit(); + }); func->singleShot(0); } } diff --git a/src/Gui/TextDocumentEditorView.cpp b/src/Gui/TextDocumentEditorView.cpp index ed8ccd9e80..3e613d2f81 100644 --- a/src/Gui/TextDocumentEditorView.cpp +++ b/src/Gui/TextDocumentEditorView.cpp @@ -107,10 +107,12 @@ void TextDocumentEditorView::setupEditor() void TextDocumentEditorView::setupConnection() { + //NOLINTBEGIN textConnection = textDocument->connectText( - boost::bind(&TextDocumentEditorView::sourceChanged, this)); + std::bind(&TextDocumentEditorView::sourceChanged, this)); labelConnection = textDocument->connectLabel( - boost::bind(&TextDocumentEditorView::labelChanged, this)); + std::bind(&TextDocumentEditorView::labelChanged, this)); + //NOLINTEND } void TextDocumentEditorView::sourceChanged() diff --git a/src/Gui/ToolBox.h b/src/Gui/ToolBox.h index 9ea0bb97d9..586fbb3d2b 100644 --- a/src/Gui/ToolBox.h +++ b/src/Gui/ToolBox.h @@ -23,6 +23,9 @@ #ifndef GUI_DOCKWND_TOOLBOX_H #define GUI_DOCKWND_TOOLBOX_H +#include +#include + class QToolBox; namespace Gui @@ -57,7 +60,7 @@ class GuiExport ToolBox : public QWidget public: ToolBox( QWidget *parent=nullptr ); - virtual ~ToolBox(); + ~ToolBox() override; int addItem ( QWidget * w, const QString & label ); int addItem ( QWidget * item, const QIcon & iconSet, const QString & label ); @@ -90,7 +93,7 @@ public Q_SLOTS: void setCurrentWidget ( QWidget * item ); protected: - void changeEvent(QEvent *e); + void changeEvent(QEvent *e) override; Q_SIGNALS: /** This signal is emitted when the current item changed. diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index 9195dcba8e..fb45913e61 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -82,7 +82,7 @@ FC_LOG_LEVEL_INIT("Tree", false, true, true) #define TREE_TRACE(_msg) _TREE_PRINT(FC_LOGLEVEL_TRACE,Notify,_msg) using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; ///////////////////////////////////////////////////////////////////////////////// @@ -220,13 +220,15 @@ public: DocumentObjectData(DocumentItem* docItem, ViewProviderDocumentObject* vpd) : docItem(docItem), viewObject(vpd), rootItem(nullptr) { + //NOLINTBEGIN // Setup connections connectIcon = viewObject->signalChangeIcon.connect( - boost::bind(&DocumentObjectData::slotChangeIcon, this)); + std::bind(&DocumentObjectData::slotChangeIcon, this)); connectTool = viewObject->signalChangeToolTip.connect( - boost::bind(&DocumentObjectData::slotChangeToolTip, this, bp::_1)); + std::bind(&DocumentObjectData::slotChangeToolTip, this, sp::_1)); connectStat = viewObject->signalChangeStatusTip.connect( - boost::bind(&DocumentObjectData::slotChangeStatusTip, this, bp::_1)); + std::bind(&DocumentObjectData::slotChangeStatusTip, this, sp::_1)); + //NOLINTEND removeChildrenFromRoot = viewObject->canRemoveChildrenFromRoot(); itemHidden = !viewObject->showInTree(); @@ -493,19 +495,21 @@ TreeWidget::TreeWidget(const char* name, QWidget* parent) connect(this->searchObjectsAction, &QAction::triggered, this, &TreeWidget::onSearchObjects); + //NOLINTBEGIN // Setup connections - connectNewDocument = Application::Instance->signalNewDocument.connect(boost::bind(&TreeWidget::slotNewDocument, this, bp::_1, bp::_2)); - connectDelDocument = Application::Instance->signalDeleteDocument.connect(boost::bind(&TreeWidget::slotDeleteDocument, this, bp::_1)); - connectRenDocument = Application::Instance->signalRenameDocument.connect(boost::bind(&TreeWidget::slotRenameDocument, this, bp::_1)); - connectActDocument = Application::Instance->signalActiveDocument.connect(boost::bind(&TreeWidget::slotActiveDocument, this, bp::_1)); - connectRelDocument = Application::Instance->signalRelabelDocument.connect(boost::bind(&TreeWidget::slotRelabelDocument, this, bp::_1)); - connectShowHidden = Application::Instance->signalShowHidden.connect(boost::bind(&TreeWidget::slotShowHidden, this, bp::_1)); + connectNewDocument = Application::Instance->signalNewDocument.connect(std::bind(&TreeWidget::slotNewDocument, this, sp::_1, sp::_2)); + connectDelDocument = Application::Instance->signalDeleteDocument.connect(std::bind(&TreeWidget::slotDeleteDocument, this, sp::_1)); + connectRenDocument = Application::Instance->signalRenameDocument.connect(std::bind(&TreeWidget::slotRenameDocument, this, sp::_1)); + connectActDocument = Application::Instance->signalActiveDocument.connect(std::bind(&TreeWidget::slotActiveDocument, this, sp::_1)); + connectRelDocument = Application::Instance->signalRelabelDocument.connect(std::bind(&TreeWidget::slotRelabelDocument, this, sp::_1)); + connectShowHidden = Application::Instance->signalShowHidden.connect(std::bind(&TreeWidget::slotShowHidden, this, sp::_1)); // Gui::Document::signalChangedObject informs the App::Document property // change, not view provider's own property, which is what the signal below // for connectChangedViewObj = Application::Instance->signalChangedObject.connect( - boost::bind(&TreeWidget::slotChangedViewObject, this, bp::_1, bp::_2)); + std::bind(&TreeWidget::slotChangedViewObject, this, sp::_1, sp::_2)); + //NOLINTEND setupResizableColumn(this); this->header()->setStretchLastSection(false); @@ -546,9 +550,9 @@ TreeWidget::TreeWidget(const char* name, QWidget* parent) setupText(); if (!documentPixmap) { - documentPixmap.reset(new QPixmap(Gui::BitmapFactory().pixmap("Document"))); + documentPixmap = std::make_unique(Gui::BitmapFactory().pixmap("Document")); QIcon icon(*documentPixmap); - documentPartialPixmap.reset(new QPixmap(icon.pixmap(documentPixmap->size(), QIcon::Disabled))); + documentPartialPixmap = std::make_unique(icon.pixmap(documentPixmap->size(), QIcon::Disabled)); } setColumnHidden(1, TreeParams::getHideColumn()); header()->setVisible(!TreeParams::getHideColumn()); @@ -2593,10 +2597,12 @@ void TreeWidget::onUpdateStatus() auto doc = v.first->getDocument(); if (!docItem->connectChgObject.connected()) { + //NOLINTBEGIN docItem->connectChgObject = docItem->document()->signalChangedObject.connect( - boost::bind(&TreeWidget::slotChangeObject, this, bp::_1, bp::_2)); + std::bind(&TreeWidget::slotChangeObject, this, sp::_1, sp::_2)); docItem->connectTouchedObject = doc->signalTouchedObject.connect( - boost::bind(&TreeWidget::slotTouchedObject, this, bp::_1)); + std::bind(&TreeWidget::slotTouchedObject, this, sp::_1)); + //NOLINTEND } if (doc->testStatus(App::Document::PartialDoc)) @@ -3245,27 +3251,29 @@ void TreeWidget::selectLinkedObject(App::DocumentObject* linked) { DocumentItem::DocumentItem(const Gui::Document* doc, QTreeWidgetItem* parent) : QTreeWidgetItem(parent, TreeWidget::DocumentType), pDocument(const_cast(doc)) { + //NOLINTBEGIN // Setup connections - connectNewObject = doc->signalNewObject.connect(boost::bind(&DocumentItem::slotNewObject, this, bp::_1)); + connectNewObject = doc->signalNewObject.connect(std::bind(&DocumentItem::slotNewObject, this, sp::_1)); connectDelObject = doc->signalDeletedObject.connect( - boost::bind(&TreeWidget::slotDeleteObject, getTree(), bp::_1)); + std::bind(&TreeWidget::slotDeleteObject, getTree(), sp::_1)); if (!App::GetApplication().isRestoring()) { connectChgObject = doc->signalChangedObject.connect( - boost::bind(&TreeWidget::slotChangeObject, getTree(), bp::_1, bp::_2)); + std::bind(&TreeWidget::slotChangeObject, getTree(), sp::_1, sp::_2)); connectTouchedObject = doc->getDocument()->signalTouchedObject.connect( - boost::bind(&TreeWidget::slotTouchedObject, getTree(), bp::_1)); + std::bind(&TreeWidget::slotTouchedObject, getTree(), sp::_1)); } - connectEdtObject = doc->signalInEdit.connect(boost::bind(&DocumentItem::slotInEdit, this, bp::_1)); - connectResObject = doc->signalResetEdit.connect(boost::bind(&DocumentItem::slotResetEdit, this, bp::_1)); + connectEdtObject = doc->signalInEdit.connect(std::bind(&DocumentItem::slotInEdit, this, sp::_1)); + connectResObject = doc->signalResetEdit.connect(std::bind(&DocumentItem::slotResetEdit, this, sp::_1)); connectHltObject = doc->signalHighlightObject.connect( - boost::bind(&DocumentItem::slotHighlightObject, this, bp::_1, bp::_2, bp::_3, bp::_4, bp::_5)); + std::bind(&DocumentItem::slotHighlightObject, this, sp::_1, sp::_2, sp::_3, sp::_4, sp::_5)); connectExpObject = doc->signalExpandObject.connect( - boost::bind(&DocumentItem::slotExpandObject, this, bp::_1, bp::_2, bp::_3, bp::_4)); - connectScrObject = doc->signalScrollToObject.connect(boost::bind(&DocumentItem::slotScrollToObject, this, bp::_1)); + std::bind(&DocumentItem::slotExpandObject, this, sp::_1, sp::_2, sp::_3, sp::_4)); + connectScrObject = doc->signalScrollToObject.connect(std::bind(&DocumentItem::slotScrollToObject, this, sp::_1)); auto adoc = doc->getDocument(); - connectRecomputed = adoc->signalRecomputed.connect(boost::bind(&DocumentItem::slotRecomputed, this, bp::_1, bp::_2)); + connectRecomputed = adoc->signalRecomputed.connect(std::bind(&DocumentItem::slotRecomputed, this, sp::_1, sp::_2)); connectRecomputedObj = adoc->signalRecomputedObject.connect( - boost::bind(&DocumentItem::slotRecomputedObject, this, bp::_1)); + std::bind(&DocumentItem::slotRecomputedObject, this, sp::_1)); + //NOLINTEND setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable/*|Qt::ItemIsEditable*/); @@ -5193,7 +5201,7 @@ App::DocumentObject* DocumentObjectItem::getRelativeParent( auto subname2 = str2.str(); const char* sub = subname.c_str(); const char* sub2 = subname2.c_str(); - while (1) { + while (true) { const char* dot = strchr(sub, '.'); if (!dot) { str.str(""); diff --git a/src/Gui/Tree.h b/src/Gui/Tree.h index 377b564376..1a830597e4 100644 --- a/src/Gui/Tree.h +++ b/src/Gui/Tree.h @@ -60,7 +60,7 @@ public: explicit TreeWidget(const char *name, QWidget* parent=nullptr); ~TreeWidget() override; - static void setupResizableColumn(TreeWidget *tree=0); + static void setupResizableColumn(TreeWidget *tree=nullptr); static void scrollItemToTop(); void selectAllInstances(const ViewProviderDocumentObject &vpd); void selectLinkedObject(App::DocumentObject *linked); diff --git a/src/Gui/TreeParams.cpp b/src/Gui/TreeParams.cpp index 2b068655b1..cf462b0bfc 100644 --- a/src/Gui/TreeParams.cpp +++ b/src/Gui/TreeParams.cpp @@ -159,11 +159,11 @@ public: } // Auto generated code (Tools/params_utils.py:217) - ~TreeParamsP() { + ~TreeParamsP() override { } // Auto generated code (Tools/params_utils.py:222) - void OnChange(Base::Subject &, const char* sReason) { + void OnChange(Base::Subject &, const char* sReason) override { if(!sReason) return; auto it = funcs.find(sReason); diff --git a/src/Gui/TreeParams.h b/src/Gui/TreeParams.h index e624cd7675..3ca2b1aec7 100644 --- a/src/Gui/TreeParams.h +++ b/src/Gui/TreeParams.h @@ -356,7 +356,7 @@ public: //@{ /// Accessor for parameter ItemBackground /// - /// Tree view item background. Only effecitve in overlay. + /// Tree view item background. Only effective in overlay. static const unsigned long & getItemBackground(); static const unsigned long & defaultItemBackground(); static void removeItemBackground(); diff --git a/src/Gui/TreeParams.py b/src/Gui/TreeParams.py index 64490d3ceb..8ff5b485e6 100644 --- a/src/Gui/TreeParams.py +++ b/src/Gui/TreeParams.py @@ -66,7 +66,7 @@ Params = [ ParamInt('FontSize', 0, on_change=True), ParamInt('ItemSpacing', 0, on_change=True), ParamHex('ItemBackground', 0, on_change=True, title='Item background color', proxy=ParamColor(), - doc = "Tree view item background. Only effecitve in overlay."), + doc = "Tree view item background. Only effective in overlay."), ParamInt('ItemBackgroundPadding', 10, on_change=True, title="Item background padding", proxy=ParamSpinBox(0, 100, 1), doc = "Tree view item background padding."), ParamBool('HideColumn', True, on_change=True, title="Hide extra column", diff --git a/src/Gui/TreeView.h b/src/Gui/TreeView.h index df977409ef..778968855f 100644 --- a/src/Gui/TreeView.h +++ b/src/Gui/TreeView.h @@ -25,6 +25,7 @@ #define GUI_TREEVIEW_H #include +#include namespace Gui { @@ -34,11 +35,11 @@ class GuiExport TreeView : public QTreeView public: TreeView(QWidget* parent=nullptr); - virtual ~TreeView(); + ~TreeView() override; protected: - void mouseDoubleClickEvent (QMouseEvent * ); - void rowsInserted (const QModelIndex & parent, int start, int end); + void mouseDoubleClickEvent (QMouseEvent * ) override; + void rowsInserted (const QModelIndex & parent, int start, int end) override; }; } diff --git a/src/Gui/UiLoader.cpp b/src/Gui/UiLoader.cpp index 3a8821017c..bb5dc13433 100644 --- a/src/Gui/UiLoader.cpp +++ b/src/Gui/UiLoader.cpp @@ -624,10 +624,12 @@ Py::Object UiLoaderPy::load(const Py::Tuple& args) Py::Object UiLoaderPy::createWidget(const Py::Tuple& args) { + //NOLINTBEGIN return wrapFromWidgetFactory(args, std::bind(&UiLoader::createWidget, loader.get(), std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); + //NOLINTEND } Py::Object UiLoaderPy::addPluginPath(const Py::Tuple& args) diff --git a/src/Gui/UiLoader.h b/src/Gui/UiLoader.h index 461fd3165b..514fa58ef2 100644 --- a/src/Gui/UiLoader.h +++ b/src/Gui/UiLoader.h @@ -128,7 +128,7 @@ public: * * @see https://github.com/FreeCAD/FreeCAD/issues/8708 */ - static std::unique_ptr newInstance(QObject *parent=0); + static std::unique_ptr newInstance(QObject *parent=nullptr); ~UiLoader() override; diff --git a/src/Gui/View3DInventor.cpp b/src/Gui/View3DInventor.cpp index 853ef180a4..d436c49c38 100644 --- a/src/Gui/View3DInventor.cpp +++ b/src/Gui/View3DInventor.cpp @@ -246,6 +246,8 @@ void View3DInventor::printPdf() if (!filename.isEmpty()) { Gui::WaitCursor wc; QPrinter printer(QPrinter::ScreenResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setPageOrientation(QPageLayout::Landscape); printer.setOutputFileName(filename); diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index a4ff65551c..7390409394 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -52,6 +52,7 @@ # include # include # include +# include # include # include # include @@ -62,8 +63,10 @@ # include # include # include +# include # include # include +# include # include # include # include @@ -337,6 +340,7 @@ View3DInventorViewer::View3DInventorViewer(QWidget* parent, const QtGLWidget* sh , framebuffer(nullptr) , axisCross(nullptr) , axisGroup(nullptr) + , rotationCenterGroup(nullptr) , editing(false) , redirected(false) , allowredir(false) @@ -355,6 +359,7 @@ View3DInventorViewer::View3DInventorViewer(const QtGLFormat& format, QWidget* pa , framebuffer(nullptr) , axisCross(nullptr) , axisGroup(nullptr) + , rotationCenterGroup(nullptr) , editing(false) , redirected(false) , allowredir(false) @@ -1268,6 +1273,69 @@ bool View3DInventorViewer::hasAxisCross() return axisGroup; } +void View3DInventorViewer::showRotationCenter(bool show) +{ + SoNode* scene = getSceneGraph(); + auto sep = static_cast(scene); + + bool showEnabled = App::GetApplication() + .GetParameterGroupByPath("User parameter:BaseApp/Preferences/View") + ->GetBool("ShowRotationCenter", true); + + if (show && showEnabled) { + SbBool found; + SbVec3f center = navigation->getRotationCenter(found); + + if (!found) { + return; + } + + if (!rotationCenterGroup) { + rotationCenterGroup = new SoSkipBoundingGroup(); + + auto sphere = new SoSphere(); + + // There needs to be a non-transparent object to ensure the transparent sphere works when opening an new empty document + auto hidden = new SoSeparator(); + auto hiddenScale = new SoScale(); + hiddenScale->scaleFactor = SbVec3f(0, 0, 0); + hidden->addChild(hiddenScale); + hidden->addChild(sphere); + + auto complexity = new SoComplexity(); + complexity->value = 1; + + auto material = new SoMaterial(); + material->emissiveColor = SbColor(1, 0, 0); + material->transparency = 0.8; + + auto translation = new SoTranslation(); + translation->translation.setValue(center); + + auto annotation = new SoAnnotation(); + annotation->addChild(complexity); + annotation->addChild(material); + annotation->addChild(sphere); + + auto scaledSphere = new SoShapeScale(); + scaledSphere->setPart("shape", annotation); + scaledSphere->scaleFactor = 4.0; + + rotationCenterGroup->addChild(translation); + rotationCenterGroup->addChild(hidden); + rotationCenterGroup->addChild(scaledSphere); + + sep->addChild(rotationCenterGroup); + } + } + else { + if (rotationCenterGroup) { + sep->removeChild(rotationCenterGroup); + rotationCenterGroup = nullptr; + } + } +} + void View3DInventorViewer::setNavigationType(Base::Type t) { if (this->navigation && this->navigation->getTypeId() == t) @@ -1656,7 +1724,7 @@ bool View3DInventorViewer::dumpToFile(SoNode* node, const char* filename, bool b bool ret = false; Base::FileInfo fi(filename); - if (fi.hasExtension("idtf") || fi.hasExtension("svg")) { + if (fi.hasExtension({"idtf", "svg"})) { int ps=4; QColor c = Qt::white; std::unique_ptr vo; @@ -1667,7 +1735,7 @@ bool View3DInventorViewer::dumpToFile(SoNode* node, const char* filename, bool b else if (fi.hasExtension("idtf")) { vo = std::unique_ptr(new SoFCVectorizeU3DAction()); } - else if (fi.hasExtension("ps") || fi.hasExtension("eps")) { + else if (fi.hasExtension({"ps", "eps"})) { vo = std::unique_ptr(new SoVectorizePSAction()); } else { @@ -2746,9 +2814,7 @@ void View3DInventorViewer::animatedViewAll(int steps, int ms) SbViewportRegion vp = this->getSoRenderManager()->getViewportRegion(); SbBox3f box = getBoundingBox(); -#if (COIN_MAJOR_VERSION >= 3) float aspectRatio = vp.getViewportAspectRatio(); -#endif if (box.isEmpty()) return; @@ -2768,12 +2834,10 @@ void View3DInventorViewer::animatedViewAll(int steps, int ms) if (cam->isOfType(SoOrthographicCamera::getClassTypeId())) { isOrthographic = true; height = static_cast(cam)->height.getValue(); -#if (COIN_MAJOR_VERSION >= 3) if (aspectRatio < 1.0f) diff = sphere.getRadius() * 2 - height * aspectRatio; else -#endif - diff = sphere.getRadius() * 2 - height; + diff = sphere.getRadius() * 2 - height; pos = (box.getCenter() - direction * sphere.getRadius()); } else if (cam->isOfType(SoPerspectiveCamera::getClassTypeId())) { diff --git a/src/Gui/View3DInventorViewer.h b/src/Gui/View3DInventorViewer.h index 856a778252..43dd1e9bf6 100644 --- a/src/Gui/View3DInventorViewer.h +++ b/src/Gui/View3DInventorViewer.h @@ -413,6 +413,8 @@ public: void setAxisCross(bool b); bool hasAxisCross(); + void showRotationCenter(bool show); + void setEnabledFPSCounter(bool b); void setEnabledNaviCube(bool b); bool isEnabledNaviCube() const; @@ -509,6 +511,8 @@ private: SoShapeScale* axisCross; SoGroup* axisGroup; + SoGroup* rotationCenterGroup; + //stuff needed to draw the fps counter bool fpsEnabled; bool vboEnabled; diff --git a/src/Gui/View3DPy.cpp b/src/Gui/View3DPy.cpp index a85d1a27e8..48c2bdc881 100644 --- a/src/Gui/View3DPy.cpp +++ b/src/Gui/View3DPy.cpp @@ -127,6 +127,9 @@ void View3DInventorPy::init_type() add_varargs_method("getViewDirection",&View3DInventorPy::getViewDirection,"getViewDirection() --> tuple of floats\n" "returns the direction vector the view is currently pointing at as tuple with xyz values\n" ); + add_varargs_method("getUpDirection",&View3DInventorPy::getUpDirection,"getUpDirection() --> tuple of integers\n" + "Returns the up direction vector\n" + ); add_varargs_method("setViewDirection",&View3DInventorPy::setViewDirection,"setViewDirection(tuple) --> None\n" "Sets the direction the view is pointing at. The direction must be given as tuple with\n" "three coordinates xyz" @@ -942,7 +945,7 @@ Py::Object View3DInventorPy::saveVectorGraphic(const Py::Tuple& args) std::unique_ptr vo; Base::FileInfo fi(filename); - if (fi.hasExtension("ps") || fi.hasExtension("eps")) { + if (fi.hasExtension({"ps", "eps"})) { vo = std::unique_ptr(new SoVectorizePSAction()); //vo->setGouraudThreshold(0.0f); } @@ -1042,6 +1045,26 @@ Py::Object View3DInventorPy::getViewDirection(const Py::Tuple& args) } } + +Py::Object View3DInventorPy::getUpDirection(const Py::Tuple& args) +{ + if (!PyArg_ParseTuple(args.ptr(), "")) + throw Py::Exception(); + try { + SbVec3f dvec = getView3DIventorPtr()->getViewer()->getUpDirection(); + return Py::Vector(Base::Vector3f(dvec[0], dvec[1], dvec[2])); + } + catch (const Base::Exception& e) { + throw Py::RuntimeError(e.what()); + } + catch (const std::exception& e) { + throw Py::RuntimeError(e.what()); + } + catch (...) { + throw Py::RuntimeError("Unknown C++ exception"); + } +} + Py::Object View3DInventorPy::setViewDirection(const Py::Tuple& args) { PyObject* object; diff --git a/src/Gui/View3DPy.h b/src/Gui/View3DPy.h index c69759845c..a6211fe351 100644 --- a/src/Gui/View3DPy.h +++ b/src/Gui/View3DPy.h @@ -82,6 +82,7 @@ public: Py::Object saveVectorGraphic(const Py::Tuple&); Py::Object getCamera(const Py::Tuple&); Py::Object getViewDirection(const Py::Tuple&); + Py::Object getUpDirection(const Py::Tuple&); Py::Object setViewDirection(const Py::Tuple&); Py::Object setCamera(const Py::Tuple&); Py::Object setCameraOrientation(const Py::Tuple&); diff --git a/src/Gui/View3DSettings.cpp b/src/Gui/View3DSettings.cpp index 47826d2904..f16e5e5acb 100644 --- a/src/Gui/View3DSettings.cpp +++ b/src/Gui/View3DSettings.cpp @@ -524,7 +524,7 @@ void NaviCubeSettings::parameterChanged(const char* Name) nc->setBorderWidth(hGrp->GetFloat("BorderWidth", 1.1)); } else if (strcmp(Name, "ShowCS") == 0) { - nc->setShowCS(hGrp->GetBool("ShowCS", 1)); + nc->setShowCS(hGrp->GetBool("ShowCS", true)); } else if (strcmp(Name, "TextTop") == 0 || strcmp(Name, "TextBottom") == 0 || strcmp(Name, "TextFront") == 0 || strcmp(Name, "TextRear") == 0 diff --git a/src/Gui/View3DViewerPy.cpp b/src/Gui/View3DViewerPy.cpp index 2fa740d948..abe03b58fb 100644 --- a/src/Gui/View3DViewerPy.cpp +++ b/src/Gui/View3DViewerPy.cpp @@ -30,6 +30,7 @@ #include #include +#include "PythonWrapper.h" #include "View3DViewerPy.h" #include "View3DInventorViewer.h" @@ -93,6 +94,8 @@ void View3DInventorViewerPy::init_type() "setRedirectToSceneGraph(bool): enables or disables to redirect events directly to the scene graph."); add_varargs_method("isRedirectedToSceneGraph", &View3DInventorViewerPy::isRedirectedToSceneGraph, "isRedirectedToSceneGraph() -> bool: check whether event redirection is enabled."); + add_varargs_method("grabFramebuffer", &View3DInventorViewerPy::grabFramebuffer, + "grabFramebuffer() -> QImage: renders and returns a 32-bit RGB image of the framebuffer."); add_varargs_method("setEnabledNaviCube", &View3DInventorViewerPy::setEnabledNaviCube, "setEnabledNaviCube(bool): enables or disables the navi cube of the viewer."); add_varargs_method("isEnabledNaviCube", &View3DInventorViewerPy::isEnabledNaviCube, @@ -556,6 +559,17 @@ Py::Object View3DInventorViewerPy::isRedirectedToSceneGraph(const Py::Tuple& arg return Py::Boolean(ok); } +Py::Object View3DInventorViewerPy::grabFramebuffer(const Py::Tuple& args) +{ + if (!PyArg_ParseTuple(args.ptr(), "")) + throw Py::Exception(); + QImage img = _viewer->grabFramebuffer(); + + PythonWrapper wrap; + wrap.loadGuiModule(); + return wrap.fromQImage(img.mirrored()); +} + Py::Object View3DInventorViewerPy::setEnabledNaviCube(const Py::Tuple& args) { PyObject* m=Py_False; diff --git a/src/Gui/View3DViewerPy.h b/src/Gui/View3DViewerPy.h index e157c30be8..160f58d8b7 100644 --- a/src/Gui/View3DViewerPy.h +++ b/src/Gui/View3DViewerPy.h @@ -36,7 +36,7 @@ class View3DInventorViewer; * * The interface does not offer all methods the c++ View3DInventorViewer counterpart has, respectively * also not everything the QuarterWidget and the SoQtQuarterAdaptor offers. It only exposes - * methods with additioanl functionality in comparison to the View3DInventorPy class. Everything that + * methods with additional functionality in comparison to the View3DInventorPy class. Everything that * can be done from there has no interface here. */ class View3DInventorViewerPy : public Py::PythonExtension @@ -72,6 +72,7 @@ public: Py::Object setBackgroundColor(const Py::Tuple& args); Py::Object setRedirectToSceneGraph(const Py::Tuple& args); Py::Object isRedirectedToSceneGraph(const Py::Tuple& args); + Py::Object grabFramebuffer(const Py::Tuple& args); // NaviCube handling Py::Object setEnabledNaviCube(const Py::Tuple& args); diff --git a/src/Gui/ViewProvider.cpp b/src/Gui/ViewProvider.cpp index f985cca235..f3faf2d8aa 100644 --- a/src/Gui/ViewProvider.cpp +++ b/src/Gui/ViewProvider.cpp @@ -233,7 +233,9 @@ void ViewProvider::eventCallback(void * ud, SoEventCallback * node) auto func = new Gui::TimerFunction(); func->setAutoDelete(true); - func->setFunction(std::bind(&Document::resetEdit, doc)); + func->setFunction([doc]() { + doc->resetEdit(); + }); func->singleShot(0); } } diff --git a/src/Gui/ViewProviderDocumentObject.cpp b/src/Gui/ViewProviderDocumentObject.cpp index 9e3672b008..61aab4022d 100644 --- a/src/Gui/ViewProviderDocumentObject.cpp +++ b/src/Gui/ViewProviderDocumentObject.cpp @@ -272,7 +272,9 @@ void ViewProviderDocumentObject::addDefaultAction(QMenu* menu, const QString& te QAction* act = menu->addAction(text); act->setData(QVariant((int)ViewProvider::Default)); auto func = new Gui::ActionFunction(menu); - func->trigger(act, std::bind(&ViewProviderDocumentObject::startDefaultEditMode, this)); + func->trigger(act, [this](){ + this->startDefaultEditMode(); + }); } void ViewProviderDocumentObject::setModeSwitch() { diff --git a/src/Gui/ViewProviderExtensionPython.h b/src/Gui/ViewProviderExtensionPython.h index 442ada290d..f995633903 100644 --- a/src/Gui/ViewProviderExtensionPython.h +++ b/src/Gui/ViewProviderExtensionPython.h @@ -34,9 +34,9 @@ namespace Gui { * derived class as Python extension -- simply by subclassing. */ template -class ViewProviderExtensionPythonT : public ExtensionT +class ViewProviderExtensionPythonT : public ExtensionT //NOLINT { - EXTENSION_PROPERTY_HEADER(Gui::ViewProviderExtensionPythonT); + EXTENSION_PROPERTY_HEADER_WITH_OVERRIDE(Gui::ViewProviderExtensionPythonT); public: using Inherited = ExtensionT; @@ -45,8 +45,7 @@ public: ExtensionT::m_isPythonExtension = true; ExtensionT::initExtensionType(ViewProviderExtensionPythonT::getExtensionClassTypeId()); } - virtual ~ViewProviderExtensionPythonT() { - } + ~ViewProviderExtensionPythonT() override = default; ViewProviderExtensionPythonT(const ViewProviderExtensionPythonT&) = delete; ViewProviderExtensionPythonT(ViewProviderExtensionPythonT&&) = delete; diff --git a/src/Gui/ViewProviderImagePlane.cpp b/src/Gui/ViewProviderImagePlane.cpp index 7ed4e9c00f..bcbe303f1e 100644 --- a/src/Gui/ViewProviderImagePlane.cpp +++ b/src/Gui/ViewProviderImagePlane.cpp @@ -146,7 +146,9 @@ void ViewProviderImagePlane::setupContextMenu(QMenu* menu, QObject* receiver, co Gui::ActionFunction* func = new Gui::ActionFunction(menu); QAction* action = menu->addAction(QObject::tr("Change image...")); action->setIcon(QIcon(QLatin1String("images:image-scaling.svg"))); - func->trigger(action, std::bind(&ViewProviderImagePlane::manipulateImage, this)); + func->trigger(action, [this](){ + this->manipulateImage(); + }); ViewProviderGeometryObject::setupContextMenu(menu, receiver, member); } diff --git a/src/Gui/ViewProviderLink.cpp b/src/Gui/ViewProviderLink.cpp index c22f080676..308ae5d243 100644 --- a/src/Gui/ViewProviderLink.cpp +++ b/src/Gui/ViewProviderLink.cpp @@ -194,8 +194,10 @@ public: :ref(0),pcLinked(vp) { FC_LOG("new link to " << pcLinked->getObject()->getFullName()); + //NOLINTBEGIN connChangeIcon = vp->signalChangeIcon.connect( - boost::bind(&LinkInfo::slotChangeIcon,this)); + std::bind(&LinkInfo::slotChangeIcon,this)); + //NOLINTEND vp->forceUpdate(true); sensor.setFunction(sensorCB); sensor.setData(this); @@ -609,7 +611,7 @@ public: return false; auto geoGroup = pcLinked->getObject(); auto sobj = geoGroup; - while(1) { + while(true) { std::string objname = std::string(nextsub,dot-nextsub+1); if(!geoGroup->getSubObject(objname.c_str())) { // this object is not found under the geo group, abort. @@ -1036,7 +1038,7 @@ void LinkView::setLinkViewObject(ViewProviderDocumentObject *vpd, auto it = subInfo.find(subname); if(it == subInfo.end()) { it = subInfo.insert(std::make_pair(subname,std::unique_ptr())).first; - it->second.reset(new SubInfo(*this)); + it->second = std::make_unique(*this); } if(subelement[0]) it->second->subElements.insert(subelement); @@ -1077,7 +1079,7 @@ void LinkView::setSize(int _size) { pcLinkRoot->addChild(info->pcSwitch); while(nodeArray.size()(new Element(*this))); + nodeArray.push_back(std::make_unique(*this)); auto &info = *nodeArray.back(); info.pcRoot->addChild(info.pcTransform); if(pcLinkedRoot) @@ -1129,8 +1131,9 @@ void LinkView::setChildren(const std::vector &children, std::map groups; for(size_t i=0;i(new Element(*this))); + if(nodeArray.size()<=i) { + nodeArray.push_back(std::make_unique(*this)); + } auto &info = *nodeArray[i]; info.isGroup = false; info.groupIndex = -1; @@ -1454,7 +1457,7 @@ bool LinkView::linkGetDetailPath(const char *subname, SoFullPath *path, SoDetail if (subname[0]>='0' && subname[0]<='9') { idx = App::LinkBaseExtension::getArrayIndex(subname,&subname); } else { - while(1) { + while(true) { const char *dot = strchr(subname,'.'); if(!dot) break; @@ -2633,7 +2636,7 @@ bool ViewProviderLink::initDraggingPlacement() { FC_ERR("initDraggingPlacement() expects return of type tuple(matrix,placement,boundbox)"); return false; } - dragCtx.reset(new DraggerContext); + dragCtx = std::make_unique(); dragCtx->initialPlacement = *static_cast(pypla)->getPlacementPtr(); dragCtx->preTransform = *static_cast(pymat)->getMatrixPtr(); dragCtx->bbox = *static_cast(pybbox)->getBoundBoxPtr(); @@ -2663,7 +2666,7 @@ bool ViewProviderLink::initDraggingPlacement() { return false; } - dragCtx.reset(new DraggerContext); + dragCtx = std::make_unique(); dragCtx->preTransform = doc->getEditingTransform(); doc->setEditingTransform(dragCtx->preTransform); @@ -3077,7 +3080,7 @@ std::map ViewProviderLink::getElementColors(const char // In case of multi-level linking, we recursively call into each level, // and merge the colors auto vp = this; - while(1) { + while(true) { if(wildcard!=ViewProvider::hiddenMarker() && vp->OverrideMaterial.getValue()) { auto color = ShapeMaterial.getValue().diffuseColor; color.a = ShapeMaterial.getValue().transparency; @@ -3165,7 +3168,7 @@ std::map ViewProviderLink::getElementColors(const char } std::map ret; for(const auto &v : colors) { - const char *pos = 0; + const char *pos = nullptr; auto sobj = getObject()->resolve(v.first.c_str(),nullptr,nullptr,&pos); if(!sobj || !pos) continue; diff --git a/src/Gui/ViewProviderOriginGroupExtension.cpp b/src/Gui/ViewProviderOriginGroupExtension.cpp index 3a59f02aa1..c9c41dc4bf 100644 --- a/src/Gui/ViewProviderOriginGroupExtension.cpp +++ b/src/Gui/ViewProviderOriginGroupExtension.cpp @@ -43,7 +43,7 @@ using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; EXTENSION_PROPERTY_SOURCE(Gui::ViewProviderOriginGroupExtension, Gui::ViewProviderGeoFeatureGroupExtension) @@ -97,11 +97,13 @@ void ViewProviderOriginGroupExtension::extensionAttach(App::DocumentObject *pcOb assert ( adoc ); assert ( gdoc ); + //NOLINTBEGIN connectChangedObjectApp = adoc->signalChangedObject.connect ( - boost::bind ( &ViewProviderOriginGroupExtension::slotChangedObjectApp, this, bp::_1) ); + std::bind ( &ViewProviderOriginGroupExtension::slotChangedObjectApp, this, sp::_1) ); connectChangedObjectGui = gdoc->signalChangedObject.connect ( - boost::bind ( &ViewProviderOriginGroupExtension::slotChangedObjectGui, this, bp::_1) ); + std::bind ( &ViewProviderOriginGroupExtension::slotChangedObjectGui, this, sp::_1) ); + //NOLINTEND } void ViewProviderOriginGroupExtension::extensionUpdateData( const App::Property* prop ) { diff --git a/src/Gui/ViewProviderPart.cpp b/src/Gui/ViewProviderPart.cpp index 1e581f9d4b..b4c8bd6b77 100644 --- a/src/Gui/ViewProviderPart.cpp +++ b/src/Gui/ViewProviderPart.cpp @@ -71,7 +71,9 @@ void ViewProviderPart::setupContextMenu(QMenu* menu, QObject* receiver, const ch { auto func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(QObject::tr("Toggle active part")); - func->trigger(act, std::bind(&ViewProviderPart::doubleClicked, this)); + func->trigger(act, [this](){ + this->doubleClicked(); + }); ViewProviderDragger::setupContextMenu(menu, receiver, member); } diff --git a/src/Gui/ViewProviderPlacement.cpp b/src/Gui/ViewProviderPlacement.cpp index c1ef25044a..4b404570f9 100644 --- a/src/Gui/ViewProviderPlacement.cpp +++ b/src/Gui/ViewProviderPlacement.cpp @@ -63,7 +63,7 @@ void ViewProviderPlacement::onChanged(const App::Property* prop) ViewProviderGeometryObject::onChanged(prop); } -std::vector ViewProviderPlacement::getDisplayModes(void) const +std::vector ViewProviderPlacement::getDisplayModes() const { // add modes std::vector StrList; @@ -84,7 +84,7 @@ void ViewProviderPlacement::attach(App::DocumentObject* pcObject) { ViewProviderGeometryObject::attach(pcObject); if(!Axis) { - Axis.reset(new AxisOrigin); + Axis = std::make_unique(); std::map labels; labels["O"] = "Origin"; labels["X"] = "X-Axis"; @@ -126,7 +126,7 @@ bool ViewProviderPlacement::getDetailPath( return true; } -bool ViewProviderPlacement::isSelectable(void) const +bool ViewProviderPlacement::isSelectable() const { return true; } diff --git a/src/Gui/ViewProviderPy.xml b/src/Gui/ViewProviderPy.xml index a3adfd3e2f..5d4046d368 100644 --- a/src/Gui/ViewProviderPy.xml +++ b/src/Gui/ViewProviderPy.xml @@ -256,7 +256,7 @@ view: View3DInventorPy\n Default to active view. Optional. - Subname referecing the sub-object for holding dropped object. + Subname referencing the sub-object for holding dropped object. diff --git a/src/Gui/ViewProviderPythonFeature.cpp b/src/Gui/ViewProviderPythonFeature.cpp index c58df52a1b..c59b51523c 100644 --- a/src/Gui/ViewProviderPythonFeature.cpp +++ b/src/Gui/ViewProviderPythonFeature.cpp @@ -50,7 +50,7 @@ FC_LOG_LEVEL_INIT("ViewProviderPythonFeature", true, true) using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; // ---------------------------------------------------------------------------- diff --git a/src/Gui/ViewProviderPythonFeature.h b/src/Gui/ViewProviderPythonFeature.h index 1aad2b0c86..7c6911386a 100644 --- a/src/Gui/ViewProviderPythonFeature.h +++ b/src/Gui/ViewProviderPythonFeature.h @@ -204,7 +204,7 @@ public: imp = new ViewProviderPythonFeatureImp(this,Proxy); } /// destructor. - virtual ~ViewProviderPythonFeatureT() { + ~ViewProviderPythonFeatureT() override { delete imp; } diff --git a/src/Gui/ViewProviderTextDocument.cpp b/src/Gui/ViewProviderTextDocument.cpp index 237be31b77..f92ef47f7c 100644 --- a/src/Gui/ViewProviderTextDocument.cpp +++ b/src/Gui/ViewProviderTextDocument.cpp @@ -74,7 +74,9 @@ void ViewProviderTextDocument::setupContextMenu(QMenu* menu, QObject* receiver, { auto func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(QObject::tr("Edit text")); - func->trigger(act, std::bind(&ViewProviderTextDocument::doubleClicked, this)); + func->trigger(act, [this](){ + this->doubleClicked(); + }); ViewProviderDocumentObject::setupContextMenu(menu, receiver, member); } diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp index 6c2503b904..994d05347e 100644 --- a/src/Gui/WidgetFactory.cpp +++ b/src/Gui/WidgetFactory.cpp @@ -582,7 +582,7 @@ Py::Object PyResource::value(const Py::Tuple& args) item = Py::Float(v.toDouble()); break; case QMetaType::Bool: - item = Py::Boolean(v.toBool() ? 1 : 0); + item = Py::Boolean(v.toBool()); break; case QMetaType::UInt: item = Py::Long(static_cast(v.toUInt())); diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index e94a3e9fc9..35526d27c4 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -625,12 +625,12 @@ MenuItem* StdWorkbench::setupMenuBar() const // File auto file = new MenuItem( menuBar ); file->setCommand("&File"); - *file << "Std_New" << "Std_Open" << "Separator" << "Std_CloseActiveWindow" + *file << "Std_New" << "Std_Open" << "Std_RecentFiles" << "Separator" << "Std_CloseActiveWindow" << "Std_CloseAllWindows" << "Separator" << "Std_Save" << "Std_SaveAs" << "Std_SaveCopy" << "Std_SaveAll" << "Std_Revert" << "Separator" << "Std_Import" << "Std_Export" << "Std_MergeProjects" << "Std_ProjectInfo" << "Separator" << "Std_Print" << "Std_PrintPreview" << "Std_PrintPdf" - << "Separator" << "Std_RecentFiles" << "Separator" << "Std_Quit"; + << "Separator" << "Std_Quit"; // Edit auto edit = new MenuItem( menuBar ); diff --git a/src/Gui/core-gui.dox b/src/Gui/core-gui.dox index 35052d5a6c..74dd121abb 100644 --- a/src/Gui/core-gui.dox +++ b/src/Gui/core-gui.dox @@ -6,7 +6,7 @@ /** \namespace Gui \brief The FreeCAD Graphical interface layer - This namespace includes the grafical interface of FreeCAD like: + This namespace includes the graphical interface of FreeCAD such as: - The main window - 3D View - Tree diff --git a/src/Gui/propertyeditor/PropertyItem.cpp b/src/Gui/propertyeditor/PropertyItem.cpp index 9f943b2182..5c1056a4a5 100644 --- a/src/Gui/propertyeditor/PropertyItem.cpp +++ b/src/Gui/propertyeditor/PropertyItem.cpp @@ -1044,7 +1044,7 @@ void PropertyFloatItem::setValue(const QVariant& value) if (!value.canConvert()) return; double val = value.toDouble(); - QString data = QString::fromLatin1("%1").arg(val, 0, 'f', decimals()); + QString data = QString::fromLatin1("%1").arg(val, 0, 'g', 16); setPropertyValue(data); } } @@ -1113,7 +1113,7 @@ void PropertyUnitItem::setValue(const QVariant& value) return; const Base::Quantity& val = value.value(); - Base::QuantityFormat format(Base::QuantityFormat::Fixed, decimals()); + Base::QuantityFormat format(Base::QuantityFormat::Default, 16); QString unit = Base::UnitsApi::toString(val, format); setPropertyValue(unit); } @@ -1220,7 +1220,7 @@ void PropertyFloatConstraintItem::setValue(const QVariant& value) if (!value.canConvert()) return; double val = value.toDouble(); - QString data = QString::fromLatin1("%1").arg(val, 0, 'f', decimals()); + QString data = QString::fromLatin1("%1").arg(val, 0, 'g', 16); setPropertyValue(data); } } @@ -1427,9 +1427,9 @@ void PropertyVectorItem::setValue(const QVariant& value) return; const Base::Vector3d& val = value.value(); QString data = QString::fromLatin1("(%1, %2, %3)") - .arg(val.x,0,'f',decimals()) - .arg(val.y,0,'f',decimals()) - .arg(val.z,0,'f',decimals()); + .arg(val.x,0,'g',16) + .arg(val.y,0,'g',16) + .arg(val.z,0,'g',16); setPropertyValue(data); } @@ -1650,9 +1650,9 @@ void PropertyVectorListItem::setValue(const QVariant& value) str << "["; for (const auto& it : val) { str << QString::fromLatin1("(%1, %2, %3), ") - .arg(it.x, 0, 'f', decimals()) - .arg(it.y, 0, 'f', decimals()) - .arg(it.z, 0, 'f', decimals()); + .arg(it.x, 0, 'g', 16) + .arg(it.y, 0, 'g', 16) + .arg(it.z, 0, 'g', 16); } str << "]"; setPropertyValue(data); @@ -1729,7 +1729,7 @@ void PropertyVectorDistanceItem::setValue(const QVariant& variant) Base::Quantity y = Base::Quantity(value.y, Base::Unit::Length); Base::Quantity z = Base::Quantity(value.z, Base::Unit::Length); - Base::QuantityFormat format(Base::QuantityFormat::Fixed, decimals()); + Base::QuantityFormat format(Base::QuantityFormat::Default, 16); QString data = QString::fromLatin1("(%1, %2, %3)") .arg(Base::UnitsApi::toNumber(x, format), Base::UnitsApi::toNumber(y, format), @@ -1941,24 +1941,23 @@ void PropertyMatrixItem::setValue(const QVariant& value) if (hasExpression() || !value.canConvert()) return; const Base::Matrix4D& val = value.value(); - const int decimals=16; QString data = QString::fromLatin1("FreeCAD.Matrix(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16)") - .arg(val[0][0],0, 'f', decimals) - .arg(val[0][1],0, 'f', decimals) - .arg(val[0][2],0, 'f', decimals) - .arg(val[0][3],0, 'f', decimals) - .arg(val[1][0],0, 'f', decimals) - .arg(val[1][1],0, 'f', decimals) - .arg(val[1][2],0, 'f', decimals) - .arg(val[1][3],0, 'f', decimals) - .arg(val[2][0],0, 'f', decimals) - .arg(val[2][1],0, 'f', decimals) - .arg(val[2][2],0, 'f', decimals) - .arg(val[2][3],0, 'f', decimals) - .arg(val[3][0],0, 'f', decimals) - .arg(val[3][1],0, 'f', decimals) - .arg(val[3][2],0, 'f', decimals) - .arg(val[3][3],0, 'f', decimals); + .arg(val[0][0],0, 'g', 16) + .arg(val[0][1],0, 'g', 16) + .arg(val[0][2],0, 'g', 16) + .arg(val[0][3],0, 'g', 16) + .arg(val[1][0],0, 'g', 16) + .arg(val[1][1],0, 'g', 16) + .arg(val[1][2],0, 'g', 16) + .arg(val[1][3],0, 'g', 16) + .arg(val[2][0],0, 'g', 16) + .arg(val[2][1],0, 'g', 16) + .arg(val[2][2],0, 'g', 16) + .arg(val[2][3],0, 'g', 16) + .arg(val[3][0],0, 'g', 16) + .arg(val[3][1],0, 'g', 16) + .arg(val[3][2],0, 'g', 16) + .arg(val[3][3],0, 'g', 16); setPropertyValue(data); } @@ -2417,7 +2416,7 @@ void PropertyRotationItem::setValue(const QVariant& value) Base::Vector3d axis; double angle; h.getValue(axis, angle); - Base::QuantityFormat format(Base::QuantityFormat::Fixed, decimals()); + Base::QuantityFormat format(Base::QuantityFormat::Default, 16); QString data = QString::fromLatin1("App.Rotation(App.Vector(%1,%2,%3),%4)") .arg(Base::UnitsApi::toNumber(axis.x, format), Base::UnitsApi::toNumber(axis.y, format), @@ -2726,7 +2725,7 @@ void PropertyPlacementItem::setValue(const QVariant& value) double angle; h.getValue(axis, angle); - Base::QuantityFormat format(Base::QuantityFormat::Fixed, decimals()); + Base::QuantityFormat format(Base::QuantityFormat::Default, 16); QString data = QString::fromLatin1("App.Placement(" "App.Vector(%1,%2,%3)," "App.Rotation(App.Vector(%4,%5,%6),%7))") diff --git a/src/Gui/resource.cpp b/src/Gui/resource.cpp index 034450934f..b6b6c5facd 100644 --- a/src/Gui/resource.cpp +++ b/src/Gui/resource.cpp @@ -30,25 +30,27 @@ // INCLUDE YOUR PREFERENCE PAGES HERE // #include "DlgPreferencesImp.h" -#include "DlgSettings3DViewImp.h" -#include "DlgSettingsNavigation.h" -#include "DlgSettingsSelection.h" -#include "DlgSettingsViewColor.h" -#include "DlgGeneralImp.h" -#include "DlgEditorImp.h" -#include "DlgSettingsNotificationArea.h" -#include "DlgSettingsPythonConsole.h" -#include "DlgSettingsMacroImp.h" -#include "DlgSettingsDocumentImp.h" -#include "DlgReportViewImp.h" -#include "DlgSettingsWorkbenchesImp.h" +#include "PreferencePages/DlgSettings3DViewImp.h" +#include "PreferencePages/DlgSettingsCacheDirectory.h" +#include "PreferencePages/DlgSettingsDocumentImp.h" +#include "PreferencePages/DlgSettingsEditor.h" +#include "PreferencePages/DlgSettingsGeneral.h" +#include "PreferencePages/DlgSettingsMacroImp.h" +#include "PreferencePages/DlgSettingsNavigation.h" +#include "PreferencePages/DlgSettingsNotificationArea.h" +#include "PreferencePages/DlgSettingsPythonConsole.h" +#include "PreferencePages/DlgSettingsReportView.h" +#include "PreferencePages/DlgSettingsSelection.h" +#include "PreferencePages/DlgSettingsTheme.h" +#include "PreferencePages/DlgSettingsViewColor.h" +#include "PreferencePages/DlgSettingsWorkbenchesImp.h" + #include "DlgToolbarsImp.h" #include "DlgActionsImp.h" #include "DlgKeyboardImp.h" #include "DlgCustomizeSpaceball.h" #include "DlgCustomizeSpNavSettings.h" -#include "DlgSettingsCacheDirectory.h" #include "InputField.h" #include "QuantitySpinBox.h" #include "PrefWidgets.h" @@ -64,19 +66,20 @@ WidgetFactorySupplier::WidgetFactorySupplier() // ADD YOUR PREFERENCE PAGES HERE // // - new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); + new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); - new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); + new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","General") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","Display") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","Display") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","Display") ); + new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","Display") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject","Workbenches") ); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject", "Python")); new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject", "Python")); - new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject", "Python")); + new PrefPageProducer ( QT_TRANSLATE_NOOP("QObject", "Python")); // ADD YOUR CUSTOMIZE PAGES HERE // diff --git a/src/Main/FreeCADGuiPy.cpp b/src/Main/FreeCADGuiPy.cpp index a449fc0c97..5cb2610729 100644 --- a/src/Main/FreeCADGuiPy.cpp +++ b/src/Main/FreeCADGuiPy.cpp @@ -65,7 +65,7 @@ public: QtApplication(int &argc, char **argv) : QApplication(argc, argv) { } - bool notify (QObject * receiver, QEvent * event) { + bool notify (QObject * receiver, QEvent * event) override { try { return QApplication::notify(receiver, event); } @@ -305,6 +305,12 @@ QWidget* setupMainWindow() mw->setWindowTitle(QString::fromLatin1(App::Application::Config()["ExeName"].c_str())); } + // set toolbar icon size + ParameterGrp::handle hGrp = Gui::WindowParameter::getDefaultParameter()->GetGroup("General"); + int size = hGrp->GetInt("ToolbarIconSize", 0); + if (size >= 16) // must not be lower than this + mw->setIconSize(QSize(size,size)); + if (!SoDB::isInitialized()) { // init the Inventor subsystem SoDB::init(); diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp index cd4afd877b..bc9d7f8a59 100644 --- a/src/Main/MainGui.cpp +++ b/src/Main/MainGui.cpp @@ -52,7 +52,7 @@ #include -void PrintInitHelp(void); +void PrintInitHelp(); const char sBanner[] = "\xc2\xa9 Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2023\n"\ "FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.\n"\ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_de.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_de.qm index 5102ca5efd..61636bd32f 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_de.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_de.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts index 9771809558..32f96358bb 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts @@ -522,7 +522,7 @@ Soll der Addon-Manager sie automatisch installieren? "Ignorieren" wäh Advanced Version Mapping - Advanced Version Mapping + Erweiterte Versionszuordnung @@ -537,7 +537,7 @@ Soll der Addon-Manager sie automatisch installieren? "Ignorieren" wäh Best-available branch, tag, or commit - Best-available branch, tag, or commit + Bester verfügbarer Branch, Tag oder Commit @@ -566,7 +566,7 @@ Soll der Addon-Manager sie automatisch installieren? "Ignorieren" wäh Advanced version mapping... - Advanced version mapping... + Erweiterte Versionszuordnung... @@ -646,7 +646,7 @@ installed addons will be checked for available updates User system proxy - User system proxy + Benutzer-System-Proxy @@ -671,7 +671,7 @@ installed addons will be checked for available updates The path to the git executable. Autodetected if needed and not specified. - The path to the git executable. Autodetected if needed and not specified. + Der Pfad zur ausführbaren Git-Datei. Wird automatisch erkannt, falls erforderlich und nicht angegeben. @@ -873,7 +873,7 @@ installed addons will be checked for available updates Class that defines "Icon" data member - Class that defines "Icon" data member + Klasse, die das "Symbol" Datenelement definiert @@ -883,7 +883,7 @@ installed addons will be checked for available updates Optional, defaults to name of content item - Optional, defaults to name of content item + Optional, Standardwert ist der Name des Inhaltselements @@ -893,7 +893,7 @@ installed addons will be checked for available updates Optional, defaults to inheriting from top-level Addon - Optional, defaults to inheriting from top-level Addon + Optional, erbt standardmäßig vom Top-Level Add-on @@ -948,7 +948,7 @@ installed addons will be checked for available updates Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. - Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. + Alle nicht ausgefüllten Felder werden aus den Metadaten der obersten Ebene des Add-ons übernommen und sind daher technisch gesehen alle optional. Bei Add-ons mit mehreren Inhaltselementen sollte jedes Element einen eindeutigen Anzeigenamen und eine Beschreibung enthalten. @@ -1020,7 +1020,7 @@ installed addons will be checked for available updates A maintainer is someone with current commit access on this project. An author is anyone else you'd like to give credit to. - A maintainer is someone with current commit access on this project. An author is anyone else you'd like to give credit to. + Ein Betreuer ist jemand mit aktuellem Commit-Zugriff auf dieses Projekt. Ein Autor ist jeder, dem Sie' gerne Anerkennung schenken möchten. @@ -1035,7 +1035,7 @@ installed addons will be checked for available updates Email is required for maintainers, and optional for authors. - Email is required for maintainers, and optional for authors. + E-Mail ist für Betreuer erforderlich und für Autoren optional. @@ -1184,20 +1184,20 @@ installed addons will be checked for available updates Worker process {} is taking a long time to stop... - Worker process {} is taking a long time to stop... + Arbeitsprozess {} braucht lange, um beendet zu werden... Previous cache process was interrupted, restarting... - Previous cache process was interrupted, restarting... + Vorheriger Cache-Prozess wurde unterbrochen, wird neu gestartet... Custom repo list changed, forcing recache... - Custom repo list changed, forcing recache... + Benutzerdefinierte Repo-Liste geändert, erzwinge den Recache... @@ -1235,7 +1235,7 @@ installed addons will be checked for available updates Could not find addon '{}' to select - Could not find addon '{}' to select + Add-on '{}' zur Auswahl nicht gefunden @@ -1290,7 +1290,7 @@ installed addons will be checked for available updates This appears to be the first time this version of Python has been used with the Addon Manager. Would you like to install the same auto-installed dependencies for it? - This appears to be the first time this version of Python has been used with the Addon Manager. Would you like to install the same auto-installed dependencies for it? + Dies scheint das erste Mal zu sein, dass diese Version von Python mit dem Add-on Manager verwendet wurde. Möchten Sie die gleichen automatisch installierten Abhängigkeiten für die neue Version installieren? @@ -1316,22 +1316,22 @@ installed addons will be checked for available updates Failed to convert the specified proxy port '{}' to a port number - Failed to convert the specified proxy port '{}' to a port number + Konnte den angegebenen Proxy-Port '{}' nicht in eine Portnummer umwandeln Parameter error: mutually exclusive proxy options set. Resetting to default. - Parameter error: mutually exclusive proxy options set. Resetting to default. + Parameterfehler: sich gegenseitig ausschließende Proxy-Optionen eingestellt. Wird auf Standard zurückgesetzt. Parameter error: user proxy indicated, but no proxy provided. Resetting to default. - Parameter error: user proxy indicated, but no proxy provided. Resetting to default. + Parameterfehler: Benutzerdefinierter Proxy ausgewählt, aber kein Proxy angegeben. Wird auf Standard zurückgesetzt. Addon Manager: Unexpected {} response from server - Addon Manager: Unexpected {} response from server + Addon-Manager: Unerwartete {} Antwort vom Server @@ -1377,7 +1377,7 @@ installed addons will be checked for available updates Addon Manager Warning: Could not import QtWebEngineWidgets -- README data will display as text-only - Addon Manager Warning: Could not import QtWebEngineWidgets -- README data will display as text-only + Add-on Manager Warnung: QtWebEngineWidgets konnte nicht importiert werden -- LIESMICH Daten werden als reiner Text angezeigt @@ -1465,7 +1465,7 @@ installed addons will be checked for available updates WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. - WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. + WARNUNG: Dieses Add-on ist derzeit installiert, aber deaktiviert. Verwenden Sie die Schaltfläche 'aktivieren', um es wieder zu aktivieren. @@ -1476,7 +1476,7 @@ installed addons will be checked for available updates Could not load README data from URL {} - Could not load README data from URL {} + Laden der README-Datei von URL {} ist fehlgeschlagen @@ -1491,7 +1491,7 @@ installed addons will be checked for available updates QtWebEngine Python bindings not installed -- using fallback README display. - QtWebEngine Python bindings not installed -- using fallback README display. + QtWebEngine Python Bindings nicht installiert -- verwendet Fallback LIESMICH Anzeige. @@ -1503,17 +1503,17 @@ installed addons will be checked for available updates Branch change succeeded, please restart to use the new version. - Branch change succeeded, please restart to use the new version. + Branch wechsel erfolgreich, bitte starten Sie neu, um die neue Version zu verwenden. Changed to git ref '{}' -- please restart to use Addon. - Changed to git ref '{}' -- please restart to use Addon. + Wechsel zu git ref '{}' -- bitte neu starten, um das Add-on zu nutzen. Page JavaScript reported - Page JavaScript reported + JavaScript-Seite gemeldet @@ -1558,7 +1558,7 @@ installed addons will be checked for available updates The page is taking a long time to load... showing the data we have so far... - The page is taking a long time to load... showing the data we have so far... + Die Seite braucht lange, um zu laden... Es werden die Daten angezeigt, die bisher geladen wurden... @@ -1568,7 +1568,7 @@ installed addons will be checked for available updates Checking for connection to GitHub... - Checking for connection to GitHub... + Verbindung zu GitHub wird überprüft... @@ -1583,7 +1583,7 @@ installed addons will be checked for available updates Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. - Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. + QtNetwork konnte nicht importiert werden - siehe Ausgabefenster für Details. Der Addon Manager ist nicht verfügbar. @@ -1604,7 +1604,7 @@ installed addons will be checked for available updates Received {} response code from server - Received {} response code from server + {} Antwortcode vom Server erhalten @@ -1614,17 +1614,17 @@ installed addons will be checked for available updates Unrecognized content kind '{}' - Unrecognized content kind '{}' + Unbekannter Inhaltstyp '{}' Unable to locate icon at {} - Unable to locate icon at {} + Symbol kann nicht gefunden werden bei {} Select an icon file for this content item - Select an icon file for this content item + Wählen Sie eine Symboldatei für dieses Inhaltselement @@ -1636,7 +1636,7 @@ installed addons will be checked for available updates Select the subdirectory for this content item - Select the subdirectory for this content item + Wählen Sie das Unterverzeichnis für dieses Inhaltselement @@ -1707,12 +1707,12 @@ installed addons will be checked for available updates Addon '{}' requires '{}', which is not available in your copy of FreeCAD. - Addon '{}' requires '{}', which is not available in your copy of FreeCAD. + Add-on '{}' benötigt '{}', was in Ihrer Kopie von FreeCAD nicht verfügbar ist. Addon '{}' requires the following workbenches, which are not available in your copy of FreeCAD: - Addon '{}' requires the following workbenches, which are not available in your copy of FreeCAD: + Add-on '{}' benötigt die folgenden Arbeitsbereiche, welche in Ihrer FreeCAD Kopie nicht verfügbar sind: @@ -1733,7 +1733,7 @@ installed addons will be checked for available updates Optional dependency on {} ignored because it is not in the allow-list - Optional dependency on {} ignored because it is not in the allow-list + Optionale Abhängigkeit von {} ignoriert, weil sie nicht in der Erlaubnisliste ist @@ -1750,12 +1750,12 @@ installed addons will be checked for available updates Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. - Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. + Konnte die ausführbare Python-Datei nicht automatisch lokalisieren, oder der Pfad ist falsch gesetzt. Bitte den Pfad zu Python in den Einstellungen des Addon-Managers überprüfen. Dependencies could not be installed. Continue with installation of {} anyway? - Dependencies could not be installed. Continue with installation of {} anyway? + Abhängigkeiten konnten nicht installiert werden. Trotzdem mit der Installation von {} fortfahren? @@ -1766,7 +1766,7 @@ installed addons will be checked for available updates Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: - Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: + Die Ausführung von pip ist fehlgeschlagen, da sie möglicherweise nicht in Ihrer Python-Installation enthalten ist. Bitte stellen Sie sicher, dass Ihr System pip installiert hat und versuchen Sie es erneut. Der fehlgeschlagene Befehl war: @@ -1798,7 +1798,7 @@ installed addons will be checked for available updates Cancelling - Cancelling + Abbrechen @@ -1843,7 +1843,7 @@ installed addons will be checked for available updates Unable to read data from GitHub: check your internet connection and proxy settings and try again. - Unable to read data from GitHub: check your internet connection and proxy settings and try again. + Daten von GitHub konnten nicht gelesen werden: Überprüfe deine Internetverbindung und die Proxy-Einstellungen und versuche es erneut. @@ -1858,7 +1858,7 @@ installed addons will be checked for available updates WARNING: Path specified in package.xml metadata does not match currently checked-out branch. - WARNING: Path specified in package.xml metadata does not match currently checked-out branch. + WARNUNG: Der in der package.xml Metadaten angegebene Pfad stimmt nicht mit der aktuell ausgecheckten Version überein. @@ -1888,7 +1888,7 @@ installed addons will be checked for available updates Select the folder containing your Addon - Select the folder containing your Addon + Wählen Sie den Ordner, der Ihre Erweiterung enthält @@ -1899,7 +1899,7 @@ installed addons will be checked for available updates Scanning Addon for Python version compatibility - Scanning Addon for Python version compatibility + Scannen der Python-Versionenkompatibilität-Erweiterung @@ -1909,7 +1909,7 @@ installed addons will be checked for available updates Vermin auto-detected a required version of Python 3.{} - Vermin auto-detected a required version of Python 3.{} + Vermin hat automatisch eine erforderliche Version von Python 3.{} erkannt @@ -1919,12 +1919,12 @@ installed addons will be checked for available updates Auto-detecting the required version of Python for this Addon requires Vermin (https://pypi.org/project/vermin/). OK to install? - Auto-detecting the required version of Python for this Addon requires Vermin (https://pypi.org/project/vermin/). OK to install? + Die automatische Erkennung der erforderlichen Python-Version für dieses Add-on erfordert Vermin (https://pypi.org/project/vermin/). Soll dies Installiert werden? Attempting to install Vermin from PyPi - Attempting to install Vermin from PyPi + Installationsversuch Vermin von PyPi @@ -1982,7 +1982,7 @@ installed addons will be checked for available updates Tags - Tags + Schlagwörter @@ -2116,7 +2116,7 @@ installed addons will be checked for available updates Tag git terminology - Markierung + Schlagwort @@ -2176,12 +2176,12 @@ installed addons will be checked for available updates Failed to decode {} file for Addon '{}' - Failed to decode {} file for Addon '{}' + Datei {} für Add-on '{}' konnte nicht dekodiert werden Any dependency information in this file will be ignored - Any dependency information in this file will be ignored + Alle Abhängigkeitsinformationen in dieser Datei werden ignoriert @@ -2201,17 +2201,17 @@ installed addons will be checked for available updates Unable to open macro wiki page at {} - Unable to open macro wiki page at {} + Makro-Wiki-Seite unter {} kann nicht geöffnet werden Unable to fetch the code of this macro. - Unable to fetch the code of this macro. + Der Code dieses Makros konnte nicht abgerufen werden. Unable to retrieve a description from the wiki for macro {} - Unable to retrieve a description from the wiki for macro {} + Konnte keine Beschreibung aus dem Wiki für Makro {} holen @@ -2221,33 +2221,33 @@ installed addons will be checked for available updates Unable to fetch macro-specified file {} from {} - Unable to fetch macro-specified file {} from {} + Makrospezifizierte Datei {} von {} konnte nicht abgerufen werden Could not locate macro-specified file {} (expected at {}) - Could not locate macro-specified file {} (expected at {}) + Datei {} konnte nicht gefunden werden (erwartet um {}) {}: Unrecognized internal workbench '{}' - {}: Unrecognized internal workbench '{}' + {}: Unbekannter interner Arbeitsbereich '{}' Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) - Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) + Add-on Entwickler Warnung: Die in der Datei package.xml für das Add-on {} ({}) angegebene Repository-URL stimmt nicht mit der URL überein, von der es abgerufen wurde ({}) Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) - Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) + Add-on Entwickler Warnung: Der in der package.xml-Datei für das Add-on {} ({}) angegebene Repository-Branch stimmt nicht mit dem Branch überein, aus dem es geholt wurde ({}) Got an error when trying to import {} - Got an error when trying to import {} + Fehler beim Importieren von {} @@ -2262,7 +2262,7 @@ installed addons will be checked for available updates Execution of Addon's uninstall.py script failed. Proceeding with uninstall... - Execution of Addon's uninstall.py script failed. Proceeding with uninstall... + Ausführung des Addon's Uninstall.py Skripts fehlgeschlagen. Fortfahren mit der Deinstallation... @@ -2282,7 +2282,7 @@ installed addons will be checked for available updates Failed to connect to GitHub. Check your connection and proxy settings. - Failed to connect to GitHub. Check your connection and proxy settings. + Verbindung zu GitHub fehlgeschlagen. Überprüfen Sie Ihre Verbindungs- und Proxy-Einstellungen. @@ -2303,28 +2303,28 @@ installed addons will be checked for available updates Attempting to change non-git Macro setup to use git - Attempting to change non-git Macro setup to use git + Änderungsversuch des Nicht-Git-Makro-Einstellung, um git zu verwenden An error occurred updating macros from GitHub, trying clean checkout... - An error occurred updating macros from GitHub, trying clean checkout... + Fehler beim Aktualisieren von Makros von GitHub, sauberer Checkout-Versuch wird ausgeführt... Attempting to do a clean checkout... - Attempting to do a clean checkout... + Sauberer Checkout-Versuch... Clean checkout succeeded - Clean checkout succeeded + Sauberer Checkout war erfolgreich Failed to update macros from GitHub -- try clearing the Addon Manager's cache. - Failed to update macros from GitHub -- try clearing the Addon Manager's cache. + Aktualisierung der GitHub Makros fehlgeschlagen -- Versuchen Sie, den Cache des Erweiterungsmanagers zu löschen. @@ -2359,7 +2359,7 @@ installed addons will be checked for available updates Addon Manager: a worker process failed to complete while fetching {name} - Addon Manager: a worker process failed to complete while fetching {name} + Erweiterungsmanager: Ein Arbeitsprozess konnte während des Abrufs von {name} nicht abgeschlossen werden @@ -2369,12 +2369,12 @@ installed addons will be checked for available updates Addon Manager: a worker process failed to halt ({name}) - Addon Manager: a worker process failed to halt ({name}) + Erweiterungsmanager: Ein Arbeitsprozess ({name}) konnte nicht angehalten werden Getting metadata from macro {} - Getting metadata from macro {} + Herauslesen von Metadaten aus Makro {} diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.qm index 80784e2a37..3babbd4a0b 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts index b8c77c6fc7..f7491cb29f 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts @@ -833,7 +833,7 @@ los complementos instalados serán revisados por actualizaciones disponibles Workbench - Entorno de trabajo + Banco de trabajo @@ -1646,7 +1646,7 @@ los complementos instalados serán revisados por actualizaciones disponibles Workbench - Entorno de trabajo + Banco de trabajo @@ -2047,7 +2047,7 @@ los complementos instalados serán revisados por actualizaciones disponibles Workbenches - Entornos de trabajo + Bancos de trabajo diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.qm index 8f017c9ffc..b472a96fdd 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts index 439f10085c..7b6bba05bb 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts @@ -833,7 +833,7 @@ les mises à jour disponibles seront vérifiées pour les extensions installées Workbench - Atelier + Ateliers @@ -1648,7 +1648,7 @@ les mises à jour disponibles seront vérifiées pour les extensions installées Workbench - Atelier + Ateliers @@ -2044,7 +2044,7 @@ les mises à jour disponibles seront vérifiées pour les extensions installées All - Tous + Tout diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.qm index fb139cbd92..82ec81a950 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts index 2460ee018e..d774b9a163 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts @@ -54,7 +54,7 @@ Update Available - Update Available + Dostupno je ažuriranje @@ -150,7 +150,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. - Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. + Objašnjenje onoga što ovaj dodatak pruža. Prikazuje se u Upravitelju dodataka. Nije potrebno navesti da je to dodatak FreeCAD-a. @@ -175,12 +175,12 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported - Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported + Podržani su stilovi Semantic (1.2.3-beta) ili CalVer (2022.08.30) Set to today (CalVer style) - Set to today (CalVer style) + Podesi na danas (CalVer stil) @@ -194,7 +194,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD", and must be a valid directory name on all support operating systems. - Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD", and must be a valid directory name on all support operating systems. + Prikazuje se u popisu dodataka upravitelja dodataka. Ne smije sadržavati riječ "FreeCAD" i mora biti valjano ime direktorija na svim podržanim operativnim sustavima. @@ -204,7 +204,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno TIP: Since this is displayed within FreeCAD, in the Addon Manager, it is not necessary to take up space saying things like "This is a FreeCAD Addon..." -- just say what it does. - TIP: Since this is displayed within FreeCAD, in the Addon Manager, it is not necessary to take up space saying things like "This is a FreeCAD Addon..." -- just say what it does. + Savjet: Budući da se ovo prikazuje u FreeCAD-u, u upravitelju dodataka, nije potrebno gubiti prostor govoreći stvari poput "Ovo je dodatak FreeCAD-a..." -- samo recite što ono radi. @@ -244,7 +244,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno (Optional, only 3.x version supported) - (Optional, only 3.x version supported) + (Opcionalno, podržana je samo verzija 3.x) @@ -272,7 +272,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Stop the cache update - Stop the cache update + Prekini ažuriranje predmemorije @@ -332,7 +332,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno HINT: Common tags include "Assembly", "FEM", "Mesh", "NURBS", etc. - HINT: Common tags include "Assembly", "FEM", "Mesh", "NURBS", etc. + Napomena: Uobičajeni tagovi uključuju "Assembly", "FEM", "Mesh", "NURBS" itd. @@ -352,12 +352,12 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Automatically check installed Addons for updates - Automatically check installed Addons for updates + Automatski provjeravaj ažuriranja instaliranih dodataka Download Macro metadata (approximately 10MB) - Download Macro metadata (approximately 10MB) + Preuzmi meta podatke makro naredbe (otprilike 10MB) @@ -377,7 +377,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno These and other settings are available in the FreeCAD Preferences window. - These and other settings are available in the FreeCAD Preferences window. + Ove i druge postavke dostupne su u prozoru Postavki FreeCAD-a. @@ -402,17 +402,17 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Package name, if "Other..." - Package name, if "Other..." + Ime paketa, ako je "Ostalo..." NOTE: If "Other..." is selected, the package is not in the ALLOWED_PYTHON_PACKAGES.txt file, and will not be automatically installed by the Addon Manager. Submit a PR at <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> to request addition of a package. - NOTE: If "Other..." is selected, the package is not in the ALLOWED_PYTHON_PACKAGES.txt file, and will not be automatically installed by the Addon Manager. Submit a PR at <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> to request addition of a package. + NAPOMENA: Ako je "Ostalo..." izabran, paket se ne nalazi u datoteci ALLOVED_PYTHON_PACKAGES.txt i upravitelj dodataka ga neće automatski instalirati. Pošalji PR na <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> za zahtjev dodavanja paketa. If this is an optional dependency, the Addon Manager will offer to install it (when possible), but will not block installation if the user chooses not to, or cannot, install the package. - If this is an optional dependency, the Addon Manager will offer to install it (when possible), but will not block installation if the user chooses not to, or cannot, install the package. + Ako je ovisnost opcionalna, Upravitelj dodataka će ponuditi da je instalira (kad god je to moguće), ali neće blokirati instalaciju ako korisnik ne želi ili ne može instalirati paket. @@ -467,7 +467,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Update Available - Update Available + Dostupno je ažuriranje @@ -524,12 +524,12 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Advanced Version Mapping - Advanced Version Mapping + Napredno mapiranje verzija Upcoming versions of the FreeCAD Addon Manager will support developers' setting a specific branch or tag for use with a specific version of FreeCAD (e.g. setting a specific tag as the last version of your Addon to support v0.19, etc.) - Upcoming versions of the FreeCAD Addon Manager will support developers' setting a specific branch or tag for use with a specific version of FreeCAD (e.g. setting a specific tag as the last version of your Addon to support v0.19, etc.) + Buduće verzije Upravitelja dodataka FreeCAD-a podržat će postavljanje određene grane ili oznake za korištenje s određenom verzijom FreeCAD-a (npr. postavljanje određene oznake kao posljednje verzije vašeg dodatka za podršku v0.19 itd.) @@ -539,7 +539,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Best-available branch, tag, or commit - Best-available branch, tag, or commit + Najbolja dostupna grana, oznaka ili objava @@ -552,7 +552,7 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Minimum FreeCAD Version Supported - Minimum FreeCAD Version Supported + Minimalna FreeCAD verzija koja je podržana @@ -563,12 +563,12 @@ Da li želite da Upravitelj dodacima ih instalira automatski? Odaberi "Igno Maximum FreeCAD Version Supported - Maximum FreeCAD Version Supported + Maksimalna FreeCAD verzija koja je podržana Advanced version mapping... - Advanced version mapping... + Napredno mapiranje verzija... @@ -595,7 +595,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Download Macro metadata (approximately 10MB) - Download Macro metadata (approximately 10MB) + Preuzmi meta podatke makro naredbe (otprilike 10MB) @@ -605,7 +605,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Manual (no automatic updates) - Manual (no automatic updates) + Ručno (nema automatskih ažuriranja) @@ -620,17 +620,17 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Hide Addons marked Python 2 Only - Hide Addons marked Python 2 Only + Skriva dodatak označen samo za Python 2 Hide Addons marked Obsolete - Hide Addons marked Obsolete + Skriva dodatake označene zastarjelim Hide Addons that require a newer version of FreeCAD - Hide Addons that require a newer version of FreeCAD + Sakrij dodatke koji zahtjevaju noviju verziju FreeCAD-a @@ -660,22 +660,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Path to Python executable (optional): - Path to Python executable (optional): + Putanja ka izvršnoj Python datoteci (neobavezno): Path to git executable (optional): - Path to git executable (optional): + Putanja ka izvršnoj git datoteci (neobavezno): The path to the Python executable for package installation with pip. Autodetected if needed and not specified. - The path to the Python executable for package installation with pip. Autodetected if needed and not specified. + Putanja ka izvršnoj Python datoteci , instalacija paketa sa pip. Automatski detektirano ako je potrebno i nije specificirano. The path to the git executable. Autodetected if needed and not specified. - The path to the git executable. Autodetected if needed and not specified. + Putanja ka izvršnoj git datoteci. Automatski detektirano ako je potrebno i nije specificirano. @@ -685,12 +685,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Show option to change branches (requires git) - Show option to change branches (requires git) + Prikaži opciju za promjenu grana (zahtjeva git) Disable git (fall back to ZIP downloads only) - Disable git (fall back to ZIP downloads only) + Onemogući git (povratak na ZIP preuzimanja) @@ -738,7 +738,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Change branch - Change branch + Promijeni granu @@ -746,12 +746,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Manage Python Dependencies - Manage Python Dependencies + Upravljanje sa Python zavisnostima The following Python packages have been installed locally by the Addon Manager to satisfy Addon dependencies. Installation location: - The following Python packages have been installed locally by the Addon Manager to satisfy Addon dependencies. Installation location: + Sljedeće Python pakete je lokalno instalirao Upravitelj dodataka da bi zadovoljio zavisnosti dodataka. Lokacija instalacije: @@ -776,7 +776,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja An asterisk (*) in the "Used by" column indicates an optional dependency. Note that Used by only records direct imports in the Addon. Other Python packages that those packages depend upon may have been installed as well. - An asterisk (*) in the "Used by" column indicates an optional dependency. Note that Used by only records direct imports in the Addon. Other Python packages that those packages depend upon may have been installed as well. + Zvjezdica t.j. asteriks (*) u polju "Korišteno od" stupca označava neobaveznu zavisnost. Imaj na umu da 'Korišteno od' samo snima direktne uvoze u Dodatak. Možda su instalirani i drugi Python paketi od kojih ti paketi zavise. @@ -802,12 +802,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Updating Addons - Updating Addons + Ažuriraj Dodatke Updating out-of-date addons... - Updating out-of-date addons... + Ažuriranje zastarjelih dodataka... @@ -815,7 +815,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Content Item - Content Item + Sastavni dio @@ -840,22 +840,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja If this is the only thing in the Addon, all other metadata can be inherited from the top level, and does not need to be specified here. - If this is the only thing in the Addon, all other metadata can be inherited from the top level, and does not need to be specified here. + Ako je ovo jedina stvar u Dodatku, svi ostali metapodaci mogu biti nasljeđeni sa najviše razine i ne moraju se ovdje navoditi. This is the only item in the Addon - This is the only item in the Addon + Ovo je jedina stavka u Dodatku Main macro file - Main macro file + Glavna datoteka makro naredbe The file with the macro's metadata in it - The file with the macro's metadata in it + Datoteka sa metapodacima makro naredbe u njoj @@ -877,7 +877,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Class that defines "Icon" data member - Class that defines "Icon" data member + Klasa koja određuje podatak člana "Icon" @@ -899,7 +899,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Optional, defaults to inheriting from top-level Addon - Optional, defaults to inheriting from top-level Addon + Opciono, podrazumjevano nasljeđivanje od Dodatka najviše razine @@ -924,7 +924,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD". - Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD". + Prikazuje se na listi Upravitelja dodataka. Ne bi trebalo da sadrži riječ "FreeCAD". @@ -939,12 +939,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported - Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported + Podržani su stilovi Semantic (1.2.3-beta) ili CalVer (2022.08.30) Set to today (CalVer style) - Set to today (CalVer style) + Podesi na danas (CalVer stil) @@ -954,7 +954,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. - Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. + Sva polja ostavljena prazna su nasljeđena od metapodataka dodatka najviše razine, tako da tehnički, sva su neobavezna. Za dodatke sa više stavki sa sadržajem, svaka stavka treba da omogući jedinstveno ime i opis. @@ -1008,12 +1008,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Copyright holder: - Copyright holder: + Nositelj autorskih prava: Copyright year: - Copyright year: + Godina autorskog prava: @@ -1026,7 +1026,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja A maintainer is someone with current commit access on this project. An author is anyone else you'd like to give credit to. - A maintainer is someone with current commit access on this project. An author is anyone else you'd like to give credit to. + Održavatelj zadužen za održavanje je neko sa trenutnim pristupom ovom projektu. Autor je neko, kome možeš da odaš priznanje. @@ -1041,7 +1041,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Email is required for maintainers, and optional for authors. - Email is required for maintainers, and optional for authors. + E-pošta je neophodna za osobu odgovornu za održavanje, a neobavezna za autore. @@ -1054,7 +1054,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Proxy requires authentication - Proxy requires authentication + Proksi zahtjeva autentifikaciju @@ -1064,7 +1064,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Placeholder for proxy address - Placeholder for proxy address + Rezervirano mjesto za proksi adresu @@ -1074,7 +1074,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Placeholder for proxy realm - Placeholder for proxy realm + Rezervirano mjesto za proxy oblast @@ -1190,20 +1190,20 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Worker process {} is taking a long time to stop... - Worker process {} is taking a long time to stop... + Radni proces {} se dugo zaustavlja... Previous cache process was interrupted, restarting... - Previous cache process was interrupted, restarting... + Prethodni proces međuspremanja je prekinut, ponovo se pokreće... Custom repo list changed, forcing recache... - Custom repo list changed, forcing recache... + Korisnička lista spremišta je promjenjena, prisilno ponovno međuspremanje... @@ -1241,7 +1241,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Could not find addon '{}' to select - Could not find addon '{}' to select + Nije moguće pronaći Dodatak '{}' da bi se izabrao @@ -1265,12 +1265,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Cannot launch a new installer until the previous one has finished. - Cannot launch a new installer until the previous one has finished. + Ne može se pokrenuti novi program za instaliranje dok se prethodni ne završi. Execution of macro failed. See console for failure details. - Execution of macro failed. See console for failure details. + Izvršavanje makro naredbe nije uspjelo. Pogledaj konzolu za detalje o greškama. @@ -1296,12 +1296,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja This appears to be the first time this version of Python has been used with the Addon Manager. Would you like to install the same auto-installed dependencies for it? - This appears to be the first time this version of Python has been used with the Addon Manager. Would you like to install the same auto-installed dependencies for it? + Čini se da je ovo prvi put da je ova verzija Python-a korištena sa Upraviteljem dodataka. Da li želiš da za njega instaliraš iste automatski instalirane zavisnosti? Processing, please wait... - Processing, please wait... + U obradi, sačekaj... @@ -1317,22 +1317,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Could not import QtNetwork -- it does not appear to be installed on your system. Your provider may have a package for this dependency (often called "python3-pyside2.qtnetwork") - Could not import QtNetwork -- it does not appear to be installed on your system. Your provider may have a package for this dependency (often called "python3-pyside2.qtnetwork") + Nije moguće uvesti QtNetwork -- izgleda da nije instaliran na tvom operativnom sustavu. Tvoj davatelj usluga možda ima paket za ovu zavisnost (često se na primjer naziva, "python3-pyside2.qtnetwork") Failed to convert the specified proxy port '{}' to a port number - Failed to convert the specified proxy port '{}' to a port number + Konvertiranje navedenog proksi porta '{}' nije uspjelo Parameter error: mutually exclusive proxy options set. Resetting to default. - Parameter error: mutually exclusive proxy options set. Resetting to default. + Greška u parametru: postavljene su međusobno isključive proksi opcije. Vraćanje na zadane vrijednosti. Parameter error: user proxy indicated, but no proxy provided. Resetting to default. - Parameter error: user proxy indicated, but no proxy provided. Resetting to default. + Greška u parametru: korisnički proksi je označen, ali nije moguće. Vraćanje na zadane vrijednosti. @@ -1342,19 +1342,19 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Error with encrypted connection - Error with encrypted connection + Pogreška s šifriranom vezom Confirm remove - Confirm remove + Potvrdi uklanjanje Are you sure you want to uninstall {}? - Are you sure you want to uninstall {}? + Da li ste sigurni da želite deinstalirati {}? @@ -1383,22 +1383,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Addon Manager Warning: Could not import QtWebEngineWidgets -- README data will display as text-only - Addon Manager Warning: Could not import QtWebEngineWidgets -- README data will display as text-only + Upozorenje Upravitelja dodataka: Nije moguće uvesti QtWebEngineWidgets -- README podaci će se prikazati samo kao tekst Version {version} installed on {date} - Version {version} installed on {date} + Dana {date} instalirana je verzija {version} Version {version} installed - Version {version} installed + Instalirana {version} verzija Installed on {date} - Installed on {date} + Instalirano {date} @@ -1411,7 +1411,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja On branch {}, update available to version - On branch {}, update available to version + Na grani {}, dostupno ažuriranje na verziju @@ -1421,105 +1421,105 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja An update is available - An update is available + Ažuriranje je dostupno Git tag '{}' checked out, no updates possible - Git tag '{}' checked out, no updates possible + Oznaka Git-a '{}' provjerena, ažuriranja nisu moguća This is the latest version available for branch {} - This is the latest version available for branch {} + Ovo je najnovija verzija dostupna za granu {} Updated, please restart FreeCAD to use - Updated, please restart FreeCAD to use + Ažurirano, ponovno pokrenite FreeCAD za korištenje Update check in progress - Update check in progress + Provjera ažuriranja u tijeku Automatic update checks disabled - Automatic update checks disabled + Provjera automatskog ažuriranja isključena Installation location - Installation location + Mjesto instaliranja WARNING: This addon is obsolete - WARNING: This addon is obsolete + UPOZORENJE: Ovaj dodatak je zastario WARNING: This addon is Python 2 Only - WARNING: This addon is Python 2 Only + UPOZORENJE: Ovaj dodatak je samo za Python 2 WARNING: This addon requires FreeCAD - WARNING: This addon requires FreeCAD + UPOZORENJE: Ovaj dodatak treba FreeCAD WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. - WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. + UPOZORENJE: Ovaj dodatak je trenutno instaliran, ali je onemogućen. Koristi 'omogući' gumb da bi ponovo omogućio. No URL or wiki page provided by this macro - No URL or wiki page provided by this macro + Ova makro naredba nema URL ili wiki stranicu Could not load README data from URL {} - Could not load README data from URL {} + Nije moguće učitati README podatke sa URL-a {} This Addon will be enabled next time you restart FreeCAD. - This Addon will be enabled next time you restart FreeCAD. + Ovaj Dodatak će biti omogućen sljedeći put kada ponovo pokreneš FreeCAD. This Addon will be disabled next time you restart FreeCAD. - This Addon will be disabled next time you restart FreeCAD. + Ovaj Dodatak će biti onemogućen sljedeći put kada ponovo pokreneš FreeCAD. QtWebEngine Python bindings not installed -- using fallback README display. - QtWebEngine Python bindings not installed -- using fallback README display. + QtWebEngine Python veze nisu instalirane -- koristi se prikaz zaobilaznog README-a. Success - Success + Uspješno obavljeno Branch change succeeded, please restart to use the new version. - Branch change succeeded, please restart to use the new version. + Promjena grane je uspela, ponovo pokreni da bi koristio novu verziju. Changed to git ref '{}' -- please restart to use Addon. - Changed to git ref '{}' -- please restart to use Addon. + Promjenjeno u git ref '{}' -- ponovo pokreni da bi koristio Dodatak. Page JavaScript reported - Page JavaScript reported + Prijavljen JavaScript na stranici @@ -1564,7 +1564,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja The page is taking a long time to load... showing the data we have so far... - The page is taking a long time to load... showing the data we have so far... + Stranica se dugo učitava... prikazuje podatke koje imamo do sada... @@ -1584,12 +1584,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Missing dependency - Missing dependency + Nedostaje zavisnost Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. - Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. + Nije moguće uvesti QtNetwork – pogledaj pregled izvješća za detalje. Upravitelj dodataka nije dostupan. @@ -1600,49 +1600,49 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Select the corresponding license file in your Addon - Select the corresponding license file in your Addon + Izaberi odgovarajuću datoteku licence u svom Dodatku Location for new license file - Location for new license file + Lokacija za novu licencnu datoteku Received {} response code from server - Received {} response code from server + Primljen {} kod odgovora sa servera Failed to install macro {} - Failed to install macro {} + Nije moguće instalirati makro naredbu {} Unrecognized content kind '{}' - Unrecognized content kind '{}' + Nepoznata vrsta sadržaja '{}' Unable to locate icon at {} - Unable to locate icon at {} + Nije moguće pronaći ikonu u {} Select an icon file for this content item - Select an icon file for this content item + Izaberi datoteku ikone za ovu stavku sadržaja {} is not a subdirectory of {} - {} is not a subdirectory of {} + {} nije poddirektorij {} Select the subdirectory for this content item - Select the subdirectory for this content item + Izaberi poddirektorij za ovu stavku sadržaja @@ -1698,7 +1698,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Too many to list - Too many to list + Previše ih je da bi se izlistali @@ -1713,7 +1713,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Addon '{}' requires '{}', which is not available in your copy of FreeCAD. - Addon '{}' requires '{}', which is not available in your copy of FreeCAD. + Dodatak '{}' zahtijeva '{}&apos, koji nisu dostupni u vašoj kopiji FreeCAD-a. @@ -1723,23 +1723,23 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Press OK to install anyway. - Press OK to install anyway. + Pritisni OK da bi ipak instaliralo. Incompatible Python version - Incompatible Python version + Nekompatibilna Python verzija This Addon (or one if its dependencies) requires Python {}.{}, and your system is running {}.{}. Installation cancelled. - This Addon (or one if its dependencies) requires Python {}.{}, and your system is running {}.{}. Installation cancelled. + Ovaj Dodatak (ili jedna od njegovih zavisnosti) zahtjeva Pithon {}.{}, a tvoj operativni sustav radi na {}.{}. Instalacija je prekinuta. Optional dependency on {} ignored because it is not in the allow-list - Optional dependency on {} ignored because it is not in the allow-list + Neobavezna zavisnost od {} se zanemaruje jer se ne nalazi na listi dozvoljenih @@ -1751,45 +1751,45 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Cannot execute Python - Cannot execute Python + Nije moguće pokrenuti Python Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. - Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. + Automatsko pronalaženje izvršne datoteke Python-a nije uspjelo, ili je putanja pogrešno zadana. Provjeri ispravnost ove putanje u podešavanjima za Upravitelj dodataka. Dependencies could not be installed. Continue with installation of {} anyway? - Dependencies could not be installed. Continue with installation of {} anyway? + Zavisnosti se ne mogu instalirati. Želiš li ipak nastaviti sa instalacijom {}? Cannot execute pip - Cannot execute pip + Nije moguće pokrenuti pip Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: - Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: + Izvršavanje pip-a nije uspjelo, izgleda da on nedostaje u tvojoj Python instalaciji. Uvjeri se da tvoj operativni sustav ima instaliran pip i pokušaj ponovo. Neuspjela naredba je bila: Continue with installation of {} anyway? - Continue with installation of {} anyway? + Želiš li ipak nastaviti sa instalacijom {}? Package installation failed - Package installation failed + Instalacija paketa nije uspjela See Report View for detailed failure log. - See Report View for detailed failure log. + Pogledaj Pregled izvješća za detaljan zapisnik grešaka. @@ -1799,17 +1799,17 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Installing FreeCAD Addon '{}' - Installing FreeCAD Addon '{}' + Instalacija FreeCAD Dodatka '{}' Cancelling - Cancelling + Otkazivanje Cancelling installation of '{}' - Cancelling installation of '{}' + Prekid instalacije '{}' @@ -1831,13 +1831,13 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Create new toolbar - Create new toolbar + Napravi novu Alatnu traku A macro installed with the FreeCAD Addon Manager - A macro installed with the FreeCAD Addon Manager + Makro naredba instalirana sa FreeCAD Upraviteljem dodataka @@ -1849,22 +1849,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Unable to read data from GitHub: check your internet connection and proxy settings and try again. - Unable to read data from GitHub: check your internet connection and proxy settings and try again. + Nije moguće pročitati podatke sa GitHub-a: provjeri internet vezu i podešavanja proksija i pokušaj ponovo. XML failure while reading metadata from file {} - XML failure while reading metadata from file {} + XML greška pri čitanju metapodataka iz datoteke {} Invalid metadata in file {} - Invalid metadata in file {} + Nevažeća stavka metapodataka u datoteci {} WARNING: Path specified in package.xml metadata does not match currently checked-out branch. - WARNING: Path specified in package.xml metadata does not match currently checked-out branch. + UPOZORENJE: Putanja navedena u metapodacima package.xml ne odgovara trenutnoј checked-out grani. @@ -1894,18 +1894,18 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Select the folder containing your Addon - Select the folder containing your Addon + Izaberi mapu u kojoj se nalazi tvoj Dodatak No Vermin, cancelling operation. NOTE: Vermin is a Python package and proper noun - do not translate - No Vermin, cancelling operation. + Nema Vermin-a, operacija se otkazuje. Scanning Addon for Python version compatibility - Scanning Addon for Python version compatibility + Skeniranje Dodatka za Python radi utvrđivanja kompatibilnosti @@ -1915,22 +1915,22 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Vermin auto-detected a required version of Python 3.{} - Vermin auto-detected a required version of Python 3.{} + Vermin je automatski otkrio potrebnu verziju Python-a 3.{} Install Vermin? - Install Vermin? + Instaliraj Vermin? Auto-detecting the required version of Python for this Addon requires Vermin (https://pypi.org/project/vermin/). OK to install? - Auto-detecting the required version of Python for this Addon requires Vermin (https://pypi.org/project/vermin/). OK to install? + Za automatsko otkrivanje potrebne verzije Python-a za ovaj dodatak potreban je Vermin (https://pipi.org/project/vermin/). Pritisnite OK ako želite instalirati? Attempting to install Vermin from PyPi - Attempting to install Vermin from PyPi + Pokušaj instaliranja Vermin-a sa PyPi @@ -1942,18 +1942,18 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Failed to install Vermin -- check Report View for details. 'Vermin' is the name of a Python package, do not translate - Failed to install Vermin -- check Report View for details. + Instalacija Vermin-a nije uspjela – provjeri pregled izvješća za detalje. Failed to import vermin after installation -- cannot scan Addon. 'vermin' is the name of a Python package, do not translate - Failed to import vermin after installation -- cannot scan Addon. + Uvoz Vermin-a nakon instalacije nije uspio - ne može da se skenira Dodatak. Select an icon file for this package - Select an icon file for this package + Izaberi datoteku ikone za ovaj paket @@ -1985,7 +1985,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Maintainers: - Maintainers: + Održavatelji: @@ -1995,32 +1995,32 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja updated - updated + ažurirano Up-to-date - Up-to-date + Aktualno Update available - Update available + Dostupno ažuriranje Pending restart - Pending restart + Na čekanju ponovnog pokretanja DISABLED - DISABLED + ONEMOGUĆENO @@ -2030,12 +2030,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Unknown version - Unknown version + Nepoznata verzija Installed on - Installed on + Instalirano na @@ -2045,7 +2045,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Show Addons containing: - Show Addons containing: + Prikaži dodatke koji sadrže: @@ -2065,7 +2065,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Preference Packs - Preference Packs + Preference Packs @@ -2080,7 +2080,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Not installed - Not installed + Nije instalirano @@ -2095,12 +2095,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja DANGER: Developer feature - DANGER: Developer feature + OPASNOST: Funkcija za programere DANGER: Switching branches is intended for developers and beta testers, and may result in broken, non-backwards compatible documents, instability, crashes, and/or the premature heat death of the universe. Are you sure you want to continue? - DANGER: Switching branches is intended for developers and beta testers, and may result in broken, non-backwards compatible documents, instability, crashes, and/or the premature heat death of the universe. Are you sure you want to continue? + OPASNOST: Prebacivanje grana je namjenjeno programerima i beta testerima i može da dovede do oštećenih dokumenata koji nisu kompatibilni unazad, nestabilnosti, kvarova i/ili preranog toplotnog kolapsa univerzuma. Da li si siguran da želiš da nastaviš? @@ -2110,7 +2110,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja WARNING: This repo has uncommitted local changes. Are you sure you want to change branches (bringing the changes with you)? - WARNING: This repo has uncommitted local changes. Are you sure you want to change branches (bringing the changes with you)? + UPOZORENjE: Ovo spremište ima nepovezane lokalne promjene. Da li si siguran da želiš da promjeniš grane (donoseći promjene sa sobom)? @@ -2136,7 +2136,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Local name Table header for git ref name - Local name + Lokalno ime @@ -2159,82 +2159,82 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Installation of Python package {} failed - Installation of Python package {} failed + Instalacija Python paketa {} nije uspjelo Installation of optional package failed - Installation of optional package failed + Instalacija opcionalnih paketa {} nije uspjelo Installing required dependency {} - Installing required dependency {} + Instaliranje potrebne zavisnosti {} Installation of Addon {} failed - Installation of Addon {} failed + Instalacija Dodatka {} nije uspjela. Downloaded package.xml for {} - Downloaded package.xml for {} + Preuzet package.xml za {} Failed to decode {} file for Addon '{}' - Failed to decode {} file for Addon '{}' + Dekodiranje {} datoteke za Dodatak '{}' nije uspjelo Any dependency information in this file will be ignored - Any dependency information in this file will be ignored + Sve informacije o zavisnosti u ovoj datoteci će biti ignorirane Downloaded metadata.txt for {} - Downloaded metadata.txt for {} + Preuzet metadata.txt za {} Downloaded requirements.txt for {} - Downloaded requirements.txt for {} + Preuzet requirements.txt za {} Downloaded icon for {} - Downloaded icon for {} + Preuzeta ikona za {} Unable to open macro wiki page at {} - Unable to open macro wiki page at {} + Nije moguće otvoriti makro wiki stranicu na {} Unable to fetch the code of this macro. - Unable to fetch the code of this macro. + Nije moguće preuzeti kod ove makro naredbe. Unable to retrieve a description from the wiki for macro {} - Unable to retrieve a description from the wiki for macro {} + Nije moguće preuzeti opis sa wiki-ja za makro naredbu {} Unable to open macro code URL {} - Unable to open macro code URL {} + Nije moguće otvoriti makro kod URL {} Unable to fetch macro-specified file {} from {} - Unable to fetch macro-specified file {} from {} + Nije moguće preuzeti datoteku {} navedene makro naredbe iz {} Could not locate macro-specified file {} (expected at {}) - Could not locate macro-specified file {} (expected at {}) + Nije moguće locirati datoteku navedenu u makro naredbi {} (trebala je biti u {}) @@ -2244,58 +2244,58 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) - Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) + Upozorenje za programere Dodatka: URL adresa spremišta zadana u package.xml datoteci za dodatak {} ({}) ne odgovara URL adresi sa koje je preuzet ({}) Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) - Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) + Upozorenje za programere Dodatka: Grana-adresa spremišta zadana u package.xml datoteci za dodatak {} ({}) ne odgovara Grana-adresi sa koje je preuzet ({}) Got an error when trying to import {} - Got an error when trying to import {} + Greška pri pokušaju uvoza {} An unknown error occurred - An unknown error occurred + Dogodila se nepoznata greška Could not find addon {} to remove it. - Could not find addon {} to remove it. + Nije moguće pronaći Dodatak {} da se ukloni. Execution of Addon's uninstall.py script failed. Proceeding with uninstall... - Execution of Addon's uninstall.py script failed. Proceeding with uninstall... + Izvršavanje uninstall.py skripte Dodatka nije usjpelo. Nastavlja se sa deinstaliranjem... Removed extra installed file {} - Removed extra installed file {} + Uklonjena je dodatno instalirana datoteka {} Error while trying to remove extra installed file {} - Error while trying to remove extra installed file {} + Greška pri pokušaju uklanjanja dodatno instalirane datoteke {} Error while trying to remove macro file {}: - Error while trying to remove macro file {}: + Greška pri pokušaju uklanjanja datoteke makro naredbe {}: Failed to connect to GitHub. Check your connection and proxy settings. - Failed to connect to GitHub. Check your connection and proxy settings. + Povezivanje sa GitHub-om nije uspjelo. Provjeri podešavanja veze i proksija. WARNING: Duplicate addon {} ignored - WARNING: Duplicate addon {} ignored + UPOZORENJE: Duplikat dodatka {} je ignoriran @@ -2305,39 +2305,38 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Git is disabled, skipping git macros - Git is disabled, skipping git macros + Git je onemogućen, preskaču se git makro naredbe Attempting to change non-git Macro setup to use git - Attempting to change non-git Macro setup to use git - + Pokušaj promjene postavki ne git makro naredbi da koriste git An error occurred updating macros from GitHub, trying clean checkout... - An error occurred updating macros from GitHub, trying clean checkout... + Došlo je do greške pri ažuriranju makro naredbi a sa GitHub-a, pokušavam čistu provjeru... Attempting to do a clean checkout... - Attempting to do a clean checkout... + Pokušavam napraviti čistu provjeru... Clean checkout succeeded - Clean checkout succeeded + Čista provjera je uspjela Failed to update macros from GitHub -- try clearing the Addon Manager's cache. - Failed to update macros from GitHub -- try clearing the Addon Manager's cache. + Nije uspjelo ažurirati makro naredbe s GitHuba. Pokušajte izbrisati predmemoriju Upravitelja dodataka. Error connecting to the Wiki, FreeCAD cannot retrieve the Wiki macro list at this time - Error connecting to the Wiki, FreeCAD cannot retrieve the Wiki macro list at this time + Čini se da je problem povezivanje s Wiki-em, FreeCAD trenutačno ne može dohvatiti popis makronaredbi Wiki-a @@ -2347,69 +2346,68 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja git status failed for {} - git status failed for {} + git stanje nije uspjelo za {} Failed to read metadata from {name} - Failed to read metadata from {name} + Nije uspjelo čitanje metapodataka iz {name} Failed to fetch code for macro '{name}' - Failed to fetch code for macro '{name}' + Nije uspjelo preuzimanje koda za makro naredbu '{name}' Caching macro code... - Caching macro code... + Osvježavanje koda makronaredbe... Addon Manager: a worker process failed to complete while fetching {name} - Addon Manager: a worker process failed to complete while fetching {name} + Upravitelj dodataka: radni proces nije uspio da se završi prilikom preuzimanja {name} Out of {num_macros} macros, {num_failed} timed out while processing - Out of {num_macros} macros, {num_failed} timed out while processing + Za {num_macros} makro naredbu je prekoračen je vremenski limit, {num_failed} tokom obrade Addon Manager: a worker process failed to halt ({name}) - Addon Manager: a worker process failed to halt ({name}) + Upravitelj dodataka: radni proces nije uspio da se zaustavi {name}) Getting metadata from macro {} - Getting metadata from macro {} + Preuzimanje metapodataka iz makro naredbe {} Timeout while fetching metadata for macro {} - Timeout while fetching metadata for macro {} + Isteklo je vrijeme za preuzimanje metapodataka za makro naredbu {} Failed to kill process for macro {}! - Failed to kill process for macro {}! - + Zaustavljanje procesa za makro naredbu {} nije uspjelo Retrieving macro description... - Retrieving macro description... + Dohvaćanje opisa makro naredbe... Retrieving info from git - Retrieving info from git + Dohvaćanje informacije od git Retrieving info from wiki - Retrieving info from wiki + Dohvaćanje informacije od wiki-a @@ -2421,47 +2419,47 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Branch name Preferences header for custom repositories - Branch name + Naziv grane Basic git update failed with the following message: - Basic git update failed with the following message: + Osnovno ažuriranje git-a nije uspjelo sa sljedećom porukom: Backing up the original directory and re-cloning - Backing up the original directory and re-cloning + Pravljenje rezervne kopije originalnog direktorija i ponovno kloniranje Failed to clone {} into {} using git - Failed to clone {} into {} using git + Kloniranje pomoću git-a {} u {} nije uspjelo Installing - Installing + Instalacija Succeeded - Succeeded + Uspijelo je Failed - Failed + Neuspješno Update was cancelled - Update was cancelled + Ažuriranje je obustavljeno some addons may have been updated - some addons may have been updated + neki dodaci su možda ažurirani @@ -2482,12 +2480,12 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Finished removing {} - Finished removing {} + Završeno premještanje {} Failed to remove some files - Failed to remove some files + Nije uspjelo uklanjanje nekih datoteka @@ -2495,7 +2493,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Finished updating the following addons - Finished updating the following addons + Završeno je ažuriranje sljedećih dodataka @@ -2503,7 +2501,7 @@ instalirani dodaci će se provjeriti na dostupna ažuriranja Auto-Created Macro Toolbar - Auto-Created Macro Toolbar + Automatski napravljena Makro alatna traka diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.qm index 6fe8dd478c..6d42b90487 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts index 736fa1fcb8..8ca4ccb80f 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts @@ -37,7 +37,7 @@ <b>Package Name</b> - <b>Package Name</b> + <b>パッケージ名</b> @@ -54,7 +54,7 @@ Update Available - Update Available + 利用可能なアップデートがあります @@ -67,12 +67,12 @@ Dependencies - Dependencies + 依存関係 Dependency type - Dependency type + 依存関係の種類 @@ -82,7 +82,7 @@ Optional? - Optional? + オプション? @@ -91,16 +91,16 @@ Resolve Dependencies - Resolve Dependencies + 依存関係を解決 This Addon has the following required and optional dependencies. You must install them before this Addon can be used. Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. - This Addon has the following required and optional dependencies. You must install them before this Addon can be used. + このアドオンには以下の必須依存関係、オプション依存関係があります。このアドオンを使用できるようにするにはこれらをインストールする必要があります。 -Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. +アドオン・マネージャーに自動的にインストールしますか? 依存関係をインストールせずにアドオンをインストールするには"無視" を選択してください。 @@ -144,13 +144,13 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Primary branch - Primary branch + プライマリーブランチ Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. - Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. + このアドオンが提供するものの説明です。アドオンマネージャーに表示されます。FreeCADアドオン であることを示す必要ありません。 @@ -175,12 +175,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported - Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported + セマンティック・スタイル (1.2.3-beta) 、CalVer スタイル (20202.08.30) をサポート Set to today (CalVer style) - Set to today (CalVer style) + 今日に設定 (CalVer スタイル) @@ -194,7 +194,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD", and must be a valid directory name on all support operating systems. - Displayed in the Addon Manager's list of Addons. Should not include the word "FreeCAD", and must be a valid directory name on all support operating systems. + アドオン・マネージャーのアドオンリストに表示されます。「FreeCAD」という単語を含まない、サポートされているすべてのオペレーティングシステムで利用可能なディレクトリ名でなければなりません。 @@ -239,12 +239,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Minimum Python - Minimum Python + Python 最低要件 (Optional, only 3.x version supported) - (Optional, only 3.x version supported) + (オプション、3.x バージョンのみサポート) @@ -254,7 +254,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon Contents - Addon Contents + アドオンの内容 @@ -272,7 +272,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Stop the cache update - Stop the cache update + キャッシュの更新を停止 @@ -302,7 +302,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Python dependencies... - Python dependencies... + Python の依存関係... @@ -322,17 +322,17 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Edit Tags - Edit Tags + タグを編集 Comma-separated list of tags describing this item: - Comma-separated list of tags describing this item: + カンマで区切られた、この項目を説明するタグのリスト: HINT: Common tags include "Assembly", "FEM", "Mesh", "NURBS", etc. - HINT: Common tags include "Assembly", "FEM", "Mesh", "NURBS", etc. + ヒント: 一般的なタグには "Assembly", "FEM", "Mesh", "NURBS"などがあります。 @@ -377,7 +377,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore These and other settings are available in the FreeCAD Preferences window. - These and other settings are available in the FreeCAD Preferences window. + これらの設定は FreeCAD の設定ウィンドウで利用できます。 @@ -385,32 +385,32 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Edit Dependency - Edit Dependency + 依存関係を編集 Dependency Type - Dependency Type + 依存関係の種類 Dependency - Dependency + 依存関係 Package name, if "Other..." - Package name, if "Other..." + パッケージ名、もし「その他...」の場合 NOTE: If "Other..." is selected, the package is not in the ALLOWED_PYTHON_PACKAGES.txt file, and will not be automatically installed by the Addon Manager. Submit a PR at <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> to request addition of a package. - NOTE: If "Other..." is selected, the package is not in the ALLOWED_PYTHON_PACKAGES.txt file, and will not be automatically installed by the Addon Manager. Submit a PR at <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> to request addition of a package. + 注意: 「その他...」を選択すると、パッケージは ALLOWED_PYTHON_PACKAGES.txt ファイルに記載されず、アドオン・マネージャーは自動インストールを行ないません。パッケージを追加したい場合は <a href="https://github.com/FreeCAD/FreeCAD-addons">https://github.com/FreeCAD/FreeCAD-addons</a> へ PR を投稿してください。 If this is an optional dependency, the Addon Manager will offer to install it (when possible), but will not block installation if the user chooses not to, or cannot, install the package. - If this is an optional dependency, the Addon Manager will offer to install it (when possible), but will not block installation if the user chooses not to, or cannot, install the package. + これがオプションの依存関係である場合、アドオン・マネージャーは (可能であれば) そのインストールを提供しますが、ユーザーがパッケージをインストールしない、またはできない場合でも、インストールをブロックはしません。 @@ -436,7 +436,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore <h1>Package Name</h1> - <h1>Package Name</h1> + <h1>パッケージ名</h1> @@ -448,7 +448,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore (tags) - (tags) + (タグ) @@ -465,7 +465,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Update Available - Update Available + 利用可能なアップデートがあります @@ -499,12 +499,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore People - People + 人々 Kind - Kind + 種類 @@ -574,7 +574,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon manager options - Addon manager options + アドオン・マネージャーのオプション @@ -606,32 +606,32 @@ installed addons will be checked for available updates Daily - Daily + 日次 Weekly - Weekly + 週次 Hide Addons marked Python 2 Only - Hide Addons marked Python 2 Only + Python 2 専用のアドオンを非表示 Hide Addons marked Obsolete - Hide Addons marked Obsolete + 廃止されたアドオンを非表示 Hide Addons that require a newer version of FreeCAD - Hide Addons that require a newer version of FreeCAD + 新しいバージョンの FreeCAD が必要なアドオンを非表示 Custom repositories - Custom repositories + カスタムリポジトリ @@ -656,12 +656,12 @@ installed addons will be checked for available updates Path to Python executable (optional): - Path to Python executable (optional): + Python 実行ファイルのパス (オプション): Path to git executable (optional): - Path to git executable (optional): + Git 実行ファイルのパス (オプション): @@ -681,17 +681,17 @@ installed addons will be checked for available updates Show option to change branches (requires git) - Show option to change branches (requires git) + ブランチ変更オプションを表示 (gitが必要) Disable git (fall back to ZIP downloads only) - Disable git (fall back to ZIP downloads only) + Git を無効にする (ZIP ダウンロードのみに戻ります) Activate Addon Manager options intended for developers of new Addons. - Activate Addon Manager options intended for developers of new Addons. + 新しいアドオン開発者向けのアドオン・マネージャー・オプションを有効にします。 @@ -798,12 +798,12 @@ installed addons will be checked for available updates Updating Addons - Updating Addons + アドオンを更新 Updating out-of-date addons... - Updating out-of-date addons... + 廃止されたアドオンを更新... @@ -811,12 +811,12 @@ installed addons will be checked for available updates Content Item - Content Item + コンテンツアイテム Content type: - Content type: + コンテンツの種類: @@ -903,17 +903,17 @@ installed addons will be checked for available updates Dependencies... - Dependencies... + 依存関係... FreeCAD Versions... - FreeCAD Versions... + FreeCAD バージョン... Other Metadata - Other Metadata + その他のメタデータ @@ -933,22 +933,22 @@ installed addons will be checked for available updates Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported - Semantic (1.2.3-beta) or CalVer (2022.08.30) styles supported + セマンティック・スタイル (1.2.3-beta) 、CalVer スタイル (20202.08.30) をサポート Set to today (CalVer style) - Set to today (CalVer style) + 今日に設定 (CalVer スタイル) Display Name - Display Name + 表示名 Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. - Any fields left blank are inherited from the top-level Addon metadata, so technically they are all optional. For Addons with multiple content items, each item should provide a unique Display Name and Description. + 空白のフィールドは、トップレベルの Addon メタデータから継承されるため、実質的にはすべてオプションです。 複数のコンテンツアイテムを持つアドオンでは、各アイテムには一意な表示名と説明を指定する必要があります。 @@ -956,7 +956,7 @@ installed addons will be checked for available updates Add button? - Add button? + ボタンを追加しますか? @@ -1146,7 +1146,7 @@ installed addons will be checked for available updates Add button? - Add button? + ボタンを追加しますか? @@ -1203,7 +1203,7 @@ installed addons will be checked for available updates Addon manager - Addon manager + アドオン・マネージャー @@ -1213,12 +1213,12 @@ installed addons will be checked for available updates Restart now - Restart now + 今すぐ再起動 Restart later - Restart later + 後で再起動 @@ -1229,7 +1229,7 @@ installed addons will be checked for available updates Updating cache... - Updating cache... + キャッシュを更新しています... @@ -1242,7 +1242,7 @@ installed addons will be checked for available updates Checking for updates... - Checking for updates... + アップデートを確認中… @@ -1306,7 +1306,7 @@ installed addons will be checked for available updates Updating... - Updating... + 更新中... @@ -1355,24 +1355,24 @@ installed addons will be checked for available updates Removing Addon - Removing Addon + アドオンを削除中 Removing {} - Removing {} + {} を削除 Uninstall complete - Uninstall complete + アンインストール完了 Uninstall failed - Uninstall failed + アンインストールに失敗しました @@ -1382,17 +1382,17 @@ installed addons will be checked for available updates Version {version} installed on {date} - Version {version} installed on {date} + {date} にバージョン {version} がインストールされました Version {version} installed - Version {version} installed + バージョン {version} がインストールされました Installed on {date} - Installed on {date} + {date} にインストールされました @@ -1400,7 +1400,7 @@ installed addons will be checked for available updates Installed - Installed + インストール済み @@ -1415,7 +1415,7 @@ installed addons will be checked for available updates An update is available - An update is available + 利用可能なアップデートがあります @@ -1450,22 +1450,22 @@ installed addons will be checked for available updates WARNING: This addon is obsolete - WARNING: This addon is obsolete + 警告: このアドオンは廃止されています。 WARNING: This addon is Python 2 Only - WARNING: This addon is Python 2 Only + 警告: このアドオンは Python 2 のみです。 WARNING: This addon requires FreeCAD - WARNING: This addon requires FreeCAD + 警告: このアドオンは FreeCAD が必要です。 WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. - WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. + 警告: このアドオンは現在インストールされていますが無効になっています。再度有効にするには '有効' ボタンを使用してください。 @@ -1481,7 +1481,7 @@ installed addons will be checked for available updates This Addon will be enabled next time you restart FreeCAD. - This Addon will be enabled next time you restart FreeCAD. + このアドオンは次回 FreeCAD を再起動したときに有効になります。 @@ -1589,7 +1589,7 @@ installed addons will be checked for available updates Other... For providing a license other than one listed - Other... + その他... @@ -1599,7 +1599,7 @@ installed addons will be checked for available updates Location for new license file - Location for new license file + 新しいライセンスファイルの場所 @@ -1656,7 +1656,7 @@ installed addons will be checked for available updates Python - Python + Python @@ -1666,28 +1666,28 @@ installed addons will be checked for available updates Internal Workbench - Internal Workbench + 内部ワークベンチ External Addon - External Addon + 外部アドオン Python Package - Python Package + Python パッケージ Other... - Other... + その他... This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: - This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: + このアドオンは必要な Python パッケージがインストールされていおらず、自動ではインストールできません。 このワークベンチを使用するには、以下の Python パッケージを手動でインストールする必要があります。 @@ -2122,7 +2122,7 @@ installed addons will be checked for available updates Kind Table header for git ref type (e.g. either Tag or Branch) - Kind + 種類 @@ -2211,7 +2211,7 @@ installed addons will be checked for available updates Unable to retrieve a description from the wiki for macro {} - Unable to retrieve a description from the wiki for macro {} + マクロ {} の説明をウィキから取得できません。 @@ -2391,7 +2391,7 @@ installed addons will be checked for available updates Retrieving macro description... - Retrieving macro description... + マクロの説明を取得... diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.qm index de75d1293a..70070b956a 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts index 6322fd5a1d..614555c16f 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts @@ -16,7 +16,7 @@ Branch - Branch + Aftakking @@ -37,7 +37,7 @@ <b>Package Name</b> - <b>Package Name</b> + <b>Pakket Naam</b> @@ -67,12 +67,12 @@ Dependencies - Dependencies + Afhankelijkheden Dependency type - Dependency type + Afhankelijkheidstype @@ -82,7 +82,7 @@ Optional? - Optional? + Optioneel? @@ -91,21 +91,21 @@ Resolve Dependencies - Resolve Dependencies + Afhankelijkheden oplossen This Addon has the following required and optional dependencies. You must install them before this Addon can be used. Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. - This Addon has the following required and optional dependencies. You must install them before this Addon can be used. + Deze Addon heeft de volgende vereiste en optionele afhankelijkheden. Je moet ze installeren voordat deze Addon kan worden gebruikt. -Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. +Wilt u dat de Addon Manager deze automatisch installeert? Kies "Negeren" om de Addon te installeren zonder de afhankelijkheden te installeren. FreeCAD Addons - FreeCAD Addons + FreeCAD Addons @@ -199,7 +199,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore README URL - README URL + LEESME URL @@ -272,7 +272,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Stop the cache update - Stop the cache update + Cache update stoppen @@ -292,7 +292,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Check for updates - Check for updates + Op updates controleren @@ -347,7 +347,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Download Settings - Download Settings + Instellingen downloaden @@ -357,7 +357,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Download Macro metadata (approximately 10MB) - Download Macro metadata (approximately 10MB) + Download Macro-metadata (ongeveer 10MB) @@ -377,7 +377,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore These and other settings are available in the FreeCAD Preferences window. - These and other settings are available in the FreeCAD Preferences window. + Deze en andere instellingen zijn beschikbaar in het venster FreeCAD Voorkeuren. @@ -448,7 +448,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore (tags) - (tags) + (labels) @@ -593,7 +593,7 @@ installed addons will be checked for available updates Download Macro metadata (approximately 10MB) - Download Macro metadata (approximately 10MB) + Download Macro-metadata (ongeveer 10MB) @@ -678,7 +678,7 @@ installed addons will be checked for available updates Advanced Options - Advanced Options + Geavanceerde Opties @@ -759,17 +759,17 @@ installed addons will be checked for available updates Installed version - Installed version + Geïnstalleerde versie Available version - Available version + Beschikbare versie Used by - Used by + Gebruikt door @@ -779,7 +779,7 @@ installed addons will be checked for available updates Update all available - Update all available + Update alle beschikbare @@ -813,12 +813,12 @@ installed addons will be checked for available updates Content Item - Content Item + Inhoud Item Content type: - Content type: + Soort: @@ -828,7 +828,7 @@ installed addons will be checked for available updates Preference Pack - Preference Pack + Voorkeurspakket @@ -848,7 +848,7 @@ installed addons will be checked for available updates Main macro file - Main macro file + Hoofd macrobestand @@ -880,7 +880,7 @@ installed addons will be checked for available updates Subdirectory - Subdirectory + Submap @@ -900,12 +900,12 @@ installed addons will be checked for available updates Tags... - Tags... + Labels... Dependencies... - Dependencies... + Afhankelijkheden... @@ -1176,7 +1176,7 @@ installed addons will be checked for available updates Starting up... - Starting up... + Opstarten... @@ -1210,17 +1210,17 @@ installed addons will be checked for available updates You must restart FreeCAD for changes to take effect. - You must restart FreeCAD for changes to take effect. + U moet FreeCAD herstarten om de wijzigingen toe te passen. Restart now - Restart now + Nu opnieuw opstarten Restart later - Restart later + Later opnieuw opstarten @@ -1231,7 +1231,7 @@ installed addons will be checked for available updates Updating cache... - Updating cache... + Bezig met updaten van cache... @@ -1244,24 +1244,24 @@ installed addons will be checked for available updates Checking for updates... - Checking for updates... + Zoeken naar updates... Apply {} update(s) - Apply {} update(s) + {} update(s) toepassen No updates available - No updates available + Geen updates beschikbaar Cannot launch a new installer until the previous one has finished. - Cannot launch a new installer until the previous one has finished. + Kan geen nieuw installatieprogramma starten totdat de vorige klaar is. @@ -1287,7 +1287,7 @@ installed addons will be checked for available updates New Python Version Detected - New Python Version Detected + Nieuwe Python versie gedetecteerd @@ -1297,7 +1297,7 @@ installed addons will be checked for available updates Processing, please wait... - Processing, please wait... + Bezig, even geduld... @@ -1308,7 +1308,7 @@ installed addons will be checked for available updates Updating... - Updating... + Updaten... @@ -1345,12 +1345,12 @@ installed addons will be checked for available updates Confirm remove - Confirm remove + Bevestig verwijdering Are you sure you want to uninstall {}? - Are you sure you want to uninstall {}? + Weet u zeker dat u {} wilt de-installeren? @@ -1362,19 +1362,19 @@ installed addons will be checked for available updates Removing {} - Removing {} + {} wordt verwijderd Uninstall complete - Uninstall complete + De-installatie voltooid Uninstall failed - Uninstall failed + Verwijderen mislukt @@ -1384,17 +1384,17 @@ installed addons will be checked for available updates Version {version} installed on {date} - Version {version} installed on {date} + Versie {version} geïnstalleerd op {date} Version {version} installed - Version {version} installed + Versie {version} geïnstalleerd Installed on {date} - Installed on {date} + Geïnstalleerd op {date} @@ -1402,7 +1402,7 @@ installed addons will be checked for available updates Installed - Installed + Geïnstalleerd @@ -1412,12 +1412,12 @@ installed addons will be checked for available updates Update available to version - Update available to version + Update beschikbaar voor versie An update is available - An update is available + Er is een update beschikbaar @@ -1432,17 +1432,17 @@ installed addons will be checked for available updates Updated, please restart FreeCAD to use - Updated, please restart FreeCAD to use + Bijgewerkt, herstart FreeCAD om te gebruiken Update check in progress - Update check in progress + Controle van updates bezig Automatic update checks disabled - Automatic update checks disabled + Automatische updatecontroles uitgeschakeld @@ -1500,7 +1500,7 @@ installed addons will be checked for available updates Success - Success + Geslaagd @@ -1530,7 +1530,7 @@ installed addons will be checked for available updates Check for Update - Check for Update + Controleren op update @@ -1565,22 +1565,22 @@ installed addons will be checked for available updates Checking connection - Checking connection + Verbinding controleren Checking for connection to GitHub... - Checking for connection to GitHub... + Controleren op verbinding met GitHub... Connection failed - Connection failed + Verbinden mislukt Missing dependency - Missing dependency + Ontbrekende afhankelijkheid @@ -1591,7 +1591,7 @@ installed addons will be checked for available updates Other... For providing a license other than one listed - Other... + Andere... @@ -1601,7 +1601,7 @@ installed addons will be checked for available updates Location for new license file - Location for new license file + Locatie van nieuwe licentiebestand @@ -1621,7 +1621,7 @@ installed addons will be checked for available updates Unable to locate icon at {} - Unable to locate icon at {} + Kan pictogram niet vinden op {} @@ -1633,7 +1633,7 @@ installed addons will be checked for available updates {} is not a subdirectory of {} - {} is not a subdirectory of {} + {} is geen submap van {} @@ -1658,7 +1658,7 @@ installed addons will be checked for available updates Python - Python + Python @@ -1684,7 +1684,7 @@ installed addons will be checked for available updates Other... - Other... + Andere... @@ -1694,7 +1694,7 @@ installed addons will be checked for available updates Too many to list - Too many to list + Te veel om weer te geven @@ -1704,7 +1704,7 @@ installed addons will be checked for available updates Missing Requirement - Missing Requirement + Ontbrekende Vereiste @@ -1741,13 +1741,13 @@ installed addons will be checked for available updates Installing dependencies - Installing dependencies + Afhankelijkheden installeren Cannot execute Python - Cannot execute Python + Kan Python niet uitvoeren @@ -1757,7 +1757,7 @@ installed addons will be checked for available updates Dependencies could not be installed. Continue with installation of {} anyway? - Dependencies could not be installed. Continue with installation of {} anyway? + Afhankelijkheden konden niet worden geïnstalleerd. Toch doorgaan met de installatie van {}? @@ -1780,12 +1780,12 @@ installed addons will be checked for available updates Package installation failed - Package installation failed + Installatie pakket mislukt See Report View for detailed failure log. - See Report View for detailed failure log. + Zie rapportweergave voor gedetailleerde foutenlog. @@ -1800,34 +1800,34 @@ installed addons will be checked for available updates Cancelling - Cancelling + Annuleren Cancelling installation of '{}' - Cancelling installation of '{}' + Installatie van '{}' annuleren {} was installed successfully - {} was installed successfully + {} is succesvol geïnstalleerd Installation Failed - Installation Failed + Installatie mislukt Failed to install {} - Failed to install {} + Installatie van {} is mislukt Create new toolbar - Create new toolbar + Nieuwe werkbalk maken @@ -1855,7 +1855,7 @@ installed addons will be checked for available updates Invalid metadata in file {} - Invalid metadata in file {} + Ongeldige metadata in het bestand {} @@ -1880,7 +1880,7 @@ installed addons will be checked for available updates Subdirectory - Subdirectory + Submap @@ -1932,7 +1932,7 @@ installed addons will be checked for available updates Installation failed - Installation failed + Installatie mislukt @@ -1954,7 +1954,7 @@ installed addons will be checked for available updates Filter is valid - Filter is valid + Filter is geldig @@ -1979,7 +1979,7 @@ installed addons will be checked for available updates Maintainers: - Maintainers: + Beheerders: @@ -1989,52 +1989,52 @@ installed addons will be checked for available updates updated - updated + bijgewerkt Up-to-date - Up-to-date + Up-to-date Update available - Update available + Update beschikbaar Pending restart - Pending restart + Wachten op herstarten DISABLED - DISABLED + UITGESCHAKELD Installed version - Installed version + Geïnstalleerde versie Unknown version - Unknown version + Onbekende versie Installed on - Installed on + Geïnstalleerd op Available version - Available version + Beschikbare versie @@ -2074,7 +2074,7 @@ installed addons will be checked for available updates Not installed - Not installed + Niet geïnstalleerd @@ -2099,7 +2099,7 @@ installed addons will be checked for available updates There are local changes - There are local changes + Er zijn lokale wijzigingen @@ -2112,7 +2112,7 @@ installed addons will be checked for available updates Branch git terminology - Branch + Aftakking @@ -2130,7 +2130,7 @@ installed addons will be checked for available updates Local name Table header for git ref name - Local name + Lokale naam @@ -2142,7 +2142,7 @@ installed addons will be checked for available updates Local updated Table header for git update time of local branch - Local updated + Lokaal bijgewerkt @@ -2249,12 +2249,12 @@ installed addons will be checked for available updates Got an error when trying to import {} - Got an error when trying to import {} + Er is een fout opgetreden bij het importeren van {} An unknown error occurred - An unknown error occurred + Er is een onbekende fout opgetreden @@ -2269,22 +2269,22 @@ installed addons will be checked for available updates Removed extra installed file {} - Removed extra installed file {} + Extra geïnstalleerd bestand {} verwijderd Error while trying to remove extra installed file {} - Error while trying to remove extra installed file {} + Fout bij het verwijderen van extra geïnstalleerd bestand {} Error while trying to remove macro file {}: - Error while trying to remove macro file {}: + Fout bij het verwijderen van het macro bestand {}: Failed to connect to GitHub. Check your connection and proxy settings. - Failed to connect to GitHub. Check your connection and proxy settings. + Kan geen verbinding maken met GitHub. Controleer je verbinding en proxy-instellingen. @@ -2398,12 +2398,12 @@ installed addons will be checked for available updates Retrieving info from git - Retrieving info from git + Informatie ophalen van git Retrieving info from wiki - Retrieving info from wiki + Informatie ophalen van wiki @@ -2435,22 +2435,22 @@ installed addons will be checked for available updates Installing - Installing + Aan het installeren Succeeded - Succeeded + Geslaagd Failed - Failed + Mislukt Update was cancelled - Update was cancelled + Update werd geannuleerd @@ -2476,12 +2476,12 @@ installed addons will be checked for available updates Finished removing {} - Finished removing {} + Verwijderen van {} voltooid Failed to remove some files - Failed to remove some files + Kan sommige bestanden niet verwijderen diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.qm index 9fafd0c372..8a414b25bc 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts index 83c1633b98..28352cd283 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts @@ -100,7 +100,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. Ten dodatek ma następujące wymagane i opcjonalne zależności. Musisz je zainstalować, zanim ten dodatek będzie mógł być używany. -Czy chcesz, aby Menadżer dodatków zainstalował je automatycznie? Wybierz "Ignoruj" aby zainstalować dodatek bez instalowania zależności. +Czy chcesz, aby Menadżer dodatków zainstalował je automatycznie? Wybierz "Zignoruj" aby zainstalować dodatek bez instalowania zależności. diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.qm index f9f3a6282e..801fb749f8 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts index 6aeca541cb..1e6ad18729 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts @@ -16,7 +16,7 @@ Branch - Branch + Ramo @@ -105,7 +105,7 @@ Você quer que o Addon Manager os instale automaticamente? Escolha "Ignorar FreeCAD Addons - FreeCAD Addons + Extensões FreeCAD @@ -144,7 +144,7 @@ Você quer que o Addon Manager os instale automaticamente? Escolha "Ignorar Primary branch - Primary branch + Ramo primário @@ -199,7 +199,7 @@ Você quer que o Addon Manager os instale automaticamente? Escolha "Ignorar README URL - README URL + LEIA-ME URL @@ -1585,7 +1585,7 @@ installed addons will be checked for available updates Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. - Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. + Não foi possível importar QtNetwork -- consulte Ver relatórios para detalhes. Gerenciador de Addons indisponível. @@ -1689,7 +1689,7 @@ installed addons will be checked for available updates This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: - This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: + Esta extensão requer pacotes do Python que não estão instalados e não podem ser instalados automaticamente. Para usar esta bancada de trabalho, você deve instalar os seguintes pacotes do Python manualmente: @@ -1785,7 +1785,7 @@ installed addons will be checked for available updates See Report View for detailed failure log. - See Report View for detailed failure log. + Consulte Ver Relatório um registro de falhas detalhado. @@ -1938,7 +1938,7 @@ installed addons will be checked for available updates Failed to install Vermin -- check Report View for details. 'Vermin' is the name of a Python package, do not translate - Failed to install Vermin -- check Report View for details. + Falha ao instalar Vermin -- verifique Ver Relatório para mais detalhes. @@ -2112,7 +2112,7 @@ installed addons will be checked for available updates Branch git terminology - Branch + Ramo diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.qm index ad66c8e814..628f89f8ff 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts index 2141f64958..608082e0a2 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts @@ -54,7 +54,7 @@ Update Available - Update Available + Na voljo je nadgradnja @@ -272,7 +272,7 @@ Ali želite, da jih upravljalinik dodatkov namesti samodejno? Izberite "Pre Stop the cache update - Stop the cache update + Zaustavi posodobitev predpomnilnika @@ -465,7 +465,7 @@ Ali želite, da jih upravljalinik dodatkov namesti samodejno? Izberite "Pre Update Available - Update Available + Na voljo je nadgradnja @@ -1176,23 +1176,23 @@ preveril razpoložljivost posodobitev za nameščene dodatke Starting up... - Starting up... + Pričenjanje ... Loading addon information - Loading addon information + Nalaganje podatkov o dodatku Worker process {} is taking a long time to stop... - Worker process {} is taking a long time to stop... + Delovni proces {} se predolgo zaustavlja ... Previous cache process was interrupted, restarting... - Previous cache process was interrupted, restarting... + Predhodno predpomnenje je bilo prekinjeno, ponovni zagon ... @@ -1442,7 +1442,7 @@ preveril razpoložljivost posodobitev za nameščene dodatke Automatic update checks disabled - Automatic update checks disabled + Samodejno preverjanje posodobitev onemogočeno @@ -2118,7 +2118,7 @@ preveril razpoložljivost posodobitev za nameščene dodatke Tag git terminology - značka, mostiček (povezovalni ostanke pri CNC izrezovanju) + značka, mostiček (povezovalni ostanek pri CNC izrezovanju) @@ -2361,7 +2361,7 @@ preveril razpoložljivost posodobitev za nameščene dodatke Addon Manager: a worker process failed to complete while fetching {name} - Addon Manager: a worker process failed to complete while fetching {name} + Upravljalnik dodatkov: delovni proces je med pridobivanjem {name} spodletel @@ -2371,7 +2371,7 @@ preveril razpoložljivost posodobitev za nameščene dodatke Addon Manager: a worker process failed to halt ({name}) - Addon Manager: a worker process failed to halt ({name}) + Upravljalnik dodatkov: delovni proces se ni mogel zaustaviti ({name}) diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.qm index a833143563..aa4013fd4c 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts index 9354458a6b..25b1b45e48 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts @@ -678,7 +678,7 @@ installed addons will be checked for available updates Advanced Options - Advanced Options + Gelişmiş seçenekler @@ -698,7 +698,7 @@ installed addons will be checked for available updates Addon developer mode - Addon developer mode + Eklenti geliştirici modu @@ -769,7 +769,7 @@ installed addons will be checked for available updates Used by - Used by + Kullanıldı @@ -779,7 +779,7 @@ installed addons will be checked for available updates Update all available - Update all available + Tüm uygun eklentileri güncelle @@ -800,7 +800,7 @@ installed addons will be checked for available updates Updating Addons - Updating Addons + Eklentiler güncellenyor @@ -813,12 +813,12 @@ installed addons will be checked for available updates Content Item - Content Item + İçerik öğeleri Content type: - Content type: + İçerik tipi: @@ -828,7 +828,7 @@ installed addons will be checked for available updates Preference Pack - Preference Pack + Ön tanımlar paketi @@ -1176,7 +1176,7 @@ installed addons will be checked for available updates Starting up... - Starting up... + Başlatılıyor... diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.qm index 63c2c0e57a..1ae5ead6a1 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.ts index da34f9f46e..ad72ec12bf 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.ts @@ -6,7 +6,7 @@ Custom repository - Custom repository + 自定义插件仓库 @@ -37,7 +37,7 @@ <b>Package Name</b> - <b>Package Name</b> + <b>软件包名称</b> @@ -67,12 +67,12 @@ Dependencies - Dependencies + 依赖 Dependency type - Dependency type + 依赖类型 @@ -82,7 +82,7 @@ Optional? - Optional? + 可选的? @@ -98,9 +98,9 @@ This Addon has the following required and optional dependencies. You must install them before this Addon can be used. Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. - This Addon has the following required and optional dependencies. You must install them before this Addon can be used. + 此插件具有以下所需和可选的依赖关系。您必须先安装它们,然后才能使用此插件。 -Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. +您想要插件管理器自动安装它们吗?选择 “忽略” 将直接安装插件,而不安装依赖项。 @@ -123,12 +123,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon Developer Tools - Addon Developer Tools + 插件开发者工具 Path to Addon - Path to Addon + 插件路径 @@ -139,18 +139,18 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Metadata - Metadata + 元数据 Primary branch - Primary branch + 主要分支 Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. - Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. + 此插件提供的解释,在插件管理器中显示。这个插件无需声明它是一个 FreeCAD 插件。 diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.qm b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.qm index 6506626b61..c168e664a5 100644 Binary files a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.qm and b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.qm differ diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.ts index b81d510079..6628be0b67 100644 --- a/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.ts +++ b/src/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.ts @@ -6,12 +6,12 @@ Custom repository - 自訂存儲庫 + Custom repository Repository URL - 存儲庫網址 + Repository URL @@ -43,7 +43,7 @@ Version - 發行版本 + 版本 @@ -54,12 +54,12 @@ Update Available - Update Available + 有可用更新 UpdateAvailable - 有可用更新 + 可獲得更新 @@ -72,7 +72,7 @@ Dependency type - 相依性類型 + 相依類別 @@ -82,7 +82,7 @@ Optional? - 選擇性? + 選用? @@ -91,31 +91,31 @@ Resolve Dependencies - 解決依賴關係 + 解決相依性 This Addon has the following required and optional dependencies. You must install them before this Addon can be used. Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. - This Addon has the following required and optional dependencies. You must install them before this Addon can be used. + This Addon has the following required and optional dependencies. You must install them before this Addon can be used. Do you want the Addon Manager to install them automatically? Choose "Ignore" to install the Addon without installing the dependencies. FreeCAD Addons - FreeCAD 附加元件 + FreeCAD 附件元件 Required Python modules - 需要 Python 模組 + Required Python modules Optional Python modules - 可選 Python 模組 + Optional Python modules @@ -123,12 +123,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon Developer Tools - 附加元件開發者工具 + Addon Developer Tools Path to Addon - 附加元件目錄位置 + Path to Addon @@ -139,7 +139,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Metadata - 中繼資料 + Metadata 選項 @@ -150,7 +150,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. - Explanation of what this Addon provides. Displayed in the Addon Manager. It is not necessary for this to state that this is a FreeCAD Addon. + 說明此附加元件提供什麼。在附加元件管理器中顯示。沒有必要指明這是 FreeCAD 附加元件。 @@ -160,7 +160,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Discussion URL - 討論網址 + Discussion URL @@ -170,7 +170,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Bugtracker URL - Bugtracker URL + 錯誤追蹤系統的URL @@ -180,7 +180,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Set to today (CalVer style) - Set to today (CalVer style) + 設置為今天(CalVer格式) @@ -188,7 +188,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore (Optional) - (選擇性) + (Optional) @@ -199,7 +199,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore README URL - README URL + README 網址 @@ -209,37 +209,37 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Repository URL - 存儲庫網址 + Repository URL Website URL - 網頁網址 + Website URL Documentation URL - 說明文件網址 + Documentation URL Addon Name - 附加元件名稱 + 附加元件名稱: Version - 發行版本 + 版本 (Recommended) - (推薦) + (建議) Minimum Python - Python 最低版本 + Minimum Python @@ -254,7 +254,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon Contents - 附加元件內容 + Addon Contents @@ -267,27 +267,27 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Downloading info... - 下載資訊... + Downloading info... Stop the cache update - Stop the cache update + 停止更新快取 Refresh local cache - 重整本地緩沖暫存 + Refresh local cache Download and apply all available updates - 下載並套用所有可用的更新 + Download and apply all available updates Update all Addons - 更新全部附加元件 + Update all Addons @@ -302,12 +302,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Python dependencies... - Python 相依性... + Python dependencies... Developer tools... - 開發者工具... + Developer tools... @@ -322,7 +322,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Edit Tags - 編輯標籤 + Edit Tags @@ -337,12 +337,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Welcome to the Addon Manager - 歡迎使用附加元件管理員 + Welcome to the Addon Manager The addons that can be installed here are not officially part of FreeCAD, and are not reviewed by the FreeCAD team. Make sure you know what you are installing! - 可以在此處安裝的附加元件不是 FreeCAD 的正式組成部分,並且未經 FreeCAD 團隊審查. 確保你知道你正在安裝什麼! + The addons that can be installed here are not officially part of FreeCAD, and are not reviewed by the FreeCAD team. Make sure you know what you are installing! @@ -352,32 +352,32 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Automatically check installed Addons for updates - 自動檢查已安裝的附加元件是否有可用更新 + Automatically check installed Addons for updates Download Macro metadata (approximately 10MB) - 下載巨集中介資料(大約 10MB) + Download Macro metadata (approximately 10MB) No proxy - 沒有代理伺服器 + No proxy System proxy - 系統代理伺服器 + System proxy User-defined proxy: - 使用者定義代理伺服器: + User-defined proxy: These and other settings are available in the FreeCAD Preferences window. - 這些和其他設定在 FreeCAD 預設選項視窗中可用. + These and other settings are available in the FreeCAD Preferences window. @@ -385,17 +385,17 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Edit Dependency - 編輯相依性 + Edit Dependency Dependency Type - 相依性類型 + Dependency Type Dependency - 相依性 + Dependency @@ -415,7 +415,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Optional - 選擇性 + Optional @@ -436,19 +436,19 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore <h1>Package Name</h1> - <h1>套件名稱</h1> + <h1>Package Name</h1> Version - 發行版本 + 版本 (tags) - (標籤) + (tags) @@ -465,12 +465,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Update Available - Update Available + 有可用更新 UpdateAvailable - 有可用更新 + 可獲得更新 @@ -484,27 +484,27 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Licenses - 版權聲明 + 授權條款 License - 版權聲明 + 版權 License file - 版權聲明文件 + 授權檔案 People - People + Kind - Kind + 類別 @@ -514,7 +514,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Email - 電子郵件 + Email @@ -522,7 +522,7 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Advanced Version Mapping - Advanced Version Mapping + 進階版本對映 @@ -532,12 +532,12 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore FreeCAD Version - FreeCAD 版本 + FreeCAD Version Best-available branch, tag, or commit - Best-available branch, tag, or commit + 最佳可用的分支、標籤或提交 @@ -545,28 +545,28 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Supported FreeCAD Versions - 支援的 FreeCAD 版本 + Supported FreeCAD Versions Minimum FreeCAD Version Supported - 最低支援的 FreeCAD 版本 + Minimum FreeCAD Version Supported Optional - 選擇性 + Optional Maximum FreeCAD Version Supported - 最高支援的 FreeCAD 版本 + Maximum FreeCAD Version Supported Advanced version mapping... - Advanced version mapping... + 進階版本對映... @@ -574,86 +574,86 @@ Do you want the Addon Manager to install them automatically? Choose "Ignore Addon manager options - 附加元件管理員選項 + Addon manager options If this option is selected, when launching the Addon Manager, installed addons will be checked for available updates (this requires the GitPython package installed on your system) - If this option is selected, when launching the Addon Manager, + If this option is selected, when launching the Addon Manager, installed addons will be checked for available updates (this requires the GitPython package installed on your system) Automatically check for updates at start (requires git) - Automatically check for updates at start (requires git) + 啟動時自動檢查更新(需要 git 工具) Download Macro metadata (approximately 10MB) - 下載巨集中介資料(大約 10MB) + Download Macro metadata (approximately 10MB) Cache update frequency - 暫停緩沖暫存更新頻率 + Cache update frequency Manual (no automatic updates) - 手動(不自動檢查更新) + Manual (no automatic updates) Daily - 每天 + Daily Weekly - 每週 + Weekly Hide Addons marked Python 2 Only - Hide Addons marked Python 2 Only + Hide Addons marked Python 2 Only Hide Addons marked Obsolete - Hide Addons marked Obsolete + Hide Addons marked Obsolete Hide Addons that require a newer version of FreeCAD - Hide Addons that require a newer version of FreeCAD + Hide Addons that require a newer version of FreeCAD Custom repositories - Custom repositories + 自訂存儲庫 Proxy - Proxy + 代理伺服器 No proxy - 沒有代理伺服器 + No proxy User system proxy - 使用者系統代理伺服器 + User system proxy User-defined proxy: - 使用者定義代理伺服器: + User-defined proxy: @@ -678,7 +678,7 @@ installed addons will be checked for available updates Advanced Options - 進階選項 + Advanced Options @@ -698,7 +698,7 @@ installed addons will be checked for available updates Addon developer mode - Addon developer mode + 附加元件開發者模式 @@ -711,7 +711,7 @@ installed addons will be checked for available updates Uninstalls a selected macro or workbench - 移除安裝選定的巨集或工作台 + Uninstalls a selected macro or workbench @@ -736,7 +736,7 @@ installed addons will be checked for available updates Change branch - Change branch + 變更分支 @@ -744,7 +744,7 @@ installed addons will be checked for available updates Manage Python Dependencies - 管理 Python 相依性 + Manage Python Dependencies @@ -754,22 +754,22 @@ installed addons will be checked for available updates Package name - 套件名稱 + Package name Installed version - 已安裝版本 + Installed version Available version - 可用版本 + Available version Used by - 用於 + Used by @@ -779,7 +779,7 @@ installed addons will be checked for available updates Update all available - 更新所有可用的更新 + Update all available @@ -787,7 +787,7 @@ installed addons will be checked for available updates Dialog - 對話框 + 對話方塊 @@ -800,12 +800,12 @@ installed addons will be checked for available updates Updating Addons - 附加元件更新中 + Updating Addons Updating out-of-date addons... - Updating out-of-date addons... + 正在更新過時的附加元件... @@ -813,12 +813,12 @@ installed addons will be checked for available updates Content Item - Content Item + 內容項目 Content type: - Content type: + 內容類型: @@ -828,7 +828,7 @@ installed addons will be checked for available updates Preference Pack - 偏好設定套件 + Preference Pack @@ -843,12 +843,12 @@ installed addons will be checked for available updates This is the only item in the Addon - This is the only item in the Addon + 這是附加元件中唯一的項目 Main macro file - 主要巨集檔案 + Main macro file @@ -865,12 +865,12 @@ installed addons will be checked for available updates Preference Pack Name - 偏好設定套件名稱 + 偏好設定包名稱 Workbench class name - 工作台類別名稱 + Workbench class name @@ -880,7 +880,7 @@ installed addons will be checked for available updates Subdirectory - 子目錄 + Subdirectory @@ -900,22 +900,22 @@ installed addons will be checked for available updates Tags... - 標籤... + Tags... Dependencies... - 相依性... + Dependencies... FreeCAD Versions... - FreeCAD 版本... + FreeCAD Versions... Other Metadata - 其他中繼資料 + Other Metadata @@ -925,7 +925,7 @@ installed addons will be checked for available updates Version - 發行版本 + 版本 @@ -940,12 +940,12 @@ installed addons will be checked for available updates Set to today (CalVer style) - Set to today (CalVer style) + 設置為今天(CalVer格式) Display Name - 顯示名稱 + Display Name @@ -958,27 +958,27 @@ installed addons will be checked for available updates Add button? - 新增按鈕? + Add button? Add a toolbar button for this macro? - 為此巨集增加工具列按鈕? + Add a toolbar button for this macro? Yes - 確定 + Yes No - 取消 + No Never - 永不 + Never @@ -991,7 +991,7 @@ installed addons will be checked for available updates Change to branch or tag: - 變更到分支或標籤: + Change to branch or tag: @@ -999,17 +999,17 @@ installed addons will be checked for available updates Copyright Information - 版權資訊 + Copyright Information Copyright holder: - 版權擁有者: + Copyright holder: Copyright year: - 版權年份: + Copyright year: @@ -1017,7 +1017,7 @@ installed addons will be checked for available updates Add Person - Add Person + 添加人員 @@ -1032,12 +1032,12 @@ installed addons will be checked for available updates Email: - Email: + 電子郵件: Email is required for maintainers, and optional for authors. - Email is required for maintainers, and optional for authors. + 維護者需要提供電子郵件,而作者可以選擇性提供。 @@ -1045,42 +1045,42 @@ installed addons will be checked for available updates Proxy login required - 代理伺服器需要登錄 + Proxy login required Proxy requires authentication - 代理伺服器需要驗證 + Proxy requires authentication Proxy: - 代理伺服器: + Proxy: Placeholder for proxy address - 代理伺服器地址的預留位置 + Placeholder for proxy address Realm: - 領域: + Realm: Placeholder for proxy realm - 代理伺服器領域的預留位置 + Placeholder for proxy realm Username - 使用者名稱 + Username Password - 密碼 + Password @@ -1088,27 +1088,27 @@ installed addons will be checked for available updates Select a license - 選取一個版權 + Select a license About... - 關於... + About... License name: - 版權聲明: + License name: Path to license file: - 版權聲明檔案路徑: + 授權檔案路徑: (if required by license) - (if required by license) + (如果根據許可證要求) @@ -1118,7 +1118,7 @@ installed addons will be checked for available updates Create... - Create... + 建立... @@ -1129,17 +1129,17 @@ installed addons will be checked for available updates Select Toolbar - 選擇工具列 + Select Toolbar Select a toolbar to add this macro to: - 選擇要增加此巨集的工具列: + Select a toolbar to add this macro to: Ask every time - 每次都詢問 + Ask every time @@ -1148,27 +1148,27 @@ installed addons will be checked for available updates Add button? - 新增按鈕? + Add button? Add a toolbar button for this macro? - 為此巨集增加工具列按鈕? + Add a toolbar button for this macro? Yes - 確定 + Yes No - 取消 + No Never - 永不 + Never @@ -1176,12 +1176,12 @@ installed addons will be checked for available updates Starting up... - 啟動中... + Starting up... Loading addon information - 載入附加元件資訊 + Loading addon information @@ -1192,69 +1192,69 @@ installed addons will be checked for available updates Previous cache process was interrupted, restarting... - Previous cache process was interrupted, restarting... + Previous cache process was interrupted, restarting... Custom repo list changed, forcing recache... - Custom repo list changed, forcing recache... + Custom repo list changed, forcing recache... Addon manager - 附加元件管理器 + Addon manager You must restart FreeCAD for changes to take effect. - 您必須重新啟動 FreeCAD 以套用變更. + You must restart FreeCAD for changes to take effect. Restart now - 現在重新啟動 + Restart now Restart later - 稍後重新啟動 + Restart later Refresh local cache - 重整本地緩沖暫存 + Refresh local cache Updating cache... - 緩沖暫存更新中... + Updating cache... Could not find addon '{}' to select - 找不到要選擇的附加元件'{}' + Could not find addon '{}' to select Checking for updates... - 檢查更新... + Checking for updates... Apply {} update(s) - 套用 {} 個更新 + Apply {} update(s) No updates available - 無可用更新 + No updates available @@ -1266,7 +1266,7 @@ installed addons will be checked for available updates Execution of macro failed. See console for failure details. - Execution of macro failed. See console for failure details. + Execution of macro failed. See console for failure details. @@ -1287,7 +1287,7 @@ installed addons will be checked for available updates New Python Version Detected - New Python Version Detected + 偵測到新的 Python 版本 @@ -1297,7 +1297,7 @@ installed addons will be checked for available updates Processing, please wait... - Processing, please wait... + 處理中,請稍候... @@ -1308,7 +1308,7 @@ installed addons will be checked for available updates Updating... - Updating... + 正在更新... @@ -1323,58 +1323,58 @@ installed addons will be checked for available updates Parameter error: mutually exclusive proxy options set. Resetting to default. - Parameter error: mutually exclusive proxy options set. Resetting to default. + Parameter error: mutually exclusive proxy options set. Resetting to default. Parameter error: user proxy indicated, but no proxy provided. Resetting to default. - Parameter error: user proxy indicated, but no proxy provided. Resetting to default. + Parameter error: user proxy indicated, but no proxy provided. Resetting to default. Addon Manager: Unexpected {} response from server - Addon Manager: Unexpected {} response from server + Addon Manager: Unexpected {} response from server Error with encrypted connection - Error with encrypted connection + Error with encrypted connection Confirm remove - 確認移除 + Confirm remove Are you sure you want to uninstall {}? - Are you sure you want to uninstall {}? + 您確定要解除安裝 {} 嗎? Removing Addon - Removing Addon + 移除附加元件 Removing {} - Removing {} + 正在刪除 {} Uninstall complete - Uninstall complete + 解除安裝完成 Uninstall failed - Uninstall failed + 解除安裝失敗 @@ -1384,17 +1384,17 @@ installed addons will be checked for available updates Version {version} installed on {date} - 版本 {version} 已於 {date} 安裝 + Version {version} installed on {date} Version {version} installed - 版本 {version} 已安裝 + Version {version} installed Installed on {date} - 安裝於 {date} + Installed on {date} @@ -1402,83 +1402,83 @@ installed addons will be checked for available updates Installed - 己安裝 + Installed On branch {}, update available to version - 在分支 {} 上,有可用版本更新 + On branch {}, update available to version Update available to version - 有可用版本更新 + Update available to version An update is available - 有可用更新 + An update is available Git tag '{}' checked out, no updates possible - Git tag '{}' checked out, no updates possible + Git tag '{}' checked out, no updates possible This is the latest version available for branch {} - This is the latest version available for branch {} + This is the latest version available for branch {} Updated, please restart FreeCAD to use - 已更新,請重啟 FreeCAD 以使用 + Updated, please restart FreeCAD to use Update check in progress - 正在檢查更新 + Update check in progress Automatic update checks disabled - 自動更新已停用 + Automatic update checks disabled Installation location - 安裝位置 + Installation location WARNING: This addon is obsolete - 警告:此附加元件已過時 + WARNING: This addon is obsolete WARNING: This addon is Python 2 Only - 警告:此附加元件僅適用於 Python 2 + WARNING: This addon is Python 2 Only WARNING: This addon requires FreeCAD - 警告:此附加元件需要 FreeCAD + WARNING: This addon requires FreeCAD WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. - WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. + WARNING: This addon is currently installed, but disabled. Use the 'enable' button to re-enable. No URL or wiki page provided by this macro - 此巨集未提供 URL 或 wiki 頁面 + No URL or wiki page provided by this macro Could not load README data from URL {} - Could not load README data from URL {} + Could not load README data from URL {} @@ -1500,22 +1500,22 @@ installed addons will be checked for available updates Success - 成功 + Success Branch change succeeded, please restart to use the new version. - Branch change succeeded, please restart to use the new version. + Branch change succeeded, please restart to use the new version. Changed to git ref '{}' -- please restart to use Addon. - 更改為 git ref '{}' -- 請重新啟動以使用附加元件. + Changed to git ref '{}' -- please restart to use Addon. Page JavaScript reported - JavaScript 報告頁面 + Page JavaScript reported @@ -1530,7 +1530,7 @@ installed addons will be checked for available updates Check for Update - 檢查更新 + Check for Update @@ -1555,53 +1555,53 @@ installed addons will be checked for available updates Return to package list - 返回套件列表 + Return to package list The page is taking a long time to load... showing the data we have so far... - The page is taking a long time to load... showing the data we have so far... + The page is taking a long time to load... showing the data we have so far... Checking connection - 檢查連線 + Checking connection Checking for connection to GitHub... - 檢查與 GitHub 的連線... + Checking for connection to GitHub... Connection failed - 連線失敗 + Connection failed Missing dependency - 缺少相依性 + Missing dependency Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. - Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. + Could not import QtNetwork -- see Report View for details. Addon Manager unavailable. Other... For providing a license other than one listed - Other... + 其他... Select the corresponding license file in your Addon - Select the corresponding license file in your Addon + 選擇附加元件中相對應的授權檔案 Location for new license file - Location for new license file + 新授權檔案的位置 @@ -1621,7 +1621,7 @@ installed addons will be checked for available updates Unable to locate icon at {} - Unable to locate icon at {} + 無法在 {} 位置找到圖示 @@ -1658,43 +1658,43 @@ installed addons will be checked for available updates Python - Python + Python Yes - 確定 + Yes Internal Workbench - Internal Workbench + 內部工作台 External Addon - External Addon + 外部附加元件 Python Package - Python Package + Python 套件 Other... - Other... + 其他... This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: - This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: + This addon requires Python packages that are not installed, and cannot be installed automatically. To use this workbench you must install the following Python packages manually: Too many to list - Too many to list + Too many to list @@ -1704,28 +1704,28 @@ installed addons will be checked for available updates Missing Requirement - 缺少需求元件 + Missing Requirement Addon '{}' requires '{}', which is not available in your copy of FreeCAD. - Addon '{}' requires '{}', which is not available in your copy of FreeCAD. + Addon '{}' requires '{}', which is not available in your copy of FreeCAD. Addon '{}' requires the following workbenches, which are not available in your copy of FreeCAD: - Addon '{}' requires the following workbenches, which are not available in your copy of FreeCAD: + Addon '{}' requires the following workbenches, which are not available in your copy of FreeCAD: Press OK to install anyway. - Press OK to install anyway. + Press OK to install anyway. Incompatible Python version - Incompatible Python version + 不相容的 Python 版本 @@ -1741,61 +1741,61 @@ installed addons will be checked for available updates Installing dependencies - Installing dependencies + Installing dependencies Cannot execute Python - Cannot execute Python + Cannot execute Python Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. - Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. + Failed to automatically locate your Python executable, or the path is set incorrectly. Please check the Addon Manager preferences setting for the path to Python. Dependencies could not be installed. Continue with installation of {} anyway? - Dependencies could not be installed. Continue with installation of {} anyway? + Dependencies could not be installed. Continue with installation of {} anyway? Cannot execute pip - Cannot execute pip + Cannot execute pip Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: - Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: + Failed to execute pip, which may be missing from your Python installation. Please ensure your system has pip installed and try again. The failed command was: Continue with installation of {} anyway? - Continue with installation of {} anyway? + Continue with installation of {} anyway? Package installation failed - Package installation failed + Package installation failed See Report View for detailed failure log. - See Report View for detailed failure log. + See Report View for detailed failure log. Installing Addon - Installing Addon + 安裝附加元件 Installing FreeCAD Addon '{}' - Installing FreeCAD Addon '{}' + 安裝 FreeCAD 附加元件 '{}' @@ -1827,13 +1827,13 @@ installed addons will be checked for available updates Create new toolbar - 建立新工具列 + Create new toolbar A macro installed with the FreeCAD Addon Manager - 使用 FreeCAD 附加元件管理器安裝的巨集 + A macro installed with the FreeCAD Addon Manager @@ -1845,7 +1845,7 @@ installed addons will be checked for available updates Unable to read data from GitHub: check your internet connection and proxy settings and try again. - Unable to read data from GitHub: check your internet connection and proxy settings and try again. + Unable to read data from GitHub: check your internet connection and proxy settings and try again. @@ -1880,7 +1880,7 @@ installed addons will be checked for available updates Subdirectory - 子目錄 + Subdirectory @@ -1890,7 +1890,7 @@ installed addons will be checked for available updates Select the folder containing your Addon - Select the folder containing your Addon + 選擇內含你的附加元件之資料夾 @@ -1932,7 +1932,7 @@ installed addons will be checked for available updates Installation failed - 安裝失敗 + Installation failed @@ -1954,32 +1954,32 @@ installed addons will be checked for available updates Filter is valid - 篩選器有效 + Filter is valid Filter regular expression is invalid - 篩選器正則表達式無效 + Filter regular expression is invalid Click for details about package {} - 點擊查看套件 {} 詳細資料 + Click for details about package {} Click for details about workbench {} - 點擊查看工作台 {} 詳細資料 + Click for details about workbench {} Click for details about macro {} - 點擊查看巨集 {} 詳細資料 + Click for details about macro {} Maintainers: - 維護者: + Maintainers: @@ -1989,57 +1989,57 @@ installed addons will be checked for available updates updated - 已更新 + updated Up-to-date - 已同步 + Up-to-date Update available - 有可用更新 + Update available Pending restart - 等待重啟 + Pending restart DISABLED - 停用 + DISABLED Installed version - 已安裝版本 + Installed version Unknown version - 未知版本 + Unknown version Installed on - 己安裝於 + Installed on Available version - 可用版本 + Available version Show Addons containing: - 顯示包含以下內容的附加元件: + Show Addons containing: @@ -2059,7 +2059,7 @@ installed addons will be checked for available updates Preference Packs - 偏好設定包 + Preference Packs @@ -2074,12 +2074,12 @@ installed addons will be checked for available updates Not installed - 未安裝 + Not installed Filter - 篩選 + 篩選器 @@ -2089,22 +2089,22 @@ installed addons will be checked for available updates DANGER: Developer feature - DANGER: Developer feature + DANGER: Developer feature DANGER: Switching branches is intended for developers and beta testers, and may result in broken, non-backwards compatible documents, instability, crashes, and/or the premature heat death of the universe. Are you sure you want to continue? - DANGER: Switching branches is intended for developers and beta testers, and may result in broken, non-backwards compatible documents, instability, crashes, and/or the premature heat death of the universe. Are you sure you want to continue? + DANGER: Switching branches is intended for developers and beta testers, and may result in broken, non-backwards compatible documents, instability, crashes, and/or the premature heat death of the universe. Are you sure you want to continue? There are local changes - There are local changes + There are local changes WARNING: This repo has uncommitted local changes. Are you sure you want to change branches (bringing the changes with you)? - WARNING: This repo has uncommitted local changes. Are you sure you want to change branches (bringing the changes with you)? + WARNING: This repo has uncommitted local changes. Are you sure you want to change branches (bringing the changes with you)? @@ -2124,13 +2124,13 @@ installed addons will be checked for available updates Kind Table header for git ref type (e.g. either Tag or Branch) - Kind + 類別 Local name Table header for git ref name - 本地名稱 + Local name @@ -2142,18 +2142,18 @@ installed addons will be checked for available updates Local updated Table header for git update time of local branch - 本地更新 + Local updated Remote updated Table header for git update time of remote branch - 遠端更新 + Remote updated Installation of Python package {} failed - 安裝 Python 套件 {} 失敗 + Installation of Python package {} failed @@ -2168,12 +2168,12 @@ installed addons will be checked for available updates Installation of Addon {} failed - Installation of Addon {} failed + 安裝附加元件 {} 失敗 Downloaded package.xml for {} - 已下載 {} 的 package.xml + Downloaded package.xml for {} @@ -2188,32 +2188,32 @@ installed addons will be checked for available updates Downloaded metadata.txt for {} - 已下載 {} 的 metadata.txt + Downloaded metadata.txt for {} Downloaded requirements.txt for {} - 已下載 {} 的 requirements.txt + Downloaded requirements.txt for {} Downloaded icon for {} - 已下載 {} 的圖示 + Downloaded icon for {} Unable to open macro wiki page at {} - Unable to open macro wiki page at {} + Unable to open macro wiki page at {} Unable to fetch the code of this macro. - 無法取得這個巨集的程式碼. + Unable to fetch the code of this macro. Unable to retrieve a description from the wiki for macro {} - Unable to retrieve a description from the wiki for macro {} + Unable to retrieve a description from the wiki for macro {} @@ -2238,12 +2238,12 @@ installed addons will be checked for available updates Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) - Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) + Addon Developer Warning: Repository URL set in package.xml file for addon {} ({}) does not match the URL it was fetched from ({}) Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) - Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) + Addon Developer Warning: Repository branch set in package.xml file for addon {} ({}) does not match the branch it was fetched from ({}) @@ -2259,12 +2259,12 @@ installed addons will be checked for available updates Could not find addon {} to remove it. - Could not find addon {} to remove it. + 找不到要移除的附加元件 {}。 Execution of Addon's uninstall.py script failed. Proceeding with uninstall... - Execution of Addon's uninstall.py script failed. Proceeding with uninstall... + Execution of Addon's uninstall.py script failed. Proceeding with uninstall... @@ -2284,17 +2284,17 @@ installed addons will be checked for available updates Failed to connect to GitHub. Check your connection and proxy settings. - Failed to connect to GitHub. Check your connection and proxy settings. + Failed to connect to GitHub. Check your connection and proxy settings. WARNING: Duplicate addon {} ignored - WARNING: Duplicate addon {} ignored + 警告:重複的附加元件 {} 被忽略 Workbenches list was updated. - 工作台列表已更新. + Workbenches list was updated. @@ -2305,38 +2305,38 @@ installed addons will be checked for available updates Attempting to change non-git Macro setup to use git - Attempting to change non-git Macro setup to use git + Attempting to change non-git Macro setup to use git An error occurred updating macros from GitHub, trying clean checkout... - An error occurred updating macros from GitHub, trying clean checkout... + An error occurred updating macros from GitHub, trying clean checkout... Attempting to do a clean checkout... - Attempting to do a clean checkout... + Attempting to do a clean checkout... Clean checkout succeeded - Clean checkout succeeded + Clean checkout succeeded Failed to update macros from GitHub -- try clearing the Addon Manager's cache. - Failed to update macros from GitHub -- try clearing the Addon Manager's cache. + Failed to update macros from GitHub -- try clearing the Addon Manager's cache. Error connecting to the Wiki, FreeCAD cannot retrieve the Wiki macro list at this time - Error connecting to the Wiki, FreeCAD cannot retrieve the Wiki macro list at this time + Error connecting to the Wiki, FreeCAD cannot retrieve the Wiki macro list at this time Unable to fetch git updates for workbench {} - Unable to fetch git updates for workbench {} + Unable to fetch git updates for workbench {} @@ -2346,70 +2346,70 @@ installed addons will be checked for available updates Failed to read metadata from {name} - Failed to read metadata from {name} + Failed to read metadata from {name} Failed to fetch code for macro '{name}' - Failed to fetch code for macro '{name}' + Failed to fetch code for macro '{name}' Caching macro code... - 緩沖巨集代碼儲存中... + Caching macro code... Addon Manager: a worker process failed to complete while fetching {name} - Addon Manager: a worker process failed to complete while fetching {name} + Addon Manager: a worker process failed to complete while fetching {name} Out of {num_macros} macros, {num_failed} timed out while processing - Out of {num_macros} macros, {num_failed} timed out while processing + Out of {num_macros} macros, {num_failed} timed out while processing Addon Manager: a worker process failed to halt ({name}) - Addon Manager: a worker process failed to halt ({name}) + Addon Manager: a worker process failed to halt ({name}) Getting metadata from macro {} - 從巨集 {} 獲取中繼資料 + Getting metadata from macro {} Timeout while fetching metadata for macro {} - Timeout while fetching metadata for macro {} + Timeout while fetching metadata for macro {} Failed to kill process for macro {}! - Failed to kill process for macro {}! + Failed to kill process for macro {}! Retrieving macro description... - 檢索巨集說明... + Retrieving macro description... Retrieving info from git - 從 git 中檢索訊息 + Retrieving info from git Retrieving info from wiki - 從 wiki 中檢索訊息 + Retrieving info from wiki Repository URL Preferences header for custom repositories - 存儲庫網址 + Repository URL @@ -2440,12 +2440,12 @@ installed addons will be checked for available updates Succeeded - 成功 + Succeeded Failed - 失敗 + Failed @@ -2455,7 +2455,7 @@ installed addons will be checked for available updates some addons may have been updated - some addons may have been updated + 某些附加元件可能已經被更新了 @@ -2463,12 +2463,12 @@ installed addons will be checked for available updates &Addon manager - 附加元件管理器(&A) + &Addon manager Manage external workbenches, macros, and preference packs - 管理外部工作台、巨集和預設套件 + Manage external workbenches, macros, and preference packs @@ -2489,7 +2489,7 @@ installed addons will be checked for available updates Finished updating the following addons - Finished updating the following addons + 已完成更新底下附加元件 diff --git a/src/Mod/AddonManager/addonmanager_metadata.py b/src/Mod/AddonManager/addonmanager_metadata.py index 6a72e6d47b..115f5f29fe 100644 --- a/src/Mod/AddonManager/addonmanager_metadata.py +++ b/src/Mod/AddonManager/addonmanager_metadata.py @@ -196,6 +196,7 @@ class Metadata: version: Version = None date: str = "" description: str = "" + type: str = "" maintainer: List[Contact] = field(default_factory=list) license: List[License] = field(default_factory=list) url: List[Url] = field(default_factory=list) @@ -269,7 +270,7 @@ class MetadataReader: metadata object.""" tag = child.tag[len(namespace) :] - if tag in ["name", "date", "description", "icon", "classname", "subdirectory"]: + if tag in ["name", "date", "description", "type", "icon", "classname", "subdirectory"]: # Text-only elements metadata.__dict__[tag] = child.text elif tag in ["version", "freecadmin", "freecadmax", "pythonmin"]: diff --git a/src/Mod/AddonManager/addonmanager_utilities.py b/src/Mod/AddonManager/addonmanager_utilities.py index 9abb200278..fb7c901ae8 100644 --- a/src/Mod/AddonManager/addonmanager_utilities.py +++ b/src/Mod/AddonManager/addonmanager_utilities.py @@ -402,7 +402,11 @@ def blocking_get(url: str, method=None) -> bytes: if fci.FreeCADGui and method is None or method == "networkmanager": NetworkManager.InitializeNetworkManager() p = NetworkManager.AM_NETWORK_MANAGER.blocking_get(url) - p = p.data() + if p: + try: + p = p.data() + except AttributeError: + pass elif requests and method is None or method == "requests": response = requests.get(url) if response.status_code == 200: diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index a7168b745f..b575889aa4 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -1009,7 +1009,7 @@ class _Structure(ArchComponent.Component): def getNodeEdges(self,obj): - "returns a list of edges from stuctural nodes" + "returns a list of edges from structural nodes" edges = [] if obj.Nodes: diff --git a/src/Mod/Arch/ArchWindowPresets.py b/src/Mod/Arch/ArchWindowPresets.py index f61c7d31c2..973c61398f 100644 --- a/src/Mod/Arch/ArchWindowPresets.py +++ b/src/Mod/Arch/ArchWindowPresets.py @@ -51,6 +51,11 @@ def makeWindowPreset(windowtype,width,height,h1,h2,h3,w1,w2,o1,o2,placement=None w2 = float(w2) o1 = float(o1) o2 = float(o2) + # h1, h2, w1, w2 cannot be null (for now) + # TODO allow these to be null (don't create the component if so) + if h1*h2*w1*w2 == 0: + FreeCAD.Console.PrintError("H1, H2, W1 and W2 parameters cannot be zero. Aborting\n") + return # small spacing to avoid wrong auto-wires in sketch tol = h1/10 # glass size divider diff --git a/src/Mod/Arch/InitGui.py b/src/Mod/Arch/InitGui.py index aab7649e28..7fb0c07e2b 100644 --- a/src/Mod/Arch/InitGui.py +++ b/src/Mod/Arch/InitGui.py @@ -54,6 +54,13 @@ class ArchWorkbench(FreeCADGui.Workbench): import Arch_rc import Arch + # Load Reinforcement WB translations + try: + import RebarTools + RebarTools.load_translations() + except Exception: + pass + from ArchStructure import _ArchStructureGroupCommand from ArchAxis import _ArchAxisGroupCommand from ArchPanel import CommandPanelGroup diff --git a/src/Mod/Arch/OfflineRenderingUtils.py b/src/Mod/Arch/OfflineRenderingUtils.py index f73d5ae677..920ffab64e 100755 --- a/src/Mod/Arch/OfflineRenderingUtils.py +++ b/src/Mod/Arch/OfflineRenderingUtils.py @@ -456,7 +456,7 @@ def getCoinCamera(camerastring): for child in node.getChildren(): if ("SoOrthographicCamera" in str(child)) or ("SoPerspectiveCamera" in str(child)): return child - print("unnable to build a camera node from string:",camerastring) + print("unable to build a camera node from string:",camerastring) return None diff --git a/src/Mod/Arch/Resources/translations/Arch.ts b/src/Mod/Arch/Resources/translations/Arch.ts index 09d34f4ea4..42866c9d42 100644 --- a/src/Mod/Arch/Resources/translations/Arch.ts +++ b/src/Mod/Arch/Resources/translations/Arch.ts @@ -2169,7 +2169,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela - + Door @@ -5937,92 +5937,92 @@ Building creation aborted. Workbench - + Structure tools - + Axis tools - + Panel tools - + Material tools - + Pipe tools - + Rebar tools - + Arch tools - + Draft creation tools - + Draft annotation tools - + Draft modification tools - + Draft snap - - - - &Arch - - - - - - Utilities - - - - - &Draft + &Arch + + Utilities + + + + + + + + &Draft + + + + Creation - + Annotation - + Modification @@ -6030,12 +6030,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6747,23 +6747,23 @@ Building creation aborted. QObject - - + + Arch - - - - + + + + Draft - - - + + + Import-Export diff --git a/src/Mod/Arch/Resources/translations/Arch_be.ts b/src/Mod/Arch/Resources/translations/Arch_be.ts index c8a388263d..1bcd5d2eba 100644 --- a/src/Mod/Arch/Resources/translations/Arch_be.ts +++ b/src/Mod/Arch/Resources/translations/Arch_be.ts @@ -2253,7 +2253,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Вышыня (мм) - + Door Дзверы @@ -6037,92 +6037,92 @@ Building creation aborted. Workbench - + Structure tools Інструменты канструкцыі - + Axis tools Інструменты восей - + Panel tools Інструменты панэлі - + Material tools Інструменты матэрыялу - + Pipe tools Інструменты трубаправоду - + Rebar tools Інструменты арматуры - + Arch tools Інструменты Архітэктуры - + Draft creation tools Інструменты стварэння Чарнавіка - + Draft annotation tools Інструменты заметак Чарнавіка - + Draft modification tools Інструменты змены Чарнавіка - + Draft snap Прывязаць Чарнавік - - + + &Arch &Архітэктура - - + + Utilities Службовыя - - - - + + + + &Draft &Чарнавік - + Creation Стварэнне - + Annotation Заметка - + Modification Змена @@ -6130,12 +6130,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Інструменты арматуры - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Стварайце розныя тыпы арматуры, уключаючы U-вобразную, L-вобразную і хамуты @@ -6847,23 +6847,23 @@ Building creation aborted. QObject - - + + Arch Архітэктура - - - - + + + + Draft Асадка - - - + + + Import-Export Імпарт-Экспарт diff --git a/src/Mod/Arch/Resources/translations/Arch_ca.qm b/src/Mod/Arch/Resources/translations/Arch_ca.qm index 7c5e319e69..52615fa19a 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_ca.qm and b/src/Mod/Arch/Resources/translations/Arch_ca.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_ca.ts b/src/Mod/Arch/Resources/translations/Arch_ca.ts index 458e2616a5..0a6401da6c 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ca.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ca.ts @@ -334,7 +334,7 @@ Deixeu en blanc per a utilitzar tots els objectes del document An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + Una llista de propietats opcional separada per punt i coma (;):valors a filtrar. Avantposa el símbol ! a una propietat per invertir l'efecte del filtre (exclou objectes que coincideixen amb el filtre). S'obtindran els objectes que coincideixin amb les propietats del filtre. Exemples de filtres vàlids (majúscules o minúscules indistintament): Name:Paret - Considerará només objectes amb 'paret' al seu nom (nom intern); !Name:Paret - Considerará només objectes que no tinguin 'paret' al seu nom (nom intern); Description:Win - Considerará només objectes amb 'win' a la seva descripció; !Label:Win - Considerará només objectes que no tinguin 'paret' a la seva etiqueta; IfcType:Paret - Considerará només objectes amb 'paret' com a IfcType; !Tag:Paret - Considerará només objectes que no tinguin 'paret' com a Tag. Si deixes buit aquest camp, no s'aplicarà cap filtre @@ -2211,7 +2211,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -5995,92 +5995,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Utilitats - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Anotació - + Modification Modification @@ -6088,12 +6088,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6805,23 +6805,23 @@ Building creation aborted. QObject - - + + Arch Arquitectura - - - - + + + + Draft Calat - - - + + + Import-Export Importació-exportació diff --git a/src/Mod/Arch/Resources/translations/Arch_cs.qm b/src/Mod/Arch/Resources/translations/Arch_cs.qm index 3992cf5412..52961956f8 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_cs.qm and b/src/Mod/Arch/Resources/translations/Arch_cs.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_cs.ts b/src/Mod/Arch/Resources/translations/Arch_cs.ts index ba564f9107..cd9a8da6c5 100644 --- a/src/Mod/Arch/Resources/translations/Arch_cs.ts +++ b/src/Mod/Arch/Resources/translations/Arch_cs.ts @@ -254,7 +254,7 @@ Chcete-li použít všechny objekty z dokumentu, ponechte prázdné The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. - The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. + Vlastnost, kterou chcete načíst z každého objektu. Může být 'Počítat' pro počítání objektů, nebo názvy vlastností jako 'Délka' nebo 'Tvare.Volume' pro načtení určité vlastnosti. @@ -319,12 +319,12 @@ Chcete-li použít všechny objekty z dokumentu, ponechte prázdné Put selected objects into the 'Objects' column of the selected row - Put selected objects into the 'Objects' column of the selected row + Vložte vybrané objekty do sloupce 'Objekty' vybraného řádku This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) - This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) + Toto exportuje výsledky do souboru CSV nebo Markdown. Poznámka pro export do CSV: V LibreOffice si můžete ponechat soubor CSV propojený pravým tlačítkem myši na panel Listů, Nový list, ze souboru, odkaz (poznámka: od LibreOffice v6. správnou cestu nyní je: List a vložte list..., Z souboru, Procházet...) @@ -334,7 +334,7 @@ Chcete-li použít všechny objekty z dokumentu, ponechte prázdné An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + Volitelný středník (;) oddělený seznam vlastností:value filtrů. Přidejte před název vlastnosti k invertování efektu filtru (vyloučí objekty, které odpovídají filtru). Objekty, jejichž vlastnost obsahuje hodnotu, budou shodné. Příklady platných filtrů (vše je necitlivé na malá a velká písmena): Název:Zeď - Zohlední pouze objekty s 'stěna' jejich jménem (interní název); ! ame:Zeď - Zohlední pouze objekty, které DON'T mají 'zeď' ve svém jménu (interní název); Popis: Vyhraj - Zohlední pouze objekty s 'win' v jejich popisu; ! abel:Vyhraj - Zohlední pouze objekty, které NEPOUŽÍVEJTE ve svém štítku; IfcType:Zeď - Zohlední pouze objekty, které Ifc typ je 'ze'; ! ag:Zeď - Zohlední pouze objekty, které tag není 'zeď'. Pokud necháte toto pole prázdné, není použito filtrování @@ -1758,12 +1758,12 @@ bude pracovat při otevírání souboru. StructuralSystem - StructuralSystem + StrukturalSystém Create Structures From Selection - Create Structures From Selection + Vytvořit struktury z výběru @@ -1773,44 +1773,44 @@ bude pracovat při otevírání souboru. Create Structural System - Create Structural System + Vytvořit strukturální systém Please select at least an axis object - Please select at least an axis object + Vyberte prosím alespoň objekt osy Create Structure - Create Structure + Vytvořit strukturu First point of the beam - First point of the beam + První bod světla Base point of column - Base point of column + Základní bod sloupce Next point - Next point + Další bod Structure options - Structure options + Možnosti struktury Drawing mode - Drawing mode + Režim kreslení @@ -1825,7 +1825,7 @@ bude pracovat při otevírání souboru. Preset - Preset + Předvolba @@ -1854,19 +1854,19 @@ bude pracovat při otevírání souboru. Switch L/H - Switch L/H + Přepínač L/H Switch L/W - Switch L/W + Přepnout L/W Con&tinue - Con&tinue + Pokračovat @@ -1877,69 +1877,69 @@ bude pracovat při otevírání souboru. This mesh is an invalid solid - This mesh is an invalid solid + Tato síť netvoří platné těleso Facemaker returned an error - Facemaker returned an error + Fakulta vrátila chybu Node Tools - Node Tools + Nástroje uzlu Reset nodes - Reset nodes + Reset nodes Edit nodes - Edit nodes + Upravit uzly Extend nodes - Extend nodes + Rozšířit uzly Extends the nodes of this element to reach the nodes of another element - Extends the nodes of this element to reach the nodes of another element + Rozšíří uzly tohoto prvku tak, aby se dostaly do uzlů jiného prvku Connect nodes - Connect nodes + Připojit uzly Connects nodes of this element with the nodes of another element - Connects nodes of this element with the nodes of another element + Spojuje uzly tohoto prvku s uzly jiného prvku Toggle all nodes - Toggle all nodes + Přepnout všechny uzly Toggles all structural nodes of the document on/off - Toggles all structural nodes of the document on/off + Zapnout/vypnout všechny strukturální uzly dokumentu Extrusion Tools - Extrusion Tools + Nástroje pro extruzi Select tool... - Select tool... + Vyberte nástroj... @@ -1950,43 +1950,43 @@ bude pracovat při otevírání souboru. Choose another Structure object: - Choose another Structure object: + Vyberte jiný objekt struktury: The chosen object is not a Structure - The chosen object is not a Structure + Zvolený objekt není struktura The chosen object has no structural nodes - The chosen object has no structural nodes + Zvolený objekt nemá žádné strukturální uzly One of these objects has more than 2 nodes - One of these objects has more than 2 nodes + Jeden z těchto objektů má více než 2 uzly Unable to find a suitable intersection point - Unable to find a suitable intersection point + Nelze najít vhodný průsečík Intersection found. - Intersection found. + Křížová sekce nalezena. Intersection found. - Intersection found. + Průsečík nalezen. @@ -1997,7 +1997,7 @@ bude pracovat při otevírání souboru. Couldn't compute a shape - Couldn't compute a shape + Nelze vypočítat tvar @@ -2053,7 +2053,7 @@ bude pracovat při otevírání souboru. Floor - Floor + Podlaha @@ -2243,7 +2243,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Výška (mm) - + Door Dveře @@ -2280,7 +2280,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati External Reference - External Reference + Externí odkaz @@ -2550,7 +2550,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati + default - + default + + výchozí @@ -2565,7 +2565,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Press to retrieve the selected edge - Press to retrieve the selected edge + Stisknutím načíst vybraný okraj @@ -2592,12 +2592,12 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Create Axis System - Create Axis System + Vytvořit soustavu osy Please select at least one axis - Please select at least one axis + Vyberte prosím alespoň jednu osu @@ -2605,12 +2605,12 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Axes - Axes + Osy Axis system components - Axis system components + Součásti systému osy @@ -2629,7 +2629,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Please select only one base object or none - Please select only one base object or none + Vyberte prosím pouze jeden základní objekt nebo žádný @@ -2640,7 +2640,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Couldn't locate IfcOpenShell - Couldn't locate IfcOpenShell + Nelze najít IfcOpenShell @@ -2680,7 +2680,7 @@ Je-li Run = 0, pak se běh vypočítá tak, aby výška byla stejná jako relati Railing - Railing + Zábradlí @@ -3288,7 +3288,7 @@ Floor creation aborted. has an invalid shape - has an invalid shape + má neplatný tvar @@ -6027,92 +6027,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Výběr materiálu - + Pipe tools Potrubí - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Nástroje pro vytváření návrhů - + Draft annotation tools Nástroje pro anotaci návrhů - + Draft modification tools Nástroje pro úpravu návrhu - + Draft snap Snímek konceptu - - + + &Arch &Arch - - + + Utilities Nástroje - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Vysvětlivka - + Modification Modification @@ -6120,12 +6120,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6837,23 +6837,23 @@ Building creation aborted. QObject - - + + Arch Oblouk - - - - + + + + Draft Ponor - - - + + + Import-Export Import-Export diff --git a/src/Mod/Arch/Resources/translations/Arch_de.qm b/src/Mod/Arch/Resources/translations/Arch_de.qm index b909a92a5f..8e3277c0e4 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_de.qm and b/src/Mod/Arch/Resources/translations/Arch_de.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_de.ts b/src/Mod/Arch/Resources/translations/Arch_de.ts index 37aea858ae..ed08e9cdc3 100644 --- a/src/Mod/Arch/Resources/translations/Arch_de.ts +++ b/src/Mod/Arch/Resources/translations/Arch_de.ts @@ -253,7 +253,7 @@ Deaktivieren um alle Objekte des Dokuments zu verwenden The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. - The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. + Die Eigenschaft, die von jedem Objekt abgerufen werden soll. Kann 'Zählen' sein, um die Objekte zu zählen, oder Eigenschaftsnamen wie 'Länge' oder 'Form.Volumen', um eine bestimmte Eigenschaft abzurufen. @@ -318,12 +318,12 @@ Deaktivieren um alle Objekte des Dokuments zu verwenden Put selected objects into the 'Objects' column of the selected row - Put selected objects into the 'Objects' column of the selected row + Ausgewählte Objekte in die Spalte 'Objekte' der ausgewählten Zeile einfügen This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) - This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) + Dadurch werden die Ergebnisse in eine CSV- oder Markdowndatei exportiert. Hinweis zum CSV Export: In Libreoffice kann diese CSV Datei verknüpft werden, indem Du mit der rechten Maustaste auf den Reiter Arbeitsblätter, Neues Blatt, Aus Datei, Verknüpfen klickst (Hinweis: Seit LibreOffice v6.x lautet der korrekte Pfad jetzt: Blatt, Blatt einfügen..., Aus Datei, Durchsuchen...) @@ -333,7 +333,7 @@ Deaktivieren um alle Objekte des Dokuments zu verwenden An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + Eine optionale durch Semikolon (;) getrennte Liste von Eigenschaft:Wert Filtern. Setze ! vor einen Eigenschaftsnamen, um die Wirkung des Filters umzukehren (Objekte, die dem Filter entsprechen, werden ausgeschlossen). Objekte, deren Eigenschaft den Wert enthält, werden gefiltert. Beispiele für gültige Filter (Groß- und Kleinschreibung wird nicht berücksichtigt): Name:Wand - Es werden nur Objekte berücksichtigt, die 'Wand' in ihrem Namen haben (interner Name); !Name:Wand - Es werden nur Objekte berücksichtigt, die NICHT 'Wand' in ihrem Namen haben (interner Name); Beschreibung:Win - Es werden nur Objekte berücksichtigt, die 'win' in ihrer Beschreibung haben; !Kennzeichen:Win - Es werden nur Objekte berücksichtigt, die NICHT 'win' in ihrer Beschriftung haben; IfcTyp:Wand - Es werden nur Objekte berücksichtigt, deren Ifc Type 'Wand' ist; !Markierung:Wand - Es werden nur Objekte berücksichtigt, deren Markierung NICHT 'Wand' ist. Wenn Sie dieses Feld leer lassen, wird keine Filterung vorgenommen @@ -1727,7 +1727,7 @@ unit to work with when opening the file. StructuralSystem - StructuralSystem + StrukturiertesSystem @@ -2212,7 +2212,7 @@ Wenn Länge = 0 dann wird die Länge so berechnet, dass die Höhe gleich dem rel Höhe (mm) - + Door Tür @@ -2244,7 +2244,7 @@ Wenn Länge = 0 dann wird die Länge so berechnet, dass die Höhe gleich dem rel Front - Vorne + Vorderansicht @@ -2691,7 +2691,7 @@ Wenn Länge = 0 dann wird die Länge so berechnet, dass die Höhe gleich dem rel MultiMaterial - MultiMaterial + VerschiedeneMaterialien @@ -2953,7 +2953,7 @@ Wenn Länge = 0 dann wird die Länge so berechnet, dass die Höhe gleich dem rel PanelSheet - PanelSheet + PaneelBlatt @@ -3578,12 +3578,12 @@ Gebäudeerstellung abgebrochen. Left - Links + Seitenansicht von links Right - Rechts + Seitenansicht von rechts @@ -3779,7 +3779,7 @@ Gebäudeerstellung abgebrochen. Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path - Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path + Erstelle mehrere Bogenstrukturen aus einer ausgewählten Basis, indem jede ausgewählte Kante als Extrusionspfad verwendet wird @@ -3792,7 +3792,7 @@ Gebäudeerstellung abgebrochen. Create a structural system from a selected structure and axis - Create a structural system from a selected structure and axis + Erstelle ein Struktursystem aus einer ausgewählten Struktur und Achse @@ -3805,7 +3805,7 @@ Gebäudeerstellung abgebrochen. Creates a structure from scratch or from a selected object (sketch, wire, face or solid) - Creates a structure from scratch or from a selected object (sketch, wire, face or solid) + Erzeugt eine Struktur von Grund auf oder aus einem ausgewählten Objekt (Skizze, Draht, Fläche oder Festkörper) @@ -3900,7 +3900,7 @@ Gebäudeerstellung abgebrochen. The facemaker type to use to build the profile of this object - The facemaker type to use to build the profile of this object + Der Typ Flächenerzeuger, der verwendet werden soll, um das Profil dieses Objekts zu erstellen @@ -4216,7 +4216,7 @@ Gebäudeerstellung abgebrochen. Thickness of the web - Thickness of the web + Dicke des Netzes @@ -4232,7 +4232,7 @@ Gebäudeerstellung abgebrochen. Thickness of the webs - Thickness of the webs + Dicke der Netze @@ -4242,7 +4242,7 @@ Gebäudeerstellung abgebrochen. Thickness of the legs - Thickness of the legs + Dicke der Beine @@ -4447,7 +4447,7 @@ Gebäudeerstellung abgebrochen. The total length of the ridges and hips of the roof - The total length of the ridges and hips of the roof + First- und Gratlängen des gesamten Daches @@ -4462,12 +4462,12 @@ Gebäudeerstellung abgebrochen. The base file this component is built upon - The base file this component is built upon + Die Basisdatei, auf der diese Komponente basiert The part to use from the base file - The part to use from the base file + Der zu verwendende Teil aus der Basisdatei @@ -4477,7 +4477,7 @@ Gebäudeerstellung abgebrochen. Fuse objects of same material - Fuse objects of same material + Verschmelze Objekte aus gleichem Werkstoff @@ -4487,7 +4487,7 @@ Gebäudeerstellung abgebrochen. If true, the colors from the linked file will be kept updated - If true, the colors from the linked file will be kept updated + Wenn aktiviert, werden die Farben der verknüpften Datei aktualisiert @@ -5513,7 +5513,7 @@ Gebäudeerstellung abgebrochen. The font to use for texts - The font to use for texts + Die für Texte zu verwendende Schriftart @@ -5993,92 +5993,92 @@ Gebäudeerstellung abgebrochen. Workbench - + Structure tools Structure tools - + Axis tools Achsenwerkzeuge - + Panel tools Panel tools - + Material tools Materialwerkzeuge - + Pipe tools Rohrwerkzeuge - + Rebar tools Rebar tools - + Arch tools Arch Werkzeuge - + Draft creation tools Draft-Werkzeuge zum Erstellen - + Draft annotation tools Draft-Werkzeuge zum Beschriften - + Draft modification tools Draft-Werkzeuge zum Bearbeiten - + Draft snap - Entwurfs-Einrastung - - - - - &Arch - &Arch - - - - - Utilities - Dienstprogramme + Draft-Einrasten - - - &Draft - &Entwurf + &Arch + &Arch + + Utilities + Dienstprogramme + + + + + + + &Draft + &Draft + + + Creation Erstellung - + Annotation Anmerkung - + Modification Änderung @@ -6086,12 +6086,12 @@ Gebäudeerstellung abgebrochen. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Erstellen verschiedener Arten von Bewehrungsstäben, einschließlich U-förmiger, L-förmiger und bügelförmiger Stäbe @@ -6803,23 +6803,23 @@ Gebäudeerstellung abgebrochen. QObject - - + + Arch Arch - - - - + + + + Draft Draft - - - + + + Import-Export Import / Export diff --git a/src/Mod/Arch/Resources/translations/Arch_el.ts b/src/Mod/Arch/Resources/translations/Arch_el.ts index 406dfca335..96c599729b 100644 --- a/src/Mod/Arch/Resources/translations/Arch_el.ts +++ b/src/Mod/Arch/Resources/translations/Arch_el.ts @@ -2240,7 +2240,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6024,92 +6024,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Βοηθήματα - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Σχολιασμός - + Modification Modification @@ -6117,12 +6117,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6834,23 +6834,23 @@ Building creation aborted. QObject - - + + Arch Arch - - - - + + + + Draft Βύθισμα - - - + + + Import-Export Εισαγωγή-Εξαγωγή diff --git a/src/Mod/Arch/Resources/translations/Arch_es-AR.qm b/src/Mod/Arch/Resources/translations/Arch_es-AR.qm index 910bbacfb6..ef152e9796 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_es-AR.qm and b/src/Mod/Arch/Resources/translations/Arch_es-AR.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_es-AR.ts b/src/Mod/Arch/Resources/translations/Arch_es-AR.ts index a64feb1dcf..2c3c1f3fd3 100644 --- a/src/Mod/Arch/Resources/translations/Arch_es-AR.ts +++ b/src/Mod/Arch/Resources/translations/Arch_es-AR.ts @@ -21,7 +21,7 @@ Copy values from an existing material in the document - Copia en el documento valores de un material existente + Copia en el documento los valores de un material existente @@ -124,7 +124,7 @@ The name of the BimServer you are currently connecting to. Change settings in Arch Preferences - El nombre del servidor Bim al que se está conectando actualmente. Cambiar la configuración en Arch Preferences + El nombre del BimServer al que se está conectando. Cambia la configuración en Arch Preferences @@ -198,7 +198,7 @@ Schedule name: - Nombre del programa: + Nombre de la programación: @@ -259,7 +259,7 @@ Deje en blanco para usar todos los objetos del documento If this is enabled, an associated spreadsheet containing the results will be maintained together with this schedule object - Si esto está habilitado, una hoja de cálculo asociada que contiene los resultados se mantendrá junto con este objeto de programa + Si esto está habilitado, una hoja de cálculo asociada que contiene los resultados se mantendrá junto con este objeto organizado @@ -613,7 +613,7 @@ Deje en blanco para usar todos los objetos del documento Start - Iniciar + Inicio @@ -2236,7 +2236,7 @@ Si Distancia = 0 entonces la distancia es calcula de forma que la altura sea igu Altura (mm) - + Door Puerta @@ -3819,7 +3819,7 @@ Creación de construcción cancelada. Create a structural system from a selected structure and axis - Create a structural system from a selected structure and axis + Crea un sistema estructural de una estructura seleccionada y de su eje @@ -3832,7 +3832,7 @@ Creación de construcción cancelada. Creates a structure from scratch or from a selected object (sketch, wire, face or solid) - Creates a structure from scratch or from a selected object (sketch, wire, face or solid) + Crea una estructura desde cero o desde un objeto seleccionado (croquis, perimetro, cara o sólido) @@ -5980,7 +5980,7 @@ Creación de construcción cancelada. Creates an equipment from a selected object (Part or Mesh) - Creates an equipment from a selected object (Part or Mesh) + Crea un equipo de un objeto seleccionado (Parte o Malla) @@ -6006,7 +6006,7 @@ Creación de construcción cancelada. Creates a BuildingPart including selected objects - Creates a BuildingPart including selected objects + Crea una BuildingPart incluyendo los objetos seleccionados @@ -6020,92 +6020,92 @@ Creación de construcción cancelada. Workbench - + Structure tools Herramientas de estructura - + Axis tools Herramientas de ejes - + Panel tools Herramientas del panel - + Material tools Herramientas de material - + Pipe tools Herramientas de tubería - + Rebar tools Reiniciar herramientas - + Arch tools Herramientas de arquitectura - + Draft creation tools Herramientas de creación de Esbozo - + Draft annotation tools Herramientas de anotación de Esbozo - + Draft modification tools Herramientas de modificación de Esbozo - + Draft snap Referencia a objetos de Boceto - - + + &Arch &Arco - - + + Utilities Utilidades - - - - + + + + &Draft &Proyecto - + Creation Creación - + Annotation Anotación - + Modification Modificación @@ -6113,12 +6113,12 @@ Creación de construcción cancelada. Arch_RebarTools - + Rebar tools Reiniciar herramientas - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Crear varios tipos de refuerzo, incluyendo forma-U, forma-L, y estribo @@ -6146,7 +6146,7 @@ Creación de construcción cancelada. Creates a site including selected objects. - Creates a site including selected objects. + Crea un sitio incluyendo los objetos seleccionados. @@ -6830,23 +6830,23 @@ Creación de construcción cancelada. QObject - - + + Arch Arquitectura - - - - + + + + Draft Calado - - - + + + Import-Export Importar-Exportar diff --git a/src/Mod/Arch/Resources/translations/Arch_es-ES.qm b/src/Mod/Arch/Resources/translations/Arch_es-ES.qm index b6b717d9f0..e469c41e0e 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_es-ES.qm and b/src/Mod/Arch/Resources/translations/Arch_es-ES.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_es-ES.ts b/src/Mod/Arch/Resources/translations/Arch_es-ES.ts index a4959131ba..e938e4910e 100644 --- a/src/Mod/Arch/Resources/translations/Arch_es-ES.ts +++ b/src/Mod/Arch/Resources/translations/Arch_es-ES.ts @@ -6,7 +6,7 @@ Arch material - Material de arquitecto + Material del workbench Arch @@ -21,7 +21,7 @@ Copy values from an existing material in the document - Copia en el documento valores de un material existente + Copia en el documento los valores de un material existente @@ -124,7 +124,7 @@ The name of the BimServer you are currently connecting to. Change settings in Arch Preferences - El nombre del servidor Bim al que se está conectando actualmente. Cambiar la configuración en Arch Preferences + El nombre del BimServer al que se está conectando. Cambia la configuración en Arch Preferences @@ -175,7 +175,7 @@ Upload - Subida + Subir @@ -198,7 +198,7 @@ Schedule name: - Nombre del programa: + Nombre de la programación: @@ -259,7 +259,7 @@ Deje en blanco para usar todos los objetos del documento If this is enabled, an associated spreadsheet containing the results will be maintained together with this schedule object - Si esto está habilitado, una hoja de cálculo asociada que contiene los resultados se mantendrá junto con este objeto de programa + Si esto está habilitado, una hoja de cálculo asociada que contiene los resultados se mantendrá junto con este objeto organizado @@ -2236,7 +2236,7 @@ Si Distancia = 0 entonces la distancia es calcula de forma que la altura sea igu Altura (mm) - + Door Puerta @@ -3819,7 +3819,7 @@ Creación de construcción cancelada. Create a structural system from a selected structure and axis - Create a structural system from a selected structure and axis + Crea un sistema estructural de una estructura seleccionada y de su eje @@ -3832,7 +3832,7 @@ Creación de construcción cancelada. Creates a structure from scratch or from a selected object (sketch, wire, face or solid) - Creates a structure from scratch or from a selected object (sketch, wire, face or solid) + Crea una estructura desde cero o desde un objeto seleccionado (croquis, perimetro, cara o sólido) @@ -5980,7 +5980,7 @@ Creación de construcción cancelada. Creates an equipment from a selected object (Part or Mesh) - Creates an equipment from a selected object (Part or Mesh) + Crea un equipo de un objeto seleccionado (Parte o Malla) @@ -6006,7 +6006,7 @@ Creación de construcción cancelada. Creates a BuildingPart including selected objects - Creates a BuildingPart including selected objects + Crea una BuildingPart incluyendo los objetos seleccionados @@ -6020,92 +6020,92 @@ Creación de construcción cancelada. Workbench - + Structure tools Herramientas de estructura - + Axis tools Herramientas de ejes - + Panel tools Herramientas del panel - + Material tools Herramientas de material - + Pipe tools Herramientas de tubería - + Rebar tools Reiniciar herramientas - + Arch tools Herramientas de arquitectura - + Draft creation tools Herramientas de creación de Esbozo - + Draft annotation tools Herramientas de anotación de Esbozo - + Draft modification tools Herramientas de modificación de Esbozo - + Draft snap Referencia a objetos de Boceto - - + + &Arch &Arco - - + + Utilities Utilidades - - - - + + + + &Draft &Proyecto - + Creation Creación - + Annotation Anotación - + Modification Modificación @@ -6113,12 +6113,12 @@ Creación de construcción cancelada. Arch_RebarTools - + Rebar tools Reiniciar herramientas - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Crear varios tipos de refuerzo, incluyendo forma-U, forma-L, y estribo @@ -6146,7 +6146,7 @@ Creación de construcción cancelada. Creates a site including selected objects. - Creates a site including selected objects. + Crea un sitio incluyendo los objetos seleccionados. @@ -6830,23 +6830,23 @@ Creación de construcción cancelada. QObject - - + + Arch Arco - - - - + + + + Draft Calado - - - + + + Import-Export Importar/Exportar diff --git a/src/Mod/Arch/Resources/translations/Arch_eu.ts b/src/Mod/Arch/Resources/translations/Arch_eu.ts index 45324f11a8..1351f1c18a 100644 --- a/src/Mod/Arch/Resources/translations/Arch_eu.ts +++ b/src/Mod/Arch/Resources/translations/Arch_eu.ts @@ -2242,7 +2242,7 @@ Distantzia = 0 bada, orduan distantzia kalkulatzen da altuera profil erlatiboare Altuera (mm) - + Door Atea @@ -6026,92 +6026,92 @@ Eraikinaren sorrera utzi egin da. Workbench - + Structure tools Egitura-tresnak - + Axis tools Ardatz-tresnak - + Panel tools Panel-tresnak - + Material tools Material-tresnak - + Pipe tools Hodi-tresnak - + Rebar tools Armadura-barren tresnak - + Arch tools Arku-tresnak - + Draft creation tools Zirriborroak sortzeko tresnak - + Draft annotation tools Zirriborroetan oharpenak sortzeko tresnak - + Draft modification tools Zirriborroak aldatzeko tresnak - + Draft snap Zirriborro-atxikitzea - - + + &Arch &Arkua - - + + Utilities Utilitateak - - - - + + + + &Draft &Zirriborroa - + Creation Sorrera - + Annotation Oharpena - + Modification Aldaketa @@ -6119,12 +6119,12 @@ Eraikinaren sorrera utzi egin da. Arch_RebarTools - + Rebar tools Armadura-barren tresnak - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Sortu armadura-barren mota desberdinak, U formakoak, L formakoak eta estribu formakoak barne @@ -6836,23 +6836,23 @@ Eraikinaren sorrera utzi egin da. QObject - - + + Arch Arkitektura - - - - + + + + Draft Zirriborroa - - - + + + Import-Export Inportatu-Esportatu diff --git a/src/Mod/Arch/Resources/translations/Arch_fi.qm b/src/Mod/Arch/Resources/translations/Arch_fi.qm index 8c2ad00753..502f123e65 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_fi.qm and b/src/Mod/Arch/Resources/translations/Arch_fi.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_fi.ts b/src/Mod/Arch/Resources/translations/Arch_fi.ts index f670eacafe..9449cf7c79 100644 --- a/src/Mod/Arch/Resources/translations/Arch_fi.ts +++ b/src/Mod/Arch/Resources/translations/Arch_fi.ts @@ -2244,7 +2244,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -3724,7 +3724,7 @@ Building creation aborted. Area - Area + Pinta-ala @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Apuvälineet - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Huomautus - + Modification Modification @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Arch - - - - + + + + Draft Syväys (vesirajasta pohjaan) - - - + + + Import-Export Tuo/Vie diff --git a/src/Mod/Arch/Resources/translations/Arch_fr.qm b/src/Mod/Arch/Resources/translations/Arch_fr.qm index 180ab7db19..a8d20ead64 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_fr.qm and b/src/Mod/Arch/Resources/translations/Arch_fr.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_fr.ts b/src/Mod/Arch/Resources/translations/Arch_fr.ts index b483cf8aaf..5e013d6a7a 100644 --- a/src/Mod/Arch/Resources/translations/Arch_fr.ts +++ b/src/Mod/Arch/Resources/translations/Arch_fr.ts @@ -560,7 +560,7 @@ Leave blank to use all objects from the document Remove - Enlever + Supprimer @@ -2211,7 +2211,7 @@ Si Course = 0 alors la course est calculée de façon à ce que la hauteur du pr Hauteur (mm) - + Door Porte @@ -2422,7 +2422,7 @@ Si Course = 0 alors la course est calculée de façon à ce que la hauteur du pr Remove - Enlever + Supprimer @@ -5955,7 +5955,7 @@ La création du bâtiment est abandonnée. Creates an equipment from a selected object (Part or Mesh) - Crée un équipement à partir d'un objet sélectionné (Part ou Mesh) + Créer un équipement à partir d'un objet sélectionné (Part ou Mesh) @@ -5981,7 +5981,7 @@ La création du bâtiment est abandonnée. Creates a BuildingPart including selected objects - Crée une partie de bâtiment incluant les objets sélectionnés + Créer une partie de bâtiment incluant les objets sélectionnés @@ -5995,92 +5995,92 @@ La création du bâtiment est abandonnée. Workbench - + Structure tools Outils pour les structures - + Axis tools Outils pour les axes - + Panel tools Outils pour les panneaux - + Material tools Outils pour les matériaux - + Pipe tools Outils pour la tuyauterie - + Rebar tools Outils pour les armatures - + Arch tools - Outils Arch + Outils de Arch - + Draft creation tools Outils de création de Draft - + Draft annotation tools Outils d'annotation de Draft - + Draft modification tools Outils de modification de Draft - + Draft snap Aimantation de Draft - - + + &Arch &Arch - - + + Utilities Utilitaires - - - - + + + + &Draft &Draft - + Creation Création - + Annotation Annotation - + Modification Modification @@ -6088,12 +6088,12 @@ La création du bâtiment est abandonnée. Arch_RebarTools - + Rebar tools Outils pour les armatures - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Créer différents types d'armatures, en forme de U, en forme de L et des étriers @@ -6108,7 +6108,7 @@ La création du bâtiment est abandonnée. Creates a profile - Crée un profilé + Créer un profilé @@ -6620,7 +6620,7 @@ La création du bâtiment est abandonnée. Adds the selected components to the active object - Ajoute les composants sélectionnés à l'objet actif + Ajouter les composants sélectionnés à l'objet actif @@ -6724,7 +6724,7 @@ La création du bâtiment est abandonnée. Starts survey - Prise de côtes + Prendre des cotes @@ -6805,23 +6805,23 @@ La création du bâtiment est abandonnée. QObject - - + + Arch Architecture - - - - + + + + Draft Tirant d'eau - - - + + + Import-Export Importer/Exporter diff --git a/src/Mod/Arch/Resources/translations/Arch_gl.ts b/src/Mod/Arch/Resources/translations/Arch_gl.ts index 50a2667141..8f5739799d 100644 --- a/src/Mod/Arch/Resources/translations/Arch_gl.ts +++ b/src/Mod/Arch/Resources/translations/Arch_gl.ts @@ -2244,7 +2244,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Utilidades - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Apuntamento - + Modification Modification @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Arquitectura - - - - + + + + Draft Calado - - - + + + Import-Export Importar-Exportar diff --git a/src/Mod/Arch/Resources/translations/Arch_hr.qm b/src/Mod/Arch/Resources/translations/Arch_hr.qm index e312ed5602..179bdcc515 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_hr.qm and b/src/Mod/Arch/Resources/translations/Arch_hr.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_hr.ts b/src/Mod/Arch/Resources/translations/Arch_hr.ts index 1bafae24a4..e5cfe858fc 100644 --- a/src/Mod/Arch/Resources/translations/Arch_hr.ts +++ b/src/Mod/Arch/Resources/translations/Arch_hr.ts @@ -255,7 +255,7 @@ Ostavite prazno da biste koristili sve predmete iz dokumenta The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. - The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. + Svojstvo dohvaćanja iz svakog objekta.Može se "Brojati" za brojanje objekata ili imena svojstavapoput 'Duljina' ili 'Oblik'. Volumen za dohvaćanje određenog svojstva. @@ -270,7 +270,7 @@ Ostavite prazno da biste koristili sve predmete iz dokumenta If this is enabled, additional lines will be filled with each object considered. If not, only the totals. - If this is enabled, additional lines will be filled with each object considered. If not, only the totals. + Ako je ovo uključeno, dodatni se redovi popunjavaju sa svakim razmatranim objektom. Ako ne, samo zbrojevi. @@ -280,7 +280,7 @@ Ostavite prazno da biste koristili sve predmete iz dokumenta If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. - If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. + Ako je ovo omogućeno, raspored i tablica podataka se ažuriraju svaki put kada se dokument ponovno izračuna. @@ -320,12 +320,12 @@ Ostavite prazno da biste koristili sve predmete iz dokumenta Put selected objects into the 'Objects' column of the selected row - Put selected objects into the 'Objects' column of the selected row + Staviti odabrane predmete u 'Objekti ' stupac za odabrani redak This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) - This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) + Rezultati se izvoze u CSV ili Markdown datoteku. Napomena za CSV izvoz: U Libreofficeu možete održati vezu ove CSV datoteke desnim klikom na Listovi na traci s karticama - Novi list - Iz datoteke - Poveznica (Napomena: Od LibreOffice v6.x, točan put je sada: List - Umetni list... - Iz datoteke - Pretraži...) @@ -335,7 +335,9 @@ Ostavite prazno da biste koristili sve predmete iz dokumenta An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + + +Opcionalni popis filtera svojstva:vrijednost odvojenih zarezom (;). Preporučite ! na nazivu svojstva da biste invertirali učinak filtra (isključuje objekte koji odgovaraju filtru). Objekti čije svojstvo sadrži vrijednost bit će usklađeni. Primjeri valjanih filtera (sve je bez osjetljivosti na mala i velika slova): Ime:Zid - U obzir će se uzeti samo objekti koji imaju 'zid' u svom imenu (unutarnje ime); !Ime:Zid - U obzir će se uzeti samo objekti koji NE IMAJU 'zid' u svom imenu (unutarnje ime); Opis:Pobjeda - U obzir će se uzeti samo objekti koji imaju 'win' u svom opisu; !Oznaka:Pobjeda - U obzir će se uzeti samo objekti koji NE IMAJU 'win' u svojoj oznaki; IfcType:Zid - U obzir će se uzeti samo objekti čiji je Ifc Tip 'Zid'; !Oznaka:Zid - U obzir će se uzeti samo objekti čija je oznaka NE 'Zid'. Ako ovo polje ostavite prazno, ne primjenjuje se filtriranje. @@ -1772,7 +1774,7 @@ jedinice s kojom treba raditi prilikom otvaranja datoteke. StructuralSystem - StructuralSystem + StrukturniSustav @@ -2067,7 +2069,7 @@ jedinice s kojom treba raditi prilikom otvaranja datoteke. Floor - Floor + Kat @@ -2257,7 +2259,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn Visina (mm) - + Door Vrata @@ -2294,7 +2296,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn External Reference - External Reference + Vanjska referenca @@ -2710,7 +2712,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn Railing - Railing + Ograda @@ -2752,7 +2754,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn MultiMaterial - MultiMaterial + Višeslojni Materijal @@ -3014,7 +3016,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn PanelSheet - PanelSheet + Ploča @@ -3025,7 +3027,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn Panel options - Panel options + Postavke ploče @@ -3168,12 +3170,14 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn removed property 'Result', and added property 'AutoUpdate' - removed property 'Result', and added property 'AutoUpdate' + Uklonjeno je svojstvo 'Rezultat' i dodano je svojstvo 'Automatsko ažuriranje'. + +Here is a breakdown of the translation: added property 'Schedule' - added property 'Schedule' + dodano je svojstvo 'Raspored' @@ -3183,7 +3187,7 @@ Ako je Run = 0, tada se proračun izračunava tako da je visina jednaka relativn Remove spreadsheet - Remove spreadsheet + Ukloni podatkovnu tablicu @@ -3843,7 +3847,7 @@ Stvaranje zgrade prekinuto. Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path - Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path + Kreiraj više struktura lukova iz odabrane osnove, koristeći svaku odabranu ivicu kao putanju ekstruzije. @@ -3856,7 +3860,7 @@ Stvaranje zgrade prekinuto. Create a structural system from a selected structure and axis - Create a structural system from a selected structure and axis + Izrada konstrukcijskog sustava iz odabrane konstrukcije i osi @@ -3869,7 +3873,7 @@ Stvaranje zgrade prekinuto. Creates a structure from scratch or from a selected object (sketch, wire, face or solid) - Creates a structure from scratch or from a selected object (sketch, wire, face or solid) + Stvara konstrukcije od nule ili od odabranog objekta (skica, žica, površina ili tijelo) @@ -5520,12 +5524,12 @@ Stvaranje zgrade prekinuto. If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed - If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed + Ako je ovo omogućeno, raspored i tablica podataka se ažuriraju svaki put kada se dokument ponovno izračuna. The Arch Schedule that uses this spreadsheet - The Arch Schedule that uses this spreadsheet + Raspored lukova koji koristi ovu tablicu podataka @@ -6050,7 +6054,7 @@ Stvaranje zgrade prekinuto. Creates an equipment from a selected object (Part or Mesh) - Creates an equipment from a selected object (Part or Mesh) + Stvara objekt opreme iz odabranog objekta (dio ili mreža) @@ -6076,7 +6080,7 @@ Stvaranje zgrade prekinuto. Creates a BuildingPart including selected objects - Creates a BuildingPart including selected objects + Stvori objekt Zgrade sa odabranim objektima @@ -6090,92 +6094,92 @@ Stvaranje zgrade prekinuto. Workbench - + Structure tools Alati Konstrukcije - + Axis tools Alati Osi - + Panel tools Alati Pregrade - + Material tools Alati materijala - + Pipe tools Alati Cijevi - + Rebar tools Alati Građevinskog željeza - + Arch tools Alati Arhitekt - + Draft creation tools Alati kreiranja Nacrta - + Draft annotation tools Alati napomena Nacrta - + Draft modification tools Alati za izmjene Nacrta - + Draft snap prikvači na Nacrtu - - + + &Arch &Arhitektura - - + + Utilities Uslužni programi - - - - + + + + &Draft &Nacrt - + Creation Stvaranje - + Annotation Anotacija - + Modification Modifikacija @@ -6183,12 +6187,12 @@ Stvaranje zgrade prekinuto. Arch_RebarTools - + Rebar tools Alati Građevinskog željeza - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Izradite razne vrste armaturnih šipki, uključujući U-oblik, L-oblik i stremen @@ -6203,7 +6207,7 @@ Stvaranje zgrade prekinuto. Creates a profile - Creates a profile + Izradi profil @@ -6216,7 +6220,7 @@ Stvaranje zgrade prekinuto. Creates a site including selected objects. - Creates a site including selected objects. + Stvori okućnicu koja uključuje odabrane objekte. @@ -6346,7 +6350,7 @@ Stvaranje zgrade prekinuto. Creates a flight of stairs - Creates a flight of stairs + Stvori stepenište i stube @@ -6902,23 +6906,23 @@ Stvaranje zgrade prekinuto. QObject - - + + Arch Luk - - - - + + + + Draft Skica - - - + + + Import-Export Uvoz / izvoz diff --git a/src/Mod/Arch/Resources/translations/Arch_hu.ts b/src/Mod/Arch/Resources/translations/Arch_hu.ts index 24c08eb18f..07448240d4 100644 --- a/src/Mod/Arch/Resources/translations/Arch_hu.ts +++ b/src/Mod/Arch/Resources/translations/Arch_hu.ts @@ -2244,7 +2244,7 @@ Ha Futás = 0, akkor a futás kiszámítása úgy történik, hogy a magasság m Magasság (mm) - + Door Ajtó @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Szerkezeti eszközök - + Axis tools Tengely eszközök - + Panel tools Panel eszközök - + Material tools Anyag eszközök - + Pipe tools Cső eszközök - + Rebar tools Betonacél eszközök - + Arch tools Építészeti eszközök - + Draft creation tools Tervrajzkészítő eszközök - + Draft annotation tools Tervrajz megjegyzési eszközök - + Draft modification tools Tervrajz módosítási eszközök - + Draft snap Tervrajz illesztés - - + + &Arch Építészet - - + + Utilities Kiegészítők - - - - + + + + &Draft Tervrajz - + Creation Létrehozás - + Annotation Jegyzet - + Modification Módosítás @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Betonacél eszközök - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Hozzon létre különböző típusú betonacélokat, beleértve az U-alakút, L-alakút és kengyelt @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Architektúra - - - - + + + + Draft Tervrajz - - - + + + Import-Export Importálás-Exportálás diff --git a/src/Mod/Arch/Resources/translations/Arch_it.qm b/src/Mod/Arch/Resources/translations/Arch_it.qm index 1b336bc52d..db78bddcd1 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_it.qm and b/src/Mod/Arch/Resources/translations/Arch_it.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_it.ts b/src/Mod/Arch/Resources/translations/Arch_it.ts index f062aeb62a..539651fcc5 100644 --- a/src/Mod/Arch/Resources/translations/Arch_it.ts +++ b/src/Mod/Arch/Resources/translations/Arch_it.ts @@ -11,7 +11,7 @@ Choose a preset card - Scegliere una scheda preimpostata + Scegliere una scheda predefinita @@ -91,7 +91,7 @@ URL - Url + URL @@ -279,7 +279,7 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. - If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. + Se abilitato, il programma e il foglio di calcolo associato vengono aggiornati ogni volta che il documento viene ricalcolato. @@ -334,7 +334,7 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + Un elenco opzionale di filtri proprietà:valore separati da punto e virgola. Anteponi ! a un nome di proprietà per invertire l'effetto del filtro (esclude oggetti che corrispondono al filtro). Gli oggetti la cui proprietà contiene il valore saranno abbinati. Esempi di filtri validi (tutto è indipendente da maiuscolo o minuscolo): Name:Wall - Considererà solo oggetti con 'wall' nel loro nome (nome interno); !Name:Wall - considererà solo gli oggetti che NON hanno 'wall' nel loro nome (nome interno); Description:Win - Considererà solo gli oggetti con 'win' nella loro descrizione; !Label:Win - Considererà solo gli oggetti che NON hanno 'win' nella loro etichetta; IfcType:Wall - Considererà solo gli oggetti il cui tipo Ifc è 'wall'; !Tag:Wall - Considererà solo gli oggetti il cui tag NON è 'wall'. Se lasci vuoto questo campo, non viene applicato alcun filtro @@ -384,7 +384,7 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento IFC properties editor - Editor di proprietà IFC + Editore di proprietà IFC @@ -468,7 +468,7 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento Remote repositories - Repository remoti + Repository remote @@ -558,7 +558,7 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento Add selected - Aggiungi la selezione + Aggiungi selezionato @@ -701,12 +701,12 @@ Lasciare vuoto per utilizzare tutti gli oggetti del documento Set "Move with host" property to True by default - Imposta la proprietà "Sposta con l'host" su True, per impostazione predefinita + Imposta la proprietà "Sposta con l'host" su vero come impostazione predefinita Set "Move base" property to True by default - Imposta la proprietà "Sposta base" su vero, per impostazione predefinita + Imposta la proprietà "Sposta base" su vero come impostazione predefinita @@ -2081,7 +2081,7 @@ unit to work with when opening the file. Clone level up - Clone level up + Clona il livello @@ -2230,7 +2230,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Altezza (mm) - + Door Porta @@ -2302,12 +2302,12 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Shapes elevation - Shapes elevation + Altezza delle forme (Shapes) Choose which field provides shapes elevations: - Choose which field provides shapes elevations: + Scegli quale campo fornisce altezze di forme: @@ -2421,12 +2421,12 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Hole wire - Hole wire + Contorno del foro The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire - The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire + Il numero del contorno che definisce un foro nell'oggetto ospite. Il valore zero adotta automaticamente il contorno più grande @@ -2677,7 +2677,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d removed properties 'OutlineWireLeft' and 'OutlineWireRight', and added properties 'RailingLeft' and 'RailingRight' - removed properties 'OutlineWireLeft' and 'OutlineWireRight', and added properties 'RailingLeft' and 'RailingRight' + rimosse le proprietà 'OutlineWireLeft' e 'OutlineWireRight', e aggiunte le proprietà 'RailingLeft' e 'RailingRight' @@ -2836,7 +2836,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Slab type - Slab type + Tipo di lastra @@ -2861,7 +2861,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Slab base - Slab base + Base lastra @@ -2886,22 +2886,22 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Number of grooves - Number of grooves + Numero di scanalature Depth of grooves - Depth of grooves + Profondità delle scanalature Height of grooves - Height of grooves + Altezza delle scanalature Spacing between grooves - Spacing between grooves + Spazio tra le scanalature @@ -2911,7 +2911,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Length of down floor - Length of down floor + Lunghezza del piano inferiore @@ -2926,32 +2926,32 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d Precast options - Precast options + Opzioni dei prefabbricati Dents list - Dents list + Elenco delle mensole Add dent - Add dent + Aggiungi mensola Remove dent - Remove dent + Rimuovi mensola Slant - Slant + Rastrematura Level - Level + Livello @@ -3089,7 +3089,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d The base wire is closed - The base wire is closed + Il contorno di base è chiuso @@ -3125,7 +3125,7 @@ Se Base = 0 allora la Base viene calcolata in modo che l'altezza sia la stessa d removed property 'Result', and added property 'AutoUpdate' - removed property 'Result', and added property 'AutoUpdate' + rimosso la proprietà 'Risultato', e aggiunto la proprietà 'AutoAggiorna' @@ -3429,7 +3429,7 @@ Creazione del Piano interrotta. Add selected - Aggiungi la selezione + Aggiungi selezionato @@ -3614,7 +3614,7 @@ Creazione Edificio interrotta. Merge Wall - Merge Wall + Unisci i muri @@ -3751,12 +3751,12 @@ Creazione Edificio interrotta. Ungrouping - Ungrouping + Rimuovi gruppo Split Mesh - Split Mesh + Dividi Mesh @@ -3777,12 +3777,12 @@ Creazione Edificio interrotta. Key - Key + Chiave The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: - The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: + L'oggetto non ha un attributo IfcProperties. Annulla la creazione del foglio di calcolo per l'oggetto: @@ -3921,13 +3921,13 @@ Creazione Edificio interrotta. The facemaker type to use to build the profile of this object - The facemaker type to use to build the profile of this object + Il tipo di Crea facce da utilizzare per creare il profilo di questo oggetto Selected edges (or group of edges) of the base ArchSketch, to use in creating the shape of this Arch Structure (instead of using all the Base shape's edges by default). Input are index numbers of edges or groups. - Selected edges (or group of edges) of the base ArchSketch, to use in creating the shape of this Arch Structure (instead of using all the Base shape's edges by default). Input are index numbers of edges or groups. + Bordi selezionati (o gruppo di bordi) della base ArchSketch, da usare per creare la forma di questa Struttura Arch (invece di usare tutti i bordi della Forma Base per impostazione predefinita). L'input è indice di numeri di bordi o gruppi. @@ -4016,7 +4016,7 @@ Creazione Edificio interrotta. The level of the (0,0,0) point of this level - The level of the (0,0,0) point of this level + Il livello del punto (0, 0,0) di questo livello @@ -4045,7 +4045,7 @@ Creazione Edificio interrotta. This property stores an inventor representation for this object - This property stores an inventor representation for this object + Questa proprietà memorizza una rappresentazione inventor per questo oggetto @@ -4055,7 +4055,7 @@ Creazione Edificio interrotta. A MaterialName:SolidIndexesList map that relates material names with solid indexes to be used when referencing this object from other files - A MaterialName:SolidIndexesList map that relates material names with solid indexes to be used when referencing this object from other files + Una lista di corrispondenza MaterialName:SolidIndexesList che collega nomi materiali con indici solidi da usare quando si fa riferimento a questo oggetto da altri file @@ -4314,7 +4314,7 @@ Creazione Edificio interrotta. A URL that shows this site in a mapping website - A URL that shows this site in a mapping website + Un URL che mostra questo sito in un sito di mappatura @@ -4337,7 +4337,7 @@ Creazione Edificio interrotta. The perimeter length of the projected area - The perimeter length of the projected area + La lunghezza perimetrale dell'area proiettata @@ -4788,7 +4788,7 @@ Creazione Edificio interrotta. The depth of the landing of these stairs - The depth of the landing of these stairs + La profondità della pedata di queste scale @@ -4808,7 +4808,7 @@ Creazione Edificio interrotta. The 'absolute' top level of a flight of stairs leads to - The 'absolute' top level of a flight of stairs leads to + Il livello "assoluto" a cui porta una rampa di scale @@ -4849,7 +4849,7 @@ Creazione Edificio interrotta. The width of the stringers - The width of the stringers + La larghezza dei montanti @@ -5046,7 +5046,7 @@ Creazione Edificio interrotta. The type of this slab - The type of this slab + Tipo della lastra @@ -5248,7 +5248,7 @@ Creazione Edificio interrotta. A list of possible rotations for the nester - A list of possible rotations for the nester + Un elenco di possibili rotazioni per il nido @@ -5448,7 +5448,7 @@ Creazione Edificio interrotta. If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed - If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed + Se abilitato, il programma e il foglio di calcolo associato vengono aggiornati ogni volta che il documento viene ricalcolato @@ -6014,92 +6014,92 @@ Creazione Edificio interrotta. Workbench - + Structure tools Strumenti di Struttura - + Axis tools Strumenti per Assi - + Panel tools Strumenti Pannello - + Material tools Strumenti di Materiali - + Pipe tools Strumenti di Tubo - + Rebar tools Strumenti di Armatura - + Arch tools Strumenti di Arch - + Draft creation tools Strumenti di creazione Draft - + Draft annotation tools Strumenti di annotazioni Draft - + Draft modification tools Strumenti di modifica Draft - + Draft snap Draft Snap - - + + &Arch &Arch - - + + Utilities Utilità - - - - + + + + &Draft &Draft - + Creation Creazione - + Annotation Annotazione - + Modification Modifica @@ -6107,12 +6107,12 @@ Creazione Edificio interrotta. Arch_RebarTools - + Rebar tools Strumenti di Armatura - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Creare vari tipi di armatura, tra cui a forma di U, a forma di L e staffa @@ -6399,7 +6399,7 @@ Creazione Edificio interrotta. When in edge midpoint mode, if this grid must reorient its children along edge normals or not - When in edge midpoint mode, if this grid must reorient its children along edge normals or not + Se questa griglia, quando è in modalità punto medio del bordo, deve riorientare i suoi figli lungo le normali al bordo o no @@ -6534,7 +6534,7 @@ Creazione Edificio interrotta. Level - Level + Livello @@ -6660,7 +6660,7 @@ Creazione Edificio interrotta. Split Mesh - Split Mesh + Dividi Mesh @@ -6678,7 +6678,7 @@ Creazione Edificio interrotta. Turns selected meshes into Part Shape objects - Turns selected meshes into Part Shape objects + Trasforma le 'Mesh' selezionate in oggetti 'Part Shapes' @@ -6699,12 +6699,12 @@ Creazione Edificio interrotta. Remove Shape from Arch - Remove Shape from Arch + Rimuovi la forma dal modulo Architettura Removes cubic shapes from Arch components - Removes cubic shapes from Arch components + Rimuove le forme cubiche dai componenti del modulo Architettura @@ -6824,23 +6824,23 @@ Creazione Edificio interrotta. QObject - - + + Arch Arch - - - - + + + + Draft Pescaggio - - - + + + Import-Export Importa/Esporta diff --git a/src/Mod/Arch/Resources/translations/Arch_ja.qm b/src/Mod/Arch/Resources/translations/Arch_ja.qm index e4293bd6a6..14a68ca02d 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_ja.qm and b/src/Mod/Arch/Resources/translations/Arch_ja.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_ja.ts b/src/Mod/Arch/Resources/translations/Arch_ja.ts index 0f132d78b8..0f2039ca9d 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ja.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ja.ts @@ -2229,7 +2229,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -2955,7 +2955,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Rotation - Rotation + 回転 @@ -6013,92 +6013,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities ユーティリティ - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation 注釈 - + Modification Modification @@ -6106,12 +6106,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6823,23 +6823,23 @@ Building creation aborted. QObject - - + + Arch Arch - - - - + + + + Draft 喫水 - - - + + + Import-Export インポート/エクスポート diff --git a/src/Mod/Arch/Resources/translations/Arch_ka.ts b/src/Mod/Arch/Resources/translations/Arch_ka.ts index 6e9dda1f21..6f086214ae 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ka.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ka.ts @@ -2227,7 +2227,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela სიმაღლე (მმ) - + Door კარი @@ -6017,92 +6017,92 @@ Building creation aborted. Workbench - + Structure tools კონსტრუქციის ხელსაწყოები - + Axis tools ღერძის ხელსაწყოები - + Panel tools პანელის ხელსაწყოები - + Material tools მასალის ხელსაწყოები - + Pipe tools მილის ხელსაწყოები - + Rebar tools არმატურის ხელსაწყოები - + Arch tools არქიტექტურული ხელსაწყოები - + Draft creation tools მონახაზის შექმნის ხელსაწყოები - + Draft annotation tools მონახაზის ანოტაციის ხელსაწყოები - + Draft modification tools მონახაზის მოდიფიკაციის ხელსაწყოები - + Draft snap მონახაზის მიბმა - - + + &Arch &არქიტექტურა - - + + Utilities ხელსაწყოები - - - - + + + + &Draft &მონახაზი - + Creation ქმნილება - + Annotation შენიშვნა - + Modification ჩასწორება @@ -6110,12 +6110,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools არმატურის ხელსაწყოები - + Create various types of rebars, including U-shaped, L-shaped, and stirrup შექმენით სხვადასხვა ტიპის არმატურა, მათ შორის U, L და უზანგის ფორმის @@ -6827,23 +6827,23 @@ Building creation aborted. QObject - - + + Arch არქ - - - - + + + + Draft წყალშიგი - - - + + + Import-Export შეტანა-გატანა diff --git a/src/Mod/Arch/Resources/translations/Arch_ko.ts b/src/Mod/Arch/Resources/translations/Arch_ko.ts index 1eda1d1655..805c7d9ac2 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ko.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ko.ts @@ -2244,7 +2244,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Utilities - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Annotation - + Modification Modification @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Arch - - - - + + + + Draft 흘수 - - - + + + Import-Export 가져오기 내보내기 diff --git a/src/Mod/Arch/Resources/translations/Arch_nl.qm b/src/Mod/Arch/Resources/translations/Arch_nl.qm index f042248cee..797629f5bf 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_nl.qm and b/src/Mod/Arch/Resources/translations/Arch_nl.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_nl.ts b/src/Mod/Arch/Resources/translations/Arch_nl.ts index 1fcd0cc2d6..c8e92ec59b 100644 --- a/src/Mod/Arch/Resources/translations/Arch_nl.ts +++ b/src/Mod/Arch/Resources/translations/Arch_nl.ts @@ -269,7 +269,7 @@ Laat deze leeg om alle objecten uit het document te gebruiken If this is enabled, additional lines will be filled with each object considered. If not, only the totals. - If this is enabled, additional lines will be filled with each object considered. If not, only the totals. + Als dit is ingeschakeld worden er extra regels gevuld met elk overwogen object. Zo niet, dan alleen het totaal. @@ -279,7 +279,7 @@ Laat deze leeg om alle objecten uit het document te gebruiken If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. - If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. + Als dit is ingeschakeld worden het schema en het bijbehorende rekenblad bijgewerkt wanneer het document wordt herberekend. @@ -319,12 +319,12 @@ Laat deze leeg om alle objecten uit het document te gebruiken Put selected objects into the 'Objects' column of the selected row - Put selected objects into the 'Objects' column of the selected row + Plaats de geselecteerde objecten in de kolom 'Objecten' van de geselecteerde rij This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) - This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) + Dit exporteert de resultaten naar een CSV- of Markdown-bestand. Opmerking voor de CSV-export: In Libreoffice kunt u dit CSV-bestand gekoppeld houden door met de rechtermuisknop te klikken op de tabbalk Bladen - Nieuw werkblad - Vanuit bestand - Link (Opmerking: vanaf LibreOffice v6.x is het juiste pad: Bladen - Werkblad invoegen... - Vanuit bestand - Bladeren...) @@ -1748,7 +1748,7 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Column - Column + Kolom @@ -1779,7 +1779,7 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Create Structure - Create Structure + Structuur aanmaken @@ -1795,17 +1795,17 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Next point - Next point + Volgend punt Structure options - Structure options + Structuuropties Drawing mode - Drawing mode + Tekenmodus @@ -1820,7 +1820,7 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Preset - Preset + Voorinstelling @@ -1934,7 +1934,7 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Select tool... - Select tool... + Selecteer gereedschap... @@ -2048,7 +2048,7 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Floor - Floor + Verdieping @@ -2099,17 +2099,17 @@ Echter, sommige BIM programma's zullen deze conversie factor gebruiken bij het k Create profile - Create profile + Profiel aanmaken Profile settings - Profile settings + Profielinstellingen Create Profile - Create Profile + Profiel aanmaken @@ -2156,26 +2156,26 @@ Site creation aborted. Create Roof - Create Roof + Maak dak Unable to create a roof - Unable to create a roof + Onmogelijk om een dak te maken Please select a base object - Please select a base object + Selecteer een basisobject Roof - Roof + Dak @@ -2210,7 +2210,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Angle (deg) - Angle (deg) + Hoek (graden) @@ -2225,7 +2225,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Thickness (mm) - Thickness (mm) + Dikte (mm) @@ -2235,12 +2235,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - Height (mm) + Hoogte (mm) - + Door - Door + Deur @@ -2265,7 +2265,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Behind - Behind + Achter @@ -2275,27 +2275,27 @@ If Run = 0 then the run is calculated so that the height is the same as the rela External Reference - External Reference + Externe referentie Reload reference - Reload reference + Referentie opnieuw laden Open reference - Open reference + Open referentie Create external reference - Create external reference + Maak externe referentie Frame - Frame + Kader @@ -2320,7 +2320,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela No shape found in this file - No shape found in this file + Geen vorm gevonden in dit bestand @@ -2367,7 +2367,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Window - Create Window + Venster maken @@ -2392,7 +2392,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Window options - Window options + Vensteropties @@ -2490,7 +2490,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Wires - Wires + Draden @@ -2545,7 +2545,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela + default - + default + + standaard @@ -2600,7 +2600,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Axes - Axes + Assen @@ -2613,7 +2613,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Successfully written - Successfully written + Met succes geschreven @@ -2665,7 +2665,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Project - Create Project + Project aanmaken @@ -2680,7 +2680,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Stairs - Create Stairs + Trap maken @@ -2695,17 +2695,17 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create material - Create material + Creëer materiaal Create multi-material - Create multi-material + Creëer multi-materiaal Merge duplicates - Merge duplicates + Duplicaten samenvoegen @@ -2722,7 +2722,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela New layer - New layer + Nieuwe laag @@ -2732,7 +2732,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela depends on the object - depends on the object + afhankelijk van het object @@ -2789,12 +2789,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Total width - Total width + Totale breedte Total height - Total height + Totale hoogte @@ -2829,12 +2829,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Rows - Rows + Rijen Columns - Columns + Kolommen @@ -2874,7 +2874,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Number of holes - Number of holes + Aantal gaten @@ -2959,7 +2959,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Level - Level + Niveau @@ -2974,7 +2974,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela View of - View of + Weergave van @@ -2985,7 +2985,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel - Create Panel + Creëer paneel @@ -3107,7 +3107,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela The profile is not closed - The profile is not closed + Het profiel is niet gesloten @@ -3153,18 +3153,18 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Attach spreadsheet - Attach spreadsheet + Rekenblad bijvoegen Import CSV File - Import CSV File + Importeer CSV bestand Export CSV File - Export CSV File + Exporteren CSV bestand @@ -3196,7 +3196,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Schedule - Schedule + Planning @@ -3232,7 +3232,7 @@ Floor creation aborted. Create Axis - Create Axis + Maak as @@ -3268,7 +3268,7 @@ Floor creation aborted. Successfully imported - Successfully imported + Succesvol geïmporteerd @@ -3311,22 +3311,22 @@ Floor creation aborted. Component - Component + Onderdeel Components of this object - Components of this object + Onderdelen van dit object Base component - Base component + Basiscomponent Additions - Additions + Toevoegingen @@ -3371,12 +3371,12 @@ Floor creation aborted. Add property... - Add property... + Voeg eigenschap toe... Add property set... - Add property set... + Voeg eigenschapset toe... @@ -3386,12 +3386,12 @@ Floor creation aborted. New property - New property + Nieuwe eigenschap New property set - New property set + Nieuwe eigenschapset @@ -3457,7 +3457,7 @@ Floor creation aborted. Rotate X - Rotate X + Rotatie X @@ -3467,7 +3467,7 @@ Floor creation aborted. Rotate Y - Rotate Y + Rotatie Y @@ -3477,7 +3477,7 @@ Floor creation aborted. Rotate Z - Rotate Z + Rotatie Z @@ -3487,7 +3487,7 @@ Floor creation aborted. Resize - Resize + Formaat wijzigen @@ -3565,7 +3565,7 @@ Building creation aborted. Wall - Wall + Muur @@ -3577,7 +3577,7 @@ Building creation aborted. Create Wall - Create Wall + Muur maken @@ -3622,7 +3622,7 @@ Building creation aborted. Merge Wall - Merge Wall + Muren samenvoegen @@ -3638,7 +3638,7 @@ Building creation aborted. Merge Walls - Merge Walls + Muren samenvoegen @@ -3663,12 +3663,12 @@ Building creation aborted. is not closed - is not closed + is niet gesloten is not valid - is not valid + is niet geldig @@ -3693,7 +3693,7 @@ Building creation aborted. Set description - Set description + Beschrijving instellen @@ -3703,17 +3703,17 @@ Building creation aborted. Copy Length - Copy Length + Lengte kopiëren Copy Area - Copy Area + Kopieer gebied Export CSV - Export CSV + Exporteer CSV @@ -3749,7 +3749,7 @@ Building creation aborted. Grouping - Grouping + Groeperen @@ -3780,12 +3780,12 @@ Building creation aborted. Create Component - Create Component + Creëer Component Key - Key + Sleutel @@ -3803,7 +3803,7 @@ Building creation aborted. Multiple Structures - Multiple Structures + Meerdere structuren @@ -3816,7 +3816,7 @@ Building creation aborted. Structural System - Structural System + Structureel systeem @@ -4014,7 +4014,7 @@ Building creation aborted. The height of this object - The height of this object + De hoogte van dit object @@ -4048,7 +4048,7 @@ Building creation aborted. The shape of this object - The shape of this object + De vorm van dit object @@ -4084,7 +4084,7 @@ Building creation aborted. If true, show the level - If true, show the level + Wanneer waar, toon het niveau @@ -4109,7 +4109,7 @@ Building creation aborted. The font size of texts - The font size of texts + De tekengrootte van teksten @@ -4214,12 +4214,12 @@ Building creation aborted. Outside Diameter - Outside Diameter + Buitendiameter Wall thickness - Wall thickness + Wanddikte @@ -4256,7 +4256,7 @@ Building creation aborted. Thickness of the sides - Thickness of the sides + Dikte van de zijkanten @@ -4376,7 +4376,7 @@ Building creation aborted. The type of this object - The type of this object + Het type van dit object @@ -5154,7 +5154,7 @@ Building creation aborted. The linked object - The linked object + Het gekoppelde object @@ -5431,22 +5431,22 @@ Building creation aborted. The values column - The values column + De waardenkolom The units column - The units column + De eenhedenkolom The objects column - The objects column + De objectenkolom The filter column - The filter column + De filterkolom @@ -5487,7 +5487,7 @@ Building creation aborted. The label of each axis - The label of each axis + Het label van elke as @@ -5497,7 +5497,7 @@ Building creation aborted. The length of the axes - The length of the axes + De lengte van de assen @@ -5512,12 +5512,12 @@ Building creation aborted. The numbering style - The numbering style + De nummeringsstijl The type of line to draw this axis - The type of line to draw this axis + Het type lijn om deze as te tekenen @@ -5532,27 +5532,27 @@ Building creation aborted. The color of this axis - The color of this axis + De kleur van deze as The number of the first axis - The number of the first axis + Het nummer van de eerste as The font to use for texts - The font to use for texts + Het lettertype dat wordt gebruikt voor teksten The font size - The font size + De groote van het lettertype If true, show the labels - If true, show the labels + Indien waar, toon de labels @@ -5577,7 +5577,7 @@ Building creation aborted. A material for this object - A material for this object + Een materiaal voor dit object @@ -5743,7 +5743,7 @@ Building creation aborted. The color of this object - The color of this object + De kleur van dit object @@ -5759,13 +5759,13 @@ Building creation aborted. The name of the font - The name of the font + De naam van het lettertype The size of the text font - The size of the text font + De grootte van het lettertype @@ -6022,105 +6022,105 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Hulpmiddelen - - - - + + + + &Draft &Draft - + Creation - Creation + Creatie - + Annotation Aantekening - + Modification - Modification + Wijziging Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6135,7 +6135,7 @@ Building creation aborted. Creates a profile - Creates a profile + Maakt een profiel aan @@ -6156,7 +6156,7 @@ Building creation aborted. Roof - Roof + Dak @@ -6195,7 +6195,7 @@ Building creation aborted. External reference - External reference + Externe verwijzing @@ -6208,7 +6208,7 @@ Building creation aborted. Frame - Frame + Kader @@ -6325,7 +6325,7 @@ Building creation aborted. Multi-Material - Multi-Material + Multi-materiaal @@ -6357,22 +6357,22 @@ Building creation aborted. The number of rows - The number of rows + Aantal rijen The number of columns - The number of columns + Aantal kolommen The sizes for rows - The sizes for rows + De grootte van rijen The sizes of columns - The sizes of columns + De grootte van kolommen @@ -6529,7 +6529,7 @@ Building creation aborted. Schedule - Schedule + Planning @@ -6542,7 +6542,7 @@ Building creation aborted. Level - Level + Niveau @@ -6616,7 +6616,7 @@ Building creation aborted. Wall - Wall + Muur @@ -6629,7 +6629,7 @@ Building creation aborted. Merge Walls - Merge Walls + Muren samenvoegen @@ -6642,7 +6642,7 @@ Building creation aborted. Add component - Add component + Onderdeel toevoegen @@ -6655,7 +6655,7 @@ Building creation aborted. Remove component - Remove component + Verwijder component @@ -6720,7 +6720,7 @@ Building creation aborted. Close holes - Close holes + Sluit gaten @@ -6733,7 +6733,7 @@ Building creation aborted. Check - Check + Controleer @@ -6772,7 +6772,7 @@ Building creation aborted. Component - Component + Onderdeel @@ -6832,23 +6832,23 @@ Building creation aborted. QObject - - + + Arch Boog - - - - + + + + Draft Schets - - - + + + Import-Export Importeren-Exporteren diff --git a/src/Mod/Arch/Resources/translations/Arch_pl.qm b/src/Mod/Arch/Resources/translations/Arch_pl.qm index ab9b05ad8d..e7d9d5acbd 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_pl.qm and b/src/Mod/Arch/Resources/translations/Arch_pl.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_pl.ts b/src/Mod/Arch/Resources/translations/Arch_pl.ts index 176a622b5f..d606a6a593 100644 --- a/src/Mod/Arch/Resources/translations/Arch_pl.ts +++ b/src/Mod/Arch/Resources/translations/Arch_pl.ts @@ -2254,7 +2254,7 @@ Jeśli Rozpiętość = 0, wówczas Rozpiętość jest obliczana tak, aby wysoko Wysokość (mm) - + Door Drzwi @@ -2865,7 +2865,7 @@ Jeśli Rozpiętość = 0, wówczas Rozpiętość jest obliczana tak, aby wysoko Chamfer - Fazka + Sfazowanie @@ -3031,7 +3031,7 @@ Jeśli Rozpiętość = 0, wówczas Rozpiętość jest obliczana tak, aby wysoko Tools - Przybory + Narzędzia @@ -3478,7 +3478,7 @@ Tworzenie piętra zostało przerwane. Rotates the plane along the X axis - Obróć płaszczyznę wokół osi X + Obraca płaszczyznę wokół osi X @@ -3488,7 +3488,7 @@ Tworzenie piętra zostało przerwane. Rotates the plane along the Y axis - Obróć płaszczyznę wokół osi Y + Obraca płaszczyznę wokół osi Y @@ -3498,7 +3498,7 @@ Tworzenie piętra zostało przerwane. Rotates the plane along the Z axis - Obróć płaszczyznę wokół osi Z + Obraca płaszczyznę wokół osi Z @@ -3785,7 +3785,7 @@ Tworzenie budynku zostało przerwane. Mesh to Shape - Siatka do kształtu + Kształt z siatki @@ -5227,7 +5227,7 @@ Tworzenie budynku zostało przerwane. Turns the display of the margin on/off - Przełącza wyświetlanie marginesu, włącz / wyłącz + Włącza / wyłącza wyświetlanie marginesu @@ -6038,92 +6038,92 @@ Tworzenie budynku zostało przerwane. Workbench - + Structure tools Narzędzia konstrukcyjne - + Axis tools Narzędzia osi - + Panel tools Narzędzia panelu - + Material tools Narzędzia materiałowe - + Pipe tools Narzędzia rur - + Rebar tools Narzędzia zbrojenia - + Arch tools Narzędzia architektoniczne - + Draft creation tools Rysunek Roboczy — kreślenie - + Draft annotation tools Rysunek Roboczy — opisy - + Draft modification tools Rysunek Roboczy — narzędzia modyfikujące - + Draft snap Rysunek Roboczy — przyciąganie - - + + &Arch &Architektura - - + + Utilities &Narzędzia - - - - + + + + &Draft &Rysunek - + Creation Tworzenie - + Annotation Adnotacja - + Modification Zmiany @@ -6131,12 +6131,12 @@ Tworzenie budynku zostało przerwane. Arch_RebarTools - + Rebar tools Narzędzia zbrojenia - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Tworzy różne rodzaje prętów zbrojeniowych, w tym pręty w kształcie U, L i strzemiona @@ -6697,7 +6697,7 @@ Tworzenie budynku zostało przerwane. Mesh to Shape - Siatka do kształtu + Kształt z siatki @@ -6848,23 +6848,23 @@ Tworzenie budynku zostało przerwane. QObject - - + + Arch Architektura - - - - + + + + Draft Rysunek roboczy - - - + + + Import-Export Import-Eksport diff --git a/src/Mod/Arch/Resources/translations/Arch_pt-BR.qm b/src/Mod/Arch/Resources/translations/Arch_pt-BR.qm index d70fedfdc3..8dd821ac42 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_pt-BR.qm and b/src/Mod/Arch/Resources/translations/Arch_pt-BR.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_pt-BR.ts b/src/Mod/Arch/Resources/translations/Arch_pt-BR.ts index c65529f53f..4b34c37d87 100644 --- a/src/Mod/Arch/Resources/translations/Arch_pt-BR.ts +++ b/src/Mod/Arch/Resources/translations/Arch_pt-BR.ts @@ -334,7 +334,7 @@ Deixe em branco para usar todos os objetos do documento An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied - An optional semicolon (;) separated list of property:value filters. Prepend ! to a property name to invert the effect of the filter (exclude objects that match the filter). Objects whose property contains the value will be matched. Examples of valid filters (everything is case-insensitive): Name:Wall - Will only consider objects with 'wall' in their name (internal name); !Name:Wall - Will only consider objects which DON'T have 'wall' in their name (internal name); Description:Win - Will only consider objects with 'win' in their description; !Label:Win - Will only consider objects which DO NOT have 'win' in their label; IfcType:Wall - Will only consider objects which Ifc Type is 'Wall'; !Tag:Wall - Will only consider objects which tag is NOT 'Wall'. If you leave this field empty, no filtering is applied + Uma semi-coluna opcional (;) lista separada de propriedades: filtros de valores. Preceda ! a um nome de propriedade para reverter o efeito do filtro (exclui objetos que não correspondem ao filtro). Objetos cuja propriedade contenha o calor não serão correspondidas. Exemplos de filtros válidos (não diferencia maiúsculas de minúsculas): Nome:Parede - Considerará apenas objetos que CONTÉM "parede" em seu nome (nome interno); !Nome:Parede - considerará apenas objetos que NÃO CONTÉM "parede em seu nome (nome interno); Descrição:Ganhar - Considerará apenas objetos que CONTÉM "ganhar" na sua descrição; !Rótulo:Ganhar - Considerará apenas objetos que NÃO CONTÉM "ganhar" no seu rótulo; IfcTipo:Parede - Considerará apenas objetos em que IfcTipo É "Parede"; !Etiqueta:Parede - Considerará apenas objetos em que a tag NÃO É "Parede". Se você deixar este campo vazio, nenhum filtro é aplicado @@ -1727,7 +1727,7 @@ No entanto, alguns aplicativos BIM usarão este fator para escolher com qual uni Beam - raio + Viga @@ -2216,7 +2216,7 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Altura (mm) - + Door Porta @@ -2902,7 +2902,7 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Height of risers - Height of risers + Altura do espelho @@ -2957,18 +2957,18 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per PanelSheet - PanelSheet + Folha de Painel Create Panel - Create Panel + Criar painel Panel options - Panel options + Opções do painel @@ -2978,17 +2978,17 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Create Panel Cut - Create Panel Cut + Criar Corte de Painel Create Panel Sheet - Create Panel Sheet + Criar Folha de Painel Error computing shape of - Error computing shape of + Erro ao calcular a forma de @@ -2998,23 +2998,23 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Edit views positions - Edit views positions + Editar posições das vistas This object has no face - This object has no face + Este objeto não possui faces Curtain Wall - Curtain Wall + Parede de cortina Create Curtain Wall - Create Curtain Wall + Criar parede de cortina @@ -3030,124 +3030,124 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Create Pipe - Create Pipe + Criar tubo Please select exactly 2 or 3 Pipe objects - Please select exactly 2 or 3 Pipe objects + Por favor, selecione exatamente 2 ou 3 tubos Please select only Pipe objects - Please select only Pipe objects + Por favor, selecione apenas objetos de tipo tubo Create Connector - Create Connector + Criar conector Unable to build the base path - Unable to build the base path + Não foi possível construir o caminho base Unable to build the profile - Unable to build the profile + Não foi possível construir o perfil Unable to build the pipe - Unable to build the pipe + Não foi possível construir o tubo The base object is not a Part - The base object is not a Part + O objeto base não é uma peça Too many wires in the base shape - Too many wires in the base shape + A forma base contém arames demais The base wire is closed - The base wire is closed + O arame base é fechado The profile is not a 2D Part - The profile is not a 2D Part + O perfil não é uma peça 2D The profile is not closed - The profile is not closed + O perfil não é fechado Only the 3 first wires will be connected - Only the 3 first wires will be connected + Somente os 3 primeiros arames serão conectados Common vertex not found - Common vertex not found + Não foi possível encontrar um vértice em comum Pipes are already aligned - Pipes are already aligned + Estes tubos já estão alinhados At least 2 pipes must align - At least 2 pipes must align + Pelo menos dois tubos devem estar alinhados removed property 'Result', and added property 'AutoUpdate' - removed property 'Result', and added property 'AutoUpdate' + removida a propriedade 'Resultado', e adicionada a propriedade 'AutoAtualizar' added property 'Schedule' - added property 'Schedule' + propriedade adicionada 'Relatório' Unable to retrieve value from object - Unable to retrieve value from object + Não foi possível recuperar o valor do objeto Remove spreadsheet - Remove spreadsheet + Excluir Planilha Attach spreadsheet - Attach spreadsheet + Anexar planilha Import CSV File - Import CSV File + Importar um arquivo CSV Export CSV File - Export CSV File + Exportar um arquivo CSV Unable to recognize that file type - Unable to recognize that file type + Não é possível reconhecer o tipo do arquivo @@ -3174,7 +3174,7 @@ Se a extensão = 0, ela será calculada de modo que a altura seja a mesma do per Schedule - Schedule + Agendar @@ -3185,37 +3185,29 @@ Floor object is not allowed to accept Site, Building, or Floor objects. Site, Building, and Floor objects will be removed from the selection. You can change that in the preferences. - You can put anything but the following objects: Site, Building, and Floor - in a Floor object. - -Floor object is not allowed to accept Site, Building, or Floor objects. - -Site, Building, and Floor objects will be removed from the selection. - -You can change that in the preferences. + Em um objeto do tipo Pavimento, você pode colocar qualquer objeto, exceto Sítio, Edificação e Pavimento. Objetos destes tipos serão removidos da seleção. Você pode mudar isso nas preferências. There is no valid object in the selection. Floor creation aborted. - There is no valid object in the selection. - -Floor creation aborted. + Não há nenhum objeto válido na seleção. Criação de pavimento abortada. Create Floor - Create Floor + Criar chão Create Axis - Create Axis + Criar eixo Distances (mm) and angles (deg) between axes - Distances (mm) and angles (deg) between axes + Distâncias (mm) e ângulos (graus) entre eixos @@ -3430,47 +3422,47 @@ Floor creation aborted. Section plane placement: - Section plane placement: + Localização deste plano de corte: Rotate X - Rotate X + Rotação X Rotates the plane along the X axis - Rotates the plane along the X axis + Rotacionar o plano ao longo do eixo X Rotate Y - Rotate Y + Rotação Y Rotates the plane along the Y axis - Rotates the plane along the Y axis + Rotacionar o plano ao longo do eixo Y Rotate Z - Rotate Z + Rotação Z Rotates the plane along the Z axis - Rotates the plane along the Z axis + Rotacionar o plano ao longo do eixo Z Resize - Resize + Redimensionar Resizes the plane to fit the objects in the list above - Resizes the plane to fit the objects in the list above + Redimensiona o plano para que os objetos da lista acima caibam @@ -3481,7 +3473,7 @@ Floor creation aborted. Centers the plane on the objects in the list above - Centers the plane on the objects in the list above + Centraliza o plano na lista de objetos acima @@ -3498,27 +3490,21 @@ Building object is not allowed to accept Site and Building objects. Site and Building objects will be removed from the selection. You can change that in the preferences. - You can put anything but Site and Building objects in a Building object. - -Building object is not allowed to accept Site and Building objects. - -Site and Building objects will be removed from the selection. - -You can change that in the preferences. + Em um objeto do tipo Edificação, você pode colocar qualquer objeto, exceto Sítio ou Edificação. Objetos destes tipos serão removidos da seleção. Você pode mudar isso nas preferências. There is no valid object in the selection. Building creation aborted. - There is no valid object in the selection. + Não há nenhum objeto válido na seleção. -Building creation aborted. +Criação de edifício abortada. Create Building - Create Building + Criar o edifício @@ -3528,54 +3514,54 @@ Building creation aborted. Create Space - Create Space + Criar Espaço Set text position - Set text position + Definir a posição do texto Space boundaries - Space boundaries + Limites do espaço Wall - Wall + Parede Walls can only be based on Part or Mesh objects - Walls can only be based on Part or Mesh objects + Paredes só podem basear-se em objetos de malha ou parte (peça) Create Wall - Create Wall + Criar parede First point of wall - First point of wall + Primeiro ponto da parede Wall options - Wall options + Opções da parede Wall Presets... - Wall Presets... + Predefinições de parede... This list shows all the MultiMaterials objects of this document. Create some to define wall types. - This list shows all the MultiMaterials objects of this document. Create some to define wall types. + Esta lista mostra todos os objetos multi-materiais deste documento. Crie um novo para definir tipos de paredes. @@ -3600,33 +3586,33 @@ Building creation aborted. Merge Wall - Merge Wall + Mesclar uma parede The selected wall contains no subwall to merge - The selected wall contains no subwall to merge + A parede selecionada não contém nenhum subparede para mesclar Please select only wall objects - Please select only wall objects + Por favor, selecione paredes apenas Merge Walls - Merge Walls + Mesclar paredes Cannot compute blocks for wall - Cannot compute blocks for wall + Não e possível calcular blocos para esta parede Error: Unable to modify the base object of this wall - Error: Unable to modify the base object of this wall + Erro: Não foi possível modificar o objeto base desta parede @@ -3636,32 +3622,32 @@ Building creation aborted. Invalid cutplane - Invalid cutplane + Plano de corte inválido is not closed - is not closed + não está fechado is not valid - is not valid + não é válido doesn't contain any solid - doesn't contain any solid + não contém nenhum sólido contains a non-closed solid - contains a non-closed solid + contém um sólido aberto contains faces that are not part of any solid - contains faces that are not part of any solid + contém faces que não pertencem a nenhum sólido @@ -3671,7 +3657,7 @@ Building creation aborted. Set description - Set description + Definir descrição @@ -3681,17 +3667,17 @@ Building creation aborted. Copy Length - Copy Length + Copiar comprimento Copy Area - Copy Area + Copiar área Export CSV - Export CSV + Exportar para CSV @@ -3711,69 +3697,69 @@ Building creation aborted. Disabling Brep force flag of object - Disabling Brep force flag of object + Desativando o modo Brep deste objeto Enabling Brep force flag of object - Enabling Brep force flag of object + Ativando o modo Brep deste objeto Add space boundary - Add space boundary + Adicionar um limite de espaço Grouping - Grouping + Agrupando Remove space boundary - Remove space boundary + Remover um limite de espaço Ungrouping - Ungrouping + Desagrupando Split Mesh - Split Mesh + Dividir malha Mesh to Shape - Mesh to Shape + Malha para Forma All good! No problems found - All good! No problems found + Está tudo bem! nenhum problema foi encontrado Create Component - Create Component + Criar Componente Key - Key + Chave The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: - The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: + O objeto não tem o atributo IfcProperties. Cancelar criação de planilha para o objeto: Create IFC properties spreadsheet - Create IFC properties spreadsheet + Criar planilha para propriedades IFC @@ -3781,12 +3767,12 @@ Building creation aborted. Multiple Structures - Multiple Structures + Múltiplas Estruturas Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path - Create multiple Arch Structures from a selected base, using each selected edge as an extrusion path + Crie múltiplos estruturas a partir de uma base selecionada, usando cada aresta selecionada como um caminho de extrusão @@ -3794,7 +3780,7 @@ Building creation aborted. Structural System - Structural System + Criar sistema estrutural @@ -4072,132 +4058,132 @@ Building creation aborted. If true, display offset will affect the origin mark too - If true, display offset will affect the origin mark too + Se ativado, o deslocamento visual também afetará a marca de origem If true, the object's label is displayed - If true, the object's label is displayed + Se ativado, o rótulo do objeto é exibido The font to be used for texts - The font to be used for texts + A fonte a ser usada para textos The font size of texts - The font size of texts + O tamanho da fonte dos textos The individual face colors - The individual face colors + As cores individuais das faces If true, when activated, the working plane will automatically adapt to this level - If true, when activated, the working plane will automatically adapt to this level + Se ativado, o plano de trabalho será automaticamente adaptado a este nível quando este for ativado If set to True, the working plane will be kept on Auto mode - If set to True, the working plane will be kept on Auto mode + Se ativado, o plano de trabalho será mantido em modo automático Camera position data associated with this object - Camera position data associated with this object + Dados de posição de câmera associados a esse objeto If set, the view stored in this object will be restored on double-click - If set, the view stored in this object will be restored on double-click + Se ativado, a vista armazenada neste objeto será restaurada quando duplo-clicado If True, double-clicking this object in the tree activates it - If True, double-clicking this object in the tree activates it + Se ativado, um duplo clique neste objeto na árvore tornará ele ativo If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other files in lightweight mode. - If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other files in lightweight mode. + Se ativado, a representação inventor deste objeto será salva no arquivo FreeCAD, permitindo referenciá-lo em outro arquivo em modo leve. A slot to save the inventor representation of this object, if enabled - A slot to save the inventor representation of this object, if enabled + Um slot para salvar a representação do inventor deste objeto, se ativado If true, show the objects contained in this Building Part will adopt these line, color and transparency settings - If true, show the objects contained in this Building Part will adopt these line, color and transparency settings + Se ativado, os objetos contidos neste BuildingPart adotarão suas configurações de linha, cor e transparência The line width of child objects - The line width of child objects + A largura da linha dos objetos filhos The line color of child objects - The line color of child objects + A cor da linha dos objetos filhos The shape color of child objects - The shape color of child objects + A cor da forma dos objetos filhos The transparency of child objects - The transparency of child objects + A transparência dos objetos filhos Cut the view above this level - Cut the view above this level + Cortar a vista acima deste nível The distance between the level plane and the cut line - The distance between the level plane and the cut line + A distância entre o nível do plano e a linha de corte Turn cutting on when activating this level - Turn cutting on when activating this level + Ativar o corte ao ativar este nível The capture box for newly created objects expressed as [XMin,YMin,ZMin,XMax,YMax,ZMax] - The capture box for newly created objects expressed as [XMin,YMin,ZMin,XMax,YMax,ZMax] + A caixa de captura para objetos novos, expressa como [XMin,YMin,ZMin,XMax,YMax,ZMax] Turns auto group box on/off - Turns auto group box on/off + Ativa/desativa a caixa de agrupamento automático Automatically set size from contents - Automatically set size from contents + Ajusta o tamanho automaticamente a partir do conteúdo A margin to use when autosize is turned on - A margin to use when autosize is turned on + Uma margem usada quando o tamanho automático está ligado Outside Diameter - Outside Diameter + Diâmetro externo Wall thickness - Wall thickness + Espessura de parede @@ -4207,7 +4193,7 @@ Building creation aborted. Width of the beam - Width of the beam + Largura da viga @@ -4217,123 +4203,123 @@ Building creation aborted. Height of the beam - Height of the beam + Altura da viga Thickness of the web - Thickness of the web + Espessura do entrelaçamento Thickness of the flanges - Thickness of the flanges + Espessura das flanges Thickness of the sides - Thickness of the sides + Espessura dos lados Thickness of the webs - Thickness of the webs + Espessura dos entrelaçamentos Thickness of the flange - Thickness of the flange + Espessura da flange Thickness of the legs - Thickness of the legs + Espessura das pernas The base terrain of this site - The base terrain of this site + O terreno de base deste sítio The street and house number of this site, with postal box or apartment number if needed - The street and house number of this site, with postal box or apartment number if needed + A rua e número de casa deste site, com número de apartamento ou caixa postal se necessário The postal or zip code of this site - The postal or zip code of this site + O código postal deste sítio The city of this site - The city of this site + A cidade deste terreno The region, province or county of this site - The region, province or county of this site + A região, província ou distrito deste site The country of this site - The country of this site + O país deste terreno The latitude of this site - The latitude of this site + A latitude deste terreno Angle between the true North and the North direction in this document - Angle between the true North and the North direction in this document + Ângulo entre o norte verdadeiro e a direção do norte neste documento The elevation of level 0 of this site - The elevation of level 0 of this site + A elevação do nível 0 deste terreno A URL that shows this site in a mapping website - A URL that shows this site in a mapping website + Uma url que mostra este site em um site de mapeamento Other shapes that are appended to this object - Other shapes that are appended to this object + Outras formas que são acrescentadas a este objeto Other shapes that are subtracted from this object - Other shapes that are subtracted from this object + Outras formas que são subtraídas deste objeto The area of the projection of this object onto the XY plane - The area of the projection of this object onto the XY plane + A área da projeção deste objeto no plano XY The perimeter length of the projected area - The perimeter length of the projected area + O comprimento do perímetro da área projetada The volume of earth to be added to this terrain - The volume of earth to be added to this terrain + O volume de terra a ser adicionado a este terreno The volume of earth to be removed from this terrain - The volume of earth to be removed from this terrain + O volume de terra a ser retirado deste terreno @@ -4589,147 +4575,147 @@ Building creation aborted. The area of this window - The area of this window + A área desta janela The width of louvre elements - The width of louvre elements + A largura dos elementos da veneziana The space between louvre elements - The space between louvre elements + O espaço entre os elementos da veneziana Opens the subcomponents that have a hinge defined - Opens the subcomponents that have a hinge defined + Abre os subcomponentes que têm uma dobradiça definida The number of the wire that defines the hole. If 0, the value will be calculated automatically - The number of the wire that defines the hole. If 0, the value will be calculated automatically + O número do arame que define o furo. Um valor de 0 significa automático Shows plan opening symbols if available - Shows plan opening symbols if available + Mostra símbolos de abertura em planta se disponível Show elevation opening symbols if available - Show elevation opening symbols if available + Mostra símbolos de abertura em elevação se disponível The number of the wire that defines the hole. A value of 0 means automatic - The number of the wire that defines the hole. A value of 0 means automatic + O número do arame que define o furo. Um valor de 0 significa automática The axes this system is made of - The axes this system is made of + Os eixos que compõem este sistema The placement of this axis system - The placement of this axis system + Localização deste sistema de eixos The angle of the truss - The angle of the truss + O ângulo desta treliça The slant type of this truss - The slant type of this truss + O tipo de água desta treliça The normal direction of this truss - The normal direction of this truss + A direção normal desta treliça The height of the truss at the start position - The height of the truss at the start position + A altura da treliça na posição inicial The height of the truss at the end position - The height of the truss at the end position + A altura da treliça na posição final An optional start offset for the top strut - An optional start offset for the top strut + Uma distância opcional para o início do membro superior An optional end offset for the top strut - An optional end offset for the top strut + Uma distância opcional para o final do membro superior The height of the main top and bottom elements of the truss - The height of the main top and bottom elements of the truss + A altura dos membros superior e inferior da treliça The width of the main top and bottom elements of the truss - The width of the main top and bottom elements of the truss + A largura dos membros superior e inferior da treliça The type of the middle element of the truss - The type of the middle element of the truss + O tipo dos elementos intermediários da treliça The direction of the rods - The direction of the rods + A direção dos elementos intermediários The diameter or side of the rods - The diameter or side of the rods + O diâmetro ou tamanho lateral dos elementos intermediários The number of rod sections - The number of rod sections + O número de seções de elementos intermediários If the truss has a rod at its endpoint or not - If the truss has a rod at its endpoint or not + Se a treliça tem um elemento intermediário na posição final ou não How to draw the rods - How to draw the rods + Tipo dos elementos intermediários The length of these stairs, if no baseline is defined - The length of these stairs, if no baseline is defined + O comprimento desta escada, se não tiver nenhuma linha de base The width of these stairs - The width of these stairs + A largura desta escada The total height of these stairs - The total height of these stairs + A altura total desta escada The alignment of these stairs on their baseline, if applicable - The alignment of these stairs on their baseline, if applicable + O alinhamento desta escada em sua linha de base, se tiver @@ -6000,92 +5986,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Ferramentas de criação de esboço - + Draft annotation tools Ferramentas de anotação de esboço - + Draft modification tools Ferramentas de modificação de esboço - + Draft snap Referências a objetos de esboço - - + + &Arch &Arch - - + + Utilities Utilitários - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Anotação - + Modification Modification @@ -6093,12 +6079,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6459,7 +6445,7 @@ Building creation aborted. Curtain Wall - Curtain Wall + Parede de cortina @@ -6507,7 +6493,7 @@ Building creation aborted. Schedule - Schedule + Agendar @@ -6594,7 +6580,7 @@ Building creation aborted. Wall - Wall + Parede @@ -6607,7 +6593,7 @@ Building creation aborted. Merge Walls - Merge Walls + Mesclar paredes @@ -6646,7 +6632,7 @@ Building creation aborted. Split Mesh - Split Mesh + Dividir malha @@ -6659,7 +6645,7 @@ Building creation aborted. Mesh to Shape - Mesh to Shape + Malha para Forma @@ -6810,23 +6796,23 @@ Building creation aborted. QObject - - + + Arch Arquitetura - - - - + + + + Draft Projeto - - - + + + Import-Export Importação e exportação diff --git a/src/Mod/Arch/Resources/translations/Arch_pt-PT.qm b/src/Mod/Arch/Resources/translations/Arch_pt-PT.qm index a45e45936a..7d20c092fc 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_pt-PT.qm and b/src/Mod/Arch/Resources/translations/Arch_pt-PT.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_pt-PT.ts b/src/Mod/Arch/Resources/translations/Arch_pt-PT.ts index 9a9e823084..236b647c80 100644 --- a/src/Mod/Arch/Resources/translations/Arch_pt-PT.ts +++ b/src/Mod/Arch/Resources/translations/Arch_pt-PT.ts @@ -1876,7 +1876,7 @@ No entanto, alguns aplicativos BIM usarão este fator para escolher com qual uni Facemaker returned an error - Facemaker returned an error + O Facemaker retornou um erro @@ -1949,25 +1949,25 @@ No entanto, alguns aplicativos BIM usarão este fator para escolher com qual uni The chosen object is not a Structure - The chosen object is not a Structure + O objeto escolhido não é uma Estrutura The chosen object has no structural nodes - The chosen object has no structural nodes + O objeto escolhido não tem nenhum nó estrutural One of these objects has more than 2 nodes - One of these objects has more than 2 nodes + Um desses objetos tem mais de 2 nós Unable to find a suitable intersection point - Unable to find a suitable intersection point + Não foi possível encontrar um ponto de intersecção adequado @@ -2087,7 +2087,7 @@ No entanto, alguns aplicativos BIM usarão este fator para escolher com qual uni Clone level up - Clone level up + Clonar nível acima @@ -2128,22 +2128,22 @@ Site is not allowed to accept any other object besides Building. Other objects will be removed from the selection. Note: You can change that in the preferences. - Please either select only Building objects or nothing at all! + Por favor selecione apenas objetos de Construção ou nada! -Site is not allowed to accept any other object besides Building. +O site não pode aceitar qualquer outro objeto além de Construção. -Other objects will be removed from the selection. +Outros objetos serão removidos da seleção. -Note: You can change that in the preferences. +Nota: Você pode alterar isso nas preferências. There is no valid object in the selection. Site creation aborted. - There is no valid object in the selection. + Não há nenhum objeto válido na seleção. -Site creation aborted. +Criação de site abortada. @@ -2188,17 +2188,17 @@ Site creation aborted. If Angle = 0 and Run = 0 then the profile is identical to the relative profile. If Angle = 0 then the angle is calculated so that the height is the same as the relative profile. If Run = 0 then the run is calculated so that the height is the same as the relative profile. - Parameters of the roof profiles : -* Angle : slope in degrees relative to the horizontal. -* Run : horizontal distance between the wall and the ridge. -* Thickness : thickness of the roof. -* Overhang : horizontal distance between the eave and the wall. -* Height : height of the ridge above the base (calculated automatically). -* IdRel : Id of the relative profile used for automatic calculations. + Parâmetros dos perfis do telhado: +* Ângulo: inclinação em graus em relação ao horizontal. +* Execute: distância horizontal entre a parede e a aresta. +* Espessura: espessura do telhado. +* Substituição: distância horizontal entre a cova e a parede. +* Altura: altura da aresta acima da base (calculada automaticamente). +* IdRel: ID do perfil relativo usado para cálculos automáticos. --- -If Angle = 0 and Run = 0 then the profile is identical to the relative profile. -If Angle = 0 then the angle is calculated so that the height is the same as the relative profile. -If Run = 0 then the run is calculated so that the height is the same as the relative profile. +Se Ângulo = 0 e Executar = 0, então o perfil é idêntico ao perfil relativo. +Se o ângulo = 0, então o ângulo é calculado de forma que a altura seja igual ao perfil relativo. +Se executar = 0, então a execução é calculada de modo que a altura seja a mesma do perfil relativo. @@ -2218,7 +2218,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela IdRel - IdRel + IdRel @@ -2236,7 +2236,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Altura (mm) - + Door Porta @@ -2263,7 +2263,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Behind - Behind + Atrás @@ -2293,12 +2293,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Frame - Frame + Moldura Create Frame - Create Frame + Criar moldura @@ -2308,52 +2308,52 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Shapes elevation - Shapes elevation + Elevação das formas Choose which field provides shapes elevations: - Choose which field provides shapes elevations: + Escolha qual campo fornece elevações de formas: No shape found in this file - No shape found in this file + Nenhuma forma encontrada neste arquivo Shapefile module not found - Shapefile module not found + Módulo Shapefile não encontrado The shapefile python library was not found on your system. Would you like to download it now from <a href="https://github.com/GeospatialPython/pyshp">https://github.com/GeospatialPython/pyshp</a>? It will be placed in your macros folder. - The shapefile python library was not found on your system. Would you like to download it now from <a href="https://github.com/GeospatialPython/pyshp">https://github.com/GeospatialPython/pyshp</a>? It will be placed in your macros folder. + A biblioteca python do shapefile não foi encontrada no seu sistema. Gostaria de baixá-la agora de <a href="https://github.com/GeospatialPython/pyshp">https://github. om/GeospatialPython/pyshp</a>? Será colocado na sua pasta de macros. Error: Unable to download from: - Error: Unable to download from: + Erro: Não foi possível baixar de: Could not download shapefile module. Aborting. - Could not download shapefile module. Aborting. + Não foi possível baixar o módulo shapefile. Abortando. Shapefile module not downloaded. Aborting. - Shapefile module not downloaded. Aborting. + Módulo Shapefile não baixado. Abortando. Shapefile module not found. Aborting. - Shapefile module not found. Aborting. + Módulo Shapefile não encontrado. Cancelando. The shapefile library can be downloaded from the following URL and installed in your macros folder: - The shapefile library can be downloaded from the following URL and installed in your macros folder: + A biblioteca de shapefile pode ser baixada do seguinte URL e instalada na sua pasta de macros: @@ -2365,74 +2365,74 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Window - Create Window + Criar Janela Choose a face on an existing object or select a preset - Choose a face on an existing object or select a preset + Escolha uma face em um objeto existente ou selecione uma predefinição Window not based on sketch. Window not aligned or resized. - Window not based on sketch. Window not aligned or resized. + Janela não baseada no esboço. Janela não alinhada ou redimensionada. No Width and/or Height constraint in window sketch. Window not resized. - No Width and/or Height constraint in window sketch. Window not resized. + Nenhuma restrição de largura e/ou altura no esboço da janela. Janela não redimensionada. No window found. Cannot continue. - No window found. Cannot continue. + Nenhuma janela encontrada. Não é possível continuar. Window options - Window options + Opções de janela Auto include in host object - Auto include in host object + Incluir automaticamente no objeto de host Sill height - Sill height + Altura do peitoril This window has no defined opening - This window has no defined opening + Essa janela não tem abertura definida Get selected edge - Get selected edge + Usar aresta selecionada Unable to create component - Unable to create component + Não é possível criar componente Window elements - Window elements + Elementos da janela Hole wire - Hole wire + Fio de buraco The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire - The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire + O número do traço que define um furo no objeto. Um valor de zero selecionará automaticamente o traço maior @@ -2477,12 +2477,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create/update component - Create/update component + Criar/atualizar componente Base 2D object - Base 2D object + Objeto base 2D @@ -2499,7 +2499,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create new component - Create new component + Criar novo componente @@ -2537,34 +2537,34 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Opening mode - Opening mode + Modo de abertura + default - + default + + padrão If this is checked, the default Frame value of this window will be added to the value entered here - If this is checked, the default Frame value of this window will be added to the value entered here + Se isto estiver marcado, o valor padrão da moldura desta janela será adicionado ao valor inserido aqui If this is checked, the default Offset value of this window will be added to the value entered here - If this is checked, the default Offset value of this window will be added to the value entered here + Se isto estiver marcado, o valor de deslocamento padrão desta janela será adicionado ao valor inserido aqui Press to retrieve the selected edge - Press to retrieve the selected edge + Pressione para recuperar a aresta selecionada Invert opening direction - Invert opening direction + Inverter direção de abertura @@ -2787,12 +2787,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Total width - Total width + Largura total Total height - Total height + Altura total @@ -2807,12 +2807,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Add col - Add col + Adicionar coluna Del col - Del col + Remover coluna @@ -2827,22 +2827,22 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Rows - Rows + Linhas Columns - Columns + Colunas Precast elements - Precast elements + Elementos pré-moldados Slab type - Slab type + Tipo de laje @@ -2852,62 +2852,62 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Dent length - Dent length + Comprimento do dente Dent width - Dent width + Largura do dente Dent height - Dent height + Altura do dente Slab base - Slab base + Base da Laje Number of holes - Number of holes + Número de furos Major diameter of holes - Major diameter of holes + Diâmetro maior dos furos Minor diameter of holes - Minor diameter of holes + Diâmetro menor dos furos Spacing between holes - Spacing between holes + Espaçamento entre os furos Number of grooves - Number of grooves + Número de sulcos Depth of grooves - Depth of grooves + Profundidade dos sulcos Height of grooves - Height of grooves + Altura dos sulcos Spacing between grooves - Spacing between grooves + Espaçamento entre os sulcos @@ -2917,7 +2917,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Length of down floor - Length of down floor + Comprimento do patamar inferior @@ -2927,27 +2927,27 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Depth of treads - Depth of treads + Profundidade dos degraus Precast options - Precast options + Opções pré-moldadas Dents list - Dents list + Lista de dentes Add dent - Add dent + Adicionar dente Remove dent - Remove dent + Remover dente @@ -2957,7 +2957,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Level - Level + Nível @@ -2972,7 +2972,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela View of - View of + Vista de @@ -2983,7 +2983,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel - Create Panel + Criar Painel @@ -3167,7 +3167,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Unable to recognize that file type - Unable to recognize that file type + Não é possível reconhecer o tipo de arquivo @@ -3194,7 +3194,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Schedule - Schedule + Agendamento @@ -3205,37 +3205,37 @@ Floor object is not allowed to accept Site, Building, or Floor objects. Site, Building, and Floor objects will be removed from the selection. You can change that in the preferences. - You can put anything but the following objects: Site, Building, and Floor - in a Floor object. + Pode colocar qualquer coisa menos os seguintes objetos: Site, Edifício e Piso - em um objeto do piso. -Floor object is not allowed to accept Site, Building, or Floor objects. +O objeto do piso não tem permissão para aceitar objetos de Site, Construção ou Piso. -Site, Building, and Floor objects will be removed from the selection. +Site, Construir e Objetos de piso serão removidos da seleção. -You can change that in the preferences. +Pode alterar isso nas preferências. There is no valid object in the selection. Floor creation aborted. - There is no valid object in the selection. + Não há nenhum objeto válido na seleção. -Floor creation aborted. +Criação de piso abortada. Create Floor - Create Floor + Criar piso Create Axis - Create Axis + Criar Eixo Distances (mm) and angles (deg) between axes - Distances (mm) and angles (deg) between axes + Distâncias (mm) e ângulos (graus) entre eixos @@ -6020,92 +6020,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Utilitários - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Anotação - + Modification Modification @@ -6113,12 +6113,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6206,7 +6206,7 @@ Building creation aborted. Frame - Frame + Moldura @@ -6527,7 +6527,7 @@ Building creation aborted. Schedule - Schedule + Agendamento @@ -6540,7 +6540,7 @@ Building creation aborted. Level - Level + Nível @@ -6830,23 +6830,23 @@ Building creation aborted. QObject - - + + Arch Arquitetura - - - - + + + + Draft Calado do Navio - - - + + + Import-Export Importar/Exportar diff --git a/src/Mod/Arch/Resources/translations/Arch_ro.ts b/src/Mod/Arch/Resources/translations/Arch_ro.ts index 7b4fd6036d..092622fca9 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ro.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ro.ts @@ -2243,7 +2243,7 @@ Dacă rulează = 0, atunci rularea este calculată astfel încât înălțimea s Înălţime (mm) - + Door Ușă @@ -6027,92 +6027,92 @@ Crearea de construcții a fost întreruptă. Workbench - + Structure tools Unelte de structură - + Axis tools Unelte axă - + Panel tools Instrumente panou - + Material tools Instrumente materiale - + Pipe tools Unelte țeavă - + Rebar tools Instrumente de retrogradare - + Arch tools Unelte Arch - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arc - - + + Utilities Utilități - - - - + + + + &Draft &Schiță - + Creation Creare - + Annotation Notatie - + Modification Modificare @@ -6120,12 +6120,12 @@ Crearea de construcții a fost întreruptă. Arch_RebarTools - + Rebar tools Instrumente de retrogradare - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Crează diferite tipuri de bare, inclusiv versiuni U, în formă de L și stirrup @@ -6837,23 +6837,23 @@ Crearea de construcții a fost întreruptă. QObject - - + + Arch Arhi - - - - + + + + Draft Pescaj - - - + + + Import-Export Import/Export diff --git a/src/Mod/Arch/Resources/translations/Arch_ru.ts b/src/Mod/Arch/Resources/translations/Arch_ru.ts index e9452266a9..d2d96c08b1 100644 --- a/src/Mod/Arch/Resources/translations/Arch_ru.ts +++ b/src/Mod/Arch/Resources/translations/Arch_ru.ts @@ -2222,7 +2222,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Высота (мм) - + Door Дверь @@ -6006,92 +6006,92 @@ Building creation aborted. Workbench - + Structure tools Инструменты конструкции - + Axis tools Инстументы осей - + Panel tools Инструменты панели - + Material tools Инструменты материала - + Pipe tools Инструменты трубы - + Rebar tools Инструменты для арматуры - + Arch tools Архитектурные инструменты - + Draft creation tools Инструменты создания чертежа - + Draft annotation tools Инструменты заметок для эскиза - + Draft modification tools Инструменты модификации черновика - + Draft snap Привязка чертежа - - + + &Arch &Архитектурный - - + + Utilities Вспомогательные - - - - + + + + &Draft &Черчение - + Creation Создание - + Annotation Заметка - + Modification Модификация @@ -6099,12 +6099,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Инструменты для арматуры - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Создавайте различные типы арматуры, в том числе U-образные, L-образные и хомуты @@ -6816,23 +6816,23 @@ Building creation aborted. QObject - - + + Arch Архитектурный - - - - + + + + Draft Осадка - - - + + + Import-Export Импорт/экспорт diff --git a/src/Mod/Arch/Resources/translations/Arch_sl.qm b/src/Mod/Arch/Resources/translations/Arch_sl.qm index 122a6df683..7efe776c15 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_sl.qm and b/src/Mod/Arch/Resources/translations/Arch_sl.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_sl.ts b/src/Mod/Arch/Resources/translations/Arch_sl.ts index f1f781d2ef..2cb842ecff 100644 --- a/src/Mod/Arch/Resources/translations/Arch_sl.ts +++ b/src/Mod/Arch/Resources/translations/Arch_sl.ts @@ -193,7 +193,7 @@ Schedule definition - Določilo sporeda + Določilo popisa @@ -269,7 +269,7 @@ Pustite prazno, če želite uporabiti vse predmete v dokumentu If this is enabled, additional lines will be filled with each object considered. If not, only the totals. - If this is enabled, additional lines will be filled with each object considered. If not, only the totals. + Če je to omogočeno, bodo dodatne vrstice popolnjene z vsakim obravnavanim predmetom. Sicer pa le seštevki. @@ -279,7 +279,7 @@ Pustite prazno, če želite uporabiti vse predmete v dokumentu If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. - If this is enabled, the schedule and the associated spreadsheet are updated whenever the document is recomputed. + Če je to omogočeno, se popis in povezana preglednica posodobita vsakič, ko se dokument preračuna. @@ -1114,7 +1114,7 @@ odprl v zunanjem brskalniku Shows verbose debug messages during import and export of IFC files in the Report view panel - Prikaže v plošči poročevalnega pogleda podrobni izpis sporočila + Prikaže v poročilem podoknu podrobni izpis sporočila o razhroščevanju med uvozom in izvozom datotek IFC @@ -2243,7 +2243,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Višina (mm) - + Door Vrata @@ -2924,7 +2924,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Length of down floor - Length of down floor + Dolžina spodnjega nadstropja @@ -2974,7 +2974,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Panel - Panel + Plošča @@ -2990,12 +2990,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel - Ustvari panel + Ustvari ploščo Panel options - Panel options + Možnosti plošče @@ -3005,12 +3005,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel Cut - Ustvari razrez panela + Ustvari ploščno kosovnico Create Panel Sheet - Ustvari kosovnico panela + Ustvari polo plošč @@ -3051,7 +3051,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Connector - Connector + Spojnik @@ -3138,12 +3138,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela removed property 'Result', and added property 'AutoUpdate' - removed property 'Result', and added property 'AutoUpdate' + odstranjena lastnost "Izid" in dodana lastnost "Samoposodobitev" added property 'Schedule' - added property 'Schedule' + dodana lastnost "Popis" @@ -3153,7 +3153,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Remove spreadsheet - Remove spreadsheet + Odstrani preglednico @@ -3201,7 +3201,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Schedule - Razpored + Popis @@ -5087,7 +5087,7 @@ Ustvarjanj stavbe prekinjeno. The length of the down floor of this element - The length of the down floor of this element + Dolžina spodnjega nadstropja te prvine @@ -5459,12 +5459,12 @@ Ustvarjanj stavbe prekinjeno. If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed - If True, the schedule and the associated spreadsheet are updated whenever the document is recomputed + Če drži, se popis in povezana preglednica posodobita vsakič, ko se dokument preračuna The Arch Schedule that uses this spreadsheet - The Arch Schedule that uses this spreadsheet + Arh-popis, ki uporablja to preglednico @@ -5575,210 +5575,210 @@ Ustvarjanj stavbe prekinjeno. An optional standard (OmniClass, etc...) code for this component - An optional standard (OmniClass, etc...) code for this component + Izbirna standardne kode (OmniClass, ...) te sestavine A material for this object - A material for this object + Snov tega predmeta Specifies if moving this object moves its base instead - Specifies if moving this object moves its base instead + Določa, če se s premikanjem tega predmeta v resnici premakne njegova podloga Specifies if this object must move together when its host is moved - Specifies if this object must move together when its host is moved + Določa, ali naj se predmet premakne skupaj z gostiteljem The area of all vertical faces of this object - The area of all vertical faces of this object + Površina vseh navpičnih ploskev tega predmeta The perimeter length of the horizontal area - The perimeter length of the horizontal area + Obseg vodoravnega območja An optional higher-resolution mesh or shape for this object - An optional higher-resolution mesh or shape for this object + Možnost višje ločljivosti ploskovja ali oblike tega predmeta An optional axis or axis system on which this object should be duplicated - An optional axis or axis system on which this object should be duplicated + Možnost izbire osi ali sestava osi, po katerih bo ta predmet namnožen Use the material color as this object's shape color, if available - Use the material color as this object's shape color, if available + Če je na voljo, uporabi barvo snovi tega predmeta za barvo oblike The diameter of the bar - The diameter of the bar + Premer palice The distance between the border of the beam and the first bar (concrete cover). - The distance between the border of the beam and the first bar (concrete cover). + Razdalja med robom nosilca in prvo palico (zaščitna betonska plast). The distance between the border of the beam and the last bar (concrete cover). - The distance between the border of the beam and the last bar (concrete cover). + Razdalja med robom nosilca in zadnjo palico (zaščitna betonska plast). The amount of bars - The amount of bars + Število palic The spacing between the bars - The spacing between the bars + Razmak med palicami The total distance to span the rebars over. Keep 0 to automatically use the host shape size. - The total distance to span the rebars over. Keep 0 to automatically use the host shape size. + Celotna dolžina razpona armaturnih palic. Pustite 0 za samodejno upoštevanje dolžine gostitelja. The direction to use to spread the bars. Keep (0,0,0) for automatic direction. - The direction to use to spread the bars. Keep (0,0,0) for automatic direction. + Smer razporejanja palic. Pusti (0,0,0) za samodejno smer. The fillet to apply to the angle of the base profile. This value is multiplied by the bar diameter. - The fillet to apply to the angle of the base profile. This value is multiplied by the bar diameter. + Zaokorožitev na pregibu, ki bo uporabljena na izhodiščnem prerezu. Vrednost se pomnoži s premerom palice. List of placement of all the bars - List of placement of all the bars + Seznam postavitev vseh palic The structure object that hosts this rebar - The structure object that hosts this rebar + Nosilni predmet, ki vsebuje to armaturo The custom spacing of rebar - The custom spacing of rebar + Ročna nastavitev razmika betonskega jekla Length of a single rebar - Length of a single rebar + Dolžina posamezne palice Total length of all rebars - Total length of all rebars + Skupna dolžina betonskih jekel The rebar mark - The rebar mark + Oznaka armaturne palice Shape of rebar - Shape of rebar + Oblika armature The objects that must be considered by this section plane. Empty means the whole document. - The objects that must be considered by this section plane. Empty means the whole document. + Predmeti, ki morajo biti v tej prerezni ravnini zajeti. Prazno pomeni celoten dokument. If false, non-solids will be cut too, with possible wrong results. - If false, non-solids will be cut too, with possible wrong results. + Če je napak, bodo prerezani tudi netelesni predmeti z možnostjo napačnih izidov. If True, resulting views will be clipped to the section plane area. - If True, resulting views will be clipped to the section plane area. + Če drži, bodo dobljeni pogledi zamejeni s površino prerezne ravnine. If true, the color of the objects material will be used to fill cut areas. - If true, the color of the objects material will be used to fill cut areas. + Če drži, bo za zapolnitev prerezanih ploskev uporabljena barva predmetove snovi. Geometry further than this value will be cut off. Keep zero for unlimited. - Geometry further than this value will be cut off. Keep zero for unlimited. + Geometrija izven te vrednosti bo porezana. Za neomejenost pustite vrednost nič. The display length of this section plane - The display length of this section plane + Dolžina prikaza te prerezne ravnine The display height of this section plane - The display height of this section plane + Višina prikaza te prerezne ravnine The size of the arrows of this section plane - The size of the arrows of this section plane + Velikost puščic te prerezne ravnine The transparency of this object - The transparency of this object + Prozornost tega predmeta Show the cut in the 3D view - Show the cut in the 3D view + Prikaži prerez v 3D-pogledu The color of this object - The color of this object + Barva tega predmeta The distance between the cut plane and the actual view cut (keep this a very small value but not zero) - The distance between the cut plane and the actual view cut (keep this a very small value but not zero) + Razdalja med rezalno ravnino in ravnino vidnega polja (razdalja naj bo majhna, vendar ne nič) Show the label in the 3D view - Show the label in the 3D view + Prikaži oznako v 3D-pogledu The name of the font - The name of the font + Naziv pisave The size of the text font - The size of the text font + Velikost pisave besedila The objects that make the boundaries of this space object - The objects that make the boundaries of this space object + Predmeti, ki zamejujejo ta prostor The computed floor area of this space - The computed floor area of this space + Izračunana talna površinatega prostora @@ -5838,132 +5838,132 @@ Ustvarjanj stavbe prekinjeno. Specifies if this space is internal or external - Specifies if this space is internal or external + Določa, ali je prostor notranji ali zunanji The text to show. Use $area, $label, $tag, $floor, $walls, $ceiling to insert the respective data - The text to show. Use $area, $label, $tag, $floor, $walls, $ceiling to insert the respective data + Besedilo za prikaz. Za vstavitev ustreznih podatkov uporabite $area, $label, $tag, $floor, $walls, $ceiling The color of the area text - The color of the area text + Barva besedila površine The size of the first line of text - The size of the first line of text + Velikost prve vrstice besedila The space between the lines of text - The space between the lines of text + Razmik med vrsticami besedila The position of the text. Leave (0,0,0) for automatic position - The position of the text. Leave (0,0,0) for automatic position + Položaj besedila. Pustite (0,0,0) za samodejni položaj The justification of the text - The justification of the text + Poravnava besedila The number of decimals to use for calculated texts - The number of decimals to use for calculated texts + Število decimalk, ki naj se jih uporabi za besedila izračunov Show the unit suffix - Show the unit suffix + Prikaži pripono enote The length of this wall. Not used if this wall is based on an underlying object - The length of this wall. Not used if this wall is based on an underlying object + Dolžina zidu. Ni upoštevana v primeru, ko je zid osnovan na podloženem predmetu The width of this wall. Not used if this wall is based on a face - The width of this wall. Not used if this wall is based on a face + Širina tega zidu. Ni upoštevana v primeru, ko je zid na osnovi ploskve This overrides Width attribute to set width of each segment of wall. Ignored if Base object provides Widths information, with getWidths() method. (The 1st value override 'Width' attribute for 1st segment of wall; if a value is zero, 1st value of 'OverrideWidth' will be followed) - This overrides Width attribute to set width of each segment of wall. Ignored if Base object provides Widths information, with getWidths() method. (The 1st value override 'Width' attribute for 1st segment of wall; if a value is zero, 1st value of 'OverrideWidth' will be followed) + To povozi značilko širine z nastavitvijo širine vsakega posameznega odseka stene. Prezre se, če so podatki pridobljeni že iz izhodiščnega predmeta s postopkom getWidths(). (1. vrednost povozi značilko "Širina" prvega odseka stene; če je vrednost enaka nič, sledi prva naslednja vednost iz "OverrideWidth") This overrides Align attribute to set Align of each segment of wall. Ignored if Base object provides Aligns information, with getAligns() method. (The 1st value override 'Align' attribute for 1st segment of wall; if a value is not 'Left, Right, Center', 1st value of 'OverrideAlign' will be followed) - This overrides Align attribute to set Align of each segment of wall. Ignored if Base object provides Aligns information, with getAligns() method. (The 1st value override 'Align' attribute for 1st segment of wall; if a value is not 'Left, Right, Center', 1st value of 'OverrideAlign' will be followed) + To povozi značilko poravnave z nastavitvijo poravnave vsakega posameznega odseka stene. Prezre se, če so podatki o poravnavi pridobljeni že iz izhodiščnega predmeta s postopkom getAligns(). (1. vrednost povozi značilko "Poravnava" prvega odseka stene; če vrednost ni "Levo, Desno, Sredinsko", sledi prva vednost iz "OverrideAlign") The height of this wall. Keep 0 for automatic. Not used if this wall is based on a solid - The height of this wall. Keep 0 for automatic. Not used if this wall is based on a solid + Višina zidu. Pustite 0 za samodejno. Ni upoštevana v primeru, ko je zid izhaja iz telesa The area of this wall as a simple Height * Length calculation - The area of this wall as a simple Height * Length calculation + Površina te stene kot enostaven zmnožek višine in dolžine The alignment of this wall on its base object, if applicable - The alignment of this wall on its base object, if applicable + Poravnava zidu glede na izhodiščni predmet, ko je to možno The face number of the base object used to build this wall - The face number of the base object used to build this wall + Število ploskev osnovnega predmeta, ki so uporabljene za izgradnjo stene The offset between this wall and its baseline (only for left and right alignments) - The offset between this wall and its baseline (only for left and right alignments) + Odmik med to steno in njeno osnovnico (le za poravnave levo in desno) Enable this to make the wall generate blocks - Enable this to make the wall generate blocks + Omogočite, če želite, da se s steno izrišejo zidaki The length of each block - The length of each block + Dolžina posameznega zidaka The height of each block - The height of each block + Višina posameznega zidaka The horizontal offset of the first line of blocks - The horizontal offset of the first line of blocks + Vodoravni zamik prve vrste zidakov The horizontal offset of the second line of blocks - The horizontal offset of the second line of blocks + Vodoravni zamik druge vrste zidakov The size of the joints between each block - The size of the joints between each block + Velikost reže med zidakoma The number of entire blocks - The number of entire blocks + Število celih zidakov The number of broken blocks - The number of broken blocks + Število rezanih zidakov @@ -5972,7 +5972,7 @@ Ustvarjanj stavbe prekinjeno. Structure tools - Structure tools + Konstrukcijska orodja @@ -5993,12 +5993,12 @@ Ustvarjanj stavbe prekinjeno. 3 views from mesh - 3 views from mesh + 3 pogledi iz ploskovja Creates 3 views (top, front, side) from a mesh-based object - Creates 3 views (top, front, side) from a mesh-based object + Ustvari 3 poglede (tloris, naris, stranski ris) iz predmeta na osnovi ploskovja @@ -6019,113 +6019,113 @@ Ustvarjanj stavbe prekinjeno. Writing camera position - Writing camera position + Zapisovanje položaja kamere Workbench - + Structure tools - Structure tools + Konstrukcijska orodja - + Axis tools - Axis tools + Osna orodja - + Panel tools - Panel tools + Ploščna orodja - + Material tools - Material tools + Orodja snovi - + Pipe tools - Pipe tools + Cevna orodja - + Rebar tools - Rebar tools + Železokrivniki - + Arch tools - Arch tools + Arhitekturna orodja - + Draft creation tools Orodja za izdelavo izrisa - + Draft annotation tools Orodja za opisovanje izrisov - + Draft modification tools Orodja za preoblikovanje izrisov - + Draft snap Pripenjanje pri izrisovanju - - + + &Arch - &Arch + &Arhi - - + + Utilities Pripomočki - - - - + + + + &Draft - &Draft + &Izris - + Creation - Creation + Ustvarjanje - + Annotation Opis - + Modification - Modification + Preoblikovanje Arch_RebarTools - + Rebar tools - Rebar tools + Železokrivniki - + Create various types of rebars, including U-shaped, L-shaped, and stirrup - Create various types of rebars, including U-shaped, L-shaped, and stirrup + Ustvari najrazličnejše vrste ojačitev, tudi U-je, L-je in stremena @@ -6164,7 +6164,7 @@ Ustvarjanj stavbe prekinjeno. Creates a roof object from the selected wire. - Creates a roof object from the selected wire. + Ustvari iz izbranega črtovja predmet – streho. @@ -6172,12 +6172,12 @@ Ustvarjanj stavbe prekinjeno. Cut with line - Cut with line + Reži s črto Cut an object with a line - Cut an object with a line + Prereži predmet s črto @@ -6185,12 +6185,12 @@ Ustvarjanj stavbe prekinjeno. Cut with plane - Cut with plane + Reži z ravnino Cut an object with a plane - Cut an object with a plane + Prereži predmet z ravnino @@ -6198,12 +6198,12 @@ Ustvarjanj stavbe prekinjeno. External reference - External reference + Zunanji sklic Creates an external reference object - Creates an external reference object + Ustvari predmet zunanjega sklica @@ -6216,7 +6216,7 @@ Ustvarjanj stavbe prekinjeno. Creates a frame object from a planar 2D object (the extrusion path(s)) and a profile. Make sure objects are selected in that order. - Creates a frame object from a planar 2D object (the extrusion path(s)) and a profile. Make sure objects are selected in that order. + Iz ravninskega dvorazsežnega predmeta (pot(i) izrivanja) in prereza ustvari presek. Pazite, da so predmeti izbrani v tem zaporedju. @@ -6229,7 +6229,7 @@ Ustvarjanj stavbe prekinjeno. Creates a window object from a selected object (wire, rectangle or sketch) - Creates a window object from a selected object (wire, rectangle or sketch) + Ustvari predmet okna iz izbranega predmeta (črtovja, pravokotnika ali očrta) @@ -6242,7 +6242,7 @@ Ustvarjanj stavbe prekinjeno. Creates an axis system from a set of axes - Creates an axis system from a set of axes + Iz nabora osi ustvari sestav osi @@ -6255,7 +6255,7 @@ Ustvarjanj stavbe prekinjeno. Creates a truss object from selected line or from scratch - Creates a truss object from selected line or from scratch + Ustvari paličje iz izbrane črte ali od začetka @@ -6268,7 +6268,7 @@ Ustvarjanj stavbe prekinjeno. Creates a project entity aggregating the selected sites. - Creates a project entity aggregating the selected sites. + Ustvari enoto projekta, ki združuje izbrane lokacije. @@ -6294,7 +6294,7 @@ Ustvarjanj stavbe prekinjeno. Creates a space object from selected boundary objects - Creates a space object from selected boundary objects + Ustvari prostor iz izbranih mejnih predmetov @@ -6307,7 +6307,7 @@ Ustvarjanj stavbe prekinjeno. Creates a fence object from a selected section, post and path - Creates a fence object from a selected section, post and path + Iz izbranega preseka, stojke in poti ustvari ograjo @@ -6320,7 +6320,7 @@ Ustvarjanj stavbe prekinjeno. Creates or edits the material definition of a selected object. - Creates or edits the material definition of a selected object. + Ustvari in uredi določilo snovi izbranega predmeta. @@ -6342,7 +6342,7 @@ Ustvarjanj stavbe prekinjeno. Material tools - Material tools + Orodja snovi @@ -6355,67 +6355,67 @@ Ustvarjanj stavbe prekinjeno. Creates a customizable grid object - Creates a customizable grid object + Ustvari nastavljivo mrežo The number of rows - The number of rows + Število vrstic The number of columns - The number of columns + Število stolpcev The sizes for rows - The sizes for rows + Velikost vrstic The sizes of columns - The sizes of columns + Velikost stolpcev The span ranges of cells that are merged together - The span ranges of cells that are merged together + Razpon polij, ki se združijo The type of 3D points produced by this grid object - The type of 3D points produced by this grid object + Vrsta 3D točk, ki jih ustvari ta mreža The total width of this grid - The total width of this grid + Celotna širina te mreže The total height of this grid - The total height of this grid + Skupna višina te mreže Creates automatic column divisions (set to 0 to disable) - Creates automatic column divisions (set to 0 to disable) + Ustvari samodejno delitve stolpca (onemogočite z nastavitvijo na 0) Creates automatic row divisions (set to 0 to disable) - Creates automatic row divisions (set to 0 to disable) + Ustvari samodejno delitve vrstice (onemogočite z nastavitvijo na 0) When in edge midpoint mode, if this grid must reorient its children along edge normals or not - When in edge midpoint mode, if this grid must reorient its children along edge normals or not + Ko ste v načinu "razpoločišče roba", ali mora ta mreža preusmeriti podrejenike vzdolž normale roba ali ne The indices of faces to hide - The indices of faces to hide + Seznam ploskev, se jih skrije @@ -6423,12 +6423,12 @@ Ustvarjanj stavbe prekinjeno. Panel - Panel + Plošča Creates a panel object from scratch or from a selected object (sketch, wire, face or solid) - Creates a panel object from scratch or from a selected object (sketch, wire, face or solid) + Ustvari predmet plošče od začetka ali iz izbranega predmeta (očrta, črtovja, ploskve ali telesa) @@ -6436,12 +6436,12 @@ Ustvarjanj stavbe prekinjeno. Panel Cut - Ploščni razrez + Ploščna kosovnica Creates 2D views of selected panels - Creates 2D views of selected panels + Ustvari dvorazsežni pogled na izbrane plošče @@ -6454,7 +6454,7 @@ Ustvarjanj stavbe prekinjeno. Creates a 2D sheet which can contain panel cuts - Creates a 2D sheet which can contain panel cuts + Ustvari dvorazsežno polo na kateri so kosovnice plošč @@ -6462,12 +6462,12 @@ Ustvarjanj stavbe prekinjeno. Nest - Nest + Vdevanje Nests a series of selected shapes in a container - Nests a series of selected shapes in a container + Vdeva niz izbranih oblik v vsebnik @@ -6476,7 +6476,7 @@ Ustvarjanj stavbe prekinjeno. Panel tools - Panel tools + Ploščna orodja @@ -6489,7 +6489,7 @@ Ustvarjanj stavbe prekinjeno. Creates a curtain wall object from selected line or from scratch - Creates a curtain wall object from selected line or from scratch + Ustvari stekleno fasado iz izbrane črte ali od začetka @@ -6502,7 +6502,7 @@ Ustvarjanj stavbe prekinjeno. Creates a pipe object from a given Wire or Line - Creates a pipe object from a given Wire or Line + Ustvari predmet - cev iz danega črtovja ali daljice @@ -6510,12 +6510,12 @@ Ustvarjanj stavbe prekinjeno. Connector - Connector + Spojnik Creates a connector between 2 or 3 selected pipes - Creates a connector between 2 or 3 selected pipes + Ustvari spojnik med 2 ali 3 izbranimi cevmi @@ -6524,7 +6524,7 @@ Ustvarjanj stavbe prekinjeno. Pipe tools - Pipe tools + Cevna orodja @@ -6532,12 +6532,12 @@ Ustvarjanj stavbe prekinjeno. Schedule - Razpored + Popis Creates a schedule to collect data from the model - Creates a schedule to collect data from the model + Ustvari popis s podatki iz oblikovanca @@ -6563,7 +6563,7 @@ Ustvarjanj stavbe prekinjeno. Creates a set of axes - Creates a set of axes + Ustvari nabor osi @@ -6572,7 +6572,7 @@ Ustvarjanj stavbe prekinjeno. Axis tools - Axis tools + Osna orodja @@ -6580,12 +6580,12 @@ Ustvarjanj stavbe prekinjeno. Custom Rebar - Custom Rebar + Armatura po meri Creates a Reinforcement bar from the selected face of solid object and/or a sketch - Creates a Reinforcement bar from the selected face of solid object and/or a sketch + Iz izbrane ploskve telesa in/ali očrta ustvari ojačitveno palico @@ -6593,12 +6593,12 @@ Ustvarjanj stavbe prekinjeno. Section Plane - Section Plane + Prerezna ravnina Creates a section plane object, including the selected objects - Creates a section plane object, including the selected objects + Ustvari predmet prerezne ravnine, ki vključuje izbrane predmete @@ -6611,7 +6611,7 @@ Ustvarjanj stavbe prekinjeno. Creates a building object including selected objects. - Creates a building object including selected objects. + Iz izbranih predmetov ustvari predmet – stavbo. @@ -6624,7 +6624,7 @@ Ustvarjanj stavbe prekinjeno. Creates a wall object from scratch or from a selected object (wire, face or solid) - Creates a wall object from scratch or from a selected object (wire, face or solid) + Ustvari predmet stene od začetka ali iz izbranega predmeta (črtovja, ploskve ali telesa) @@ -6637,7 +6637,7 @@ Ustvarjanj stavbe prekinjeno. Merges the selected walls, if possible - Merges the selected walls, if possible + Združi izbrane zidove, če je mogoče @@ -6645,12 +6645,12 @@ Ustvarjanj stavbe prekinjeno. Add component - Add component + Dodaj sestavino Adds the selected components to the active object - Adds the selected components to the active object + Doda izbrane sestavine v dejavni predmet @@ -6658,12 +6658,12 @@ Ustvarjanj stavbe prekinjeno. Remove component - Remove component + Odstrani sestavino Remove the selected components from their parents, or create a hole in a component - Remove the selected components from their parents, or create a hole in a component + Odstrani izbrane sestavine iz nadrejenikov ali ustvari luknjo v sestavini @@ -6676,7 +6676,7 @@ Ustvarjanj stavbe prekinjeno. Splits selected meshes into independent components - Splits selected meshes into independent components + Razcepi izbrana ploskovja v neodvisne sestavine @@ -6689,7 +6689,7 @@ Ustvarjanj stavbe prekinjeno. Turns selected meshes into Part Shape objects - Turns selected meshes into Part Shape objects + Pretvori izbrana ploskovja v oblike dela @@ -6697,12 +6697,12 @@ Ustvarjanj stavbe prekinjeno. Select non-manifold meshes - Select non-manifold meshes + Izberi nemnogoterna ploskovja Selects all non-manifold meshes from the document or from the selected groups - Selects all non-manifold meshes from the document or from the selected groups + Izbere vsa nemnogoterna ploskovja v dokumentu ali v izbranih skupinah @@ -6710,12 +6710,12 @@ Ustvarjanj stavbe prekinjeno. Remove Shape from Arch - Remove Shape from Arch + Odstrani Obliko iz Arhi (Arch) Removes cubic shapes from Arch components - Removes cubic shapes from Arch components + Odstrani prostorninske oblike iz arhitekturnih sestavin @@ -6723,12 +6723,12 @@ Ustvarjanj stavbe prekinjeno. Close holes - Close holes + Zapri luknje Closes holes in open shapes, turning them solids - Closes holes in open shapes, turning them solids + Zapre luknje v odprtih oblikah in jih pretvori v telesa @@ -6736,12 +6736,12 @@ Ustvarjanj stavbe prekinjeno. Check - Check + Preveri Checks the selected objects for problems - Checks the selected objects for problems + Preveri izbrane predmete za morebitne napake @@ -6754,7 +6754,7 @@ Ustvarjanj stavbe prekinjeno. Starts survey - Starts survey + Začne s popisovanjem @@ -6762,12 +6762,12 @@ Ustvarjanj stavbe prekinjeno. Toggle IFC Brep flag - Toggle IFC Brep flag + Preklopi zastavico predstavitve z ovojnico IFC Force an object to be exported as Brep or not - Force an object to be exported as Brep or not + Vsili izvoz predmeta kot PzO (predstavitev z ovojnico) ali ne @@ -6780,7 +6780,7 @@ Ustvarjanj stavbe prekinjeno. Creates an undefined architectural component - Creates an undefined architectural component + Ustvari neopredeljeno arhitekturno sestavino @@ -6788,12 +6788,12 @@ Ustvarjanj stavbe prekinjeno. Clone component - Clone component + Podvoji sestavino Clones an object as an undefined architectural component - Clones an object as an undefined architectural component + Podvojí predmet kot neopredeljeno arhitekturno sestavino @@ -6801,12 +6801,12 @@ Ustvarjanj stavbe prekinjeno. Create IFC spreadsheet... - Create IFC spreadsheet... + Ustvari IFC-preglednico … Creates a spreadsheet to store IFC properties of an object. - Creates a spreadsheet to store IFC properties of an object. + Ustvari preglednico za shranjevanje IFC-lastnosti predmeta. @@ -6819,7 +6819,7 @@ Ustvarjanj stavbe prekinjeno. Shows or hides the subcomponents of this object - Shows or hides the subcomponents of this object + Razkrije ali skrije podsestavine tega predmeta @@ -6835,23 +6835,23 @@ Ustvarjanj stavbe prekinjeno. QObject - - + + Arch Lok - - - - + + + + Draft Ugrez - - - + + + Import-Export Uvoz - Izvoz diff --git a/src/Mod/Arch/Resources/translations/Arch_sr-CS.qm b/src/Mod/Arch/Resources/translations/Arch_sr-CS.qm index 29631baad7..d0fa45d4e5 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_sr-CS.qm and b/src/Mod/Arch/Resources/translations/Arch_sr-CS.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_sr-CS.ts b/src/Mod/Arch/Resources/translations/Arch_sr-CS.ts index 094b67ef94..873a34bc3a 100644 --- a/src/Mod/Arch/Resources/translations/Arch_sr-CS.ts +++ b/src/Mod/Arch/Resources/translations/Arch_sr-CS.ts @@ -1078,7 +1078,7 @@ umesto u FreeCAD veb radnom okruženju Solid - Puno telo + Puno @@ -2244,7 +2244,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft alatke za pravljenje - + Draft annotation tools Draft alatke za napomene - + Draft modification tools Draft alatke za izmene - + Draft snap Draft hvatanje - - + + &Arch &Arch - - + + Utilities Korisni alati - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Napomena - + Modification Modification @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Luk - - - - + + + + Draft Zakošenje - - - + + + Import-Export Uvoz/Izvoz diff --git a/src/Mod/Arch/Resources/translations/Arch_sr.qm b/src/Mod/Arch/Resources/translations/Arch_sr.qm index 24f2e2a1ae..e902cc4f96 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_sr.qm and b/src/Mod/Arch/Resources/translations/Arch_sr.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_sr.ts b/src/Mod/Arch/Resources/translations/Arch_sr.ts index 4d6054ca5e..a00af6a89b 100644 --- a/src/Mod/Arch/Resources/translations/Arch_sr.ts +++ b/src/Mod/Arch/Resources/translations/Arch_sr.ts @@ -1078,7 +1078,7 @@ instead of the FreeCAD web workbench Solid - Пуно тело + Пуно @@ -2244,7 +2244,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6028,92 +6028,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft алатке за прављење - + Draft annotation tools Draft алатке за напомене - + Draft modification tools Draft алатке за измене - + Draft snap Draft хватање - - + + &Arch &Arch - - + + Utilities Корисни алати - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Напомена - + Modification Modification @@ -6121,12 +6121,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6838,23 +6838,23 @@ Building creation aborted. QObject - - + + Arch Лук - - - - + + + + Draft Закошење - - - + + + Import-Export Увоз/извоз diff --git a/src/Mod/Arch/Resources/translations/Arch_sv-SE.qm b/src/Mod/Arch/Resources/translations/Arch_sv-SE.qm index 16c3618893..ae89be2ce3 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_sv-SE.qm and b/src/Mod/Arch/Resources/translations/Arch_sv-SE.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_sv-SE.ts b/src/Mod/Arch/Resources/translations/Arch_sv-SE.ts index 9c20852daa..85706def29 100644 --- a/src/Mod/Arch/Resources/translations/Arch_sv-SE.ts +++ b/src/Mod/Arch/Resources/translations/Arch_sv-SE.ts @@ -203,7 +203,7 @@ Unnamed schedule - Unnamed schedule + Schema utan namn @@ -299,7 +299,7 @@ Lämna tomt för att använda alla objekt från dokumentet Deletes the selected line - Deletes the selected line + Tar bort den valda raden @@ -442,12 +442,12 @@ Lämna tomt för att använda alla objekt från dokumentet List of files to be committed: - List of files to be committed: + Lista över filer som ska lämnas in: Diff - Diff + Diff @@ -463,7 +463,7 @@ Lämna tomt för att använda alla objekt från dokumentet Commit message - Commit message + Incheckningsmeddelande @@ -1156,7 +1156,7 @@ if you start getting crashes when you set multiple cores. Number of cores to use (experimental) - Number of cores to use (experimental) + Antalet kärnor att använda (experimentiellt) @@ -1194,7 +1194,7 @@ if you start getting crashes when you set multiple cores. One compound per floor - One compound per floor + Ett sammansatt element per våning @@ -1209,7 +1209,7 @@ if you start getting crashes when you set multiple cores. One compound for all - One compound for all + Ett sammansatt element för alla @@ -1302,7 +1302,7 @@ they will be treated as one. Allow invalid shapes - Allow invalid shapes + Tillåt ogiltiga former @@ -1522,17 +1522,17 @@ The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. Standard model - Standard model + Standardmodell Structural analysis - Structural analysis + Strukturell analys Standard + structural - Standard + structural + Standard + strukturell @@ -1853,19 +1853,19 @@ unit to work with when opening the file. Switch L/H - Switch L/H + Byt L/H Switch L/W - Switch L/W + Byt L/W Con&tinue - Con&tinue + For&tsättning @@ -1892,17 +1892,17 @@ unit to work with when opening the file. Reset nodes - Reset nodes + Återställ noder Edit nodes - Edit nodes + Redigera noder Extend nodes - Extend nodes + Förläng noder @@ -1912,7 +1912,7 @@ unit to work with when opening the file. Connect nodes - Connect nodes + Anslut noder @@ -1938,7 +1938,7 @@ unit to work with when opening the file. Select tool... - Select tool... + Välj verktyg... @@ -1979,7 +1979,7 @@ unit to work with when opening the file. Intersection found. - Intersection found. + Gatukorsning hittades. @@ -2011,7 +2011,7 @@ unit to work with when opening the file. Create Equipment - Create Equipment + Skapa utrustning @@ -2031,7 +2031,7 @@ unit to work with when opening the file. This operation can take a long time. Proceed? - This operation can take a long time. Proceed? + Den här åtgärden kan ta lång tid. Fortsätt? @@ -2041,7 +2041,7 @@ unit to work with when opening the file. Create 3 views - Create 3 views + Skapa 3 vyer @@ -2052,12 +2052,12 @@ unit to work with when opening the file. Floor - Floor + Våning Create BuildingPart - Create BuildingPart + Skapa byggnadsdel @@ -2103,17 +2103,17 @@ unit to work with when opening the file. Create profile - Create profile + Skapa profil Profile settings - Profile settings + Inställningar för profilen Create Profile - Create Profile + Skapa profil @@ -2154,7 +2154,7 @@ Site creation aborted. Create Site - Create Site + Skapa sida @@ -2242,7 +2242,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -2289,7 +2289,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Open reference - Open reference + Öppna referens @@ -2299,12 +2299,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Frame - Frame + Ram Create Frame - Create Frame + Skapa ram @@ -2324,7 +2324,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela No shape found in this file - No shape found in this file + Ingen form hittades i den här filen @@ -2339,7 +2339,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Error: Unable to download from: - Error: Unable to download from: + Fel: Kunde inte hämta från: @@ -2371,7 +2371,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Window - Create Window + Skapa fönster @@ -2396,7 +2396,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Window options - Window options + Fönsteralternativ @@ -2411,7 +2411,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela This window has no defined opening - This window has no defined opening + Det här fönstret har ingen definierad öppning @@ -2423,12 +2423,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Unable to create component - Unable to create component + Kunde inte skapa komponent Window elements - Window elements + Fönsterelement @@ -2483,7 +2483,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create/update component - Create/update component + Skapa/uppdatera komponent @@ -2494,7 +2494,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Wires - Wires + Trådar @@ -2505,7 +2505,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create new component - Create new component + Skapa ny komponent @@ -2549,7 +2549,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela + default - + default + + standard @@ -2726,7 +2726,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela New layer - New layer + Nytt lager @@ -2736,7 +2736,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela depends on the object - depends on the object + beror på objektet @@ -2747,42 +2747,42 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Error: Space '%s' has no Zone. Aborting. - Error: Space '%s' has no Zone. Aborting. + Fel: Utrymmet '%s' har ingen Zon. Avbryter. pycollada not found, collada support is disabled. - pycollada not found, collada support is disabled. + pycollada hittades inte, stödet för collada är inaktiverat. file %s successfully created. - file %s successfully created. + skapandet av filen %s lyckades. Create Grid - Create Grid + Skapa rutnät Auto height is larger than height - Auto height is larger than height + Automatisk höjd är större än höjd Total row size is larger than height - Total row size is larger than height + Total radstorlek är större än höjd Auto width is larger than width - Auto width is larger than width + Automatisk bredd är större än bredd Total column size is larger than width - Total column size is larger than width + Total kolumnstorlek är större än bredd @@ -2793,12 +2793,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Total width - Total width + Bredd totalt Total height - Total height + Höjd totalt @@ -2813,32 +2813,32 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Add col - Add col + Lägg till col Del col - Del col + Ta bort col Create span - Create span + Skapa spann Remove span - Remove span + Ta bort spann Rows - Rows + Rader Columns - Columns + Kolumner @@ -2858,17 +2858,17 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Dent length - Dent length + Bulans längd Dent width - Dent width + Bulans bredd Dent height - Dent height + Bulans höjd @@ -2878,22 +2878,22 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Number of holes - Number of holes + Antalet hål Major diameter of holes - Major diameter of holes + Största diameter för hålen Minor diameter of holes - Minor diameter of holes + Minsta diameter för hålen Spacing between holes - Spacing between holes + Avstånd mellan hålen @@ -2933,7 +2933,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Depth of treads - Depth of treads + Trådarnas djup @@ -2948,12 +2948,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Add dent - Add dent + Lägg till bula Remove dent - Remove dent + Ta bort bula @@ -2963,7 +2963,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Level - Level + Nivå @@ -2989,12 +2989,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel - Create Panel + Skapa panel Panel options - Panel options + Panelalternativ @@ -3231,17 +3231,17 @@ Floor creation aborted. Create Floor - Create Floor + Skapa våning Create Axis - Create Axis + Skapa vinklar Distances (mm) and angles (deg) between axes - Distances (mm) and angles (deg) between axes + Avstånd (mm) och vinklar (deg) mellan a symmetriaxlar @@ -3267,17 +3267,17 @@ Floor creation aborted. Found a shape containing curves, triangulating - Found a shape containing curves, triangulating + Hittade en form som innehåller kurvor, triangulerar Successfully imported - Successfully imported + Importen lyckades Error computing the shape of this object - Error computing the shape of this object + Fel uppstod vid beräkning av objektets form @@ -3287,7 +3287,7 @@ Floor creation aborted. has an invalid shape - has an invalid shape + har en ogiltig form @@ -3315,12 +3315,12 @@ Floor creation aborted. Component - Component + Komponent Components of this object - Components of this object + Komponenter för det här objektet @@ -3330,12 +3330,12 @@ Floor creation aborted. Additions - Additions + Extra Subtractions - Subtractions + Subtraktioner @@ -3360,12 +3360,12 @@ Floor creation aborted. Edit IFC properties - Edit IFC properties + Redigera IFC-egenskaper Edit standard code - Edit standard code + Redigera standardkod @@ -3375,7 +3375,7 @@ Floor creation aborted. Add property... - Add property... + Lägg till egenskap... @@ -3390,7 +3390,7 @@ Floor creation aborted. New property - New property + Ny egenskap @@ -3491,7 +3491,7 @@ Floor creation aborted. Resize - Resize + Storleksförändra @@ -3544,7 +3544,7 @@ Building creation aborted. Create Building - Create Building + Skapa byggnad @@ -3554,7 +3554,7 @@ Building creation aborted. Create Space - Create Space + Skapa utrymme @@ -3569,7 +3569,7 @@ Building creation aborted. Wall - Wall + Vägg @@ -3581,7 +3581,7 @@ Building creation aborted. Create Wall - Create Wall + Skapa vägg @@ -6026,92 +6026,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Verktyg - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Annotering - + Modification Modification @@ -6119,12 +6119,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6212,7 +6212,7 @@ Building creation aborted. Frame - Frame + Ram @@ -6546,7 +6546,7 @@ Building creation aborted. Level - Level + Nivå @@ -6620,7 +6620,7 @@ Building creation aborted. Wall - Wall + Vägg @@ -6776,7 +6776,7 @@ Building creation aborted. Component - Component + Komponent @@ -6836,23 +6836,23 @@ Building creation aborted. QObject - - + + Arch Båge - - - - + + + + Draft Djupgående - - - + + + Import-Export Importera/Exportera diff --git a/src/Mod/Arch/Resources/translations/Arch_tr.qm b/src/Mod/Arch/Resources/translations/Arch_tr.qm index 1f57e38681..01631ffb2f 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_tr.qm and b/src/Mod/Arch/Resources/translations/Arch_tr.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_tr.ts b/src/Mod/Arch/Resources/translations/Arch_tr.ts index df9f6b442e..a0e23ce595 100644 --- a/src/Mod/Arch/Resources/translations/Arch_tr.ts +++ b/src/Mod/Arch/Resources/translations/Arch_tr.ts @@ -1936,7 +1936,7 @@ Ancak bazı BIM uygulamaları dosya açılırken seçilen faktörü uygular. Select tool... - Select tool... + Seçim aracı... @@ -2240,7 +2240,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -6024,92 +6024,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Yard. Uygulamalar - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Not - + Modification Modification @@ -6117,12 +6117,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6835,23 +6835,23 @@ Building creation aborted. QObject - - + + Arch Mimari - - - - + + + + Draft Taslak - - - + + + Import-Export İçe-Dışa Aktar diff --git a/src/Mod/Arch/Resources/translations/Arch_uk.ts b/src/Mod/Arch/Resources/translations/Arch_uk.ts index 199a5b1511..a5f5f4f9aa 100644 --- a/src/Mod/Arch/Resources/translations/Arch_uk.ts +++ b/src/Mod/Arch/Resources/translations/Arch_uk.ts @@ -2245,7 +2245,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Висота (мм) - + Door Door @@ -6029,92 +6029,92 @@ Building creation aborted. Workbench - + Structure tools Структурні інструменти - + Axis tools Axis tools - + Panel tools Інструменти панелі - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Утиліти - - - - + + + + &Draft &Draft - + Creation Створення - + Annotation Анотація - + Modification Зміна @@ -6122,12 +6122,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6839,23 +6839,23 @@ Building creation aborted. QObject - - + + Arch Арка - - - - + + + + Draft Креслення - - - + + + Import-Export Імпорт-експорт diff --git a/src/Mod/Arch/Resources/translations/Arch_val-ES.ts b/src/Mod/Arch/Resources/translations/Arch_val-ES.ts index e059296ca0..30593f085e 100644 --- a/src/Mod/Arch/Resources/translations/Arch_val-ES.ts +++ b/src/Mod/Arch/Resources/translations/Arch_val-ES.ts @@ -2213,7 +2213,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Height (mm) - + Door Door @@ -5997,92 +5997,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities Utilitats - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation Anotació - + Modification Modification @@ -6090,12 +6090,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6807,23 +6807,23 @@ Building creation aborted. QObject - - + + Arch Arquitectura - - - - + + + + Draft Calat - - - + + + Import-Export Importació-exportació diff --git a/src/Mod/Arch/Resources/translations/Arch_zh-CN.qm b/src/Mod/Arch/Resources/translations/Arch_zh-CN.qm index 93e7909521..eaca67b5c8 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_zh-CN.qm and b/src/Mod/Arch/Resources/translations/Arch_zh-CN.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_zh-CN.ts b/src/Mod/Arch/Resources/translations/Arch_zh-CN.ts index a98bbc544a..e177938c3e 100644 --- a/src/Mod/Arch/Resources/translations/Arch_zh-CN.ts +++ b/src/Mod/Arch/Resources/translations/Arch_zh-CN.ts @@ -254,7 +254,7 @@ Leave blank to use all objects from the document The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. - The property to retrieve from each object.Can be 'Count' to count the objects, or property names like 'Length' or 'Shape.Volume' to retrieve a certain property. + 要搜索对象的属性,可以使用“ Count”来统计对象数量,也可以使用“ Length”或“ Shape.Volume”等属性来搜索某个特定的属性。 @@ -319,12 +319,13 @@ Leave blank to use all objects from the document Put selected objects into the 'Objects' column of the selected row - Put selected objects into the 'Objects' column of the selected row + 将选中的对象放入到选中行 "对象" 列中 This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) - This exports the results to a CSV or Markdown file. Note for CSV export: In Libreoffice, you can keep this CSV file linked by right-clicking the Sheets tab bar, New sheet, From file, Link (Note: as of LibreOffice v6.x the correct path now is: Sheet, Insert Sheet..., From file, Browse...) + 导出结果到 CSV 或 Markdown 文件。 +CSV 导出注意事项:在Libreoffice中,您可以通过右键单击工作表标签栏保持此 CSV 文件链接, 新表 -> 从文件 -> 链接(注: LibreOffice v6. 现在正确的路径为:Sheet -> 插入工作表... -> 从文件开始 -> 浏览...) @@ -1742,7 +1743,7 @@ unit to work with when opening the file. StructuralSystem - StructuralSystem + 规范 @@ -2224,7 +2225,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela 高度(毫米) - + Door @@ -2261,7 +2262,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela External Reference - External Reference + 外部参考 @@ -2326,22 +2327,22 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Could not download shapefile module. Aborting. - Could not download shapefile module. Aborting. + 无法下载 shapefile 模块。正在中止 Shapefile module not downloaded. Aborting. - Shapefile module not downloaded. Aborting. + Shapefile 模块未下载。中止。 Shapefile module not found. Aborting. - Shapefile module not found. Aborting. + 未找到 Shapefile 模块。中止。 The shapefile library can be downloaded from the following URL and installed in your macros folder: - The shapefile library can be downloaded from the following URL and installed in your macros folder: + Shapefile 库可以从下面的 URL 下载并安装在您的宏文件夹中: @@ -2353,74 +2354,74 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Window - Create Window + 创建新窗口 Choose a face on an existing object or select a preset - Choose a face on an existing object or select a preset + 在现有对象上选取一个面或选择一个预设 Window not based on sketch. Window not aligned or resized. - Window not based on sketch. Window not aligned or resized. + 窗口不基于草图。窗口未对齐或调整大小。 No Width and/or Height constraint in window sketch. Window not resized. - No Width and/or Height constraint in window sketch. Window not resized. + 窗口草图中没有宽度和/或高度约束。窗口未调整大小。 No window found. Cannot continue. - No window found. Cannot continue. + 未找到窗口,不能继续。 Window options - Window options + 窗口选项 Auto include in host object - Auto include in host object + 自动包含在宿主对象 Sill height - Sill height + 台体高度 This window has no defined opening - This window has no defined opening + 此窗口没有定义为打开 Get selected edge - Get selected edge + 获取选中的边缘 Unable to create component - Unable to create component + 无法创建组件 Window elements - Window elements + 窗口元素 Hole wire - Hole wire + 孔线 The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire - The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire + 线的数目在主体对象中定义一个孔。值为零时将自动采用最大线数 @@ -2465,18 +2466,18 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create/update component - Create/update component + 创建/更新组件 Base 2D object - Base 2D object + 基础2D对象 Wires - Wires + 线框 @@ -2487,7 +2488,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create new component - Create new component + 创建新组件 @@ -2520,23 +2521,23 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Hinge - Hinge + 铰链 Opening mode - Opening mode + 开口模式 + default - + default + + 默认 If this is checked, the default Frame value of this window will be added to the value entered here - If this is checked, the default Frame value of this window will be added to the value entered here + 如果选中此项,此窗口的默认帧值将添加到这里输入的值 @@ -2546,19 +2547,19 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Press to retrieve the selected edge - Press to retrieve the selected edge + 点击搜索选中的边 Invert opening direction - Invert opening direction + 反转打开方向 Invert hinge position - Invert hinge position + 反向铰链位置 @@ -2568,17 +2569,17 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Only axes must be selected - Only axes must be selected + 必须仅选择坐标轴 Create Axis System - Create Axis System + 创建坐标轴系统 Please select at least one axis - Please select at least one axis + 请至少选择一个坐标轴 @@ -2586,12 +2587,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Axes - Axes + 坐标轴 Axis system components - Axis system components + 坐标轴系统组件 @@ -2599,29 +2600,29 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Successfully written - Successfully written + 写入成功 Truss - Truss + 桁架 Please select only one base object or none - Please select only one base object or none + 请只选择一个基对象或不选 Create Truss - Create Truss + 创建桁架 Couldn't locate IfcOpenShell - Couldn't locate IfcOpenShell + 无法找到IfcOpenShell @@ -2636,7 +2637,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Error: IfcOpenShell is not installed - Error: IfcOpenShell is not installed + 错误: IfcOpenShell 未安装 @@ -6008,92 +6009,92 @@ Building creation aborted. Workbench - + Structure tools Structure tools - + Axis tools Axis tools - + Panel tools Panel tools - + Material tools Material tools - + Pipe tools Pipe tools - + Rebar tools Rebar tools - + Arch tools Arch tools - + Draft creation tools Draft creation tools - + Draft annotation tools Draft annotation tools - + Draft modification tools Draft modification tools - + Draft snap Draft snap - - + + &Arch &Arch - - + + Utilities 实用程序 - - - - + + + + &Draft &Draft - + Creation Creation - + Annotation 注释 - + Modification Modification @@ -6101,12 +6102,12 @@ Building creation aborted. Arch_RebarTools - + Rebar tools Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6233,7 +6234,7 @@ Building creation aborted. Truss - Truss + 桁架 @@ -6818,23 +6819,23 @@ Building creation aborted. QObject - - + + Arch 建筑 - - - - + + + + Draft 拔模 - - - + + + Import-Export Import-Export diff --git a/src/Mod/Arch/Resources/translations/Arch_zh-TW.qm b/src/Mod/Arch/Resources/translations/Arch_zh-TW.qm index 4591d6fe7f..f05d2a41f0 100644 Binary files a/src/Mod/Arch/Resources/translations/Arch_zh-TW.qm and b/src/Mod/Arch/Resources/translations/Arch_zh-TW.qm differ diff --git a/src/Mod/Arch/Resources/translations/Arch_zh-TW.ts b/src/Mod/Arch/Resources/translations/Arch_zh-TW.ts index 5fb27848f0..6d46138626 100644 --- a/src/Mod/Arch/Resources/translations/Arch_zh-TW.ts +++ b/src/Mod/Arch/Resources/translations/Arch_zh-TW.ts @@ -11,7 +11,7 @@ Choose a preset card - Choose a preset card + 選擇一個預設卡 @@ -61,7 +61,7 @@ Section Color - 切面顏色 + 剖面顏色 @@ -101,12 +101,12 @@ Opens the URL in a browser - 在瀏覽器中打開此頁 + 在瀏覽器中打開網址 Father - 父級 + 父親 @@ -114,7 +114,7 @@ BimServer - Bim 伺服器 + Bim伺服器 @@ -124,7 +124,7 @@ The name of the BimServer you are currently connecting to. Change settings in Arch Preferences - The name of the BimServer you are currently connecting to. Change settings in Arch Preferences + 你目前所連接的 Bim伺服器名稱。在 Arch 偏好設定中修改設定 @@ -154,7 +154,7 @@ The list of projects present on the Bim Server - The list of projects present on the Bim Server + Bim 伺服器上的專案列表 @@ -164,7 +164,7 @@ Available revisions: - 可用修正版本: + 可用修訂版: @@ -180,12 +180,12 @@ Root object: - 根物體: + 根物件: Comment - 註釋 + 評論 @@ -193,17 +193,17 @@ Schedule definition - Schedule definition + 排程定義 Schedule name: - Schedule name: + 排程名稱: Unnamed schedule - Unnamed schedule + 未命名排程 @@ -213,7 +213,7 @@ A description for this operation - A description for this operation + 此操作之描述 @@ -228,7 +228,7 @@ An optional unit to express the resulting value. Ex: m^3 (you can also write m³ or m3) - An optional unit to express the resulting value. Ex: m^3 (you can also write m³ or m3) + 表示結果值的可選單位。例如 m^3 (你也可以寫成 m³ 或 m3) @@ -241,15 +241,15 @@ (internal names, not labels), to be considered by this operation. If the list contains groups, children will be added. Leave blank to use all objects from the document - An optional semicolon (;) separated list of object names -(internal names, not labels), to be considered by this operation. -If the list contains groups, children will be added. -Leave blank to use all objects from the document + 一個可選分號 (;) 分隔物件名稱之列表 +(內部名稱,不是標籤),被考慮以此操作進行。 +若此清單包含群組,子物件將被加入。 +留空以使用來自文件的所有物件 Filter - 篩選 + 篩選器 @@ -274,7 +274,7 @@ Leave blank to use all objects from the document Detailed results - Detailed results + 詳細結果 @@ -289,27 +289,27 @@ Leave blank to use all objects from the document Adds a line below the selected line/cell - Adds a line below the selected line/cell + 在選擇線/元件(cell)底下新增一條線 Add row - 增加行 + 新增列 Deletes the selected line - 刪除選取線 + 刪除選擇線 Del row - 刪除行 + 刪除列 Clears the whole list - Clears the whole list + 清空整個清單 @@ -329,7 +329,7 @@ Leave blank to use all objects from the document Add selection - 增加到選擇區 + 增加選擇 @@ -339,7 +339,7 @@ Leave blank to use all objects from the document Imports the contents of a CSV file - Imports the contents of a CSV file + 自一個 CSV 檔中匯入其內容 @@ -354,37 +354,37 @@ Leave blank to use all objects from the document BimServer Login - Bim 伺服器登入 + BimServer 登入 BimServer URL: - Bim 伺服器網址: + BimServer URL: Login (email): - 登入(EMail): + 登入(email): Password: - 密碼: + 密碼: Keep me logged in across FreeCAD sessions - Keep me logged in across FreeCAD sessions + 讓我在 FreeCAD 工作區間中保持登入狀態 Dialog - 對話框 + 對話方塊 IFC properties editor - IFC 屬性編輯 + IFC 屬性編輯器 @@ -394,27 +394,27 @@ Leave blank to use all objects from the document Leave this empty to generate one at export - Leave this empty to generate one at export + 在此保持空白以便在匯出時產生一個空白 List of IFC properties for this object. Double-click to edit, drag and drop to reorganize - List of IFC properties for this object. Double-click to edit, drag and drop to reorganize + 此物件之 IFC 屬性清單。雙擊以編輯,拖放來重組。 Delete selected property/set - Delete selected property/set + 刪除所選屬性/集合 Force exporting geometry as BREP - Force exporting geometry as BREP + 強制匯出幾何為 BREP Force export full FreeCAD parametric data - Force export full FreeCAD parametric data + 強制匯出完整 FreeCAD 參數資料 @@ -432,7 +432,7 @@ Leave blank to use all objects from the document Log - 紀錄 + 日誌 @@ -442,12 +442,12 @@ Leave blank to use all objects from the document List of files to be committed: - List of files to be committed: + 要提交的檔案列表: Diff - Diff + 差異 @@ -458,17 +458,17 @@ Leave blank to use all objects from the document Commit - Commit + 提交 Commit message - Commit message + 提交訊息 Remote repositories - Remote repositories + 遠端儲存點 @@ -538,7 +538,7 @@ Leave blank to use all objects from the document Nesting - Nesting + 巢狀 @@ -548,7 +548,7 @@ Leave blank to use all objects from the document Pick selected - Pick selected + 挑選 @@ -558,7 +558,7 @@ Leave blank to use all objects from the document Add selected - Add selected + 新增已選擇的 @@ -568,7 +568,7 @@ Leave blank to use all objects from the document Nesting parameters - Nesting parameters + 巢狀參數 @@ -578,17 +578,17 @@ Leave blank to use all objects from the document Closer than this, two points are considered equal - Closer than this, two points are considered equal + 兩點會視為相等若其距離比此還靠近 Arcs subdivisions - Arcs subdivisions + 弧線細分 The number of segments to divide non-linear edges into, for calculations. If curved shapes overlap, try raising this value - The number of segments to divide non-linear edges into, for calculations. If curved shapes overlap, try raising this value + 將非線性邊劃分成片段之數目,以用來計算。若彎曲形狀重疊,試著提高此值。 @@ -598,22 +598,22 @@ Leave blank to use all objects from the document A comma-separated list of angles to try and rotate the shapes - A comma-separated list of angles to try and rotate the shapes + 以逗號分隔的角度列表,用於嘗試和旋轉形狀 Nesting operation - Nesting operation + 巢狀操作 pass %p - pass %p + 通過 %p Start - 起點 + Start @@ -646,12 +646,12 @@ Leave blank to use all objects from the document If this is checked, when 2 similar walls are being connected, their underlying sketches will be joined into one, and the two walls will become one - If this is checked, when 2 similar walls are being connected, their underlying sketches will be joined into one, and the two walls will become one + 若此被勾選,當二個相似的牆被連結時,他們底下的草圖將被連接為一,而此兩個牆也會變成一個 Join walls base sketches when possible - Join walls base sketches when possible + 在可能的情況下連接牆壁基礎草圖 @@ -661,22 +661,22 @@ Leave blank to use all objects from the document Remove external geometry of base sketches when needed - Remove external geometry of base sketches when needed + 在需要時移除基礎草圖的外部幾何圖形 If this is checked, when an object becomes Subtraction or Addition of an Arch object, it will receive the Draft Construction color. - If this is checked, when an object becomes Subtraction or Addition of an Arch object, it will receive the Draft Construction color. + 若此被勾選,當一個物件變成一個 Arch 物件的減法或加法物件時,它將會取得建構草圖之顏色。 Apply Draft construction style to subcomponents - Apply Draft construction style to subcomponents + 將建構草圖風格應用至子組件 Do not compute areas for object with more than: - Do not compute areas for object with more than: + 不要計算物件的面積超過: @@ -686,12 +686,12 @@ Leave blank to use all objects from the document Interval between file checks for references - Interval between file checks for references + 檔案檢查間隔以作為參考 seconds - seconds + @@ -706,12 +706,12 @@ Leave blank to use all objects from the document Set "Move base" property to True by default - Set "Move base" property to True by default + 預設情況下設定"移動基底"屬性為 True If this is checked, when an Arch object has a material, the object will take the color of the material. This can be overridden for each object. - If this is checked, when an Arch object has a material, the object will take the color of the material. This can be overridden for each object. + 若此被勾選,當一個 Arch 物件有材質時,此物件將自材質取得顏色。這可以覆蓋到每個物件。 @@ -726,7 +726,7 @@ Leave blank to use all objects from the document The IFC version will change which attributes and products are supported - The IFC version will change which attributes and products are supported + IFC 版本將改變其支持的屬性與產品 @@ -746,7 +746,7 @@ Leave blank to use all objects from the document If this is checked, conversion is faster but the result might still contain triangulated faces - If this is checked, conversion is faster but the result might still contain triangulated faces + 若此被勾選,轉換會比較快但是其結果可能仍然包含三角形的面 @@ -761,22 +761,22 @@ Leave blank to use all objects from the document Tolerance value to use when checking if 2 adjacent faces as planar - Tolerance value to use when checking if 2 adjacent faces as planar + 檢查 2 個相鄰面是否為平面時使用的誤差值 If this is checked, flat groups of faces will be force-flattened, resulting in possible gaps and non-solid results - If this is checked, flat groups of faces will be force-flattened, resulting in possible gaps and non-solid results + 若此被勾選,平面群組將會被強制展開,從而可能導致間隙及非實體結果 Force flat faces - Force flat faces + 強制平面 If this is checked, holes in faces will be performed by subtraction rather than using wires orientation - If this is checked, holes in faces will be performed by subtraction rather than using wires orientation + 若此被勾選,面中的孔洞將通過減法執行而不是使用導線方向 @@ -811,31 +811,29 @@ Leave blank to use all objects from the document Symbol line thickness ratio - Symbol line thickness ratio + 符號線寬比例 Hidden geometry pattern - Hidden geometry pattern + 隱藏幾何樣式 This is the SVG stroke-dasharray property to apply to projections of hidden objects. - This is the SVG stroke-dasharray property to apply -to projections of hidden objects. + 這是 SVG stroke-dasharray 屬性套用在隱藏物件的投影。 Pattern scale - Pattern scale + 樣式縮放 Scaling factor for patterns used by object that have a Footprint display mode - Scaling factor for patterns used by object that have -a Footprint display mode + 物件所使用的樣式縮放係數有足跡顯示模式 @@ -850,7 +848,7 @@ a Footprint display mode The URL of a bim server instance (www.bimserver.org) to connect to. - The URL of a bim server instance (www.bimserver.org) to connect to. + 要連接的 bim 伺服器實體的網址 (www.bimserver.org) 。 @@ -862,9 +860,8 @@ a Footprint display mode If this is selected, the "Open BimServer in browser" button will open the Bim Server interface in an external browser instead of the FreeCAD web workbench - If this is selected, the "Open BimServer in browser" -button will open the Bim Server interface in an external browser -instead of the FreeCAD web workbench + 若此被選擇,"在瀏覽器中開啟 BimServer"按鍵將會開啟 Bim +伺服器界面在一個外部瀏覽器,而不是在 FreeCAD web 工作台中開啟 @@ -874,7 +871,7 @@ instead of the FreeCAD web workbench Survey - 問卷 + 查詢 @@ -1010,7 +1007,7 @@ instead of the FreeCAD web workbench Transparency: - 透明度: + 透明度: @@ -1063,17 +1060,17 @@ instead of the FreeCAD web workbench Helpers (grids, axes, etc...) - Helpers (grids, axes, etc...) + 幫手 (網格線, 軸向, 等...) Spaces - Spaces + 空間 Line style: - 線條樣式: + 線條樣式: @@ -1088,12 +1085,12 @@ instead of the FreeCAD web workbench Dotted - + 點線 Dashdot - 虛線點 + 點虛線 @@ -1103,19 +1100,18 @@ instead of the FreeCAD web workbench IFC import - IFC import + IFC匯入 Show this dialog when importing - Show this dialog when importing + 當匯入時顯示此對話框 Shows verbose debug messages during import and export of IFC files in the Report view panel - Shows verbose debug messages during import and export -of IFC files in the Report view panel + 在報告視圖面板中顯示 IFC 檔案在匯入及匯出時之詳細除錯訊息 @@ -1126,8 +1122,8 @@ of IFC files in the Report view panel Clones are used when objects have shared geometry One object is the base object, the others are clones. - Clones are used when objects have shared geometry -One object is the base object, the others are clones. + 當物件有共享幾何時使用複製品 +一個物件為基礎物件,其它為複製品。 @@ -1145,19 +1141,18 @@ for example, 3 if you have a 4-core CPU. Set it to 1 to use multicore mode in single-core mode; this is safer if you start getting crashes when you set multiple cores. - EXPERIMENTAL -The number of cores to use in multicore mode. -Keep 0 to disable multicore mode. -The maximum value should be your number of cores minus 1, -for example, 3 if you have a 4-core CPU. + 實驗性功能 +在多核模式所使用的核心數量。 +保持 0 以禁用多核模式。 +最大值應為您的核心數量減 1, +例如如果您有一個 4 核 CPU 的話,其值為 3。 -Set it to 1 to use multicore mode in single-core mode; this is safer -if you start getting crashes when you set multiple cores. +設定為 1 以在單核模式中使用多核模式;這比較安全如果您在設定多核時開始遭遇程式當掉的情況。 Number of cores to use (experimental) - Number of cores to use (experimental) + 使用之核心數目(試驗性功能) @@ -1167,24 +1162,24 @@ if you start getting crashes when you set multiple cores. Import arch IFC objects as - Import arch IFC objects as + 匯入建築 IFC 物件為 Specifies what kind of objects will be created in FreeCAD - Specifies what kind of objects will be created in FreeCAD + 描述什麼樣的物件將會在 FreeCAD 中建立 Parametric Arch objects - Parametric Arch objects + 參數 Arch 物件 Non-parametric Arch objects - Non-parametric Arch objects + 非參數 Arch 物件 @@ -1195,27 +1190,27 @@ if you start getting crashes when you set multiple cores. One compound per floor - One compound per floor + 每一層一個組件 Do not import Arch objects - Do not import Arch objects + 不要匯入 Arch 物件 Import struct IFC objects as - Import struct IFC objects as + 匯入結構 IFC 物件為 One compound for all - One compound for all + 一個組件給所有 Do not import structural objects - Do not import structural objects + 不要匯入結構物件 @@ -1226,64 +1221,62 @@ if you start getting crashes when you set multiple cores. Only subtypes of the specified element will be imported. Keep the element IfcProduct to import all building elements. - Only subtypes of the specified element will be imported. -Keep the element IfcProduct to import all building elements. + 只有指定元件的子類型將會被匯入。 +保留元件 IfcProduct 以導入所有建築元件。 Openings will be imported as subtractions, otherwise wall shapes will already have their openings subtracted - Openings will be imported as subtractions, otherwise wall shapes -will already have their openings subtracted + 開口會以差集布林匯入,否則牆將會有差集的開口 Separate openings - Separate openings + 分別的開口 The importer will try to detect extrusions. Note that this might slow things down. - The importer will try to detect extrusions. -Note that this might slow things down. + 匯入程式會試著偵測擠壓。 +注意這可能會減慢速度。 Detect extrusions - Detect extrusions + 偵測擠壓 Split walls made of multiple layers - Split walls made of multiple layers + 由多層所構成的分裂牆 Split multilayer walls - Split multilayer walls + 拆分多層牆 Object names will be prefixed with the IFC ID number - Object names will be prefixed with the IFC ID number + 物件名稱前將會加入IFC ID號碼 Prefix names with ID number - Prefix names with ID number + 名稱前加上 ID 號碼 If several materials with the same name and color are found in the IFC file, they will be treated as one. - If several materials with the same name and color are found in the IFC file, -they will be treated as one. + 若於 IFC 檔案中發現數個相同名稱與顏色之材質,其將會被視為一個。 Merge materials with same name and same color - Merge materials with same name and same color + 合併相同名稱及相同顏色之材質 @@ -1298,7 +1291,7 @@ they will be treated as one. IFC files can contain unclean or non-solid geometry. If this option is checked, all the geometry is imported, regardless of their validity. - IFC files can contain unclean or non-solid geometry. If this option is checked, all the geometry is imported, regardless of their validity. + IFC 檔案可以包含不乾淨或是非實體幾何。若此選項勾選,所有幾何會匯入而不管其有效性。 @@ -1308,36 +1301,35 @@ they will be treated as one. Exclude list: - Exclude list: + 排除清單: Comma-separated list of IFC entities to be excluded from imports - Comma-separated list of IFC entities to be excluded from imports + 以逗號分隔之 IFC 實體清單會在匯入時排除 Fit view during import on the imported objects. This will slow down the import, but one can watch the import. - Fit view during import on the imported objects. -This will slow down the import, but one can watch the import. + 在匯入想匯入物件時調整成視圖大小。 +這會減慢匯入速度,但是使用者可以看到匯入結果。 Fit view while importing - Fit view while importing + 匯入時調整成視圖大小 Creates a full parametric model on import using stored FreeCAD object properties - Creates a full parametric model on import using stored -FreeCAD object properties + 在匯入時使用儲存之 FreeCAD 物件屬性來以建立一個完整參數化模型 Import full FreeCAD parametric definitions if available - Import full FreeCAD parametric definitions if available + 如果可以的話,匯入完整的 FreeCAD 參數定義 @@ -1345,15 +1337,14 @@ FreeCAD object properties objects that are usually found in an IFC file are not imported, and all objects are placed in a 'Group' instead. 'Buildings' and 'Storeys' are still imported if there is more than one. - If this option is checked, the default 'Project', 'Site', 'Building', and 'Storeys' -objects that are usually found in an IFC file are not imported, and all objects -are placed in a 'Group' instead. -'Buildings' and 'Storeys' are still imported if there is more than one. + 若此選項被勾選時,經常在 IFC 檔中發現之預設 '專案'、'基地'、'建築物' 與 '樓層' +物件不會被匯入,且取而代之的是所有物件會放置在一個 '群組'。 +如果有多於一個以上的話,'建築物' 與 '樓層' 仍會被匯入。 Replace 'Project', 'Site', 'Building', and 'Storey' with 'Group' - Replace 'Project', 'Site', 'Building', and 'Storey' with 'Group' + 以 '群組' 取代 '專案'、'基地'、'建築物' 以及 '樓層' @@ -1374,24 +1365,24 @@ are placed in a 'Group' instead. All dimensions in the file will be scaled with this factor - All dimensions in the file will be scaled with this factor + 檔案中的所有尺寸都將以此因數進行縮放 Mesher - Mesher + 網格產生器 Meshing program that should be used. If using Netgen, make sure that it is available. - Meshing program that should be used. -If using Netgen, make sure that it is available. + 應使用網格程式。 +如果使用 Netgen 的話,確定該程式可以獲得。 Builtin - Builtin + 內建 @@ -1406,7 +1397,7 @@ If using Netgen, make sure that it is available. Builtin and mefisto mesher options - Builtin and mefisto mesher options + 內建和 mefisto 網格產生器選項 @@ -1416,26 +1407,26 @@ If using Netgen, make sure that it is available. Tessellation value to use with the Builtin and the Mefisto meshing program. - Tessellation value to use with the Builtin and the Mefisto meshing program. + 使用在內建與 Mefisto 網格程式之鑲嵌值。 Netgen mesher options - Netgen mesher options + Netgen 網格產生器參數 Grading - Grading + 評分中 Grading value to use for meshing using Netgen. This value describes how fast the mesh size decreases. The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. - Grading value to use for meshing using Netgen. -This value describes how fast the mesh size decreases. -The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. + 使用 Netgen 作網格之分級值。 +此值描述網格尺寸減小的速度。 +局部網格尺寸的梯度 h(x) 是以 |Δh(x)| ≤ 1/值 為界。 @@ -1445,22 +1436,22 @@ The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. Maximum number of segments per edge - Maximum number of segments per edge + 每個邊的最大片段數目 Segments per radius - Segments per radius + 每個半徑的段 Number of segments per radius - Number of segments per radius + 每個半徑的段數 Allow a second order mesh - Allow a second order mesh + 允許二階網格 @@ -1480,17 +1471,17 @@ The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. Allow quadrilateral faces - Allow quadrilateral faces + 允許四邊形面 Allow quads - Allow quads + 允許四邊形 IFC export - IFC export + IFC 匯出 @@ -1501,7 +1492,7 @@ The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. Show this dialog when exporting - Show this dialog when exporting + 當匯出時顯示此對話框 @@ -1510,37 +1501,37 @@ The gradient of the local mesh size h(x) is bound by |Δh(x)| ≤ 1/value. - The type of objects that you wish to export: -- Standard model: solid objects. -- Structural analysis: wireframe model for structural calculations. -- Standard + structural: both types of models. + 您希望匯出的物件類別: +- 標準模型:實體物件。 +- 結構分析:線框模型以供結構計算。 +- 標準 + 結構:兩種類別的模型。 Export type - Export type + 匯出類型 Standard model - Standard model + 標準模型 Structural analysis - Structural analysis + 結構分析 Standard + structural - Standard + structural + 標準+結構 Some IFC viewers don't like objects exported as extrusions. Use this to force all objects to be exported as BREP geometry. - Some IFC viewers don't like objects exported as extrusions. -Use this to force all objects to be exported as BREP geometry. + 某些 IFC 觀看程式不喜歡物件以擠壓方式匯出。 +使用此功能來強制所有物件以 BREP 幾何匯出。 @@ -1550,40 +1541,39 @@ Use this to force all objects to be exported as BREP geometry. Use triangulation options set in the DAE options page - Use triangulation options set in the DAE options page + 使用在 DAE 選項頁面中的三角測量選項設定 Use DAE triangulation options - Use DAE triangulation options + 使用 DAE 三角測量選項 Curved shapes that cannot be represented as curves in IFC are decomposed into flat facets. If this is checked, an additional calculation is done to join coplanar facets. - Curved shapes that cannot be represented as curves in IFC -are decomposed into flat facets. -If this is checked, an additional calculation is done to join coplanar facets. + 不能在 IFC 中表示為曲線的彎曲形狀會被分解成平面。 +若此勾選的話,會進行額外的計算以連接共面小平面。 Join coplanar facets when triangulating - Join coplanar facets when triangulating + 當三角測量時合併共面刻面 When exporting objects without unique ID (UID), the generated UID will be stored inside the FreeCAD object for reuse next time that object is exported. This leads to smaller differences between file versions. - When exporting objects without unique ID (UID), the generated UID -will be stored inside the FreeCAD object for reuse next time that object -is exported. This leads to smaller differences between file versions. + 當在沒有唯一 ID (UID) 的情況下匯出物件時,所產生出來的 UID +將會被儲存在 FreeCAD 物件內以提供該物件下次匯出時重複使用。 +這會導致不同檔案版本間有些微差異。 Store IFC unique ID in FreeCAD objects - Store IFC unique ID in FreeCAD objects + 在 FreeCAD 物件中儲存 IFC 獨特 ID @@ -1591,49 +1581,49 @@ is exported. This leads to smaller differences between file versions. - IFCOpenShell is a library that allows to import IFC files. -Its serializer functionality allows to give it an OCC shape and it will -produce adequate IFC geometry: NURBS, faceted, or anything else. -Note: The serializer is still an experimental feature! + IFCOpenShell 是一個可允許匯入 IFC 檔案的函式庫。 +其序列化器功能允許給它一個 OCC 形狀,它就會 +產生足夠的 IFC 幾何形狀:NURBS,分面,或是其它任何東西。 +注意:序列化器仍是一個實驗性功能! Use IfcOpenShell serializer if available - Use IfcOpenShell serializer if available + 如果可用的話使用 IfcOpenShell 序列化器 2D objects will be exported as IfcAnnotation - 2D objects will be exported as IfcAnnotation + 2D 物件將會以 IfcAnnotation 匯出 Export 2D objects as IfcAnnotations - Export 2D objects as IfcAnnotations + 匯出 2D 物件為 IfcAnnotation All FreeCAD object properties will be stored inside the exported objects, allowing to recreate a full parametric model on reimport. - All FreeCAD object properties will be stored inside the exported objects, -allowing to recreate a full parametric model on reimport. + 所有 FreeCAD 物件屬性將會被儲存在匯出物件內, +以允許在重新匯入時重新建立完整參數化模型。 Export full FreeCAD parametric model - Export full FreeCAD parametric model + 匯出完整 FreeCAD 參數模型 When possible, similar entities will be used only once in the file if possible. This can reduce the file size a lot, but will make it less easily readable. - When possible, similar entities will be used only once in the file if possible. -This can reduce the file size a lot, but will make it less easily readable. + 若可行的話,類似實體將會在檔案中只使用一次。 +這可以大幅減低檔案尺寸,但會使其不那麼容易閱讀。 Reuse similar entities - Reuse similar entities + 重用相似的實體 @@ -1641,15 +1631,14 @@ This can reduce the file size a lot, but will make it less easily readable. - When possible, IFC objects that are extruded rectangles will be -exported as IfcRectangleProfileDef. -However, some other applications might have problems importing that entity. -If this is your case, you can disable this and then all profiles will be exported as IfcArbitraryClosedProfileDef. + 若可行的話,以矩形拉伸所產生之 IFC 物件將會被匯出為 IfcRectangleProfileDef。 +然而,某些其它應用程式可能在匯入實體時會有問題。 +若您遇上這種情況,您可以禁用此方式然後所有的輪廓將會被匯出為 IfcArbitraryClosedProfileDef。 Disable IfcRectangleProfileDef - Disable IfcRectangleProfileDef + 禁用 IfcRectangleProfileDef @@ -1657,53 +1646,53 @@ If this is your case, you can disable this and then all profiles will be exporte like IfcWallStandardCase or IfcBeamStandardCase. If this option is turned on, FreeCAD will automatically export such objects as standard cases when the necessary conditions are met. - Some IFC types such as IfcWall or IfcBeam have special standard versions -like IfcWallStandardCase or IfcBeamStandardCase. -If this option is turned on, FreeCAD will automatically export such objects -as standard cases when the necessary conditions are met. + 某些 IFC 類型例如 IfcWall 或 IfcBeam 有特殊標準版本像 +IfcWallStandardCase 或 IfcBeamStandardCase。 +若此選項開啟,FreeCAD 將會在符合必要條件時自動匯出這些物件為標準案例。 Auto-detect and export as standard cases when applicable - Auto-detect and export as standard cases when applicable + 當適用時自動偵測並匯出為標準案例 If no site is found in the FreeCAD document, a default one will be added. A site is not mandatory but a common practice is to have at least one in the file. - If no site is found in the FreeCAD document, a default one will be added. -A site is not mandatory but a common practice is to have at least one in the file. + 如果在 FreeCAD 文件中找不到基地的話,一個預設的將會被添加。 +一個基地不是強制性的,但是在檔案中至少有一個是常見的作法。 Add default site if one is not found in the document - Add default site if one is not found in the document + 如果在文件中找不到的話,加入預設基地 If no building is found in the FreeCAD document, a default one will be added. Warning: The IFC standard asks for at least one building in each file. By turning this option off, you will produce a non-standard IFC file. However, at FreeCAD, we believe having a building should not be mandatory, and this option is there to have a chance to demonstrate our point of view. - If no building is found in the FreeCAD document, a default one will be added. -Warning: The IFC standard asks for at least one building in each file. By turning this option off, you will produce a non-standard IFC file. -However, at FreeCAD, we believe having a building should not be mandatory, and this option is there to have a chance to demonstrate our point of view. + 如果在 FreeCAD 文件中找不到建築的話,一個預設的將會被添加。 +警告:IFC 標準要求每個檔案中至少要有一個建築。藉由關閉此選項,您將會產生一個非標準的 +IFC 檔案。 +然而,在 FreeCAD 中,我們相信擁有一個建築並非強制的,而此選項是有機會展示我們的觀點。 Add default building if one is not found in the document (no standard) - Add default building if one is not found in the document (no standard) + 如果文件中找不到的話加入預設建築(非標準作法) If no building storey is found in the FreeCAD document, a default one will be added. A building storey is not mandatory but a common practice to have at least one in the file. - If no building storey is found in the FreeCAD document, a default one will be added. -A building storey is not mandatory but a common practice to have at least one in the file. + 如果在 FreeCAD 文件中找不到建物樓層的話,一個預設的將會被添加。 +一個建物樓層不是強制性的,但是在檔案中至少有一個是常見的作法。 Add default building storey if one is not found in the document - Add default building storey if one is not found in the document + 如果在文件中找不到的話,加入預設建物樓層 @@ -1714,17 +1703,15 @@ Note that IFC files are ALWAYS written in metric units; imperial units are only a conversion factor applied on top of them. However, some BIM applications will use this factor to choose which unit to work with when opening the file. - The units you want your IFC file to be exported to. + 要將 IFC 檔案匯出所要的單位。 -Note that IFC files are ALWAYS written in metric units; imperial units -are only a conversion factor applied on top of them. -However, some BIM applications will use this factor to choose which -unit to work with when opening the file. +注意 IFC 檔案永遠使用公制單位寫入; 英制單位只是應用在它們之上的轉換因素。 +然而,某些 BIM 應用程式將會使用此因素來選擇當開啟檔案時以何種單位來進行作業。 IFC file units - IFC file units + IFC 檔案單位 @@ -1754,7 +1741,7 @@ unit to work with when opening the file. Column - Column + Column @@ -1764,54 +1751,54 @@ unit to work with when opening the file. Create Structures From Selection - Create Structures From Selection + Create Structures From Selection Please select the base object first and then the edges to use as extrusion paths - Please select the base object first and then the edges to use as extrusion paths + Please select the base object first and then the edges to use as extrusion paths Create Structural System - 建立結構系統 + Create Structural System Please select at least an axis object - Please select at least an axis object + Please select at least an axis object Create Structure - 建立結構 + Create Structure First point of the beam - First point of the beam + First point of the beam Base point of column - Base point of column + Base point of column Next point - 下一個點 + Next point Structure options - 結構選項 + Structure options Drawing mode - 繪圖模式 + Drawing mode @@ -1826,7 +1813,7 @@ unit to work with when opening the file. Preset - 預設 + Preset @@ -1855,139 +1842,139 @@ unit to work with when opening the file. Switch L/H - Switch L/H + Switch L/H Switch L/W - Switch L/W + Switch L/W Con&tinue - 繼續(&T) + Con&tinue Error: The base shape couldn't be extruded along this tool object - Error: The base shape couldn't be extruded along this tool object + Error: The base shape couldn't be extruded along this tool object This mesh is an invalid solid - 此網格為無效實體 + This mesh is an invalid solid Facemaker returned an error - Facemaker returned an error + Facemaker returned an error Node Tools - 節點工具 + Node Tools Reset nodes - 重設節點 + Reset nodes Edit nodes - 編輯節點 + Edit nodes Extend nodes - 延伸節點 + Extend nodes Extends the nodes of this element to reach the nodes of another element - Extends the nodes of this element to reach the nodes of another element + Extends the nodes of this element to reach the nodes of another element Connect nodes - Connect nodes + Connect nodes Connects nodes of this element with the nodes of another element - Connects nodes of this element with the nodes of another element + Connects nodes of this element with the nodes of another element Toggle all nodes - Toggle all nodes + Toggle all nodes Toggles all structural nodes of the document on/off - Toggles all structural nodes of the document on/off + Toggles all structural nodes of the document on/off Extrusion Tools - Extrusion Tools + Extrusion Tools Select tool... - 選擇工具... + Select tool... Select object or edges to be used as a Tool (extrusion path) - Select object or edges to be used as a Tool (extrusion path) + Select object or edges to be used as a Tool (extrusion path) Choose another Structure object: - Choose another Structure object: + Choose another Structure object: The chosen object is not a Structure - The chosen object is not a Structure + The chosen object is not a Structure The chosen object has no structural nodes - The chosen object has no structural nodes + The chosen object has no structural nodes One of these objects has more than 2 nodes - One of these objects has more than 2 nodes + One of these objects has more than 2 nodes Unable to find a suitable intersection point - Unable to find a suitable intersection point + Unable to find a suitable intersection point Intersection found. - Intersection found. + Intersection found. Intersection found. - Intersection found. + Intersection found. @@ -1998,7 +1985,7 @@ unit to work with when opening the file. Couldn't compute a shape - 無法計算形狀 + Couldn't compute a shape @@ -2008,42 +1995,42 @@ unit to work with when opening the file. You must select a base shape object and optionally a mesh object - 您必須選擇一個基礎形狀物件和一個可選的網格物件 + You must select a base shape object and optionally a mesh object Create Equipment - Create Equipment + Create Equipment You must select exactly one base object - You must select exactly one base object + You must select exactly one base object The selected object must be a mesh - The selected object must be a mesh + The selected object must be a mesh This mesh has more than 1000 facets. - 此網格具有超過1000個面. + This mesh has more than 1000 facets. This operation can take a long time. Proceed? - 此操作將會需要許多時間,要執行嗎? + This operation can take a long time. Proceed? The mesh has more than 500 facets. This will take a couple of minutes... - 此網格具有超過500個面,這將會花費數分鐘的時間... + The mesh has more than 500 facets. This will take a couple of minutes... Create 3 views - 建立三視圖 + Create 3 views @@ -2054,12 +2041,12 @@ unit to work with when opening the file. Floor - Floor + 樓板 Create BuildingPart - Create BuildingPart + Create BuildingPart @@ -2105,22 +2092,22 @@ unit to work with when opening the file. Create profile - Create profile + Create profile Profile settings - Profile settings + Profile settings Create Profile - Create Profile + Create Profile Profile - 輪廓特徵 + 輪廓 @@ -2136,7 +2123,7 @@ Site is not allowed to accept any other object besides Building. Other objects will be removed from the selection. Note: You can change that in the preferences. - Please either select only Building objects or nothing at all! + Please either select only Building objects or nothing at all! Site is not allowed to accept any other object besides Building. @@ -2149,39 +2136,39 @@ Note: You can change that in the preferences. There is no valid object in the selection. Site creation aborted. - There is no valid object in the selection. + There is no valid object in the selection. Site creation aborted. Create Site - 建立地點 + Create Site Create Roof - 建立屋頂 + Create Roof Unable to create a roof - 無法建立屋頂 + Unable to create a roof Please select a base object - Please select a base object + Please select a base object Roof - 屋頂 + Roof @@ -2196,7 +2183,7 @@ Site creation aborted. If Angle = 0 and Run = 0 then the profile is identical to the relative profile. If Angle = 0 then the angle is calculated so that the height is the same as the relative profile. If Run = 0 then the run is calculated so that the height is the same as the relative profile. - Parameters of the roof profiles : + Parameters of the roof profiles : * Angle : slope in degrees relative to the horizontal. * Run : horizontal distance between the wall and the ridge. * Thickness : thickness of the roof. @@ -2211,42 +2198,42 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Id - ID + Id Angle (deg) - 角度(度) + Angle (deg) Run (mm) - Run (mm) + Run (mm) IdRel - IdRel + IdRel Thickness (mm) - 厚度(mm) + Thickness (mm) Overhang (mm) - 延伸 (mm) + Overhang (mm) Height (mm) - 高(mm) + Height (mm) - + Door - + Door @@ -2256,27 +2243,27 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Cut Plane - 切割平面 + Cut Plane Cut Plane options - 切割平面選項 + Cut Plane options Which side to cut - Which side to cut + Which side to cut Behind - Behind + Behind Front - 正視圖 + 前視圖 @@ -2296,72 +2283,72 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create external reference - 建立外部參考 + Create external reference Frame - Frame + Frame Create Frame - Create Frame + Create Frame Crossing point not found in profile. - Crossing point not found in profile. + Crossing point not found in profile. Shapes elevation - 形狀立面圖 + Shapes elevation Choose which field provides shapes elevations: - 選擇提供形狀立面圖的高程: + Choose which field provides shapes elevations: No shape found in this file - 在此檔中找不到形狀 + No shape found in this file Shapefile module not found - 找不到 shapefile 模組 + Shapefile module not found The shapefile python library was not found on your system. Would you like to download it now from <a href="https://github.com/GeospatialPython/pyshp">https://github.com/GeospatialPython/pyshp</a>? It will be placed in your macros folder. - 在您的系統上找不到 shapefile python 函式庫,您是否願意自 <a href="https://github.com/GeospatialPython/pyshp">https://github.com/GeospatialPython/pyshp</a>下載? 它將會存放在您的巨集目錄。 + The shapefile python library was not found on your system. Would you like to download it now from <a href="https://github.com/GeospatialPython/pyshp">https://github.com/GeospatialPython/pyshp</a>? It will be placed in your macros folder. Error: Unable to download from: - 錯誤: 無法下載: + Error: Unable to download from: Could not download shapefile module. Aborting. - 無法下載 shapefile 模組,中斷。 + Could not download shapefile module. Aborting. Shapefile module not downloaded. Aborting. - Shapefile 模組未下載,中斷。 + Shapefile module not downloaded. Aborting. Shapefile module not found. Aborting. - 找不到 shapefile 模組,中斷。 + Shapefile module not found. Aborting. The shapefile library can be downloaded from the following URL and installed in your macros folder: - Shapefile 函式庫可以自以下網址下載並安裝在您的巨集目錄: + The shapefile library can be downloaded from the following URL and installed in your macros folder: @@ -2373,79 +2360,79 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Window - 建立窗戶 + Create Window Choose a face on an existing object or select a preset - Choose a face on an existing object or select a preset + Choose a face on an existing object or select a preset Window not based on sketch. Window not aligned or resized. - 窗戶不是基於草圖所建立,窗戶沒有對齊或調整尺寸。 + Window not based on sketch. Window not aligned or resized. No Width and/or Height constraint in window sketch. Window not resized. - 在窗戶草圖中沒有寬/高拘束,窗戶無法調整尺寸。 + No Width and/or Height constraint in window sketch. Window not resized. No window found. Cannot continue. - 找不到窗戶,無法繼續。 + No window found. Cannot continue. Window options - 窗戶選項 + Window options Auto include in host object - 自動包含在承載物件 + Auto include in host object Sill height - Sill height + Sill height This window has no defined opening - This window has no defined opening + This window has no defined opening Get selected edge - Get selected edge + Get selected edge Unable to create component - Unable to create component + Unable to create component Window elements - 窗戶組件 + Window elements Hole wire - Hole wire + Hole wire The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire - 在主體物件定義一個孔洞之線段數目,其值為 0 的話會自動採用最大的線段 + The number of the wire that defines a hole in the host object. A value of zero will automatically adopt the largest wire Pick selected - Pick selected + 挑選 @@ -2485,18 +2472,18 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create/update component - 建立/更新元件 + Create/update component Base 2D object - 基礎 2D 物件 + Base 2D object Wires - + Wires @@ -2507,7 +2494,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create new component - 建立新元件 + Create new component @@ -2540,45 +2527,45 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Hinge - 轉軸 + Hinge Opening mode - Opening mode + Opening mode + default - + 預設 + + default If this is checked, the default Frame value of this window will be added to the value entered here - If this is checked, the default Frame value of this window will be added to the value entered here + If this is checked, the default Frame value of this window will be added to the value entered here If this is checked, the default Offset value of this window will be added to the value entered here - If this is checked, the default Offset value of this window will be added to the value entered here + If this is checked, the default Offset value of this window will be added to the value entered here Press to retrieve the selected edge - Press to retrieve the selected edge + Press to retrieve the selected edge Invert opening direction - Invert opening direction + Invert opening direction Invert hinge position - Invert hinge position + Invert hinge position @@ -2588,17 +2575,17 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Only axes must be selected - Only axes must be selected + Only axes must be selected Create Axis System - 建立軸座標系統 + Create Axis System Please select at least one axis - Please select at least one axis + Please select at least one axis @@ -2606,12 +2593,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Axes - + Axes Axis system components - Axis system components + Axis system components @@ -2619,49 +2606,49 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Successfully written - Successfully written + Successfully written Truss - 桁架 + Truss Please select only one base object or none - Please select only one base object or none + Please select only one base object or none Create Truss - 建立桁架 + Create Truss Couldn't locate IfcOpenShell - Couldn't locate IfcOpenShell + Couldn't locate IfcOpenShell IfcOpenShell not found or disabled, falling back on internal parser. - IfcOpenShell not found or disabled, falling back on internal parser. + IfcOpenShell not found or disabled, falling back on internal parser. IFC Schema not found, IFC import disabled. - IFC Schema not found, IFC import disabled. + IFC Schema not found, IFC import disabled. Error: IfcOpenShell is not installed - Error: IfcOpenShell is not installed + Error: IfcOpenShell is not installed Error: your IfcOpenShell version is too old - Error: your IfcOpenShell version is too old + Error: your IfcOpenShell version is too old @@ -2671,7 +2658,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Project - 建立專案 + Create Project @@ -2686,7 +2673,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Stairs - 建立樓梯 + Create Stairs @@ -2701,12 +2688,12 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create material - 建立材質 + Create material Create multi-material - 建立多重材質 + Create multi-material @@ -2728,7 +2715,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela New layer - 新圖層 + New layer @@ -2738,53 +2725,53 @@ If Run = 0 then the run is calculated so that the height is the same as the rela depends on the object - 相依於物件 + depends on the object This exporter can currently only export one site object - This exporter can currently only export one site object + This exporter can currently only export one site object Error: Space '%s' has no Zone. Aborting. - Error: Space '%s' has no Zone. Aborting. + Error: Space '%s' has no Zone. Aborting. pycollada not found, collada support is disabled. - pycollada not found, collada support is disabled. + pycollada not found, collada support is disabled. file %s successfully created. - 成功建立%s檔案. + file %s successfully created. Create Grid - Create Grid + Create Grid Auto height is larger than height - Auto height is larger than height + Auto height is larger than height Total row size is larger than height - Total row size is larger than height + Total row size is larger than height Auto width is larger than width - Auto width is larger than width + Auto width is larger than width Total column size is larger than width - Total column size is larger than width + Total column size is larger than width @@ -2795,62 +2782,62 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Total width - 總寬度 + Total width Total height - 總高度 + Total height Add row - 增加行 + 新增列 Del row - 刪除行 + 刪除列 Add col - 增加列 + Add col Del col - 刪除列 + Del col Create span - Create span + Create span Remove span - Remove span + Remove span Rows - + Rows Columns - + Columns Precast elements - 預製組件 + Precast elements Slab type - Slab type + Slab type @@ -2860,127 +2847,127 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Dent length - Dent length + Dent length Dent width - Dent width + Dent width Dent height - Dent height + Dent height Slab base - Slab base + Slab base Number of holes - 開孔數目 + Number of holes Major diameter of holes - 開孔主半徑 + Major diameter of holes Minor diameter of holes - Minor diameter of holes + Minor diameter of holes Spacing between holes - Spacing between holes + Spacing between holes Number of grooves - Number of grooves + Number of grooves Depth of grooves - Depth of grooves + Depth of grooves Height of grooves - Height of grooves + Height of grooves Spacing between grooves - Spacing between grooves + Spacing between grooves Number of risers - Number of risers + Number of risers Length of down floor - Length of down floor + Length of down floor Height of risers - Height of risers + Height of risers Depth of treads - Depth of treads + Depth of treads Precast options - Precast options + Precast options Dents list - Dents list + Dents list Add dent - Add dent + Add dent Remove dent - Remove dent + Remove dent Slant - Slant + Slant Level - 層級 + Level Rotation - 旋轉 + Rotation Panel - Panel + Panel View of - 視圖 + View of @@ -2991,7 +2978,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel - Create Panel + Create Panel @@ -3006,17 +2993,17 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Create Panel Cut - Create Panel Cut + Create Panel Cut Create Panel Sheet - Create Panel Sheet + Create Panel Sheet Error computing shape of - 錯誤計算形狀 + Error computing shape of @@ -3026,115 +3013,115 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Edit views positions - Edit views positions + Edit views positions This object has no face - This object has no face + This object has no face Curtain Wall - Curtain Wall + Curtain Wall Create Curtain Wall - Create Curtain Wall + Create Curtain Wall Pipe - 貫穿 + Connector - 連接器 + Connector Create Pipe - 建立管件 + Create Pipe Please select exactly 2 or 3 Pipe objects - 請選擇正好 2 或 3 個管道物件 + Please select exactly 2 or 3 Pipe objects Please select only Pipe objects - 請只選擇管道物件 + Please select only Pipe objects Create Connector - 建立連接器 + Create Connector Unable to build the base path - 無法建立基礎路徑 + Unable to build the base path Unable to build the profile - 無法建立輪廓 + Unable to build the profile Unable to build the pipe - 無法建立管道 + Unable to build the pipe The base object is not a Part - 基礎物件不是零件 + The base object is not a Part Too many wires in the base shape - 基本形狀的線太多 + Too many wires in the base shape The base wire is closed - 基礎線段封閉 + The base wire is closed The profile is not a 2D Part - 輪廓不是一個 2D 零件 + The profile is not a 2D Part The profile is not closed - 輪廓並且封閉 + The profile is not closed Only the 3 first wires will be connected - 只有前 3 個線段將會連接起來 + Only the 3 first wires will be connected Common vertex not found - 找不到共點 + Common vertex not found Pipes are already aligned - 管道已經對齊 + Pipes are already aligned At least 2 pipes must align - 至少 2 個管道必須對齊 + At least 2 pipes must align @@ -3149,7 +3136,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Unable to retrieve value from object - Unable to retrieve value from object + Unable to retrieve value from object @@ -3164,18 +3151,18 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Import CSV File - 匯入CSV檔案 + Import CSV File Export CSV File - 匯出為CSV格式檔案 + Export CSV File Unable to recognize that file type - Unable to recognize that file type + Unable to recognize that file type @@ -3202,7 +3189,7 @@ If Run = 0 then the run is calculated so that the height is the same as the rela Schedule - Schedule + Schedule @@ -3213,7 +3200,7 @@ Floor object is not allowed to accept Site, Building, or Floor objects. Site, Building, and Floor objects will be removed from the selection. You can change that in the preferences. - You can put anything but the following objects: Site, Building, and Floor - in a Floor object. + You can put anything but the following objects: Site, Building, and Floor - in a Floor object. Floor object is not allowed to accept Site, Building, or Floor objects. @@ -3226,29 +3213,29 @@ You can change that in the preferences. There is no valid object in the selection. Floor creation aborted. - There is no valid object in the selection. + There is no valid object in the selection. Floor creation aborted. Create Floor - Create Floor + Create Floor Create Axis - 建立軸 + Create Axis Distances (mm) and angles (deg) between axes - Distances (mm) and angles (deg) between axes + Distances (mm) and angles (deg) between axes Axis - 軸座標 + @@ -3263,33 +3250,33 @@ Floor creation aborted. Label - 標籤 + Label Found a shape containing curves, triangulating - 找到一個包含曲線、三角測量的形狀 + Found a shape containing curves, triangulating Successfully imported - 匯入成功 + Successfully imported Error computing the shape of this object - 計算此物件的形狀時出錯 + Error computing the shape of this object has no solid - 無實體 + has no solid has an invalid shape - 有一錯誤造型 + has an invalid shape @@ -3300,18 +3287,18 @@ Floor creation aborted. has a null shape - 有一空造型 + has a null shape Toggle subcomponents - Toggle subcomponents + Toggle subcomponents Closing Sketch edit - Closing Sketch edit + Closing Sketch edit @@ -3332,12 +3319,12 @@ Floor creation aborted. Additions - 增加 + Additions Subtractions - 扣除 + Subtractions @@ -3347,7 +3334,7 @@ Floor creation aborted. Fixtures - Fixtures + Fixtures @@ -3362,12 +3349,12 @@ Floor creation aborted. Edit IFC properties - Edit IFC properties + Edit IFC properties Edit standard code - Edit standard code + Edit standard code @@ -3377,12 +3364,12 @@ Floor creation aborted. Add property... - 新增屬性... + Add property... Add property set... - 新增屬性參數... + Add property set... @@ -3392,12 +3379,12 @@ Floor creation aborted. New property - 新增屬性 + New property New property set - 新增屬性參數 + New property set @@ -3408,12 +3395,12 @@ Floor creation aborted. Create Rebar - 建立鋼筋 + Create Rebar Please select a base face on a structural object - Please select a base face on a structural object + Please select a base face on a structural object @@ -3423,82 +3410,82 @@ Floor creation aborted. Create Section Plane - 建立剖面 + 建立剖平面 Toggle Cutview - Toggle Cutview + 切換剖視圖 Section plane settings - Section plane settings + 剖面平面設定 Remove highlighted objects from the list above - Remove highlighted objects from the list above + Remove highlighted objects from the list above Add selected - Add selected + 新增已選擇的 Add selected object(s) to the scope of this section plane - Add selected object(s) to the scope of this section plane + 將選定的物件添加到此剖面平面的範圍中。 Objects seen by this section plane: - Objects seen by this section plane: + 此剖面平面所看到的物件有: Section plane placement: - Section plane placement: + 剖面平面位置: Rotate X - 旋轉 X + 沿 X 軸旋轉 Rotates the plane along the X axis - Rotates the plane along the X axis + Rotates the plane along the X axis Rotate Y - 旋轉 Y + 沿 Y 軸旋轉 Rotates the plane along the Y axis - Rotates the plane along the Y axis + Rotates the plane along the Y axis Rotate Z - 旋轉 Z + 沿 Z 軸旋轉 Rotates the plane along the Z axis - Rotates the plane along the Z axis + Rotates the plane along the Z axis Resize - 尺寸調整 + 調整大小 Resizes the plane to fit the objects in the list above - Resizes the plane to fit the objects in the list above + Resizes the plane to fit the objects in the list above @@ -3509,7 +3496,7 @@ Floor creation aborted. Centers the plane on the objects in the list above - Centers the plane on the objects in the list above + Centers the plane on the objects in the list above @@ -3526,7 +3513,7 @@ Building object is not allowed to accept Site and Building objects. Site and Building objects will be removed from the selection. You can change that in the preferences. - You can put anything but Site and Building objects in a Building object. + You can put anything but Site and Building objects in a Building object. Building object is not allowed to accept Site and Building objects. @@ -3539,14 +3526,14 @@ You can change that in the preferences. There is no valid object in the selection. Building creation aborted. - There is no valid object in the selection. + There is no valid object in the selection. Building creation aborted. Create Building - Create Building + Create Building @@ -3556,54 +3543,54 @@ Building creation aborted. Create Space - Create Space + Create Space Set text position - Set text position + Set text position Space boundaries - Space boundaries + Space boundaries Wall - 牆面 + Wall Walls can only be based on Part or Mesh objects - Walls can only be based on Part or Mesh objects + Walls can only be based on Part or Mesh objects Create Wall - 建立牆面 + Create Wall First point of wall - First point of wall + First point of wall Wall options - 牆面選項 + Wall options Wall Presets... - 牆面預設... + Wall Presets... This list shows all the MultiMaterials objects of this document. Create some to define wall types. - This list shows all the MultiMaterials objects of this document. Create some to define wall types. + This list shows all the MultiMaterials objects of this document. Create some to define wall types. @@ -3628,33 +3615,33 @@ Building creation aborted. Merge Wall - 合併牆面 + Merge Wall The selected wall contains no subwall to merge - The selected wall contains no subwall to merge + The selected wall contains no subwall to merge Please select only wall objects - 請僅選擇牆面物件 + Please select only wall objects Merge Walls - 合併牆面 + Merge Walls Cannot compute blocks for wall - Cannot compute blocks for wall + Cannot compute blocks for wall Error: Unable to modify the base object of this wall - Error: Unable to modify the base object of this wall + Error: Unable to modify the base object of this wall @@ -3664,42 +3651,42 @@ Building creation aborted. Invalid cutplane - Invalid cutplane + Invalid cutplane is not closed - 未封閉 + is not closed is not valid - 錯誤 + is not valid doesn't contain any solid - 未包含任何物體 + doesn't contain any solid contains a non-closed solid - 包含一個未封閉物體 + contains a non-closed solid contains faces that are not part of any solid - 具有非任何實體部份之面 + contains faces that are not part of any solid Survey - 問卷 + 查詢 Set description - Set description + Set description @@ -3709,27 +3696,27 @@ Building creation aborted. Copy Length - Copy Length + Copy Length Copy Area - Copy Area + Copy Area Export CSV - 匯出為CSV + Export CSV Area - Area + Area Total - 總計 + Total @@ -3739,69 +3726,69 @@ Building creation aborted. Disabling Brep force flag of object - Disabling Brep force flag of object + Disabling Brep force flag of object Enabling Brep force flag of object - Enabling Brep force flag of object + Enabling Brep force flag of object Add space boundary - Add space boundary + Add space boundary Grouping - 群組 + Grouping Remove space boundary - Remove space boundary + Remove space boundary Ungrouping - 取消群組 + Ungrouping Split Mesh - 分割Mesh + Split Mesh Mesh to Shape - 形狀的網格 + Mesh to Shape All good! No problems found - All good! No problems found + All good! No problems found Create Component - Create Component + Create Component Key - Key + Key The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: - 此物件沒有 IfcProperties 屬性,取消建立試算表: + The object doesn't have an IfcProperties attribute. Cancel spreadsheet creation for object: Create IFC properties spreadsheet - 建立 IFC 屬性試算表 + Create IFC properties spreadsheet @@ -3809,7 +3796,7 @@ Building creation aborted. Multiple Structures - Multiple Structures + Multiple Structures @@ -3822,7 +3809,7 @@ Building creation aborted. Structural System - 結構系統 + Structural System @@ -3849,93 +3836,93 @@ Building creation aborted. An optional extrusion path for this element - An optional extrusion path for this element + An optional extrusion path for this element The computed length of the extrusion path - The computed length of the extrusion path + The computed length of the extrusion path Start offset distance along the extrusion path (positive: extend, negative: trim) - Start offset distance along the extrusion path (positive: extend, negative: trim) + Start offset distance along the extrusion path (positive: extend, negative: trim) End offset distance along the extrusion path (positive: extend, negative: trim) - End offset distance along the extrusion path (positive: extend, negative: trim) + End offset distance along the extrusion path (positive: extend, negative: trim) Automatically align the Base of the Structure perpendicular to the Tool axis - Automatically align the Base of the Structure perpendicular to the Tool axis + Automatically align the Base of the Structure perpendicular to the Tool axis X offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) - X offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) + X offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) Y offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) - Y offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) + Y offset between the Base origin and the Tool axis (only used if BasePerpendicularToTool is True) Mirror the Base along its Y axis (only used if BasePerpendicularToTool is True) - Mirror the Base along its Y axis (only used if BasePerpendicularToTool is True) + Mirror the Base along its Y axis (only used if BasePerpendicularToTool is True) Base rotation around the Tool axis (only used if BasePerpendicularToTool is True) - Base rotation around the Tool axis (only used if BasePerpendicularToTool is True) + Base rotation around the Tool axis (only used if BasePerpendicularToTool is True) The length of this element, if not based on a profile - 該元素的長度,如果不是基於輪廓 + The length of this element, if not based on a profile The width of this element, if not based on a profile - 該元素的寬度,如果不是基於輪廓 + The width of this element, if not based on a profile The height or extrusion depth of this element. Keep 0 for automatic - The height or extrusion depth of this element. Keep 0 for automatic + The height or extrusion depth of this element. Keep 0 for automatic The normal extrusion direction of this object (keep (0,0,0) for automatic normal) - 該對象的法向拉伸方向(保持 (0,0,0) 表示自動法向) + The normal extrusion direction of this object (keep (0,0,0) for automatic normal) The structural nodes of this element - The structural nodes of this element + The structural nodes of this element A description of the standard profile this element is based upon - A description of the standard profile this element is based upon + A description of the standard profile this element is based upon Offset distance between the centerline and the nodes line - Offset distance between the centerline and the nodes line + Offset distance between the centerline and the nodes line The facemaker type to use to build the profile of this object - 用於生成此對象輪廓的 facemaker 類型 + The facemaker type to use to build the profile of this object @@ -3946,109 +3933,109 @@ Building creation aborted. If the nodes are visible or not - If the nodes are visible or not + If the nodes are visible or not The width of the nodes line - The width of the nodes line + The width of the nodes line The size of the node points - 節點的大小 + The size of the node points The color of the nodes line - 節點線的顏色 + The color of the nodes line The type of structural node - 結構節點的類型 + The type of structural node Axes systems this structure is built on - 這個結構是建立在軸系上的 + Axes systems this structure is built on The element numbers to exclude when this structure is based on axes - 當這個結構是基於軸時要排除的元素編號 + The element numbers to exclude when this structure is based on axes If true the element are aligned with axes - 如果為真的,則元素與坐標軸對齊 + If true the element are aligned with axes The model description of this equipment - 該設備的型號說明 + The model description of this equipment The URL of the product page of this equipment - 本設備產品頁面的網址 + The URL of the product page of this equipment A standard code (MasterFormat, OmniClass,...) - 標準程式碼(MasterFormat, OmniClass,...) + A standard code (MasterFormat, OmniClass,...) Additional snap points for this equipment - 此設備的其他快照捕捉點 + Additional snap points for this equipment The electric power needed by this equipment in Watts - 該設備所需要的以瓦特為單位的電力 + The electric power needed by this equipment in Watts The type of this building - 此建築的類型 + The type of this building The height of this object - 此物件的高度 + The height of this object If true, the height value propagates to contained objects - 如果為 true,高度值將顯示至包含的物件 + If true, the height value propagates to contained objects The level of the (0,0,0) point of this level - 此級別的 (0,0,0) 點的級別 + The level of the (0,0,0) point of this level The computed floor area of this floor - 這個樓層的計算樓面面積 + The computed floor area of this floor An optional description for this component - 此元件的可選說明 + An optional description for this component An optional tag for this component - 此元件的可選標籤 + An optional tag for this component @@ -4059,17 +4046,17 @@ Building creation aborted. This property stores an inventor representation for this object - 此設定儲存此物件的建立者表示 + This property stores an inventor representation for this object If true, only solids will be collected by this object when referenced from other files - 如果為 true,當從其它檔案引用時,此物件只能收集實體資訊 + If true, only solids will be collected by this object when referenced from other files A MaterialName:SolidIndexesList map that relates material names with solid indexes to be used when referencing this object from other files - 材質名稱:從你的材質清單中引用,它將材質名稱與實體索引進行關聯,以便於從其它檔案引用該物件時使用 + A MaterialName:SolidIndexesList map that relates material names with solid indexes to be used when referencing this object from other files @@ -4080,153 +4067,152 @@ Building creation aborted. An optional unit to express levels - 表示級別的可選單位 + An optional unit to express levels A transformation to apply to the level mark - 套用於級別標記的轉換 + A transformation to apply to the level mark If true, show the level - 如果為 true,顯示級別 + If true, show the level If true, show the unit on the level tag - 如果為 true,則在級別標籤上顯示單位 + If true, show the unit on the level tag If true, display offset will affect the origin mark too - 如果為 true,顯示偏移量也會影響原點標記 + If true, display offset will affect the origin mark too If true, the object's label is displayed - 如果為 true,則顯示物件的標籤 + If true, the object's label is displayed The font to be used for texts - 用於文字的字體 + The font to be used for texts The font size of texts - 文字的字體大小 + The font size of texts The individual face colors - 各面顏色 + The individual face colors If true, when activated, the working plane will automatically adapt to this level - 如果為 true,當啟用時,工作平面將會自動調整此級別 + If true, when activated, the working plane will automatically adapt to this level If set to True, the working plane will be kept on Auto mode - 如果設定為 True,工作平面將保持在自動模式 + If set to True, the working plane will be kept on Auto mode Camera position data associated with this object - 與此物件關聯的相機位置資料 + Camera position data associated with this object If set, the view stored in this object will be restored on double-click - 如果設定,連點兩下將還原儲存在此物件中的視圖 + If set, the view stored in this object will be restored on double-click If True, double-clicking this object in the tree activates it - 如果為 True,連點兩下樹狀目錄中的物件將會啟用它 + If True, double-clicking this object in the tree activates it If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other files in lightweight mode. - 如果啟用這項功能,這個物件的建立者將儲存在 FreeCAD 檔案中,並允許其他檔案以輕量模式引用它。 + If this is enabled, the inventor representation of this object will be saved in the FreeCAD file, allowing to reference it in other files in lightweight mode. A slot to save the inventor representation of this object, if enabled - 如果啟用,則用於儲存此物件的建立者表示的插槽 + A slot to save the inventor representation of this object, if enabled If true, show the objects contained in this Building Part will adopt these line, color and transparency settings - 如果為 true,則顯示此建築零件中包含的物件將使用這些線條、顏色和透明度設定 + If true, show the objects contained in this Building Part will adopt these line, color and transparency settings The line width of child objects - 子物件的線條寬度 + The line width of child objects The line color of child objects - 子物件的線條顏色 + The line color of child objects The shape color of child objects - 子物件的形狀顏色 + The shape color of child objects The transparency of child objects - 子物件的透明度 + The transparency of child objects Cut the view above this level - 在此級別上切割視圖 + Cut the view above this level The distance between the level plane and the cut line - 水平面與切割線之間的距離 + The distance between the level plane and the cut line Turn cutting on when activating this level - 啟用此級別時開啟切割 + Turn cutting on when activating this level The capture box for newly created objects expressed as [XMin,YMin,ZMin,XMax,YMax,ZMax] - 針對新建立物件之擷取盒可以表示為 -[XMin,YMin,ZMin,XMax,YMax,ZMax] + The capture box for newly created objects expressed as [XMin,YMin,ZMin,XMax,YMax,ZMax] Turns auto group box on/off - 切換自動群組盒子開/關 + Turns auto group box on/off Automatically set size from contents - 自動由內容設定尺寸 + Automatically set size from contents A margin to use when autosize is turned on - 當自動調整尺寸功能啟動時所使用之邊距 + A margin to use when autosize is turned on Outside Diameter - 外部直徑 + Outside Diameter Wall thickness - 牆厚 + Wall thickness @@ -4236,7 +4222,7 @@ Building creation aborted. Width of the beam - 梁寬 + Width of the beam @@ -4246,34 +4232,34 @@ Building creation aborted. Height of the beam - 梁深 + Height of the beam Thickness of the web - Thickness of the web + Thickness of the web Thickness of the flanges - Thickness of the flanges + Thickness of the flanges Thickness of the sides - 側面厚度 + Thickness of the sides Thickness of the webs - 腹板厚度 + Thickness of the webs Thickness of the flange - 法蘭盤厚度 + Thickness of the flange @@ -4283,48 +4269,48 @@ Building creation aborted. The base terrain of this site - 本地點的基本地形 + The base terrain of this site The street and house number of this site, with postal box or apartment number if needed - The street and house number of this site, with postal box or apartment number if needed + The street and house number of this site, with postal box or apartment number if needed The postal or zip code of this site - 本地點的郵政或郵遞區號 + The postal or zip code of this site The city of this site - 本地點的城市 + The city of this site The region, province or county of this site - The region, province or county of this site + The region, province or county of this site The country of this site - 本地點的國家 + The country of this site The latitude of this site - 本地點的緯度 + The latitude of this site Angle between the true North and the North direction in this document - 本文檔中真正的北與北方向之間的夾角 + Angle between the true North and the North direction in this document The elevation of level 0 of this site - 此基地第0層的立面圖 + The elevation of level 0 of this site @@ -4335,19 +4321,19 @@ Building creation aborted. Other shapes that are appended to this object - 附加到此對象的其他形狀 + Other shapes that are appended to this object Other shapes that are subtracted from this object - 從這個對象中減去的其他形狀 + Other shapes that are subtracted from this object The area of the projection of this object onto the XY plane - 這個對象在 XY 平面上的投影面積 + The area of the projection of this object onto the XY plane @@ -4357,535 +4343,535 @@ Building creation aborted. The volume of earth to be added to this terrain - 要添加到這一地形的地球體積 + The volume of earth to be added to this terrain The volume of earth to be removed from this terrain - 從這個地形中移除的地球體積 + The volume of earth to be removed from this terrain An extrusion vector to use when performing boolean operations - 執行布爾運算時使用的拉伸向量 + An extrusion vector to use when performing boolean operations Remove splitters from the resulting shape - 從生成的形狀中移除拆分器 + Remove splitters from the resulting shape An optional offset between the model (0,0,0) origin and the point indicated by the geocoordinates - An optional offset between the model (0,0,0) origin and the point indicated by the geocoordinates + An optional offset between the model (0,0,0) origin and the point indicated by the geocoordinates The type of this object - 此物件的類型 + The type of this object The time zone where this site is located - The time zone where this site is located + The time zone where this site is located An optional EPW File for the location of this site. Refer to the Site documentation to know how to obtain one - An optional EPW File for the location of this site. Refer to the Site documentation to know how to obtain one + An optional EPW File for the location of this site. Refer to the Site documentation to know how to obtain one Show wind rose diagram or not. Uses solar diagram scale. Needs Ladybug module - Show wind rose diagram or not. Uses solar diagram scale. Needs Ladybug module + Show wind rose diagram or not. Uses solar diagram scale. Needs Ladybug module Show solar diagram or not - 是否顯示太陽軌跡圖 + Show solar diagram or not The scale of the solar diagram - The scale of the solar diagram + The scale of the solar diagram The position of the solar diagram - The position of the solar diagram + The position of the solar diagram The color of the solar diagram - 太陽軌跡圖的顏色 + The color of the solar diagram When set to 'True North' the whole geometry will be rotated to match the true north of this site - When set to 'True North' the whole geometry will be rotated to match the true north of this site + When set to 'True North' the whole geometry will be rotated to match the true north of this site Show compass or not - Show compass or not + Show compass or not The rotation of the Compass relative to the Site - The rotation of the Compass relative to the Site + The rotation of the Compass relative to the Site The position of the Compass relative to the Site placement - The position of the Compass relative to the Site placement + The position of the Compass relative to the Site placement Update the Declination value based on the compass rotation - Update the Declination value based on the compass rotation + Update the Declination value based on the compass rotation The list of angles of the roof segments - The list of angles of the roof segments + The list of angles of the roof segments The list of horizontal length projections of the roof segments - The list of horizontal length projections of the roof segments + The list of horizontal length projections of the roof segments The list of IDs of the relative profiles of the roof segments - The list of IDs of the relative profiles of the roof segments + The list of IDs of the relative profiles of the roof segments The list of thicknesses of the roof segments - The list of thicknesses of the roof segments + The list of thicknesses of the roof segments The list of overhangs of the roof segments - The list of overhangs of the roof segments + The list of overhangs of the roof segments The list of calculated heights of the roof segments - The list of calculated heights of the roof segments + The list of calculated heights of the roof segments The face number of the base object used to build the roof - The face number of the base object used to build the roof + The face number of the base object used to build the roof The total length of the ridges and hips of the roof - The total length of the ridges and hips of the roof + The total length of the ridges and hips of the roof The total length of the borders of the roof - The total length of the borders of the roof + The total length of the borders of the roof Specifies if the direction of the roof should be flipped - Specifies if the direction of the roof should be flipped + Specifies if the direction of the roof should be flipped The base file this component is built upon - The base file this component is built upon + The base file this component is built upon The part to use from the base file - The part to use from the base file + The part to use from the base file The way the referenced objects are included in the current document. 'Normal' includes the shape, 'Transient' discards the shape when the object is switched off (smaller filesize), 'Lightweight' does not import the shape but only the OpenInventor representation - The way the referenced objects are included in the current document. 'Normal' includes the shape, 'Transient' discards the shape when the object is switched off (smaller filesize), 'Lightweight' does not import the shape but only the OpenInventor representation + The way the referenced objects are included in the current document. 'Normal' includes the shape, 'Transient' discards the shape when the object is switched off (smaller filesize), 'Lightweight' does not import the shape but only the OpenInventor representation Fuse objects of same material - 將相同材質的物件熔合 + Fuse objects of same material The latest time stamp of the linked file - The latest time stamp of the linked file + The latest time stamp of the linked file If true, the colors from the linked file will be kept updated - If true, the colors from the linked file will be kept updated + If true, the colors from the linked file will be kept updated The profile used to build this frame - 用於構建此框架的概要檔 + The profile used to build this frame Specifies if the profile must be aligned with the extrusion wires - 指定輪廓是否必須與拉伸線對齊 + Specifies if the profile must be aligned with the extrusion wires An offset vector between the base sketch and the frame - 基本草圖和框架之間的偏移向量 + An offset vector between the base sketch and the frame Crossing point of the path on the profile. - 剖面上路徑的交點。 + Crossing point of the path on the profile. An optional additional placement to add to the profile before extruding it - An optional additional placement to add to the profile before extruding it + An optional additional placement to add to the profile before extruding it The rotation of the profile around its extrusion axis - 輪廓繞著拉伸軸旋轉 + The rotation of the profile around its extrusion axis The type of edges to consider - 要考慮的邊緣類型 + The type of edges to consider If true, geometry is fused, otherwise a compound - If true, geometry is fused, otherwise a compound + If true, geometry is fused, otherwise a compound The objects that host this window - 承載之窗戶之物件 + The objects that host this window The components of this window - 此窗之元件 + The components of this window The depth of the hole that this window makes in its host object. If 0, the value will be calculated automatically. - 此窗戶在其承載物件中所挖的孔洞深度。若為 0,其值將會自動運算。 + The depth of the hole that this window makes in its host object. If 0, the value will be calculated automatically. An optional object that defines a volume to be subtracted from hosts of this window - 一個可選物件,定義要從承載此窗戶主體中減去的體積 + An optional object that defines a volume to be subtracted from hosts of this window The width of this window - 此窗戶的寬度 + The width of this window The height of this window - 此窗戶的高度 + The height of this window The normal direction of this window - 此窗口的正常方向 + The normal direction of this window The preset number this window is based on - The preset number this window is based on + The preset number this window is based on The frame size of this window - 此窗戶的窗框尺寸 + The frame size of this window The offset size of this window - 此窗戶的偏離尺寸 + The offset size of this window The area of this window - 此窗口的區域 + The area of this window The width of louvre elements - 百葉窗組件的寬度 + The width of louvre elements The space between louvre elements - 百葉窗組件之間的空間 + The space between louvre elements Opens the subcomponents that have a hinge defined - Opens the subcomponents that have a hinge defined + Opens the subcomponents that have a hinge defined The number of the wire that defines the hole. If 0, the value will be calculated automatically - The number of the wire that defines the hole. If 0, the value will be calculated automatically + The number of the wire that defines the hole. If 0, the value will be calculated automatically Shows plan opening symbols if available - Shows plan opening symbols if available + Shows plan opening symbols if available Show elevation opening symbols if available - 在可獲得的情況下顯示立面圖開口符號 + Show elevation opening symbols if available The number of the wire that defines the hole. A value of 0 means automatic - The number of the wire that defines the hole. A value of 0 means automatic + The number of the wire that defines the hole. A value of 0 means automatic The axes this system is made of - 這個系統的軸是由 + The axes this system is made of The placement of this axis system - 此軸系統的放置 + The placement of this axis system The angle of the truss - 此桁架之角度 + The angle of the truss The slant type of this truss - 此桁架的傾斜類型 + The slant type of this truss The normal direction of this truss - 此桁架的法線方向 + The normal direction of this truss The height of the truss at the start position - 桁架在起始位置的高度 + The height of the truss at the start position The height of the truss at the end position - 桁架在結束位置的高度 + The height of the truss at the end position An optional start offset for the top strut - 頂部支柱的可選起始偏移 + An optional start offset for the top strut An optional end offset for the top strut - 頂部支柱的可選結束偏移 + An optional end offset for the top strut The height of the main top and bottom elements of the truss - 桁架主要頂部和底部組件之高度 + The height of the main top and bottom elements of the truss The width of the main top and bottom elements of the truss - 桁架之主要頂部和底部元件的寬度 + The width of the main top and bottom elements of the truss The type of the middle element of the truss - 桁架中間元件的類型 + The type of the middle element of the truss The direction of the rods - 桿的方向 + The direction of the rods The diameter or side of the rods - 桿的直徑或側面 + The diameter or side of the rods The number of rod sections - 桿段數 + The number of rod sections If the truss has a rod at its endpoint or not - 桁架的終點是否有桿 + If the truss has a rod at its endpoint or not How to draw the rods - 如何畫桿 + How to draw the rods The length of these stairs, if no baseline is defined - The length of these stairs, if no baseline is defined + The length of these stairs, if no baseline is defined The width of these stairs - 樓梯之寬度 + The width of these stairs The total height of these stairs - 樓梯之總高 + The total height of these stairs The alignment of these stairs on their baseline, if applicable - The alignment of these stairs on their baseline, if applicable + The alignment of these stairs on their baseline, if applicable The width of a Landing (Second edge and after - First edge follows Width property) - The width of a Landing (Second edge and after - First edge follows Width property) + The width of a Landing (Second edge and after - First edge follows Width property) The number of risers in these stairs - 踏數 + The number of risers in these stairs The depth of the treads of these stairs - 級深 + The depth of the treads of these stairs The height of the risers of these stairs - 級高 + The height of the risers of these stairs The size of the nosing - The size of the nosing + The size of the nosing The thickness of the treads - The thickness of the treads + The thickness of the treads The Blondel ratio indicates comfortable stairs and should be between 62 and 64cm or 24.5 and 25.5in - The Blondel ratio indicates comfortable stairs and should be between 62 and 64cm or 24.5 and 25.5in + The Blondel ratio indicates comfortable stairs and should be between 62 and 64cm or 24.5 and 25.5in The thickness of the risers - The thickness of the risers + The thickness of the risers The depth of the landing of these stairs - The depth of the landing of these stairs + The depth of the landing of these stairs The depth of the treads of these stairs - Enforced regardless of Length or edge's Length - The depth of the treads of these stairs - Enforced regardless of Length or edge's Length + The depth of the treads of these stairs - Enforced regardless of Length or edge's Length The height of the risers of these stairs - Enforced regardless of Height or edge's Height - The height of the risers of these stairs - Enforced regardless of Height or edge's Height + The height of the risers of these stairs - Enforced regardless of Height or edge's Height The direction of flight after landing - The direction of flight after landing + The direction of flight after landing The 'absolute' top level of a flight of stairs leads to - The 'absolute' top level of a flight of stairs leads to + The 'absolute' top level of a flight of stairs leads to The 'left outline' of stairs - The 'left outline' of stairs + The 'left outline' of stairs The 'left outline' of all segments of stairs - The 'left outline' of all segments of stairs + The 'left outline' of all segments of stairs The 'right outline' of all segments of stairs - The 'right outline' of all segments of stairs + The 'right outline' of all segments of stairs The type of landings of these stairs - The type of landings of these stairs + The type of landings of these stairs The type of winders in these stairs - The type of winders in these stairs + The type of winders in these stairs The type of structure of these stairs - The type of structure of these stairs + The type of structure of these stairs The thickness of the massive structure or of the stringers - The thickness of the massive structure or of the stringers + The thickness of the massive structure or of the stringers The width of the stringers - The width of the stringers + The width of the stringers The offset between the border of the stairs and the structure - The offset between the border of the stairs and the structure + The offset between the border of the stairs and the structure The overlap of the stringers above the bottom of the treads - The overlap of the stringers above the bottom of the treads + The overlap of the stringers above the bottom of the treads The thickness of the lower floor slab - The thickness of the lower floor slab + The thickness of the lower floor slab The thickness of the upper floor slab - The thickness of the upper floor slab + The thickness of the upper floor slab @@ -4895,53 +4881,53 @@ Building creation aborted. The type of connection between the end of the stairs and the upper floor slab - The type of connection between the end of the stairs and the upper floor slab + The type of connection between the end of the stairs and the upper floor slab A single section of the fence - 柵欄的單個切面 + A single section of the fence A single fence post - 單一柵欄柱 + A single fence post The Path the fence should follow - 柵欄應該跟隨的路徑 + The Path the fence should follow The number of sections the fence is built of - 柵欄的組成切面數量 + The number of sections the fence is built of The number of posts used to build the fence - 用來建立柵欄的柱的數量 + The number of posts used to build the fence When true, the fence will be colored like the original post and section. - 當為 true,欄柵將會像原始柱及切面一樣著色. + When true, the fence will be colored like the original post and section. A description for this material - 此材質的敘述 + A description for this material A URL where to find information about this material - 用於尋找有關此資訊的 URL + A URL where to find information about this material The transparency value of this material - 此材料的透明度 + The transparency value of this material @@ -4951,514 +4937,514 @@ Building creation aborted. The color of this material when cut - 當切割時此材質的顏色 + The color of this material when cut The list of layer names - 層名稱列表 + The list of layer names The list of layer materials - 層級材料清單 + The list of layer materials The list of layer thicknesses - 層厚度清單 + The list of layer thicknesses IFC data - IFC 資料 + IFC data IFC properties of this object - 物件 IFC屬性 + IFC properties of this object Description of IFC attributes are not yet implemented - IFC 屬性的描述尚未被實現 + Description of IFC attributes are not yet implemented The length of this element - 此組件的長度 + The length of this element The width of this element - 此組件的寬度 + The width of this element The height of this element - 此組件的高度 + The height of this element The size of the chamfer of this element - 此組件的倒角尺寸 + The size of the chamfer of this element The dent length of this element - 此組件的凹面長度 + The dent length of this element The dent height of this element - The dent height of this element + The dent height of this element The dents of this element - The dents of this element + The dents of this element The chamfer length of this element - The chamfer length of this element + The chamfer length of this element The base length of this element - The base length of this element + The base length of this element The groove depth of this element - The groove depth of this element + The groove depth of this element The groove height of this element - The groove height of this element + The groove height of this element The spacing between the grooves of this element - The spacing between the grooves of this element + The spacing between the grooves of this element The number of grooves of this element - The number of grooves of this element + The number of grooves of this element The dent width of this element - The dent width of this element + The dent width of this element The type of this slab - 樓板的類型 + The type of this slab The size of the base of this element - The size of the base of this element + The size of the base of this element The number of holes in this element - 元素的開孔數目 + The number of holes in this element The major radius of the holes of this element - The major radius of the holes of this element + The major radius of the holes of this element The minor radius of the holes of this element - The minor radius of the holes of this element + The minor radius of the holes of this element The spacing between the holes of this element - The spacing between the holes of this element + The spacing between the holes of this element The length of the down floor of this element - The length of the down floor of this element + The length of the down floor of this element The number of risers in this element - The number of risers in this element + The number of risers in this element The riser height of this element - The riser height of this element + The riser height of this element The tread depth of this element - The tread depth of this element + The tread depth of this element The thickness or extrusion depth of this element - 該元素的厚度或拉伸深度 + The thickness or extrusion depth of this element The number of sheets to use - 要使用的工作表數 + The number of sheets to use The offset between this panel and its baseline - 在面和基線之間偏移 + The offset between this panel and its baseline The length of waves for corrugated elements - 波紋元件的波浪長度 + The length of waves for corrugated elements The height of waves for corrugated elements - 波紋元件的波浪高度 + The height of waves for corrugated elements The horizontal offset of waves for corrugated elements - The horizontal offset of waves for corrugated elements + The horizontal offset of waves for corrugated elements The direction of waves for corrugated elements - 波紋元件的波浪方向 + The direction of waves for corrugated elements The type of waves for corrugated elements - 波形元件的波浪類型 + The type of waves for corrugated elements If the wave also affects the bottom side or not - If the wave also affects the bottom side or not + If the wave also affects the bottom side or not The area of this panel - 這個面板的面積 + The area of this panel The linked object - 鏈接的對象 + The linked object The size of the tag text - 標籤文本的大小 + The size of the tag text The font of the tag text - 標籤文字的字型 + The font of the tag text The text to display. Can be %tag%, %label% or %description% to display the panel tag or label - 要顯示的文字。可以是%tag%、%label% 或 %description% 來顯示面板標籤或標題 + The text to display. Can be %tag%, %label% or %description% to display the panel tag or label The position of the tag text. Keep (0,0,0) for center position - 標籤文件的位置. 保持 (0,0,0) 為中心位置 + The position of the tag text. Keep (0,0,0) for center position The rotation of the tag text - 標籤文字的旋轉角度 + The rotation of the tag text If True, the object is rendered as a face, if possible. - If True, the object is rendered as a face, if possible. + If True, the object is rendered as a face, if possible. The allowed angles this object can be rotated to when placed on sheets - The allowed angles this object can be rotated to when placed on sheets + The allowed angles this object can be rotated to when placed on sheets An offset value to move the cut plane from the center point - An offset value to move the cut plane from the center point + An offset value to move the cut plane from the center point A margin inside the boundary - 邊界內的邊距 + A margin inside the boundary Turns the display of the margin on/off - 打開/關閉邊距顯示 + Turns the display of the margin on/off The linked Panel cuts - The linked Panel cuts + The linked Panel cuts The tag text to display - 要顯示的標籤文字 + The tag text to display The font file - 字型檔案 + The font file The width of the sheet - 表格寬度 + The width of the sheet The height of the sheet - 表讀高度 + The height of the sheet The fill ratio of this sheet - 這個表單的填充率 + The fill ratio of this sheet Specifies an angle for the wood grain (Clockwise, 0 is North) - Specifies an angle for the wood grain (Clockwise, 0 is North) + Specifies an angle for the wood grain (Clockwise, 0 is North) Specifies the scale applied to each panel view. - Specifies the scale applied to each panel view. + Specifies the scale applied to each panel view. A list of possible rotations for the nester - A list of possible rotations for the nester + A list of possible rotations for the nester Turns the display of the wood grain texture on/off - Turns the display of the wood grain texture on/off + Turns the display of the wood grain texture on/off An optional host object for this curtain wall - 此帷幕牆可選之主體物件 + An optional host object for this curtain wall The height of the curtain wall, if based on an edge - The height of the curtain wall, if based on an edge + The height of the curtain wall, if based on an edge The number of vertical mullions - The number of vertical mullions + The number of vertical mullions If the profile of the vertical mullions get aligned with the surface or not - If the profile of the vertical mullions get aligned with the surface or not + If the profile of the vertical mullions get aligned with the surface or not The number of vertical sections of this curtain wall - The number of vertical sections of this curtain wall + The number of vertical sections of this curtain wall The height of the vertical mullions profile, if no profile is used - The height of the vertical mullions profile, if no profile is used + The height of the vertical mullions profile, if no profile is used The width of the vertical mullions profile, if no profile is used - The width of the vertical mullions profile, if no profile is used + The width of the vertical mullions profile, if no profile is used A profile for vertical mullions (disables vertical mullion size) - A profile for vertical mullions (disables vertical mullion size) + A profile for vertical mullions (disables vertical mullion size) The number of horizontal mullions - The number of horizontal mullions + The number of horizontal mullions If the profile of the horizontal mullions gets aligned with the surface or not - If the profile of the horizontal mullions gets aligned with the surface or not + If the profile of the horizontal mullions gets aligned with the surface or not The number of horizontal sections of this curtain wall - The number of horizontal sections of this curtain wall + The number of horizontal sections of this curtain wall The height of the horizontal mullions profile, if no profile is used - The height of the horizontal mullions profile, if no profile is used + The height of the horizontal mullions profile, if no profile is used The width of the horizontal mullions profile, if no profile is used - The width of the horizontal mullions profile, if no profile is used + The width of the horizontal mullions profile, if no profile is used A profile for horizontal mullions (disables horizontal mullion size) - A profile for horizontal mullions (disables horizontal mullion size) + A profile for horizontal mullions (disables horizontal mullion size) The number of diagonal mullions - The number of diagonal mullions + The number of diagonal mullions The size of the diagonal mullions, if any, if no profile is used - The size of the diagonal mullions, if any, if no profile is used + The size of the diagonal mullions, if any, if no profile is used A profile for diagonal mullions, if any (disables horizontal mullion size) - A profile for diagonal mullions, if any (disables horizontal mullion size) + A profile for diagonal mullions, if any (disables horizontal mullion size) The number of panels - The number of panels + The number of panels The thickness of the panels - The thickness of the panels + The thickness of the panels Swaps horizontal and vertical lines - Swaps horizontal and vertical lines + Swaps horizontal and vertical lines Perform subtractions between components so none overlap - Perform subtractions between components so none overlap + Perform subtractions between components so none overlap Centers the profile over the edges or not - Centers the profile over the edges or not + Centers the profile over the edges or not The vertical direction reference to be used by this object to deduce vertical/horizontal directions. Keep it close to the actual vertical direction of your curtain wall - The vertical direction reference to be used by this object to deduce vertical/horizontal directions. Keep it close to the actual vertical direction of your curtain wall + The vertical direction reference to be used by this object to deduce vertical/horizontal directions. Keep it close to the actual vertical direction of your curtain wall The diameter of this pipe, if not based on a profile - 此管道的直徑,若不是基於輪廓的話 + The diameter of this pipe, if not based on a profile The length of this pipe, if not based on an edge - 此管道之長度,若不是基於一個邊的話 + The length of this pipe, if not based on an edge An optional closed profile to base this pipe on - 基於此管道可選之封閉輪廓 + An optional closed profile to base this pipe on Offset from the start point - 偏移表格至起始位置 + Offset from the start point Offset from the end point - 與結束位置之偏移 + Offset from the end point The wall thickness of this pipe, if not based on a profile - 此管道的厚度,若不是基於輪廓的話 + The wall thickness of this pipe, if not based on a profile The curvature radius of this connector - 此連接器的曲率半徑 + The curvature radius of this connector The pipes linked by this connector - 由此連接器所鏈結之管道 + The pipes linked by this connector The type of this connector - 此連接器的類型 + The type of this connector The description column - 說明欄 + The description column The values column - 數值欄 + The values column The units column - 單位欄 + The units column The objects column - 物件欄位 + The objects column The filter column - 篩選器欄位 + The filter column If True, a spreadsheet containing the results is recreated when needed - 若為 True,則在需要時重新創建包含結果的試算表 + If True, a spreadsheet containing the results is recreated when needed @@ -5473,279 +5459,279 @@ Building creation aborted. If True, additional lines with each individual object are added to the results - 若為 True,則每個單獨物件的額外線段將添加到結果中 + If True, additional lines with each individual object are added to the results The placement of this object - 這個物件的位置 + 此物件所在位置 The intervals between axes - 軸之間的間隔 + The intervals between axes The angles of each axis - 每個軸的角度 + The angles of each axis The label of each axis - 每個坐標軸的標籤 + The label of each axis An optional custom bubble number - An optional custom bubble number + An optional custom bubble number The length of the axes - 軸的長度 + The length of the axes If not zero, the axes are not represented as one full line but as two lines of the given length - If not zero, the axes are not represented as one full line but as two lines of the given length + If not zero, the axes are not represented as one full line but as two lines of the given length The size of the axis bubbles - 軸氣泡的大小 + The size of the axis bubbles The numbering style - 編號樣式 + The numbering style The type of line to draw this axis - The type of line to draw this axis + The type of line to draw this axis Where to add bubbles to this axis: Start, end, both or none - Where to add bubbles to this axis: Start, end, both or none + Where to add bubbles to this axis: Start, end, both or none The line width to draw this axis - The line width to draw this axis + The line width to draw this axis The color of this axis - The color of this axis + The color of this axis The number of the first axis - The number of the first axis + The number of the first axis The font to use for texts - 文字使用的字體 + The font to use for texts The font size - 字體大小 + The font size If true, show the labels - 如果是對的,顯示標籤 + If true, show the labels A transformation to apply to each label - A transformation to apply to each label + A transformation to apply to each label The base object this component is built upon - 構建此組件的基礎對象 + The base object this component is built upon The object this component is cloning - 這個組件的對象是複製的 + The object this component is cloning An optional standard (OmniClass, etc...) code for this component - 此元件的可選標準 (OmniClass 等) 程式碼 + An optional standard (OmniClass, etc...) code for this component A material for this object - 這個對象的材料 + A material for this object Specifies if moving this object moves its base instead - 指定是否移動此物件以移動其基底來代替 + Specifies if moving this object moves its base instead Specifies if this object must move together when its host is moved - 指定在移動主機時對該對象是否必須一起移動 + Specifies if this object must move together when its host is moved The area of all vertical faces of this object - 這個對象所有垂直面的面積 + The area of all vertical faces of this object The perimeter length of the horizontal area - 水準區域的周長 + The perimeter length of the horizontal area An optional higher-resolution mesh or shape for this object - 此對象的可選高解析度網格或形狀 + An optional higher-resolution mesh or shape for this object An optional axis or axis system on which this object should be duplicated - 此物件可以被複製在一個可選軸或軸系統 + An optional axis or axis system on which this object should be duplicated Use the material color as this object's shape color, if available - 如果可用的話,使用材質顏色作為此物件之形狀顏色 + Use the material color as this object's shape color, if available The diameter of the bar - 欄的直徑 + The diameter of the bar The distance between the border of the beam and the first bar (concrete cover). - 梁與第一個欄之間的距離 (混凝土保護層)。 + The distance between the border of the beam and the first bar (concrete cover). The distance between the border of the beam and the last bar (concrete cover). - 梁的邊界和最後一個欄 (混凝土保護層) 之間的距離。 + The distance between the border of the beam and the last bar (concrete cover). The amount of bars - 欄的數量 + The amount of bars The spacing between the bars - 欄之間的間距 + The spacing between the bars The total distance to span the rebars over. Keep 0 to automatically use the host shape size. - 跨越鋼筋的總距離。保留 0 以自動使用主體形狀大小。 + The total distance to span the rebars over. Keep 0 to automatically use the host shape size. The direction to use to spread the bars. Keep (0,0,0) for automatic direction. - 用於延伸欄的方向。保持 (0,0,0) 自動方向。 + The direction to use to spread the bars. Keep (0,0,0) for automatic direction. The fillet to apply to the angle of the base profile. This value is multiplied by the bar diameter. - 要應用在底部輪廓角度的圓角。此值是欄直徑的倍數。 + The fillet to apply to the angle of the base profile. This value is multiplied by the bar diameter. List of placement of all the bars - List of placement of all the bars + List of placement of all the bars The structure object that hosts this rebar - 承載此鋼筋的結構物件 + The structure object that hosts this rebar The custom spacing of rebar - The custom spacing of rebar + The custom spacing of rebar Length of a single rebar - Length of a single rebar + Length of a single rebar Total length of all rebars - Total length of all rebars + Total length of all rebars The rebar mark - 螺紋符號 + The rebar mark Shape of rebar - 鋼筋形狀 + Shape of rebar The objects that must be considered by this section plane. Empty means the whole document. - 必須被此剖面所參考之物件,空白表示全部物件. + 此剖面平面所需考慮的物件。空表示整個文件。 If false, non-solids will be cut too, with possible wrong results. - 如果是假的,非固態的也會被剪切,可能會有錯誤的結果。 + If false, non-solids will be cut too, with possible wrong results. If True, resulting views will be clipped to the section plane area. - If True, resulting views will be clipped to the section plane area. + 若為 True,結果視圖將被剪裁為剖面平面區域內容。 If true, the color of the objects material will be used to fill cut areas. - 若為 true,則物件材質的顏色將用於填充剪切區域。 + If true, the color of the objects material will be used to fill cut areas. Geometry further than this value will be cut off. Keep zero for unlimited. - Geometry further than this value will be cut off. Keep zero for unlimited. + Geometry further than this value will be cut off. Keep zero for unlimited. The display length of this section plane - 此剖面的顯示長度 + 此剖面平面的顯示長度 The display height of this section plane - 此剖面的顯示高度 + The display height of this section plane The size of the arrows of this section plane - 此剖面箭頭的大小 + The size of the arrows of this section plane The transparency of this object - 此物件的透明度 + The transparency of this object Show the cut in the 3D view - 在 3D 視圖中顯示修剪 + Show the cut in the 3D view @@ -5755,7 +5741,7 @@ Building creation aborted. The distance between the cut plane and the actual view cut (keep this a very small value but not zero) - The distance between the cut plane and the actual view cut (keep this a very small value but not zero) + The distance between the cut plane and the actual view cut (keep this a very small value but not zero) @@ -5777,197 +5763,197 @@ Building creation aborted. The objects that make the boundaries of this space object - 構成這個空間物件邊界的物件 + The objects that make the boundaries of this space object The computed floor area of this space - 該空間所計算之樓板區域面積 + The computed floor area of this space The finishing of the floor of this space - The finishing of the floor of this space + The finishing of the floor of this space The finishing of the walls of this space - The finishing of the walls of this space + The finishing of the walls of this space The finishing of the ceiling of this space - The finishing of the ceiling of this space + The finishing of the ceiling of this space Objects that are included inside this space, such as furniture - Objects that are included inside this space, such as furniture + Objects that are included inside this space, such as furniture The type of this space - 此空間的類型 + The type of this space The thickness of the floor finish - 地板飾面的厚度 + The thickness of the floor finish The number of people who typically occupy this space - 通常佔據此空間的人數 + The number of people who typically occupy this space The electric power needed to light this space in Watts - 照亮此空間所需要的電力(瓦特) + The electric power needed to light this space in Watts The electric power needed by the equipment of this space in Watts - 此空間設備所需要的電力(瓦特) + The electric power needed by the equipment of this space in Watts If True, Equipment Power will be automatically filled by the equipment included in this space - If True, Equipment Power will be automatically filled by the equipment included in this space + If True, Equipment Power will be automatically filled by the equipment included in this space The type of air conditioning of this space - 此空間的空調類型 + The type of air conditioning of this space Specifies if this space is internal or external - 指定此空間是內部的還是外部的 + Specifies if this space is internal or external The text to show. Use $area, $label, $tag, $floor, $walls, $ceiling to insert the respective data - The text to show. Use $area, $label, $tag, $floor, $walls, $ceiling to insert the respective data + The text to show. Use $area, $label, $tag, $floor, $walls, $ceiling to insert the respective data The color of the area text - 區域文字的顏色 + The color of the area text The size of the first line of text - 首行文字大小 + The size of the first line of text The space between the lines of text - 文字列之間的間距 + The space between the lines of text The position of the text. Leave (0,0,0) for automatic position - The position of the text. Leave (0,0,0) for automatic position + The position of the text. Leave (0,0,0) for automatic position The justification of the text - 文字對齊 + The justification of the text The number of decimals to use for calculated texts - 用於計算文字的小數點後位數 + The number of decimals to use for calculated texts Show the unit suffix - 在字尾顯示單位 + Show the unit suffix The length of this wall. Not used if this wall is based on an underlying object - 牆體厚度。如果牆基於底層對象,則不使用 + The length of this wall. Not used if this wall is based on an underlying object The width of this wall. Not used if this wall is based on a face - 牆體寬度。如果牆基於一個面時,則不使用 + The width of this wall. Not used if this wall is based on a face This overrides Width attribute to set width of each segment of wall. Ignored if Base object provides Widths information, with getWidths() method. (The 1st value override 'Width' attribute for 1st segment of wall; if a value is zero, 1st value of 'OverrideWidth' will be followed) - This overrides Width attribute to set width of each segment of wall. Ignored if Base object provides Widths information, with getWidths() method. (The 1st value override 'Width' attribute for 1st segment of wall; if a value is zero, 1st value of 'OverrideWidth' will be followed) + This overrides Width attribute to set width of each segment of wall. Ignored if Base object provides Widths information, with getWidths() method. (The 1st value override 'Width' attribute for 1st segment of wall; if a value is zero, 1st value of 'OverrideWidth' will be followed) This overrides Align attribute to set Align of each segment of wall. Ignored if Base object provides Aligns information, with getAligns() method. (The 1st value override 'Align' attribute for 1st segment of wall; if a value is not 'Left, Right, Center', 1st value of 'OverrideAlign' will be followed) - This overrides Align attribute to set Align of each segment of wall. Ignored if Base object provides Aligns information, with getAligns() method. (The 1st value override 'Align' attribute for 1st segment of wall; if a value is not 'Left, Right, Center', 1st value of 'OverrideAlign' will be followed) + This overrides Align attribute to set Align of each segment of wall. Ignored if Base object provides Aligns information, with getAligns() method. (The 1st value override 'Align' attribute for 1st segment of wall; if a value is not 'Left, Right, Center', 1st value of 'OverrideAlign' will be followed) The height of this wall. Keep 0 for automatic. Not used if this wall is based on a solid - 牆體高度。保持0自动。如果牆基於實體,則不使用 + The height of this wall. Keep 0 for automatic. Not used if this wall is based on a solid The area of this wall as a simple Height * Length calculation - The area of this wall as a simple Height * Length calculation + The area of this wall as a simple Height * Length calculation The alignment of this wall on its base object, if applicable - 如果適用,將該牆壁對準其基礎對象 + The alignment of this wall on its base object, if applicable The face number of the base object used to build this wall - 用於建成此牆的基對象的面號 + The face number of the base object used to build this wall The offset between this wall and its baseline (only for left and right alignments) - 此牆與其基準線之間的偏移量(僅用於左右對齊) + The offset between this wall and its baseline (only for left and right alignments) Enable this to make the wall generate blocks - Enable this to make the wall generate blocks + Enable this to make the wall generate blocks The length of each block - The length of each block + The length of each block The height of each block - The height of each block + The height of each block The horizontal offset of the first line of blocks - The horizontal offset of the first line of blocks + The horizontal offset of the first line of blocks The horizontal offset of the second line of blocks - The horizontal offset of the second line of blocks + The horizontal offset of the second line of blocks The size of the joints between each block - The size of the joints between each block + The size of the joints between each block The number of entire blocks - The number of entire blocks + The number of entire blocks The number of broken blocks - The number of broken blocks + The number of broken blocks @@ -5976,7 +5962,7 @@ Building creation aborted. Structure tools - 結構工具 + Structure tools @@ -5997,12 +5983,12 @@ Building creation aborted. 3 views from mesh - 3 views from mesh + 3 views from mesh Creates 3 views (top, front, side) from a mesh-based object - Creates 3 views (top, front, side) from a mesh-based object + Creates 3 views (top, front, side) from a mesh-based object @@ -6023,113 +6009,113 @@ Building creation aborted. Writing camera position - Writing camera position + Writing camera position Workbench - + Structure tools - 結構工具 + Structure tools - + Axis tools - 軸座標工具 + Axis tools - + Panel tools - 面板工具 + Panel tools - + Material tools - 材質工具 + Material tools - + Pipe tools - 管道工具 + Pipe tools - + Rebar tools - 鋼筋結構工具 + Rebar tools - + Arch tools - 建築工具 + Arch tools - + Draft creation tools - 底圖建立工具 + Draft creation tools - + Draft annotation tools - 底圖註釋工具 + Draft annotation tools - + Draft modification tools - 底圖編修工具 + Draft modification tools - + Draft snap Draft snap - - - - &Arch - 建築(&A) - - - - - Utilities - 實用工具 - - - - &Draft - 底圖(&D) + &Arch + &Arch - Creation - 建立 + + Utilities + 功能 - + + + + + &Draft + &Draft + + + + Creation + Creation + + + Annotation 注釋 - + Modification - 編修 + Modification Arch_RebarTools - + Rebar tools - 鋼筋結構工具 + Rebar tools - + Create various types of rebars, including U-shaped, L-shaped, and stirrup - Create various types of rebars, including U-shaped, L-shaped, and stirrup + Create various types of rebars, including U-shaped, L-shaped, and stirrup @@ -6137,7 +6123,7 @@ Building creation aborted. Profile - 輪廓特徵 + 輪廓 @@ -6163,12 +6149,12 @@ Building creation aborted. Roof - 屋頂 + Roof Creates a roof object from the selected wire. - Creates a roof object from the selected wire. + Creates a roof object from the selected wire. @@ -6176,12 +6162,12 @@ Building creation aborted. Cut with line - Cut with line + Cut with line Cut an object with a line - Cut an object with a line + Cut an object with a line @@ -6189,12 +6175,12 @@ Building creation aborted. Cut with plane - Cut with plane + Cut with plane Cut an object with a plane - Cut an object with a plane + Cut an object with a plane @@ -6202,12 +6188,12 @@ Building creation aborted. External reference - 外部參考 + External reference Creates an external reference object - Creates an external reference object + Creates an external reference object @@ -6215,12 +6201,12 @@ Building creation aborted. Frame - Frame + Frame Creates a frame object from a planar 2D object (the extrusion path(s)) and a profile. Make sure objects are selected in that order. - Creates a frame object from a planar 2D object (the extrusion path(s)) and a profile. Make sure objects are selected in that order. + Creates a frame object from a planar 2D object (the extrusion path(s)) and a profile. Make sure objects are selected in that order. @@ -6233,7 +6219,7 @@ Building creation aborted. Creates a window object from a selected object (wire, rectangle or sketch) - 由選定之物件(線,矩形或素描)建立窗戶物件 + Creates a window object from a selected object (wire, rectangle or sketch) @@ -6246,7 +6232,7 @@ Building creation aborted. Creates an axis system from a set of axes - Creates an axis system from a set of axes + Creates an axis system from a set of axes @@ -6254,12 +6240,12 @@ Building creation aborted. Truss - 桁架 + Truss Creates a truss object from selected line or from scratch - 從選擇線或草圖建立桁架物件 + Creates a truss object from selected line or from scratch @@ -6272,7 +6258,7 @@ Building creation aborted. Creates a project entity aggregating the selected sites. - Creates a project entity aggregating the selected sites. + Creates a project entity aggregating the selected sites. @@ -6298,7 +6284,7 @@ Building creation aborted. Creates a space object from selected boundary objects - Creates a space object from selected boundary objects + Creates a space object from selected boundary objects @@ -6311,7 +6297,7 @@ Building creation aborted. Creates a fence object from a selected section, post and path - Creates a fence object from a selected section, post and path + Creates a fence object from a selected section, post and path @@ -6324,7 +6310,7 @@ Building creation aborted. Creates or edits the material definition of a selected object. - 對所選物件建立或編輯材質定義. + Creates or edits the material definition of a selected object. @@ -6332,12 +6318,12 @@ Building creation aborted. Multi-Material - 多重材質 + Multi-Material Creates or edits multi-materials - 建立或編輯多重材質 + Creates or edits multi-materials @@ -6346,7 +6332,7 @@ Building creation aborted. Material tools - 材質工具 + Material tools @@ -6359,67 +6345,67 @@ Building creation aborted. Creates a customizable grid object - Creates a customizable grid object + Creates a customizable grid object The number of rows - The number of rows + The number of rows The number of columns - The number of columns + The number of columns The sizes for rows - The sizes for rows + The sizes for rows The sizes of columns - The sizes of columns + The sizes of columns The span ranges of cells that are merged together - The span ranges of cells that are merged together + The span ranges of cells that are merged together The type of 3D points produced by this grid object - 此網格物件生成之 3D 點的類型 + The type of 3D points produced by this grid object The total width of this grid - The total width of this grid + The total width of this grid The total height of this grid - The total height of this grid + The total height of this grid Creates automatic column divisions (set to 0 to disable) - Creates automatic column divisions (set to 0 to disable) + Creates automatic column divisions (set to 0 to disable) Creates automatic row divisions (set to 0 to disable) - Creates automatic row divisions (set to 0 to disable) + Creates automatic row divisions (set to 0 to disable) When in edge midpoint mode, if this grid must reorient its children along edge normals or not - When in edge midpoint mode, if this grid must reorient its children along edge normals or not + When in edge midpoint mode, if this grid must reorient its children along edge normals or not The indices of faces to hide - The indices of faces to hide + The indices of faces to hide @@ -6427,12 +6413,12 @@ Building creation aborted. Panel - Panel + Panel Creates a panel object from scratch or from a selected object (sketch, wire, face or solid) - Creates a panel object from scratch or from a selected object (sketch, wire, face or solid) + Creates a panel object from scratch or from a selected object (sketch, wire, face or solid) @@ -6445,7 +6431,7 @@ Building creation aborted. Creates 2D views of selected panels - Creates 2D views of selected panels + Creates 2D views of selected panels @@ -6458,7 +6444,7 @@ Building creation aborted. Creates a 2D sheet which can contain panel cuts - Creates a 2D sheet which can contain panel cuts + Creates a 2D sheet which can contain panel cuts @@ -6466,12 +6452,12 @@ Building creation aborted. Nest - Nest + Nest Nests a series of selected shapes in a container - Nests a series of selected shapes in a container + Nests a series of selected shapes in a container @@ -6480,7 +6466,7 @@ Building creation aborted. Panel tools - 面板工具 + Panel tools @@ -6488,12 +6474,12 @@ Building creation aborted. Curtain Wall - Curtain Wall + Curtain Wall Creates a curtain wall object from selected line or from scratch - Creates a curtain wall object from selected line or from scratch + Creates a curtain wall object from selected line or from scratch @@ -6501,12 +6487,12 @@ Building creation aborted. Pipe - 貫穿 + Creates a pipe object from a given Wire or Line - 由給定的線建立管道物件 + Creates a pipe object from a given Wire or Line @@ -6514,12 +6500,12 @@ Building creation aborted. Connector - 連接器 + Connector Creates a connector between 2 or 3 selected pipes - 由 2 或 3 個選擇的管件中建立連接器 + Creates a connector between 2 or 3 selected pipes @@ -6528,7 +6514,7 @@ Building creation aborted. Pipe tools - 管道工具 + Pipe tools @@ -6536,12 +6522,12 @@ Building creation aborted. Schedule - Schedule + Schedule Creates a schedule to collect data from the model - Creates a schedule to collect data from the model + Creates a schedule to collect data from the model @@ -6549,12 +6535,12 @@ Building creation aborted. Level - 層級 + Level Creates a Building Part object that represents a level, including selected objects - Creates a Building Part object that represents a level, including selected objects + Creates a Building Part object that represents a level, including selected objects @@ -6562,12 +6548,12 @@ Building creation aborted. Axis - 軸座標 + Creates a set of axes - Creates a set of axes + Creates a set of axes @@ -6576,7 +6562,7 @@ Building creation aborted. Axis tools - 軸座標工具 + Axis tools @@ -6584,12 +6570,12 @@ Building creation aborted. Custom Rebar - 自訂鋼筋結構 + Custom Rebar Creates a Reinforcement bar from the selected face of solid object and/or a sketch - Creates a Reinforcement bar from the selected face of solid object and/or a sketch + Creates a Reinforcement bar from the selected face of solid object and/or a sketch @@ -6597,12 +6583,12 @@ Building creation aborted. Section Plane - 剖面 + 剖平面 Creates a section plane object, including the selected objects - 建立剖面物件,包含選擇的物件 + Creates a section plane object, including the selected objects @@ -6615,7 +6601,7 @@ Building creation aborted. Creates a building object including selected objects. - 建立包含選定物件之建築物件. + Creates a building object including selected objects. @@ -6623,12 +6609,12 @@ Building creation aborted. Wall - 牆面 + Wall Creates a wall object from scratch or from a selected object (wire, face or solid) - 由草圖或選定物件(線,面或固體)建立牆面物件 + Creates a wall object from scratch or from a selected object (wire, face or solid) @@ -6636,12 +6622,12 @@ Building creation aborted. Merge Walls - 合併牆面 + Merge Walls Merges the selected walls, if possible - 若可行合併所選牆面 + Merges the selected walls, if possible @@ -6649,12 +6635,12 @@ Building creation aborted. Add component - 增加組件 + Add component Adds the selected components to the active object - 增加選定組件至目前物件 + Adds the selected components to the active object @@ -6662,12 +6648,12 @@ Building creation aborted. Remove component - 移除原件 + Remove component Remove the selected components from their parents, or create a hole in a component - 由其家族中移除選定物件或於物建中建立空洞 + Remove the selected components from their parents, or create a hole in a component @@ -6675,12 +6661,12 @@ Building creation aborted. Split Mesh - 分割Mesh + Split Mesh Splits selected meshes into independent components - 分割選定Mesh為獨立物件 + Splits selected meshes into independent components @@ -6688,12 +6674,12 @@ Building creation aborted. Mesh to Shape - 形狀的網格 + Mesh to Shape Turns selected meshes into Part Shape objects - 轉換選定之網格為零件造型物件 + Turns selected meshes into Part Shape objects @@ -6701,12 +6687,12 @@ Building creation aborted. Select non-manifold meshes - 選擇非重疊網格 + Select non-manifold meshes Selects all non-manifold meshes from the document or from the selected groups - 由檔案或所選之群組中選取所有非重疊網格 + Selects all non-manifold meshes from the document or from the selected groups @@ -6714,12 +6700,12 @@ Building creation aborted. Remove Shape from Arch - 由建築中移除造型 + Remove Shape from Arch Removes cubic shapes from Arch components - 移除建築元件中之方塊形狀 + Removes cubic shapes from Arch components @@ -6727,12 +6713,12 @@ Building creation aborted. Close holes - 封閉空洞 + Close holes Closes holes in open shapes, turning them solids - 於封閉開口之造型並轉為實體 + Closes holes in open shapes, turning them solids @@ -6740,12 +6726,12 @@ Building creation aborted. Check - 確認 + Check Checks the selected objects for problems - 檢查所選物件之問題 + Checks the selected objects for problems @@ -6753,12 +6739,12 @@ Building creation aborted. Survey - 問卷 + 查詢 Starts survey - 開始查詢 + Starts survey @@ -6766,12 +6752,12 @@ Building creation aborted. Toggle IFC Brep flag - 切換 IFC Brep 標示 + Toggle IFC Brep flag Force an object to be exported as Brep or not - 是否強制將一物件以Brep格式匯出 + Force an object to be exported as Brep or not @@ -6784,7 +6770,7 @@ Building creation aborted. Creates an undefined architectural component - Creates an undefined architectural component + Creates an undefined architectural component @@ -6792,12 +6778,12 @@ Building creation aborted. Clone component - Clone component + Clone component Clones an object as an undefined architectural component - Clones an object as an undefined architectural component + Clones an object as an undefined architectural component @@ -6805,12 +6791,12 @@ Building creation aborted. Create IFC spreadsheet... - 建立 IFC 試算表... + Create IFC spreadsheet... Creates a spreadsheet to store IFC properties of an object. - 建立試算表以儲存物件之 IFC 屬性。 + Creates a spreadsheet to store IFC properties of an object. @@ -6818,12 +6804,12 @@ Building creation aborted. Toggle subcomponents - Toggle subcomponents + Toggle subcomponents Shows or hides the subcomponents of this object - Shows or hides the subcomponents of this object + Shows or hides the subcomponents of this object @@ -6839,23 +6825,23 @@ Building creation aborted. QObject - - + + Arch Arch - - - - + + + + Draft 吃水 - - - + + + Import-Export 匯入-匯出 diff --git a/src/Mod/Draft/CMakeLists.txt b/src/Mod/Draft/CMakeLists.txt index a80f2c5a69..45a5d23e97 100644 --- a/src/Mod/Draft/CMakeLists.txt +++ b/src/Mod/Draft/CMakeLists.txt @@ -53,6 +53,7 @@ SET(Draft_tests drafttests/test_import_gui.py drafttests/test_import_tools.py drafttests/test_pivy.py + drafttests/test_array.py drafttests/test_creation.py drafttests/test_modification.py drafttests/test_svg.py diff --git a/src/Mod/Draft/Resources/translations/Draft.ts b/src/Mod/Draft/Resources/translations/Draft.ts index 355378db6c..80708858dc 100644 --- a/src/Mod/Draft/Resources/translations/Draft.ts +++ b/src/Mod/Draft/Resources/translations/Draft.ts @@ -3183,43 +3183,43 @@ Not available if Draft preference option 'Use Part Primitives' is enab - - - - - - + + + + + + Converting: - - - + + + Conversion successful - - + + LibreDWG converter not found - - + + ODA converter not found - - + + QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3227,7 +3227,7 @@ https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3288,7 +3288,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3309,7 +3309,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3331,37 +3331,37 @@ To enabled FreeCAD to download these libraries, answer Yes. - + Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: - + image is Null - + filename does not exist on the system or in the resource file - + unable to load texture - + Does not have 'ViewObject.RootNode'. @@ -5106,53 +5106,53 @@ The final angle will be the base angle plus this amount. - + Upgrade: Unknown force method: - + Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them - + Found several faces: splitting them - + Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires - + Found only wires: extracting their edges - + No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_be.ts b/src/Mod/Draft/Resources/translations/Draft_be.ts index f31917a34a..24e5401eb5 100644 --- a/src/Mod/Draft/Resources/translations/Draft_be.ts +++ b/src/Mod/Draft/Resources/translations/Draft_be.ts @@ -3239,43 +3239,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledАсадка - - - - - - + + + + + + Converting: Пераўтварэнне: - - - + + + Conversion successful Пераўтварэнне прайшло паспяхова - - + + LibreDWG converter not found Сродак пераўтварэння LibreDWG не знойдзены - - + + ODA converter not found Сродак пераўтварэння ODA не знойдзены - - + + QCAD converter not found Сродак пераўтварэння QCADне знойдзены - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3285,7 +3285,7 @@ https://wiki.freecad.org/Import_Export_Preferences Каб атрымаць дадатковую інфармацыі, глядзіце: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3354,7 +3354,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3375,7 +3375,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3397,37 +3397,37 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Без графічнага інтэрфейсу - + Unable to insert new object into a scaled part Немагчыма ўставіць новы аб'ект у маштабаваную дэталь - + Symbol not implemented. Using a default symbol. Знак не рэалізаваны. Ужыты першапачатковы знак. - + Visibility off; removed from list: Бачнасць выключана; выдаленыя з спісу: - + image is Null выява пустая - + filename does not exist on the system or in the resource file імя файла не існуе ні ў сістэме, ні ў файле рэсурсаў - + unable to load texture немагчыма загрузіць тэкстуру - + Does not have 'ViewObject.RootNode'. Не мае 'ViewObject.RootNode'. @@ -5173,53 +5173,53 @@ The final angle will be the base angle plus this amount. Звядзенне - + Upgrade: Unknown force method: Абнаўленне: Невядомы сілавы метад: - + Found 1 block: exploding it Знойдзены адзін блок: разгортваю - + Found 1 multi-solids compound: exploding it Знойдзены адно злучэнне з некалькіх цел: разгортваю - + Found 1 parametric object: breaking its dependencies Знойдзены адзін параметрычны аб'ект: разбураю залежнасці - + Found 2 objects: subtracting them Знойдзены два аб'екты: аднімаю - + Found several faces: splitting them Знойдзена некалькі граняў: падзяляю - + Found several objects: subtracting them from the first one Знойдзена некалькі аб'ектаў: аднімаю іх з першага - + Found 1 face: extracting its wires Знойдзена адна грань: вымаю ломаную лінію - + Found only wires: extracting their edges Знойдзены толькі ломаныя лініі: вымаю рэбры - + No more downgrade possible Большае паніжэнне падзелу немагчыма diff --git a/src/Mod/Draft/Resources/translations/Draft_ca.qm b/src/Mod/Draft/Resources/translations/Draft_ca.qm index 8d7eae4c70..c63cb28b16 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_ca.qm and b/src/Mod/Draft/Resources/translations/Draft_ca.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_ca.ts b/src/Mod/Draft/Resources/translations/Draft_ca.ts index 82e24dc0ce..7c6be80ca6 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ca.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ca.ts @@ -3211,43 +3211,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalat - - - - - - + + + + + + Converting: Convertint: - - - + + + Conversion successful Conversió exitosa - - + + LibreDWG converter not found No s'ha trobat el convertidor LibreDWG - - + + ODA converter not found No s'ha trobat el convertidor ODA - - + + QCAD converter not found No s'ha trobat el convertidor QCAD - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3257,7 +3257,7 @@ Per favor, estableixi un manualment al menú Editar -> Preferències -> Im Per més informació veure: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3323,7 +3323,7 @@ Per habilitar FreeCAD a descarregar aquestes llibreries, respongui Si. - + @@ -3344,7 +3344,7 @@ Per habilitar FreeCAD a descarregar aquestes llibreries, respongui Si. - + @@ -3366,37 +3366,37 @@ Per habilitar FreeCAD a descarregar aquestes llibreries, respongui Si.Sense interfície gràfica - + Unable to insert new object into a scaled part No es pot inserir un nou objecte a una part escalada - + Symbol not implemented. Using a default symbol. Símbol no implementat. Utilitzant un símbol per defecte. - + Visibility off; removed from list: Visibilitat desactivada; eliminat de la llista: - + image is Null la imatge és nul·la - + filename does not exist on the system or in the resource file nom de fitxer no existeix al sistema ni al fitxer de recursos - + unable to load texture no es pot carregar la textura - + Does not have 'ViewObject.RootNode'. No té "ViewObject.RootNode". @@ -3856,7 +3856,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Select group - Select group + Selecciona grup @@ -3901,7 +3901,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Flip dimension - Flip dimension + Inverteix dimensió @@ -4052,7 +4052,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Add point - Add point + Afegeix punt @@ -4177,33 +4177,33 @@ L'angle final serà l'angle de base més aquesta quantitat. Create Ellipse - Create Ellipse + Crear El·lipse Pick opposite point - Pick opposite point + Tria el punt oposat Select faces from existing objects - Select faces from existing objects + Selecciona cares d'objectes existents Select an object to scale - Select an object to scale + Seleccioneu un objecte per escalar Pick base point - Pick base point + Tria el punt de base Pick reference distance from base point - Pick reference distance from base point + Tria la distància de referència des del punt de base @@ -4215,49 +4215,49 @@ L'angle final serà l'angle de base més aquesta quantitat. Some subelements could not be scaled. - Some subelements could not be scaled. + Alguns subelements no s'han pogut escalar. Unable to scale object: - Unable to scale object: + No es pot escalar l'objecte: Unable to scale objects: - Unable to scale objects: + No es poden escalar els objectes: This object type cannot be scaled directly. Please use the clone method. - This object type cannot be scaled directly. Please use the clone method. + Aquest tipus d'objecte no es pot escalar directament. Si us plau, useu el mètode de clonació. Pick new distance from base point - Pick new distance from base point + Tria una nova distància des del punt de base Layer - Layer + Capa Please select exactly two objects, the base object and the point object, before calling this command. - Please select exactly two objects, the base object and the point object, before calling this command. + Si us plau, seleccioneu exactament dos objectes, l'objecte base i l'objecte punt, abans d'invocar aquesta ordre. Point array - Point array + Matriu de punts No active Draft Toolbar. - No active Draft Toolbar. + Cap barra d'eines de Dibuix activa. @@ -4267,12 +4267,12 @@ L'angle final serà l'angle de base més aquesta quantitat. Continue mode - Continue mode + Mode continuar Toggle display mode - Toggle display mode + Commuta el mode de visualització @@ -4290,78 +4290,78 @@ L'angle final serà l'angle de base més aquesta quantitat. Edge too short! - Edge too short! + Aresta massa curta! Edges don't intersect! - Edges don't intersect! + Les arestes no intersequen! Select an object to stretch - Select an object to stretch + Seleccioni un objecte per estirar Pick first point of selection rectangle - Pick first point of selection rectangle + Tria el primer punt del rectangle de selecció Pick opposite point of selection rectangle - Pick opposite point of selection rectangle + Tria el punt oposat del rectangle de selecció Pick start point of displacement - Pick start point of displacement + Tria el punt inicial del desplaçament Pick end point of displacement - Pick end point of displacement + Tria el punt final del desplaçament Turning one Rectangle into a Wire - Turning one Rectangle into a Wire + Transformant un rectangle en una Polilínia Stretch - Stretch + Estira Create Plane - Create Plane + Crear Pla Create Rectangle - Create Rectangle + Crear Rectangle Select an object to mirror - Select an object to mirror + Seleccioni un objecte per reflectir Pick start point of mirror line - Pick start point of mirror line + Escull el punt inicial de la línia de simetria Mirror - Mirror + Simetria Pick end point of mirror line - Pick end point of mirror line + Escull el punt final de la línia de simetria @@ -4371,12 +4371,12 @@ L'angle final serà l'angle de base més aquesta quantitat. Select an object to clone - Select an object to clone + Selecciona un objecte per clonar Change slope - Change slope + Canvia el pendent @@ -4392,27 +4392,27 @@ L'angle final serà l'angle de base més aquesta quantitat. Select an object to offset - Select an object to offset + Selecciona un objecte per fer l'equidistància Offset only works on one object at a time. - Offset only works on one object at a time. + L'eina d'Equidistància només funciona amb un objecte a la vegada. Cannot offset this object type - Cannot offset this object type + No es pot fer l'Equidistància d'aquest tipus d'objecte Offset of Bezier curves is currently not supported - Offset of Bezier curves is currently not supported + L'Equidistància d'una corba de Bezier no és possible actualment Create 2D view - Create 2D view + Crea una vista 2D @@ -4454,14 +4454,14 @@ L'angle final serà l'angle de base més aquesta quantitat. At least one element must be selected. - At least one element must be selected. + Com a mínim s'ha de seleccionar un element. Selection is not suitable for array. - Selection is not suitable for array. + La selecció no és apta per a una matriu. @@ -4471,12 +4471,12 @@ L'angle final serà l'angle de base més aquesta quantitat. Object: - Object: + Objecte: Number of elements must be at least 2. - Number of elements must be at least 2. + El nombre d'elements ha de ser 2 o més. @@ -4511,25 +4511,25 @@ L'angle final serà l'angle de base més aquesta quantitat. Number of elements: - Number of elements: + Nombre d'elements: Polar angle: - Polar angle: + Angle polar: Center of rotation: - Center of rotation: + Centre de rotació: Aborted: - Aborted: + Avortat: @@ -4543,7 +4543,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Number of elements must be at least 1. - Number of elements must be at least 1. + El nombre d'elements ha de ser almenys 1. @@ -4563,32 +4563,32 @@ L'angle final serà l'angle de base més aquesta quantitat. Number of X elements: - Number of X elements: + Nombre d'elements X: Interval X: - Interval X: + Interval X: Number of Y elements: - Number of Y elements: + Nombre d'elements Y: Interval Y: - Interval Y: + Interval Y: Number of Z elements: - Number of Z elements: + Nombre d'elements Z: Interval Z: - Interval Z: + Interval Z: @@ -4612,47 +4612,47 @@ L'angle final serà l'angle de base més aquesta quantitat. Number of layers must be at least 2. - Number of layers must be at least 2. + El nombre de capes ha de ser 2 o més. Radial distance is zero. Resulting array may not look correct. - Radial distance is zero. Resulting array may not look correct. + La distància radial és zero. La matriu resultant pot no semblar correcta. Radial distance is negative. It is made positive to proceed. - Radial distance is negative. It is made positive to proceed. + La distància radial és negativa. Es converteix a positiva per poder continuar. Tangential distance cannot be zero. - Tangential distance cannot be zero. + La distància tangencial no pot ser zero. Tangential distance is negative. It is made positive to proceed. - Tangential distance is negative. It is made positive to proceed. + La distància tangencial és negativa. Es converteix a positiva per poder continuar. Radial distance: - Radial distance: + Distància radial: Tangential distance: - Tangential distance: + Distància tangencial: Number of circular layers: - Number of circular layers: + Nombre de capes circulars: Symmetry parameter: - Symmetry parameter: + Paràmetre de simetria: @@ -4732,7 +4732,7 @@ L'angle final serà l'angle de base més aquesta quantitat. No shape found - No shape found + No s'ha trobat cap forma @@ -4745,17 +4745,17 @@ L'angle final serà l'angle de base més aquesta quantitat. length: - length: + llargada: Two elements are needed. - Two elements are needed. + Són necessaris dos elements. Radius is too large - Radius is too large + El radi és massa gran @@ -4767,13 +4767,13 @@ L'angle final serà l'angle de base més aquesta quantitat. Removed original objects. - Removed original objects. + Eliminats els objectes originals. Points: - Points: + Punts: @@ -4784,22 +4784,22 @@ L'angle final serà l'angle de base més aquesta quantitat. Placement: - Placement: + Posicionament: Wrong input: incorrect type of placement. - Wrong input: incorrect type of placement. + Entrada incorrecta: tipus de posicionament incorrecte. Wrong input: incorrect type of points. - Wrong input: incorrect type of points. + Entrada incorrecta: tipus de punts incorrecte. Cannot generate shape: - Cannot generate shape: + No es pot generar la forma: @@ -4814,18 +4814,18 @@ L'angle final serà l'angle de base més aquesta quantitat. Create primitive object - Create primitive object + Crea un objecte primitiu Final placement: - Final placement: + Posicionament final: Face: True - Face: True + Cara: Cert @@ -4847,7 +4847,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a number. - Wrong input: must be a number. + Entrada incorrecta: ha de ser un nombre. @@ -4866,7 +4866,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a vector. - Wrong input: must be a vector. + Entrada incorrecta: ha de ser un vector. @@ -4887,7 +4887,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a number or vector. - Wrong input: must be a number or vector. + Entrada incorrecta: ha de ser un nombre o un vector. @@ -4901,7 +4901,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be an integer number. - Wrong input: must be an integer number. + Entrada incorrecta: ha de ser un nombre enter. @@ -4913,7 +4913,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Orthogonal array 2D - Orthogonal array 2D + Matriu ortogonal en 2D @@ -4923,25 +4923,25 @@ L'angle final serà l'angle de base més aquesta quantitat. Rectangular array 2D - Rectangular array 2D + Matriu rectangular en 2D Wrong input: must be a placement, a vector, or a rotation. - Wrong input: must be a placement, a vector, or a rotation. + Entrada incorrecta: ha de ser un posicionament, un vector o una rotació. Wrong input: object must not be a list. - Wrong input: object must not be a list. + Entrada incorrecta: l'objecte no ha de ser una llista. Wrong input: subelement not in object. - Wrong input: subelement not in object. + Entrada incorrecta: el subelement no està en l'objecte. @@ -4951,7 +4951,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: label_type must be one of the following: - Wrong input: label_type must be one of the following: + Entrada incorrecta: label_type ha de ser una de les següents opcions: @@ -4970,7 +4970,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a list of at least two vectors. - Wrong input: must be a list of at least two vectors. + Entrada incorrecta: ha de ser una llista de com a mínim dos vectors. @@ -4980,28 +4980,28 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a list of two elements. For example, [object, 'Edge1']. - Wrong input: must be a list of two elements. For example, [object, 'Edge1']. + Entrada incorrecta: ha de ser una llista de dos elements. P. ex. [object, 'Edge1']. Wrong input: object has the wrong type. - Wrong input: object has the wrong type. + Entrada incorrecta: l'objecte té el tipus equivocat. This function is deprecated. Do not use this function directly. - This function is deprecated. Do not use this function directly. + Aquesta funció és obsoleta. No utilitzis aquesta funció directament. Use one of 'make_linear_dimension', or 'make_linear_dimension_obj'. - Use one of 'make_linear_dimension', or 'make_linear_dimension_obj'. + Utilitza 'make_linear_dimension' o bé 'make_linear_dimension_obj'. Wrong input: object doesn't have a 'Shape' to measure. - Wrong input: object doesn't have a 'Shape' to measure. + Entrada incorrecta: l'objecte no té una 'Forma' a mesurar. @@ -5012,18 +5012,18 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be an integer. - Wrong input: must be an integer. + Entrada incorrecta: ha de ser un nombre enter. i1: values below 1 are not allowed; will be set to 1. - i1: values below 1 are not allowed; will be set to 1. + i1: els valors menors de 1 no estan permesos; es canviarà per 1. Wrong input: vertex not in object. - Wrong input: vertex not in object. + Entrada incorrecta: el vèrtex no està a l'objecte. @@ -5060,17 +5060,17 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a list with two angles. - Wrong input: must be a list with two angles. + Entrada incorrecta: ha de ser una llista amb dos angles. Wrong input: must be a number or quantity. - Wrong input: must be a number or quantity. + Entrada incorrecta: ha de ser un nombre o quantitat. Layers - Layers + Capes @@ -5094,17 +5094,17 @@ L'angle final serà l'angle de base més aquesta quantitat. Wrong input: must be a number between 0 and 100. - Wrong input: must be a number between 0 and 100. + Entrada incorrecta: ha de ser un nombre entre 0 i 100. Activate this layer - Activate this layer + Activa aquesta capa Select layer contents - Select layer contents + Selecciona el contingut de la capa @@ -5116,12 +5116,12 @@ L'angle final serà l'angle de base més aquesta quantitat. Add new layer - Add new layer + Afegeix una nova capa Relabeling layer: - Relabeling layer: + Reetiquetant la capa: @@ -5142,53 +5142,53 @@ L'angle final serà l'angle de base més aquesta quantitat. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - - - Found 1 block: exploding it - Found 1 block: exploding it - - - - Found 1 multi-solids compound: exploding it - Found 1 multi-solids compound: exploding it - - Found 1 parametric object: breaking its dependencies - Found 1 parametric object: breaking its dependencies + Found 1 block: exploding it + Trobat 1 bloc: descomposant-lo - + + Found 1 multi-solids compound: exploding it + Trobat 1 multi-sòlid compost: descomposant-lo + + + + Found 1 parametric object: breaking its dependencies + Trobat un objecte paramètric: trencant les seves dependències + + + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them - Found several faces: splitting them + Trobades diverses cares: dividint-les - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible @@ -5200,7 +5200,7 @@ L'angle final serà l'angle de base més aquesta quantitat. The two points are coincident - The two points are coincident + Els dos punts són coincidents @@ -5210,12 +5210,12 @@ L'angle final serà l'angle de base més aquesta quantitat. Object must be a closed shape - Object must be a closed shape + L'objecte ha de ser una forma tancada No solid object created - No solid object created + No s'ha creat cap objecte sòlid @@ -5240,7 +5240,7 @@ L'angle final serà l'angle de base més aquesta quantitat. Found 2 objects: fusing them - Found 2 objects: fusing them + Trobats 2 objectes: fusionant-los @@ -5444,17 +5444,17 @@ from menu Tools -> Addon Manager Name exists. Overwrite? - Name exists. Overwrite? + El nom ja existeix. El sobreescric? Error: json module not found. Unable to load style - Error: json module not found. Unable to load style + Error: no es troba el mòdul json. No es pot carregar l'estil Error: json module not found. Unable to save style - Error: json module not found. Unable to save style + Error: no es troba el mòdul json. No es pot desar l'estil @@ -5470,7 +5470,7 @@ from menu Tools -> Addon Manager Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction - Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction + La direcció d'equidistància no ha sigut definida. Per favor, mou el cursor a un costat o altre de l'objecte per indicar-ne la direcció @@ -5494,27 +5494,27 @@ from menu Tools -> Addon Manager X factor - X factor + Factor X Y factor - Y factor + Factor Y Z factor - Z factor + Factor Z Uniform scaling - Uniform scaling + Escalat uniforme Working plane orientation - Working plane orientation + Orientació del pla de treball @@ -5584,7 +5584,7 @@ from menu Tools -> Addon Manager Face color - Face color + Color de cara @@ -5599,7 +5599,7 @@ from menu Tools -> Addon Manager New Layer - New Layer + Nova capa @@ -5612,7 +5612,7 @@ from menu Tools -> Addon Manager successfully exported - successfully exported + exportat amb èxit @@ -5620,7 +5620,7 @@ from menu Tools -> Addon Manager Did not find enough coordinates - Did not find enough coordinates + No s'han trobat suficients coordenades @@ -5641,7 +5641,7 @@ from menu Tools -> Addon Manager Select Plane - Select Plane + Selecciona el Pla @@ -6112,7 +6112,7 @@ on supported nodes and on supported objects. Add point - Add point + Afegeix punt @@ -6215,7 +6215,7 @@ Create a group first to use this tool. Select group - Select group + Selecciona grup @@ -6301,7 +6301,7 @@ El podeu utilitzar per a desar una posició de la càmera i els estats dels obje Flip dimension - Flip dimension + Inverteix dimensió @@ -6535,7 +6535,7 @@ CTRL to snap, SHIFT to constrain, ALT to copy. Layer - Layer + Capa @@ -6550,7 +6550,7 @@ Objects added to this layer can share the same visual properties such as line co Point array - Point array + Matriu de punts @@ -6677,7 +6677,7 @@ to turn it into a 'Draft Dimension' object. Stretch - Stretch + Estira @@ -6707,7 +6707,7 @@ then draw a line to specify the distance and direction of stretching. Mirror - Mirror + Simetria @@ -6786,7 +6786,7 @@ The array can be turned into an orthogonal or a circular array by changing its t Set slope - Set slope + Determina el pendent @@ -6795,11 +6795,10 @@ If a polyline is selected, it will apply the slope transformation to each of its The slope will always change the Z value, therefore this command only works well for straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. - Sets the slope of the selected line by changing the value of the Z value of one of its points. -If a polyline is selected, it will apply the slope transformation to each of its segments. + Estableix el pendent (tangent de l'angle) de la línia seleccionada canviant el valor en l'eix Z d'un dels seus punts. Si se selecciona una polilínia, s'aplicarà el canvi de pendent a tots els seus segments. -The slope will always change the Z value, therefore this command only works well for -straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. +El pendent sempre canviarà el valor Z, per tant aquesta ordre només funciona bé per a +línies rectes dibuixades en el pla XY. Els objectes seleccionats que no siguin línies simples seran ignorats. diff --git a/src/Mod/Draft/Resources/translations/Draft_cs.qm b/src/Mod/Draft/Resources/translations/Draft_cs.qm index f0e50bde9a..52534788e4 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_cs.qm and b/src/Mod/Draft/Resources/translations/Draft_cs.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_cs.ts b/src/Mod/Draft/Resources/translations/Draft_cs.ts index d3a0783850..c25834126f 100644 --- a/src/Mod/Draft/Resources/translations/Draft_cs.ts +++ b/src/Mod/Draft/Resources/translations/Draft_cs.ts @@ -176,7 +176,7 @@ The line spacing for multi-line texts and labels (relative to the font size) - The line spacing for multi-line texts and labels (relative to the font size) + Mezera řádků pro vícevrstvé texty a popisky (vzhledem k velikosti písma) @@ -247,7 +247,7 @@ The distance between the dimension text and the dimension line - The distance between the dimension text and the dimension line + Vzdálenost mezi textem kótování a kótovací čárou @@ -303,7 +303,7 @@ Dimension details - Dimension details + Podrobnosti o rozměrech @@ -3237,43 +3237,43 @@ Není k dispozici, pokud je povolena možnost předvolby návrhu „Použít zá Ponor - - - - - - + + + + + + Converting: Konverze: - - - + + + Conversion successful Konverze úspěšná - - + + LibreDWG converter not found Převaděč LibreDWG nebyl nalezen - - + + ODA converter not found Převodník ODA nebyl nalezen - - + + QCAD converter not found Převaděč QCAD nebyl nalezen - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3284,7 +3284,7 @@ Další informace viz: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3354,7 +3354,7 @@ Chcete-li povolit FreeCAD stahování těchto knihoven, odpovězte Ano. - + @@ -3375,7 +3375,7 @@ Chcete-li povolit FreeCAD stahování těchto knihoven, odpovězte Ano. - + @@ -3397,37 +3397,37 @@ Chcete-li povolit FreeCAD stahování těchto knihoven, odpovězte Ano.Žádné grafické rozhraní - + Unable to insert new object into a scaled part Nelze vložit nový objekt do upravené součásti - + Symbol not implemented. Using a default symbol. Symbol není implementován. Použití výchozího symbolu. - + Visibility off; removed from list: Viditelnost vypnuta; odstraněno ze seznamu: - + image is Null obrázek je Null - + filename does not exist on the system or in the resource file název_souboru neexistuje v systému ani v souboru prostředků - + unable to load texture nelze načíst texturu - + Does not have 'ViewObject.RootNode'. Nemá 'ViewObject.RootNode'. @@ -5173,53 +5173,53 @@ Konečný úhel bude základní úhel plus tato hodnota. Zploštit - + Upgrade: Unknown force method: Upgrade: Neznámá metoda síly: - + Found 1 block: exploding it Nalezen 1 blok: exploduje - + Found 1 multi-solids compound: exploding it Nalezena 1 sloučenina s více pevnými látkami: exploduje - + Found 1 parametric object: breaking its dependencies Nalezen 1 parametrický objekt: prolomení jeho závislostí - + Found 2 objects: subtracting them Nalezeny 2 objekty: jejich odečtení - + Found several faces: splitting them Bylo nalezeno několik tváří: rozdělit je - + Found several objects: subtracting them from the first one Našel několik objektů: odečtem je od prvního - + Found 1 face: extracting its wires Nalezen 1 obličej: vytahování jeho drátů - + Found only wires: extracting their edges Nalezeny pouze dráty: vytahování jejich okrajů - + No more downgrade possible Již není možný downgrade diff --git a/src/Mod/Draft/Resources/translations/Draft_de.qm b/src/Mod/Draft/Resources/translations/Draft_de.qm index 78e6a2888d..4012a2242d 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_de.qm and b/src/Mod/Draft/Resources/translations/Draft_de.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_de.ts b/src/Mod/Draft/Resources/translations/Draft_de.ts index 1b9cf6114e..0d4cc094c5 100644 --- a/src/Mod/Draft/Resources/translations/Draft_de.ts +++ b/src/Mod/Draft/Resources/translations/Draft_de.ts @@ -288,12 +288,12 @@ Tick - Senkrechter Strich + Schrägstrich Tick-2 - Schrägstrich + Schrägstrich-2 @@ -1154,12 +1154,12 @@ value by using the [ and ] keys while drawing Tick - Senkrechter Strich + Schrägstrich Tick-2 - Schrägstrich + Schrägstrich-2 @@ -1272,7 +1272,7 @@ value by using the [ and ] keys while drawing General Draft Settings - Generelle Entwurfs-Einstellungen + Allgemeine Draft-Einstellungen @@ -1474,7 +1474,7 @@ Beachten Sie, dass dies nicht vollständig unterstützt wird und viele Objekte m The default color for snap symbols - Die Standardfarbe für Fangsymbole + Die Standardfarbe für Einrastsymbole @@ -1701,12 +1701,12 @@ such as "Arial:Bold" Tick - Senkrechter Strich + Schrägstrich Tick-2 - Schrägstrich + Schrägstrich-2 @@ -2016,7 +2016,7 @@ im Addon Manager installieren. Draft objects - Entwurfs-Objekte + Draft-Objekte @@ -2186,12 +2186,12 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Grid and snapping - Raster und einrasten + Raster und Einrasten Snapping - Objektfang + Einrasten @@ -2262,12 +2262,12 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Show Draft Snap toolbar - Entwurfs-Fang-Werkzeugleiste einblenden + Symbolleiste Draft-Einrasten einblenden Hide Draft snap toolbar after use - Entwurfs-Fang-Werkzeugleiste nach Verwendung ausblenden + Symbolleiste Draft-Einrasten nach Verwendung ausblenden @@ -2287,7 +2287,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. If checked, the Draft grid will always be visible when the Draft workbench is active. Otherwise only when using a command - Wenn aktiviert, ist das Entwurfsraster stets eingeblendet, wenn die Entwurfs-Arbeitsumgebung verwendet wird. Sonst nur, wenn ein Befehl verwendet wird + Wenn aktiviert, wird das Draft-Raster stets eingeblendet, wenn der Arbeitsbereich Draft verwendet wird, ansonsten nur, wenn ein Befehl verwendet wird @@ -2332,7 +2332,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Mainlines will be drawn thicker. Specify here how many squares between mainlines. - Hauptlinien werden dicker gezeichnet. Legen Sie hier fest, wie viele Kästchen zwischen den Hauptlinien sein sollen. + Hauptlinien werden dicker gezeichnet. Geben Sie hier an, wie viele Quadrate zwischen den Hauptlinien liegen. @@ -2377,7 +2377,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Draft Edit preferences - Entwurfsbearbeitungseinstellungen + Draft-Bearbeitungseinstellungen @@ -2397,7 +2397,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Draft edit pick radius - Auswahlradius der Entwurfsbearbeitung + Draft-Auswahlradius bearbeiten @@ -2662,7 +2662,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Draft Statusbar - Entwurf Statusleiste + Draft-Statusleiste @@ -2672,7 +2672,7 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Draft snap widget - Entwurf Schnapp-Widget + Draft-Widget Einrasten @@ -2741,17 +2741,17 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Snap On/Off - Fangen ein/aus + Einrasten ein/aus Increase snap radius - Fangradius erweitern + Einrast-Radius erweitern Decrease snap radius - Fangradius verkleinern + Einrast-Radius verkleinern @@ -2810,14 +2810,14 @@ Dies kann bei neueren als DXF R12 Vorlagen fehlschlagen. Top - Oben + Draufsicht Front - Vorne + Vorderansicht @@ -3235,43 +3235,43 @@ Nicht verfügbar, wenn die Option "Primitive Teile verwenden" aktiviert istDraft - - - - - - + + + + + + Converting: Umwandlung: - - - + + + Conversion successful Umwandlung erfolgreich - - + + LibreDWG converter not found LibreDWG-Konverter nicht gefunden - - + + ODA converter not found ODA-Konverter nicht gefunden - - + + QCAD converter not found QCAD-Konverter nicht gefunden - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3282,7 +3282,7 @@ Für weitere Informationen siehe: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3346,11 +3346,11 @@ Um FreeCAD zu erlauben, diese Bibliotheken herunterzuladen, wählen Sie "Ja". Set the scale used by draft annotation tools - Maßstab für Entwurfsmitteilungswerkzeuge festlegen + Maßstab für Draft-Beschriftungswerkzeuge festlegen - + @@ -3371,7 +3371,7 @@ Um FreeCAD zu erlauben, diese Bibliotheken herunterzuladen, wählen Sie "Ja". - + @@ -3393,37 +3393,37 @@ Um FreeCAD zu erlauben, diese Bibliotheken herunterzuladen, wählen Sie "Ja".Keine grafische Schnittstelle - + Unable to insert new object into a scaled part Kann kein neues Objekt in einen skaliertes Teil einfügen - + Symbol not implemented. Using a default symbol. Symbol nicht implementiert. Ein Standardsymbol wird verwendet. - + Visibility off; removed from list: Sichtbarkeit ausgeschaltet; aus der Liste entfernt: - + image is Null Bild ist Null - + filename does not exist on the system or in the resource file Dateiname existiert nicht auf dem System oder in der Ressourcendatei - + unable to load texture Textur kann nicht geladen werden - + Does not have 'ViewObject.RootNode'. Hat keinen 'ViewObject.RootNode'. @@ -4285,7 +4285,7 @@ Der endgültige Winkel ist der Basiswinkel plus dieser Betrag. No active Draft Toolbar. - Keine aktive Entwurfs-Symbolleiste. + Keine aktive Draft-Symbolleiste. @@ -5170,53 +5170,53 @@ Der endgültige Winkel ist der Basiswinkel plus dieser Betrag. Abflachen - + Upgrade: Unknown force method: Upgrade: Unbekannte Zwangs-Methode: - + Found 1 block: exploding it 1 Block gefunden: Wird aufgelöst - + Found 1 multi-solids compound: exploding it Ein Verbund mehrerer Volumenkörper gefunden: wird zerlegt - + Found 1 parametric object: breaking its dependencies 1 parametrisches Objekt gefunden: Entferne seine Abhängigkeiten - + Found 2 objects: subtracting them 2 Objekte gefunden: Sie werden subtrahiert - + Found several faces: splitting them Mehrere Flächen gefunden: Werden getrennt - + Found several objects: subtracting them from the first one Mehrere Objekte gefunden: Subtrahiere sie vom ersten Objekt - + Found 1 face: extracting its wires 1 Fläche gefunden: Extrahiere die Kanten - + Found only wires: extracting their edges Nur Drähte gefunden: Kanten extrahieren - + No more downgrade possible Kein weiteres Downgrade möglich @@ -5384,13 +5384,13 @@ Der endgültige Winkel ist der Basiswinkel plus dieser Betrag. Draft utility tools - Entwurfswerkzeuge + Draft-Hilfswerkzeuge Draft snap - Entwurfs-Einrastung + Draft-Einrasten @@ -5410,7 +5410,7 @@ Der endgültige Winkel ist der Basiswinkel plus dieser Betrag. &Utilities - &Werkzeuge + &Dienstprogramme @@ -5498,7 +5498,7 @@ aus dem Menü Extras -> Addon Manager Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction - Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction + Versatz-Richtung ist nicht definiert. Bitte bewegen Sie die Maus zunächst auf eine Seite des Objekts, um die Richtung festzulegen @@ -5537,7 +5537,7 @@ aus dem Menü Extras -> Addon Manager Uniform scaling - Uniform scaling + Einheitliche Skalierung @@ -5567,12 +5567,12 @@ aus dem Menü Extras -> Addon Manager Point object doesn't have a discrete point, it cannot be used for an array. - Point object doesn't have a discrete point, it cannot be used for an array. + Das Punkt-Objekt hat keinen diskreten Punkt, es kann nicht für ein Array verwendet werden. _BSpline.createGeometry: Closed with same first/last Point. Geometry not updated. - _BSpline.createGeometry: Closed with same first/last Point. Geometry not updated. + _BSpline.createGeometry: Geschlossene Kurve mit identischem Start- und Endpunkt gefunden. Geometrie wurde nicht aktualisiert. @@ -5828,12 +5828,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Lock - Fangsperre + Einrasten sperren Enables or disables snapping globally. - Aktiviert oder deaktiviert das Fangen global. + Aktiviert oder deaktiviert das Einrasten global. @@ -5841,12 +5841,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Midpoint - Mittelpunkt fangen + Einrasten auf Mittelpunkt Snaps to the midpoint of edges. - Einrasten an den Mittelpunkten der Kanten. + Rastet auf Mittelpunkte von Kanten ein. @@ -5854,12 +5854,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Perpendicular - Senkrecht fangen + Einrasten senkrecht Snaps to the perpendicular points on faces and edges. - Rastet an Punkten senkrecht zu Flächen und Kanten ein. + Rastet auf Punkte senkrecht zu Flächen und Kanten ein. @@ -5867,7 +5867,7 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Grid - Raster fangen + Einrasten auf Raster @@ -5880,12 +5880,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Intersection - Schnittstelle fangen + Einrasten auf Schnittpunkt Snaps to the intersection of two edges. - Einrasten am Schnittpunkt von zwei Kanten. + Rastet auf dem Schnittpunkt zweier Kanten ein. @@ -5893,12 +5893,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Parallel - Parallel fangen + Einrasten parallel Snaps to an imaginary line parallel to straight edges. - Einrasten an einer imaginären Linie parallel zu geraden Kanten. + Rastet auf einer imaginären Linie parallel zu geraden Kanten ein. @@ -5906,12 +5906,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Endpoint - Endpunkt fangen + Einrasten auf Endpunkt Snaps to the endpoints of edges. - Einrasten an den Endpunkten von Kanten. + Rastet auf Endpunkte von Kanten ein. @@ -5919,12 +5919,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Angle - Winkel fangen + Einrasten auf Winkel Snaps to the special cardinal points on circular edges, at multiples of 30° and 45°. - Einrasten an speziellen Punkten von kreisförmigen Kanten bei einem Vielfachen von 30° und 45°. + Rastet auf bestimmte Punkte kreisförmiger Kanten ein, bei den Vielfachen von 30° und 45°. @@ -5932,12 +5932,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Center - Zentrum fangen + Einrasten auf Zentrum Snaps to the center point of faces and circular edges, and to the Placement point of Working Plane Proxies and Building Parts. - Einrasten an der Mitte von Flächen und kreisförmigen Kanten sowie an Platzierungspunkten von Bauteilen und Arbeitsebenen Proxies. + Rastet auf Mittelpunkte von Flächen und kreisförmigen Kanten sowie auf Positionierungspunkte von Arbeitsebenen-Proxies und Gebäudeteilen. @@ -5945,12 +5945,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Extension - Einrast-Erweiterung + Einrasten auf Verlängerung Snaps to an imaginary line that extends beyond the endpoints of straight edges. - Einrasten an einer imaginären Verlängerung einer geraden Kante. + Rastet auf eine imaginäre Linie ein, die eine gerade Kante über ihre Endpunkte hinaus verlängert. @@ -5958,12 +5958,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Near - In der Nähe fangen + Einrasten dichtest Snaps to the nearest point on faces and edges. - Einrasten an dem nächstgelegenen Punkt auf Flächen und Kanten. + Rastet auf dem am nächsten liegenden Punkt einer Fläche oder Kante ein. @@ -5971,12 +5971,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Ortho - Orthogonal fangen + Einrasten Ortho Snaps to imaginary lines that cross the previous point at multiples of 45°. - Einrasten an imaginären Linien, die den vorherigen Punkt bei Vielfachen von 45° schneiden. + Rastet auf imaginäre Linien ein, die durch den vorherigen Punkt verlaufen, unter einem Winkel, der ein Vielfaches von 45° ist. @@ -5984,12 +5984,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Special - Spezielles Einrasten + Einrasten spezial Snaps to special points defined by the object. - Einrasten an speziellen Punkten, die vom Objekt definiert werden. + Rastet auf spezielle Punkte ein, die vom Objekt bestimmt werden. @@ -5997,7 +5997,7 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Dimensions - Bemaßung einrasten + Einrasten auf Maße @@ -6010,7 +6010,7 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Snap Working Plane - Arbeitsebene einrasten + Einrasten auf Arbeitsebene @@ -6023,12 +6023,12 @@ Eine einzelne Skizze mit nicht verbundenen Linien wird jedoch in mehrere einzeln Show snap toolbar - Fang-Werkzeugleiste einblenden + Symbolleiste Draft-Einrasten anzeigen Shows the snap toolbar if it is hidden. - Zeigt die Fang-Werkzeugleiste an, wenn diese ausgeblendet ist. + Zeigt die Symbolleiste Draft-Einrasten an, wenn diese ausgeblendet ist. @@ -6101,7 +6101,7 @@ STRG zum Fangen, SHIFT zum Festlegen. Toggles the Draft grid on and off. - Entwurfsraster ein-/ausschalten. + Schaltet das Draft-Raster ein- bzw. aus. @@ -6313,7 +6313,7 @@ Danach können damit jederzeit andere Kamerapositionen und Objektzustände gespe Wire to B-spline - Linienzug zu B-Spline + Kantenzug zu B-Spline @@ -6389,9 +6389,9 @@ STRG zum Fangen, SHIFT zum Festlegen Splits the selected line or polyline into two independent lines or polylines by clicking anywhere along the original object. It works best when choosing a point on a straight segment and not a corner vertex. - Splits the selected line or polyline into two independent lines -or polylines by clicking anywhere along the original object. -It works best when choosing a point on a straight segment and not a corner vertex. + Teilt die ausgewählte Linie oder Polyline in zwei unabhängige Linien +oder Polylinien, indem Du irgendwo entlang des ursprünglichen Objekts klickst. +Es funktioniert am besten bei der Auswahl eines Punktes auf einem geraden Segment und nicht bei einem Eckpunkt. @@ -6405,8 +6405,7 @@ It works best when choosing a point on a straight segment and not a corner verte Trims or extends the selected object, or extrudes single faces. CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. - Trims or extends the selected object, or extrudes single faces. -CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. + Beschneidet oder erweitert das ausgewählte Objekt oder extrudiert einzelne Flächen. STRG fängt, SHIFT beschränkt auf das aktuelle Segment oder die Normale, ALT invertiert. @@ -6432,7 +6431,7 @@ CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. Applies the current style defined in the toolbar (line width and colors) to the selected objects and groups. - Applies the current style defined in the toolbar (line width and colors) to the selected objects and groups. + Wendet den in der Symbolleiste definierten Stil (Linienbreite und -farben) auf die ausgewählten Objekte und Gruppen an. @@ -6551,8 +6550,8 @@ Die Anordnung kann durch Ändern des Typs in eine polare oder kreisförmige Anor Scales the selected objects from a base point. CTRL to snap, SHIFT to constrain, ALT to copy. - Scales the selected objects from a base point. -CTRL to snap, SHIFT to constrain, ALT to copy. + Skaliert die ausgewählten Objekte von einem Basispunkt. +STRG zum Fangen, SHIFT zum Einschränken, ALT zum Kopieren. @@ -6566,8 +6565,8 @@ CTRL to snap, SHIFT to constrain, ALT to copy. Adds a layer to the document. Objects added to this layer can share the same visual properties such as line color, line width, and shape color. - Adds a layer to the document. -Objects added to this layer can share the same visual properties such as line color, line width, and shape color. + Fügt dem Dokument eine Ebene hinzu. +Objekte, die dieser Ebene hinzugefügt werden, können die gleichen visuellen Eigenschaften wie Linienfarbe, Linienbreite und Farbe für Formen teilen. @@ -6657,9 +6656,9 @@ Dies kann verwendet werden, um mehrere Objekte nacheinander zu zeichnen.Switches the display mode of selected objects from flatlines to wireframe and back. This is helpful to quickly visualize objects that are hidden by other objects. This is intended to be used with closed shapes and solids, and doesn't affect open wires. - Switches the display mode of selected objects from flatlines to wireframe and back. -This is helpful to quickly visualize objects that are hidden by other objects. -This is intended to be used with closed shapes and solids, and doesn't affect open wires. + Schaltet den Anzeigemodus ausgewählter Objekte von flache Linien auf Drahtgitter und zurück um. +Dies ist hilfreich, um schnell Objekte, die von anderen Objekten verdeckt werden, zu visualisieren. +Dies ist für geschlossene Formen und Volumenkörper vorgesehen und wirkt sich nicht auf offene Kantenzüge aus. @@ -6708,9 +6707,9 @@ um es in ein 'Draft Dimension'-Objekt umzuwandeln. Stretches the selected objects. Select an object, then draw a rectangle to pick the vertices that will be stretched, then draw a line to specify the distance and direction of stretching. - Stretches the selected objects. -Select an object, then draw a rectangle to pick the vertices that will be stretched, -then draw a line to specify the distance and direction of stretching. + Streckt die ausgewählten Objekte. +Wähle ein Objekt aus und zeichne ein Rechteck um die Knotenpunkte, die gestreckt werden sollen. +Zeichne danach eine Linie, um die Länge und Richtung der Streckung anzugeben. @@ -6723,7 +6722,7 @@ then draw a line to specify the distance and direction of stretching. Creates a 2-point rectangle. CTRL to snap. - Erstellt ein Rechteck aus 2 Punkten. STRG zum Fangen. + Erstellt ein Rechteck aus 2 Punkten. STRG zum Einrasten. @@ -6736,7 +6735,7 @@ then draw a line to specify the distance and direction of stretching. Mirrors the selected objects along a line defined by two points. - Mirrors the selected objects along a line defined by two points. + Spiegelt die ausgewählten Objekte entlang einer Linie, die durch zwei Punkte definiert wird. @@ -6819,11 +6818,11 @@ If a polyline is selected, it will apply the slope transformation to each of its The slope will always change the Z value, therefore this command only works well for straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. - Sets the slope of the selected line by changing the value of the Z value of one of its points. -If a polyline is selected, it will apply the slope transformation to each of its segments. + Legt die Steigung der ausgewählten Linie fest, indem der Z-Wert eines ihrer Punkte geändert wird. +Wenn eine Polylinie ausgewählt ist, bezieht sich die Steigungstransformation auf jedes ihrer Segmente. -The slope will always change the Z value, therefore this command only works well for -straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. +Die Steigung ändert immer den Z-Wert, daher funktioniert dieser Befehl nur für +gerade Entwurfslinien, die in der XY-Ebene gezeichnet werden. Ausgewählte Objekte, die keine einzelnen Linien sind, werden ignoriert. @@ -6839,10 +6838,9 @@ straight Draft lines that are drawn in the XY plane. Selected objects that aren' The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. For example, it can join the selected objects into one, convert simple edges into parametric polylines, convert closed edges into filled faces and parametric polygons, and merge faces into a single face. - Upgrades the selected objects into more complex shapes. -The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. -For example, it can join the selected objects into one, convert simple edges into parametric polylines, -convert closed edges into filled faces and parametric polygons, and merge faces into a single face. + Verwandelt die ausgewählten Objekte in komplexere Formen. +Das Ergebnis der Operation hängt von den Objekttypen ab und führt die Verwandlung möglicherweise mehrfach hintereinander aus. +Beispielsweise können ausgewählte Objekte in eines zusammengefügt werden, einfache Kanten in Polylinien verwandelt, geschlossene Kanten in gefüllte Flächen oder parametrische Polygone verwandelt und mehrere Flächen zu einer einzigen zusammengefasst werden. @@ -6857,9 +6855,9 @@ convert closed edges into filled faces and parametric polygons, and merge faces Offsets of the selected object. It can also create an offset copy of the original object. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. - Offsets of the selected object. -It can also create an offset copy of the original object. -CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. + Versatz des ausgewählten Objekts. +Es kann auch eine versetzte Kopie des Originalobjekts erstellt werden. +STRG zum Fangen, SHIFT zum Einschränken. Halte ALT gedrückt und klicke, um bei jedem Klick eine Kopie zu erstellen. @@ -6908,9 +6906,8 @@ Die geschlossenen Formen können für Extrusionen und boolesche Operationen verw Heal faulty Draft objects saved with an earlier version of the program. If an object is selected it will try to heal that object in particular, otherwise it will try to heal all objects in the active document. - Heal faulty Draft objects saved with an earlier version of the program. -If an object is selected it will try to heal that object in particular, -otherwise it will try to heal all objects in the active document. + Heilen Sie fehlerhafte Zeichnungsobjekte die mit einer früheren Version des Programms erstellt wurden. +Wenn ein Objekt ausgewählt ist, wird versucht, genau dieses Objekt zu heilen, andernfalls wird versucht, alle Objekte im aktiven Dokument zu heilen. @@ -6925,9 +6922,9 @@ otherwise it will try to heal all objects in the active document. Downgrades the selected objects into simpler shapes. The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. - Downgrades the selected objects into simpler shapes. -The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. -For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. + Reduziert die ausgewählten Objekte in einfachere Formen. +Das Ergebnis der Operation hängt von der Art der Objekte ab, wobei die Reduktion mehrfach hintereinander durchgeführt werden kann. +Zum Beispiel zerlegt es die ausgewählten Polylinien in einfachere Flächen, Kanten und dann Kantenzügen. Es kann auch Flächen subtrahieren. @@ -6935,14 +6932,14 @@ For example, it explodes the selected polylines into simpler faces, wires, and t The placement of the base point of the first line - The placement of the base point of the first line + Die Platzierung des Basispunkts der ersten Linie The text displayed by this object. It is a list of strings; each element in the list will be displayed in its own line. - The text displayed by this object. -It is a list of strings; each element in the list will be displayed in its own line. + Der Text, der von diesem Objekt angezeigt wird. +Es ist eine Liste von Zeichenketten; jedes Element in der Liste wird in einer eigenen Zeile angezeigt. @@ -6972,7 +6969,7 @@ It is a list of strings; each element in the list will be displayed in its own l The base object used by this object - The base object used by this object + Das von diesem Objekt verwendete Basisobjekt @@ -6997,7 +6994,7 @@ It is a list of strings; each element in the list will be displayed in its own l If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) - If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) + Wenn deaktiviert, wird die Schraffur unverändert auf die Flächen angewandt (das kann bei Flächen, die nicht in der XY-Ebene liegen, zu falschen Ergebnissen führen) @@ -7013,8 +7010,8 @@ It is a list of strings; each element in the list will be displayed in its own l If Clones includes several objects, set True for fusion or False for compound - If Clones includes several objects, -set True for fusion or False for compound + Falls Klone mehrere Objekte enthalten, setzen Sie +Wahr für Fusion oder Falsch für Verbund @@ -7025,8 +7022,7 @@ set True for fusion or False for compound End angle of the arc (for a full circle, give it same value as First Angle) - End angle of the arc (for a full circle, - give it same value as First Angle) + Endwinkel des Bogens (für einen Vollkreis, geben Sie hier den gleichen Wert wie für den ersten Winkel an) @@ -7069,7 +7065,7 @@ set True for fusion or False for compound How the polygon must be drawn from the control circle - How the polygon must be drawn from the control circle + Wie das Polygon vom Kontrollkreis aus gezeichnet werden muss @@ -7094,7 +7090,7 @@ set True for fusion or False for compound The object along which the copies will be distributed. It must contain 'Edges'. - The object along which the copies will be distributed. It must contain 'Edges'. + Das Objekt, an dem entlang die Kopien verteilt werden. Es muss 'Kanten' enthalten. @@ -7118,8 +7114,8 @@ set True for fusion or False for compound The position of the tip of the leader line. This point can be decorated with an arrow or another symbol. - The position of the tip of the leader line. -This point can be decorated with an arrow or another symbol. + Die Position der Spitze der Hinweislinie. +Dieser Punkt kann mit einem Pfeil oder einem anderen Symbol versehen werden. @@ -7127,10 +7123,10 @@ This point can be decorated with an arrow or another symbol. as 'Text', depending on 'Label Type'. 'Target' won't be used if 'Label Type' is set to 'Custom'. - Object, and optionally subelement, whose properties will be displayed -as 'Text', depending on 'Label Type'. + Objekt und optionales Unterelement, dessen Eigenschaften in Abhängigkeit des 'Bezeichnungstyps' als 'Text' +angezeigt wird. -'Target' won't be used if 'Label Type' is set to 'Custom'. +'Ziel' wird nicht verwendet, wenn der 'Bezeichnungstyp' auf 'Benutzerdefiniert' eingestellt ist. @@ -7143,15 +7139,16 @@ The middle point is calculated automatically depending on the chosen If 'Straight Direction' is set to 'Custom', the 'Points' property can be set as a list of arbitrary points. - The list of points defining the leader line; normally a list of three points. + Die Liste der Punkte, die die Hinweislinie definieren; normalerweise eine Liste +von drei Punkten. -The first point should be the position of the text, that is, the 'Placement', -and the last point should be the tip of the line, that is, the 'Target Point'. -The middle point is calculated automatically depending on the chosen -'Straight Direction' and the 'Straight Distance' value and sign. +Der erste Punkt sollte die Position des Textes sein, also die 'Platzierung' +und der letzte Punkt sollte die Spitze der Linie sein, also der 'Zielpunkt'. +Der mittlere Punkt wird abhängig von den gewählten Werten und Vorzeichen +für 'gerade Richtung' und 'gerader Abstand' automatisch berechnet. -If 'Straight Direction' is set to 'Custom', the 'Points' property -can be set as a list of arbitrary points. +Wenn 'gerade Richtung' auf 'Benutzerdefiniert' gesetzt ist, kann die Eigenschaft +'Punkte' als Liste von beliebigen Punkten gesetzt werden. @@ -7159,10 +7156,10 @@ can be set as a list of arbitrary points. If 'Custom' is chosen, the points of the leader can be specified by assigning a custom list to the 'Points' attribute. - The direction of the straight segment of the leader line. + Die Richtung des geraden Segments der Hinweislinie. -If 'Custom' is chosen, the points of the leader can be specified by -assigning a custom list to the 'Points' attribute. +Wenn 'Benutzerdefiniert' ausgewählt ist, können die Punkte der Hinweislinie durch +Zuweisen einer benutzerdefinierten Liste zum Attribut 'Punkte' angegeben werden. @@ -7171,21 +7168,21 @@ assigning a custom list to the 'Points' attribute. This is an oriented distance; if it is negative, the line will be drawn to the left or below the 'Text', otherwise to the right or above it, depending on the value of 'Straight Direction'. - The length of the straight segment of the leader line. + Die Länge des geraden Segments der Führungslinie. -This is an oriented distance; if it is negative, the line will be drawn -to the left or below the 'Text', otherwise to the right or above it, -depending on the value of 'Straight Direction'. +Dies ist eine gerichtete Distanz. Wenn sie negativ ist, wird die Linie +links oder unterhalb des 'Textes' gezeichnet. Sonst rechts oder darüber, +abhängig vom Wert der Eigenschaft 'Gerade Richtung'. The placement of the 'Text' element in 3D space - The placement of the 'Text' element in 3D space + Platzierung des 'Text' Elements im 3D-Raum The text to display when 'Label Type' is set to 'Custom' - The text to display when 'Label Type' is set to 'Custom' + Der anzuzeigende Text, wenn Typ auf benutzerdefiniert festgelegt ist @@ -7194,11 +7191,12 @@ depending on the value of 'Straight Direction'. This property is read-only, as the final text depends on 'Label Type', and the object defined in 'Target'. The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. - The text displayed by this label. + Der Text, der von dieser Bezeichnung angezeigt wird. -This property is read-only, as the final text depends on 'Label Type', -and the object defined in 'Target'. -The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. +Diese Eigenschaft ist schreibgeschützt, da der endgültige Text vom +„Bezeichnungstyp“ und dem in 'Ziel' definierten Objekt abhängt. +Der „benutzerdefinierte Text“ wird nur angezeigt, wenn „Bezeichnung Typ“ +auf „benutzerdefiniert“ gesetzt ist. @@ -7210,32 +7208,31 @@ For other types, the string will be calculated automatically from the object def For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. - The type of information displayed by this label. + Die Art der Informationen, die auf dieser Bezeichnung angezeigt werden. -If 'Custom' is chosen, the contents of 'Custom Text' will be used. -For other types, the string will be calculated automatically from the object defined in 'Target'. -'Tag' and 'Material' only work for objects that have these properties, like Arch objects. +Wenn „Benutzerdefiniert“ ausgewählt ist, wird der Inhalt von „Benutzerdefinierter Text“ verwendet. +Bei anderen Typen wird die Zeichenfolge automatisch aus dem unter „Ziel“ definierten Objekt berechnet. +„Bezeichnung“ und „Material“ funktionieren nur für Objekte mit diesen Eigenschaften, z. B. Arch-Objekte. -For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', -or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. +Für „Position“, „Länge“ und „Fläche“ werden diese Eigenschaften aus dem Hauptobjekt in „Ziel“ extrahiert, oder aus dem Unterelement „VertexN“, „EdgeN“ bzw. „FaceN“, falls angegeben. General scaling factor that affects the annotation consistently because it scales the text, and the line decorations, if any, in the same proportion. - General scaling factor that affects the annotation consistently -because it scales the text, and the line decorations, if any, -in the same proportion. + Allgemeiner Skalierungsfaktor, der die Anmerkung konsistent beeinflusst +weil es den Text und falls vorhanden die Liniendekorationen, +im gleichen Verhältnis skaliert. Annotation style to apply to this object. When using a saved style some of the view properties will become read-only; they will only be editable by changing the style through the 'Annotation style editor' tool. - Annotation style to apply to this object. -When using a saved style some of the view properties will become read-only; -they will only be editable by changing the style through the 'Annotation style editor' tool. + Anmerkungsstil, der auf dieses Objekt angewendet werden soll. +Bei Verwendung eines gespeicherten Stils sind einige der Ansichtseigenschaften schreibgeschützt. +Sie können nur bearbeitet werden, indem der Stil über das Tool 'Anmerkungsstil-Editor' geändert wird. @@ -7248,9 +7245,9 @@ they will only be editable by changing the style through the 'Annotation style e List of connected edges in the 'Path Object'. If these are present, the copies will be created along these subelements only. Leave this property empty to create copies along the entire 'Path Object'. - List of connected edges in the 'Path Object'. -If these are present, the copies will be created along these subelements only. -Leave this property empty to create copies along the entire 'Path Object'. + Liste der verbundenen Kanten im 'Pfad-Objekt'. +Wenn diese vorhanden sind, werden die Kopien nur entlang dieser Unterelemente erstellt. +Lassen Sie diese Eigenschaft leer, um Kopien entlang des gesamten 'Pfad-Objekt' zu erstellen. @@ -7261,8 +7258,8 @@ Leave this property empty to create copies along the entire 'Path Object'. Additional translation that will be applied to each copy. This is useful to adjust for the difference between shape centre and shape reference point. - Additional translation that will be applied to each copy. -This is useful to adjust for the difference between shape centre and shape reference point. + Zusätzliche Verschiebung, die auf jede Kopie angewendet wird. +Dies ist nützlich, um den Unterschied zwischen dem Form-Mittelpunkt und dem Form-Referenzpunkt anzupassen. @@ -7272,12 +7269,12 @@ This is useful to adjust for the difference between shape centre and shape refer Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode - Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode + Verwendung von 'vertikalem Vektor' als lokale Z-Richtung erzwingen, wenn 'Original' oder 'Tangentiale' Ausrichtung verwendet wird Direction of the local Z axis when 'Force Vertical' is true - Direction of the local Z axis when 'Force Vertical' is true + Richtung der lokalen Z-Achse, wenn 'Vertikal erzwingen' wahr ist @@ -7308,8 +7305,8 @@ Um mit 'Original' oder 'Tangente' bessere Ergebnisse zu erzielen, müssen Sie m Orient the copies along the path depending on the 'Align Mode'. Otherwise the copies will have the same orientation as the original Base object. - Orient the copies along the path depending on the 'Align Mode'. -Otherwise the copies will have the same orientation as the original Base object. + Richtet die Kopien je nach Ausrichtungsmodus entlang des Pfads aus. +Andernfalls haben die Kopien dieselbe Ausrichtung wie das ursprüngliche Basisobjekt. @@ -7317,15 +7314,15 @@ Otherwise the copies will have the same orientation as the original Base object. - Ortho: places the copies in the direction of the global X, Y, Z axes. - Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. - Circular: places the copies in concentric circular layers around the base object. - The type of array to create. -- Ortho: places the copies in the direction of the global X, Y, Z axes. -- Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. -- Circular: places the copies in concentric circular layers around the base object. + Der Typ der zu erstellenden Anordnung. +- Ortho: platziert die Kopien in Richtung der globalen X-, Y-, Z-Achsen. +- Polar: platziert die Kopien auf einem Kreisbogen, bis zu einem festgelegten Winkel und mit einer bestimmten Ausrichtung, die mittels eines Zentrums und einer Achse festgelegt wird. +- Circular: platziert die Kopien in konzentrischen Kreislagen um das Basisobjekt. Specifies if the copies should be fused together if they touch each other (slower) - Specifies if the copies should be fused together if they touch each other (slower) + Gibt an, ob die Kopien verschmelzt werden sollen, wenn sie einander berühren (langsamer) @@ -7360,65 +7357,65 @@ Otherwise the copies will have the same orientation as the original Base object. The axis direction around which the elements in a polar or a circular array will be created - The axis direction around which the elements in a polar or a circular array will be created + Die Achsenrichtung um welche die Elemente in einer Polar oder einer kreisförmigen Anordnung erstellt werden Center point for polar and circular arrays. The 'Axis' passes through this point. - Center point for polar and circular arrays. -The 'Axis' passes through this point. + Zentrumspunkt für polare und kreisförmige Anordnungen. +Die 'Achse' geht durch diesen Punkt. The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. Its placement, position and rotation, will be used when creating polar and circular arrays. Leave this property empty to be able to set 'Axis' and 'Center' manually. - The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. -Its placement, position and rotation, will be used when creating polar and circular arrays. -Leave this property empty to be able to set 'Axis' and 'Center' manually. + Das Achsenobjekt, welches den Wert von „Achse“ und „Zentrum“ überschreibt, zum Beispiel eine Bezugslinie. +Seine Platzierung, Position und Drehung werden beim Erstellen von Polar- und Kreisanordnungen verwendet. +Lassen Sie diese Eigenschaft leer, um „Achse“ und „Zentrum“ manuell setzen zu können. Number of copies in the polar direction - Number of copies in the polar direction + Anzahl der Kopien in Polar-Richtung Distance and orientation of intervals in 'Axis' direction - Distance and orientation of intervals in 'Axis' direction + Abstand und Ausrichtung der Intervalle in Achsenrichtung Angle to cover with copies - Angle to cover with copies + Winkel zum Bedecken mit Kopien Distance between circular layers - Distance between circular layers + Abstand zwischen kreisförmigen Ebenen Distance between copies in the same circular layer - Distance between copies in the same circular layer + Abstand zwischen Kopien in der gleichen Kreisebene Number of circular layers. The 'Base' object counts as one layer. - Number of circular layers. The 'Base' object counts as one layer. + Anzahl der kreisförmigen Ebenen. Das 'Basis' Objekt zählt als eine Ebene. A parameter that determines how many symmetry planes the circular array will have. - A parameter that determines how many symmetry planes the circular array will have. + Parameter, der bestimmt, wie viele Symmetrieebenen die kreisförmige Anordnung haben soll. Total number of elements in the array. This property is read-only, as the number depends on the parameters of the array. - Total number of elements in the array. -This property is read-only, as the number depends on the parameters of the array. + Gesamtzahl der Elemente in der Anordnung. +Diese Eigenschaft ist schreibgeschützt, da die Zahl von den Parametern der Anordnung abhängt. @@ -7428,35 +7425,35 @@ This property is read-only, as the number depends on the parameters of the array Object containing points used to distribute the copies. - Object containing points used to distribute the copies. + Objekt mit Punkten, die zur Verteilung der Kopien verwendet werden. Number of copies in the array. This property is read-only, as the number depends on the points in 'Point Object'. - Number of copies in the array. -This property is read-only, as the number depends on the points in 'Point Object'. + Anzahl der Elemente in der Anordnung. +Diese Eigenschaft ist schreibgeschützt, da die Zahl von den Punkten im 'Punkt Objekt' abhängt. Additional placement, shift and rotation, that will be applied to each copy - Additional placement, shift and rotation, that will be applied to each copy + Zusätzliche Platzierung, Verschiebung und Drehung, die auf jede Kopie angewendet werden The base object this 2D view must represent - The base object this 2D view must represent + Das Basisobjekt, das diese 2D-Ansicht darstellen muss The projection vector of this object - The projection vector of this object + Der Projektionsvektor dieses Objekts The way the viewed object must be projected - The way the viewed object must be projected + Die Art, wie das betrachtete Objekt projiziert werden muss @@ -7471,56 +7468,56 @@ This property is read-only, as the number depends on the points in 'Point Object Fuse wall and structure objects of same type and material - Fuse wall and structure objects of same type and material + Wand- und Strukturobjekte von gleicher Art und Material verschmelzen Tessellate Ellipses and B-splines into line segments - Tessellate Ellipses and B-splines into line segments + Tesselliert Ellipsen und B-Splines in Liniensegmente For Cutlines and Cutfaces modes, this leaves the faces at the cut location - For Cutlines and Cutfaces modes, - this leaves the faces at the cut location + Für die 'Cutlines' und 'Cutfaces' Modi, + bleiben die Flächen an der Schnittposition Length of line segments if tessellating Ellipses or B-splines into line segments - Length of line segments if tessellating Ellipses or B-splines - into line segments + Länge der Linienabschnitte, wenn Ellipsen oder B-Splines + in Linienabschnitte gewandelt werden If this is True, this object will include only visible objects - If this is True, this object will include only visible objects + Wenn dies wahr ist, wird dieses Objekt nur sichtbare Objekte enthalten A list of exclusion points. Any edge touching any of those points will not be drawn. - A list of exclusion points. Any edge touching any of those points will not be drawn. + Eine Liste mit Ausschlusspunkten. Jede Kante, die einen dieser Punkte berührt, wird nicht gezeichnet. A list of exclusion object names. Any object viewed that matches a name from the list will not be drawn. - A list of exclusion object names. Any object viewed that matches a name from the list will not be drawn. + Eine Liste von Ausschlussobjektnamen. Jedes Objekt, das mit einem Namen aus dieser Liste übereinstimmt, wird nicht gezeichnet. If this is True, only solid geometry is handled. This overrides the base object's Only Solids property - If this is True, only solid geometry is handled. This overrides the base object's Only Solids property + Wenn dies wahr ist, wird nur Festkörper-Geometrie bearbeitet. Dies überschreibt die 'Only Solids' Eigenschaft des Basisobjekts If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property - If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property + Wenn diese Eigenschaft Wahr ist, wird der Inhalt an den Rändern der Schnittebene abgeschnitten, falls zutreffend. Dies setzt die Eigenschaft 'Clip' des Basisobjekts außer Kraft This object will be recomputed only if this is True. - This object will be recomputed only if this is True. + Dieses Objekt wird nur neu berechnet, wenn dies wahr ist. @@ -7530,7 +7527,7 @@ This property is read-only, as the number depends on the points in 'Point Object The degree of the Bezier function - The degree of the Bezier function + Der Grad der Bezier-Funktion @@ -7540,12 +7537,12 @@ This property is read-only, as the number depends on the points in 'Point Object If the Bezier curve should be closed or not - If the Bezier curve should be closed or not + Ob die Bezier-Kurve geschlossen sein soll oder nicht Create a face if this curve is closed - Create a face if this curve is closed + Erstelle eine Fläche, wenn diese Kurve geschlossen ist @@ -7624,12 +7621,12 @@ This property is read-only, as the number depends on the points in 'Point Object The normal direction of the text of the dimension - The normal direction of the text of the dimension + Die normale Richtung des Textes dieses Maßes The object measured by this dimension object - The object measured by this dimension object + Das von dieser Bemassung gemessene Objekt @@ -7640,13 +7637,13 @@ There are various possibilities: - An object, and one of its edges. - An object, and two of its vertices. - An arc object, and its edge. - The object, and specific subelements of it, -that this dimension object is measuring. + Das Objekt und spezifische Unterelemente, +das dieses Maßobjekt misst. -There are various possibilities: -- An object, and one of its edges. -- An object, and two of its vertices. -- An arc object, and its edge. +Es gibt verschiedene Möglichkeiten: +- Ein Objekt und eine seiner Kanten. +- Ein Objekt und zwei seiner Knotenpunkte. +- Ein Bogenobjekt und seine Kante. @@ -7658,14 +7655,14 @@ is to the measured object. that displays the measured radius or diameter. - For angular dimensions, this controls the radius of the dimension arc that displays the measured angle. - A point through which the dimension line, or an extrapolation of it, will pass. + Ein Punkt, durch den die Masslinie, oder eine Extrapolation davon, führt. -- For linear dimensions, this property controls how close the dimension line -is to the measured object. -- For radial dimensions, this controls the direction of the dimension line -that displays the measured radius or diameter. -- For angular dimensions, this controls the radius of the dimension arc -that displays the measured angle. +- Für lineare Masse legt diese Eigenschaft fest, wie nahe die Bemassungslinie +zum gemessenen Objekt ist. +- Bei radialen Maßen steuert dies die Richtung der Bemassungslinie, +die den gemessenen Radius oder den gemessenen Durchmesser anzeigt. +- Bei Winkelmaßen wird der Radius des Massbogens +kontrolliert, der den gemessenen Winkel anzeigt. @@ -7673,10 +7670,10 @@ that displays the measured angle. If it is a radius dimension it will be the center of the arc. If it is a diameter dimension it will be a point that lies on the arc. - Starting point of the dimension line. + Startpunkt der Bemassungslinie. -If it is a radius dimension it will be the center of the arc. -If it is a diameter dimension it will be a point that lies on the arc. +Wenn es eine Radius Bemassung ist, ist es die Mitte des Bogens. +Wenn es eine Durchmessers Bemassung ist, ist es ein Punkt, der auf dem Bogen liegt. @@ -7684,17 +7681,17 @@ If it is a diameter dimension it will be a point that lies on the arc. - Ending point of the dimension line. + Endpunkt der Bemassungslinie. -If it is a radius or diameter dimension -it will be a point that lies on the arc. +Wenn es sich um eine Radius- oder Durchmesserabmessung handelt +ist es ein Punkt, der auf dem Bogen liegt. The direction of the dimension line. If this remains '(0,0,0)', the direction will be calculated automatically. - The direction of the dimension line. -If this remains '(0,0,0)', the direction will be calculated automatically. + Die Richtung der Bemassungslinie. +Wenn dies '(0,0,0)' bleibt, wird die Richtung automatisch berechnet. @@ -7705,34 +7702,34 @@ from the 'Start' and 'End' properties. If the 'Linked Geometry' is an arc or circle, this 'Distance' is the radius or diameter, depending on the 'Diameter' property. - The value of the measurement. + Der Wert der Messung. -This property is read-only because the value is calculated -from the 'Start' and 'End' properties. +Diese Eigenschaft ist schreibgeschützt. Der Wert wird +aus den Eigenschaften 'Start' und 'Ende' berechnet. -If the 'Linked Geometry' is an arc or circle, this 'Distance' -is the radius or diameter, depending on the 'Diameter' property. +Wenn die 'Verknüpfte Geometrie' ein Bogen oder Kreis ist, ist diese 'Entfernung' +je nach der Eigenschaft 'Durchmesser' der Radius oder Durchmesser. When measuring circular arcs, it determines whether to display the radius or the diameter value - When measuring circular arcs, it determines whether to display -the radius or the diameter value + Bei der Messung von Kreisbögen wird festgelegt, ob der Radius +oder der Durchmesserwert angezeigt werden soll Starting angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - Starting angle of the dimension line (circular arc). -The arc is drawn counter-clockwise. + Startwinkel der Bemassungslinie (Kreisbogen). +Der Bogen wird gegen den Uhrzeigersinn gezeichnet. Ending angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - Ending angle of the dimension line (circular arc). -The arc is drawn counter-clockwise. + Endwinkel der Bemassungslinie (Kreisbogen). +Der Bogen wird gegen den Uhrzeigersinn gezeichnet. @@ -7740,10 +7737,10 @@ The arc is drawn counter-clockwise. This is normally the point where two line segments, or their extensions intersect, resulting in the measured 'Angle' between them. - The center point of the dimension line, which is a circular arc. + Der Mittelpunkt der Bemassungslinie, die ein kreisförmiger Bogen ist. -This is normally the point where two line segments, or their extensions -intersect, resulting in the measured 'Angle' between them. +Dies ist normalerweise der Punkt, an dem sich zwei Liniensegmente oder deren Erweiterungen +kreuzen, was zum gemessenen 'Winkel' zwischen ihnen führt. @@ -7751,10 +7748,10 @@ intersect, resulting in the measured 'Angle' between them. This property is read-only because the value is calculated from the 'First Angle' and 'Last Angle' properties. - The value of the measurement. + Der Wert der Messung. -This property is read-only because the value is calculated from -the 'First Angle' and 'Last Angle' properties. +Diese Eigenschaft ist schreibgeschützt, da der Wert von +den Werten der 'Erster Winkel' und 'Letzter Winkel' abhängig ist. @@ -7769,12 +7766,12 @@ the 'First Angle' and 'Last Angle' properties. Horizontal subdivisions of this rectangle - Horizontal subdivisions of this rectangle + Horizontale Unterteilungen dieses Rechtecks Vertical subdivisions of this rectangle - Vertical subdivisions of this rectangle + Vertikale Unterteilungen dieses Rechtecks @@ -7784,27 +7781,27 @@ the 'First Angle' and 'Last Angle' properties. Specifies if splitter lines must be removed - Specifies if splitter lines must be removed + Gibt an, ob Trennerlinien entfernt werden sollen An optional extrusion value to be applied to all faces - An optional extrusion value to be applied to all faces + Ein optionaler Extrusionswert der auf alle Flächen angewendet wird An optional offset value to be applied to all faces - An optional offset value to be applied to all faces + Ein optionaler Offset-Wert der auf alle Flächen angewendet wird This specifies if the shapes sew - This specifies if the shapes sew + Legt fest, ob die Formen genäht werden The area of the faces of this Facebinder - The area of the faces of this Facebinder + Der Bereich der Flächen dieses Flächenverbinders @@ -7814,22 +7811,22 @@ the 'First Angle' and 'Last Angle' properties. The vertices of the wire - The vertices of the wire + Die Ecken der Linie If the wire is closed or not - If the wire is closed or not + Ob der Pfad geschlossen ist oder nicht The base object is the wire, it's formed from 2 objects - The base object is the wire, it's formed from 2 objects + Das Basisobjekt ist der Kantenzug, es wird aus 2 Objekten gebildet The tool object is the wire, it's formed from 2 objects - The tool object is the wire, it's formed from 2 objects + Das Werkzeugobjekt ist der Kantenzug, es wird aus 2 Objekten gebildet @@ -7849,12 +7846,12 @@ the 'First Angle' and 'Last Angle' properties. Create a face if this object is closed - Create a face if this object is closed + Erstellt eine Fläche, wenn dieses Objekt geschlossen ist The number of subdivisions of each edge - The number of subdivisions of each edge + Die Anzahl der Unterteilungen jeder Kante @@ -7864,12 +7861,12 @@ the 'First Angle' and 'Last Angle' properties. If the B-spline is closed or not - If the B-spline is closed or not + Ob der B-Spline geschlossen ist oder nicht Create a face if this spline is closed - Create a face if this spline is closed + Eine Fläche erstellen, wenn dieser Spline geschlossen ist @@ -7879,7 +7876,7 @@ the 'First Angle' and 'Last Angle' properties. Force sync pattern placements even when array elements are expanded - Force sync pattern placements even when array elements are expanded + Erzwinge Synchronisierungsmusterplatzierung, auch wenn Array Elemente erweitert werden @@ -7895,7 +7892,7 @@ the 'First Angle' and 'Last Angle' properties. Line spacing (relative to font size) - Line spacing (relative to font size) + Zeilenabstand (relativ zur Schriftgröße) @@ -7916,7 +7913,7 @@ the 'First Angle' and 'Last Angle' properties. The type of frame around the text of this object - The type of frame around the text of this object + Die Art des Rahmens um den Text dieses Objekts @@ -7946,47 +7943,47 @@ the 'First Angle' and 'Last Angle' properties. If it is true, the objects contained within this layer will adopt the line color of the layer - If it is true, the objects contained within this layer will adopt the line color of the layer + Wenn es wahr ist, übernehmen die Objekte dieser Ebene die Linienfarbe der Ebene If it is true, the objects contained within this layer will adopt the shape color of the layer - If it is true, the objects contained within this layer will adopt the shape color of the layer + Wenn es wahr ist, übernehmen die Objekte dieser Ebene die Formfarbe der Ebene If it is true, the print color will be used when objects in this layer are placed on a TechDraw page - If it is true, the print color will be used when objects in this layer are placed on a TechDraw page + Wenn es wahr ist, wird die Druckfarbe verwendet, wenn Objekte in dieser Ebene auf einer TechDraw-Seite platziert werden The line color of the objects contained within this layer - The line color of the objects contained within this layer + Die Linienfarbe der Objekte, die in dieser Ebene enthalten sind The shape color of the objects contained within this layer - The shape color of the objects contained within this layer + Die Formfarbe der Objekte innerhalb dieser Ebene The line width of the objects contained within this layer - The line width of the objects contained within this layer + Die Linienbreite der Objekte innerhalb dieser Ebene The draw style of the objects contained within this layer - The draw style of the objects contained within this layer + Der Zeichenstil der Objekte in dieser Ebene The transparency of the objects contained within this layer - The transparency of the objects contained within this layer + Die Transparenz der Objekte in dieser Ebene The line color of the objects contained within this layer, when used on a TechDraw page - The line color of the objects contained within this layer, when used on a TechDraw page + Die Linienfarbe der Objekte in dieser Ebene, wenn sie auf einer TechDraw-Seite verwendet werden @@ -8001,7 +7998,7 @@ the 'First Angle' and 'Last Angle' properties. Spacing between text and dimension line - Spacing between text and dimension line + Abstand zwischen Text und Maßlinie @@ -8037,9 +8034,9 @@ Schreiben Sie „$dim“, um ihn durch die Länge der Bemaßung zu ersetzen.A unit to express the measurement. Leave blank for system default. Use 'arch' to force US arch notation - A unit to express the measurement. -Leave blank for system default. -Use 'arch' to force US arch notation + Die Einheit der Messung. +Leer lassen für die Standardeinstellung des Systems. +Benutzen Sie 'arch' um die US-Bogen Notation zu erzwingen @@ -8062,8 +8059,7 @@ Use 'arch' to force US arch notation The distance the dimension line is extended past the extension lines - The distance the dimension line is extended -past the extension lines + Länge, um die die Masslinie über die Masshilfslinien hinaus verlängert wird @@ -8074,8 +8070,7 @@ past the extension lines Length of the extension line beyond the dimension line - Length of the extension line -beyond the dimension line + Länge des Maßhilfslinienabschnitts, der über die Maßlinie hinausragt diff --git a/src/Mod/Draft/Resources/translations/Draft_el.ts b/src/Mod/Draft/Resources/translations/Draft_el.ts index 43952d6778..a7d12a691e 100644 --- a/src/Mod/Draft/Resources/translations/Draft_el.ts +++ b/src/Mod/Draft/Resources/translations/Draft_el.ts @@ -3237,43 +3237,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledΒύθισμα - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3284,7 +3284,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3354,7 +3354,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3375,7 +3375,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3397,37 +3397,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5173,53 +5173,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_es-AR.qm b/src/Mod/Draft/Resources/translations/Draft_es-AR.qm index 2481686bfe..df8fa3e1c6 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_es-AR.qm and b/src/Mod/Draft/Resources/translations/Draft_es-AR.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_es-AR.ts b/src/Mod/Draft/Resources/translations/Draft_es-AR.ts index 098fb136d3..1ddc681038 100644 --- a/src/Mod/Draft/Resources/translations/Draft_es-AR.ts +++ b/src/Mod/Draft/Resources/translations/Draft_es-AR.ts @@ -1930,7 +1930,7 @@ Nota: la exportación mediante C++ es más rápida, pero no está completada Permitir que FreeCAD descargue el convertidor Python para importar y exportar DXF. -También puede hacerlo manualmente instalando el entorno de trabajo "dxf_library" +También puede hacerlo manualmente instalando el banco de trabajo "dxf_library" desde el Administrador de Complementos. @@ -2288,7 +2288,7 @@ Esto podría fallar para la publicación de plantillas DXF R12. If checked, the Draft grid will always be visible when the Draft workbench is active. Otherwise only when using a command - Si está marcada, la cuadrícula del Borrador siempre estará visible cuando el entorno de trabajo Borrador esté activo. De lo contrario, sólo cuando se usa un comando + Si está marcada, la cuadrícula del Borrador siempre estará visible cuando el banco de trabajo Borrador esté activo. De lo contrario, sólo cuando se usa un comando @@ -3236,43 +3236,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalado - - - - - - + + + + + + Converting: Convirtiendo: - - - + + + Conversion successful Conversión completada con éxito - - + + LibreDWG converter not found Conversor LibreDWG no encontrado - - + + ODA converter not found Conversor ODA no encontrado - - + + QCAD converter not found Conversor QCAD no encontrado - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3283,7 +3283,7 @@ Para más información véase: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3351,7 +3351,7 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí. - + @@ -3372,7 +3372,7 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí. - + @@ -3394,37 +3394,37 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí.Sin interfaz gráfica - + Unable to insert new object into a scaled part Imposible insertar un nuevo objeto en una parte escalada - + Symbol not implemented. Using a default symbol. Símbolo no implementado. Usando un símbolo por defecto. - + Visibility off; removed from list: Visibilidad desactivada; eliminada de la lista: - + image is Null imagen nula - + filename does not exist on the system or in the resource file filename no existe en el sistema ni en el archivo de recursos - + unable to load texture imposible cargar la textura - + Does not have 'ViewObject.RootNode'. No tiene 'ViewObject.RootNode'. @@ -5169,53 +5169,53 @@ The final angle will be the base angle plus this amount. Aplanar - + Upgrade: Unknown force method: Upgrade: método "force" (forzar) desconocido: - + Found 1 block: exploding it Se encontró un bloque: explotándolo - + Found 1 multi-solids compound: exploding it Encontrado 1 compuesto multisólido: explotándolo - + Found 1 parametric object: breaking its dependencies Encontrado 1 objeto paramétrico: rompiendo sus dependencias - + Found 2 objects: subtracting them Encontrados 2 objetos: restándolos - + Found several faces: splitting them Encontradas varias caras: dividiéndolas - + Found several objects: subtracting them from the first one Encontrados varios objetos: restándolos del primero - + Found 1 face: extracting its wires Encontrada 1 cara: extrayendo sus aristas - + Found only wires: extracting their edges Encontradas solamente polilíneas: extrayendo sus aristas - + No more downgrade possible No es posible descomponer más diff --git a/src/Mod/Draft/Resources/translations/Draft_es-ES.ts b/src/Mod/Draft/Resources/translations/Draft_es-ES.ts index ce6877baf4..4d5b8983b8 100644 --- a/src/Mod/Draft/Resources/translations/Draft_es-ES.ts +++ b/src/Mod/Draft/Resources/translations/Draft_es-ES.ts @@ -3236,43 +3236,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalado - - - - - - + + + + + + Converting: Convirtiendo: - - - + + + Conversion successful Conversión completada con éxito - - + + LibreDWG converter not found Conversor LibreDWG no encontrado - - + + ODA converter not found Conversor ODA no encontrado - - + + QCAD converter not found Conversor QCAD no encontrado - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3283,7 +3283,7 @@ Para más información véase: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3351,7 +3351,7 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí. - + @@ -3372,7 +3372,7 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí. - + @@ -3394,37 +3394,37 @@ Para permitir que FreeCAD descargue estas librerías, responda Sí.Sin interfaz gráfica - + Unable to insert new object into a scaled part Imposible insertar un nuevo objeto en una parte escalada - + Symbol not implemented. Using a default symbol. Símbolo no implementado. Usando un símbolo por defecto. - + Visibility off; removed from list: Visibilidad desactivada; eliminada de la lista: - + image is Null imagen nula - + filename does not exist on the system or in the resource file filename no existe en el sistema ni en el archivo de recursos - + unable to load texture imposible cargar la textura - + Does not have 'ViewObject.RootNode'. No tiene 'ViewObject.RootNode'. @@ -5169,53 +5169,53 @@ The final angle will be the base angle plus this amount. Aplanar - + Upgrade: Unknown force method: Upgrade: método "force" (forzar) desconocido: - + Found 1 block: exploding it Se encontró un bloque: explotándolo - + Found 1 multi-solids compound: exploding it Encontrado 1 compuesto multisólido: explotándolo - + Found 1 parametric object: breaking its dependencies Encontrado 1 objeto paramétrico: rompiendo sus dependencias - + Found 2 objects: subtracting them Encontrados 2 objetos: restándolos - + Found several faces: splitting them Encontradas varias caras: dividiéndolas - + Found several objects: subtracting them from the first one Encontrados varios objetos: restándolos del primero - + Found 1 face: extracting its wires Encontrada 1 cara: extrayendo sus aristas - + Found only wires: extracting their edges Encontradas solamente polilíneas: extrayendo sus aristas - + No more downgrade possible No es posible descomponer más diff --git a/src/Mod/Draft/Resources/translations/Draft_eu.ts b/src/Mod/Draft/Resources/translations/Draft_eu.ts index 92d4f79322..c6a42ae134 100644 --- a/src/Mod/Draft/Resources/translations/Draft_eu.ts +++ b/src/Mod/Draft/Resources/translations/Draft_eu.ts @@ -3228,43 +3228,43 @@ Ez dago erabilgarri zirriborroen 'Erabili piezen jatorrizkoak' aukera gaituta ba Zirriborroa - - - - - - + + + + + + Converting: Bihurtzen: - - - + + + Conversion successful Bihurketa ongi egin da - - + + LibreDWG converter not found Ez da aurkitu LibreDWG bihurtzailea - - + + ODA converter not found Ez da aurkitu ODA fitxategi-bihurtzailea - - + + QCAD converter not found Ez da aurkitu QCAD bihurtzailea - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3275,7 +3275,7 @@ Informazio gehiagorako, ikusi: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3345,7 +3345,7 @@ FreeCADek liburutegi horiek deskarga ditzan gaitzeko, erantzun 'Bai'. - + @@ -3366,7 +3366,7 @@ FreeCADek liburutegi horiek deskarga ditzan gaitzeko, erantzun 'Bai'. - + @@ -3388,37 +3388,37 @@ FreeCADek liburutegi horiek deskarga ditzan gaitzeko, erantzun 'Bai'.Ez dago interfaze grafikorik - + Unable to insert new object into a scaled part Ezin izan da objektu berria txertatu eskalatutako piezan - + Symbol not implemented. Using a default symbol. Ikurra ez dago inplementatuta. Ikur lehenetsia erabiliko da. - + Visibility off; removed from list: Ikusgaitasuna desaktibatuta; zerrendatik kendu da: - + image is Null Irudia nulua da - + filename does not exist on the system or in the resource file Fitxategi-izena ez da existitzen sisteman edo baliabideen fitxategian - + unable to load texture Ezin da testura kargatu - + Does not have 'ViewObject.RootNode'. Ez dauka 'ViewObject.RootNode'. @@ -5164,53 +5164,53 @@ Amaierako angelua oinarriko angelua gehi kantitate hau izango da. Lautu - + Upgrade: Unknown force method: Eguneraketa: behartze-metodo ezezaguna: - + Found 1 block: exploding it Bloke bat aurkitu da: hura lehertzen - + Found 1 multi-solids compound: exploding it Solido anitzeko konposatu bat aurkitu da: hura lehertzen - + Found 1 parametric object: breaking its dependencies Objektu parametriko bat aurkitu da: bere mendekotasunak hausten - + Found 2 objects: subtracting them Bi objektu aurkitu dira: haien kenketa egiten - + Found several faces: splitting them Hainbat aurpegi aurkitu dira: haiek zatitzen - + Found several objects: subtracting them from the first one Hainbat objektu aurkitu dira: lehen objektuarekin kenketa egiten - + Found 1 face: extracting its wires Aurpegi bat aurkitu da: haren alanbreak erauzten - + Found only wires: extracting their edges Alanbreak soilik aurkitu dira: haien ertzak erauzten - + No more downgrade possible Ezin da gehiago degradatu diff --git a/src/Mod/Draft/Resources/translations/Draft_fi.ts b/src/Mod/Draft/Resources/translations/Draft_fi.ts index 817ba23d99..ec9270e250 100644 --- a/src/Mod/Draft/Resources/translations/Draft_fi.ts +++ b/src/Mod/Draft/Resources/translations/Draft_fi.ts @@ -3241,43 +3241,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledSyväys (vesirajasta pohjaan) - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3358,7 +3358,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3379,7 +3379,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3401,37 +3401,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5177,53 +5177,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_fr.qm b/src/Mod/Draft/Resources/translations/Draft_fr.qm index 1bf649e4f9..1a652b01ee 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_fr.qm and b/src/Mod/Draft/Resources/translations/Draft_fr.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_fr.ts b/src/Mod/Draft/Resources/translations/Draft_fr.ts index 730de6043b..9ee97cc112 100644 --- a/src/Mod/Draft/Resources/translations/Draft_fr.ts +++ b/src/Mod/Draft/Resources/translations/Draft_fr.ts @@ -2251,7 +2251,7 @@ Ceci peut échouer avec les modèles ultérieurs à DXF R12. Alt mod - Mode Alt + Modification avec la touche Alt @@ -2291,7 +2291,7 @@ Ceci peut échouer avec les modèles ultérieurs à DXF R12. If checked, the Draft grid will always be visible when the Draft workbench is active. Otherwise only when using a command - Si coché, la grille s'affichera toujours lorsque l'établi Draft est actif. Sinon, uniquement en effectuant une commande + Si coché, la grille de Draft s'affichera toujours lorsque l'atelier Draft sera actif. Sinon, uniquement en effectuant une commande @@ -3221,7 +3221,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Remove - Enlever + Supprimer @@ -3236,46 +3236,46 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Draft - Tirant d'eau + Draft - - - - - - + + + + + + Converting: Conversion en cours : - - - + + + Conversion successful Conversion réussie - - + + LibreDWG converter not found Convertisseur LibreDWG introuvable - - + + ODA converter not found Convertisseur ODA introuvable - - + + QCAD converter not found Convertisseur QCAD introuvable - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3286,7 +3286,7 @@ Pour plus d'informations, voir : https://wiki.freecad.org/Import_Export_Preferences/fr - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3352,7 +3352,7 @@ Pour permettre à FreeCAD de télécharger ces bibliothèques, choisissez "Oui". - + @@ -3373,7 +3373,7 @@ Pour permettre à FreeCAD de télécharger ces bibliothèques, choisissez "Oui". - + @@ -3395,37 +3395,37 @@ Pour permettre à FreeCAD de télécharger ces bibliothèques, choisissez "Oui". Aucune interface graphique - + Unable to insert new object into a scaled part Impossible d'insérer un nouvel objet dans une pièce redimensionnée - + Symbol not implemented. Using a default symbol. Symbole non implémenté. Utilisation d'un symbole par défaut. - + Visibility off; removed from list: Visibilité désactivée ; retirée de la liste : - + image is Null l'image est Nulle - + filename does not exist on the system or in the resource file le nom du fichier n'existe ni dans le système ni dans le fichier de ressource - + unable to load texture impossible de charger la texture - + Does not have 'ViewObject.RootNode'. N'a pas de "ViewObject.RootNode". @@ -5171,53 +5171,53 @@ L'angle final sera l'angle de base plus cette quantité. Applatir - + Upgrade: Unknown force method: Mettre à niveau : méthode de force inconnue : - + Found 1 block: exploding it Trouvé 1 bloc : l'exploser - + Found 1 multi-solids compound: exploding it Trouvé 1 composé multi-solides: l'exploser - + Found 1 parametric object: breaking its dependencies Trouvé 1 objet paramétrique : casser ses dépendances - + Found 2 objects: subtracting them Trouvé 2 objets : les soustraire - + Found several faces: splitting them Trouvé plusieurs faces : les séparer - + Found several objects: subtracting them from the first one Trouvé plusieurs objets : les soustraire du premier - + Found 1 face: extracting its wires Trouvé 1 face : extraction de ses polylignes - + Found only wires: extracting their edges Trouvé seulement des polylignes : extraction de leurs arêtes - + No more downgrade possible Plus de rétrogradation possible @@ -6041,7 +6041,7 @@ Cependant, une seule esquisse avec des traces déconnectées sera convertie en p Moves the selected objects from one base point to another point. If the "copy" option is active, it will create displaced copies. CTRL to snap, SHIFT to constrain. - Déplace les objets sélectionnés d'un point de base vers un autre point. + Déplacer les objets sélectionnés d'un point de base vers un autre point. Si l'option "copie" est active, elle créera des copies déplacées. Ctrl pour aimanter, Maj pour contraindre. @@ -6230,7 +6230,8 @@ Ctrl pour aimanter, Maj pour contraindre. Maintenir Alt et cliquer pour créer u Moves the selected objects to an existing group, or removes them from any group. Create a group first to use this tool. - Déplace les objets sélectionnés vers un groupe existant, ou les supprime de n'importe quel groupe. + Déplacer les objets sélectionnés vers un groupe existant, +ou les supprimer de n'importe quel groupe. Créer d'abord un groupe pour utiliser cet outil. @@ -6519,7 +6520,7 @@ Ctrl pour aimanter, Alt pour sélectionner des objets tangents. Creates a facebinder object from selected faces. - Crée un objet Surfaces liées à partir des faces sélectionnées. + Créer une surface liée à partir des faces sélectionnées. @@ -8112,7 +8113,7 @@ au-delà de la ligne de la dimension Draft - Tirant d'eau + Draft diff --git a/src/Mod/Draft/Resources/translations/Draft_gl.ts b/src/Mod/Draft/Resources/translations/Draft_gl.ts index 1f2b601fb7..794d682073 100644 --- a/src/Mod/Draft/Resources/translations/Draft_gl.ts +++ b/src/Mod/Draft/Resources/translations/Draft_gl.ts @@ -3241,43 +3241,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalado - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3358,7 +3358,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3379,7 +3379,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3401,37 +3401,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5177,53 +5177,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_hr.qm b/src/Mod/Draft/Resources/translations/Draft_hr.qm index 36ef84fce3..4b94e2aa1d 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_hr.qm and b/src/Mod/Draft/Resources/translations/Draft_hr.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_hr.ts b/src/Mod/Draft/Resources/translations/Draft_hr.ts index b4f4e63112..475f65a7bd 100644 --- a/src/Mod/Draft/Resources/translations/Draft_hr.ts +++ b/src/Mod/Draft/Resources/translations/Draft_hr.ts @@ -43,7 +43,7 @@ Layers manager - Layers manager + Upravitelj slojeva @@ -64,12 +64,12 @@ Toggle on/off - Toggle on/off + Uključivanje/Isključivanje Isolate - Isolate + Izoliraj @@ -184,7 +184,7 @@ The line spacing for multi-line texts and labels (relative to the font size) - The line spacing for multi-line texts and labels (relative to the font size) + Razmak između redova za višestruke tekstove i oznake (relativno na veličinu pisma) @@ -259,7 +259,7 @@ The distance between the dimension text and the dimension line - The distance between the dimension text and the dimension line + Udaljenost između teksta dimenzije i linije dimenzije @@ -315,7 +315,8 @@ Dimension details - Dimension details + +Detalji dimenzija @@ -1114,7 +1115,7 @@ tijekom crtanja pomoću tipki [i] Apply above style to all annotations (texts, dimensions and labels) - Apply above style to all annotations (texts, dimensions and labels) + Primjeni gornji stil na sve oznake (tekstove, dimenzije i oznake) @@ -1201,12 +1202,12 @@ tijekom crtanja pomoću tipki [i] Ext lines - Ext lines + Pomoćne linije dimenzije The distance the dimension line is extended past the extension lines - The distance the dimension line is extended past the extension lines + Udaljenost za koju je linija dimenzije proširena uzduž pomoćne linije dimenzije @@ -1235,12 +1236,12 @@ tijekom crtanja pomoću tipki [i] Dim overshoot - Dim overshoot + Prebaćaj dimenzije Length of the extension lines beyond the dimension line - Length of the extension lines beyond the dimension line + Duljina linija oznake duljine izvan linije dimenzije @@ -1250,7 +1251,7 @@ tijekom crtanja pomoću tipki [i] Ext overshoot - Ext overshoot + Prebaćaj pomoćne linije dimenzije @@ -2111,27 +2112,27 @@ Inače će se primijeniti zadane boje. Get original colors from the DXF file (legacy importer only) - Get original colors from the DXF file (legacy importer only) + Zadrži orginalne boje od DFX datoteke (samo za zastarjeli uvoznik) Import hatch boundaries as wires (legacy importer only) - Import hatch boundaries as wires (legacy importer only) + Uvezi granice iscrtavanja kao žice (samo za stari uvoznik) Render polylines with width (legacy importer only) - Render polylines with width (legacy importer only) + Iscrtaj višestruku liniju (polyline) sa širinom (samo za stari uvoznik) Export 3D objects as polyface meshes (legacy exporter only) - Export 3D objects as polyface meshes (legacy exporter only) + Izvezi 3D objekt kao Poligonalne mreže (samo za stari uvoznik) Project exported objects along current view direction (legacy exporter only) - Project exported objects along current view direction (legacy exporter only) + Projeciraj izvezene objekte u smjeru trenutnog pogleda (samo za stari uvoznik) @@ -2231,13 +2232,13 @@ Ako je postavljeno na '0', cijela je krivulja (spline) tretirana kao ravni segme TechDraw Views will be exported as blocks. This might fail for post DXF R12 templates. - TechDraw Views will be exported as blocks. -This might fail for post DXF R12 templates. + Pogledi Tehničkog crteža izvozit će se kao blokovi. +Ovo možda neće uspjeti za predloške DXF R12. Export TechDraw Views as blocks - Export TechDraw Views as blocks + Izvoz pogleda Tehničkog Crteža kao blokova @@ -3185,7 +3186,7 @@ Nije dostupno ako je omogućena opcija 'Koristi se primitivni dio' postavki Nacr Label type - Label type + Tip oznaka @@ -3306,60 +3307,61 @@ Nije dostupno ako je omogućena opcija 'Koristi se primitivni dio' postavki Nacr Skica - - - - - - + + + + + + Converting: Pretvaranje: - - - + + + Conversion successful Pretvorba je uspješna - - + + LibreDWG converter not found - LibreDWG converter not found + LibreDWG converter nije pronađen - - + + ODA converter not found - ODA converter not found + ODA konverter datoteka nije pronađen - - + + QCAD converter not found - QCAD converter not found + QCAD converter nije pronađen - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: https://wiki.freecad.org/Import_Export_Preferences - No suitable external DWG converter has been found. -Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG -For more information see: + +Nije pronađen niti jedan prikladan vanjski DWG konverter. +Molimo postavite ručno Uredi -> Postavke -> Uvoz/Izvoz -> DWG +Za više informacija pogledaj: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. - Error during DWG conversion. -Try moving the DWG file to a directory path without spaces and non-english characters, -or try saving to a lower DWG version. + Pogreška tijekom DWG pretvorbe. +Pokušajte premjestiti DWG datoteku na put direktorija bez razmaka i neengleskih znakova +ili pokušajte spremiti u nižu DWG verziju. @@ -3425,7 +3427,7 @@ Da bi odobrio FreeCAD-u preuzimanje ove biblioteke, odgovori sa Da (Yes). - + @@ -3446,7 +3448,7 @@ Da bi odobrio FreeCAD-u preuzimanje ove biblioteke, odgovori sa Da (Yes). - + @@ -3468,37 +3470,37 @@ Da bi odobrio FreeCAD-u preuzimanje ove biblioteke, odgovori sa Da (Yes).Nema grafičkog sučelja - + Unable to insert new object into a scaled part Nije moguće umetnuti novi objekt u skalirani dio - + Symbol not implemented. Using a default symbol. Simbol nije implementiran. Korištenje zadanog simbola. - + Visibility off; removed from list: Vidljivost isključena; uklonjeno s popisa: - + image is Null slika je Ništavna - + filename does not exist on the system or in the resource file naziv datoteke ne postoji na sustavu ili u datoteci resursa - + unable to load texture nije moguće učitati teksturu - + Does not have 'ViewObject.RootNode'. Nema 'ViewObject.RootNode'. @@ -4768,7 +4770,7 @@ Konačni kut bit će osnovni kut plus ovaj iznos. ShapeString: face creation failed for one character - ShapeString: face creation failed for one character + Oblik-tekstom: stvaranje lica za jedan znak nije uspjelo @@ -4795,12 +4797,12 @@ Konačni kut bit će osnovni kut plus ovaj iznos. Start Offset too large for path length. Using zero instead. - Start Offset too large for path length. Using zero instead. + Pomak početka je prevelik za duljinu putanje. Umjesto toga koristi se nula. End Offset too large for path length minus Start Offset. Using zero instead. - End Offset too large for path length minus Start Offset. Using zero instead. + Pomak kraja je prevelik za duljinu putanje minus pomak početka. Umjesto toga koristi se nula. @@ -5251,53 +5253,53 @@ Konačni kut bit će osnovni kut plus ovaj iznos. Spljošti - + Upgrade: Unknown force method: Nadogradnja: Nepoznata metoda prisile: - + Found 1 block: exploding it Pronađeno 1 blok: razdjeli ga - + Found 1 multi-solids compound: exploding it Pronađeno 1 složeno višestruko čvrsto tijelo: razdjeli ga - + Found 1 parametric object: breaking its dependencies Pronađen 1 parametarski objekt: uklanjanje njegovih ovisnosti - + Found 2 objects: subtracting them Pronađena 2 objekta: oduzmi ih - + Found several faces: splitting them Pronađeno nekoliko lica: razdjeli ih - + Found several objects: subtracting them from the first one Pronađeno nekoliko objekata: oduzimanje tih objekata od prvog objekta - + Found 1 face: extracting its wires Pronađeno 1 lice: izdvajanje njegovih žica - + Found only wires: extracting their edges Našao samo žice: izdvajanje njihovih rubova - + No more downgrade possible Nije moguće vraćanje na stariju verziju @@ -5559,7 +5561,7 @@ iz izbornika Alati-> Upravitelj dodataka Error: json module not found. Unable to load style - Error: json module not found. Unable to load style + Pogreška: json modul nije pronađen. Nije moguće učitati stil @@ -5669,7 +5671,7 @@ iz izbornika Alati-> Upravitelj dodataka On - On + Uključeno @@ -5694,7 +5696,7 @@ iz izbornika Alati-> Upravitelj dodataka Face color - Face color + Boja lica @@ -5704,12 +5706,12 @@ iz izbornika Alati-> Upravitelj dodataka Line print color - Line print color + Boja ispisa linije New Layer - New Layer + Novi Sloj @@ -7395,12 +7397,12 @@ Kako bi dobili bolje rezultate s 'Originalnim' ili 'Tangencijalnim' moguće je d Length from the start of the path to the first copy. - Length from the start of the path to the first copy. + Duljina od početka putanje do prve kopije. Length from the end of the path to the last copy. - Length from the end of the path to the last copy. + Duljina od kraja putanje do zadnje kopije. @@ -8200,12 +8202,12 @@ izvan linije dimenzije Manage layers... - Manage layers... + Upravljanje slojevima... Set/modify the different layers of this document - Set/modify the different layers of this document + Postavi/Izmijeni različite slojeve ovog dokumenta diff --git a/src/Mod/Draft/Resources/translations/Draft_hu.ts b/src/Mod/Draft/Resources/translations/Draft_hu.ts index f726f7005e..1db3bfec70 100644 --- a/src/Mod/Draft/Resources/translations/Draft_hu.ts +++ b/src/Mod/Draft/Resources/translations/Draft_hu.ts @@ -3245,43 +3245,43 @@ Nem érhető el, ha a 'Rész-primitívek használata' beállítás engedélyezve Tervrajz - - - - - - + + + + + + Converting: Átalakítás: - - - + + + Conversion successful Átalakítás sikeres - - + + LibreDWG converter not found LibreDWG átalakító nem található - - + + ODA converter not found ODA átalakító nem található - - + + QCAD converter not found QCAD átalakító nem található - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3292,7 +3292,7 @@ További információkért lásd: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3362,7 +3362,7 @@ A FreeCAD letöltésének bekapcsolásához válassza az "Igen"-t. - + @@ -3383,7 +3383,7 @@ A FreeCAD letöltésének bekapcsolásához válassza az "Igen"-t. - + @@ -3405,37 +3405,37 @@ A FreeCAD letöltésének bekapcsolásához válassza az "Igen"-t. Nincs grafikus interfész - + Unable to insert new object into a scaled part Nem lehet új tárgyat beszúrni egy méretezett alkatrészbe - + Symbol not implemented. Using a default symbol. A szimbólum nincs megvalósítva. Alapértelmezett szimbólum használata. - + Visibility off; removed from list: Láthatóság kikapcsolva; eltávolítva a listáról: - + image is Null a kép üres - + filename does not exist on the system or in the resource file a fájlnév nem létezik a rendszeren vagy a forrásfájlban - + unable to load texture anyagminta betöltése sikertelen - + Does not have 'ViewObject.RootNode'. Nincs 'ViewObject.RootNode'. @@ -5181,53 +5181,53 @@ A végső szög lesz az alapszög plusz ennek összege. Laposítás - + Upgrade: Unknown force method: Frissítés: Ismeretlen erőltető módszer: - + Found 1 block: exploding it Talált 1 blokkot: szétrobbantom - + Found 1 multi-solids compound: exploding it Találtam 1 összetett multi-szilárd testet: robbantom - + Found 1 parametric object: breaking its dependencies Talált 1 parametrikus tárgyat: függőségeket felosztja - + Found 2 objects: subtracting them Két tárgyat talált: kivonja egymásból - + Found several faces: splitting them Több felület talált: felosztja - + Found several objects: subtracting them from the first one Több tárgyat talált: kivonja az elsőből - + Found 1 face: extracting its wires Talált 1 felületet: drótvázzá bontja - + Found only wires: extracting their edges Csak vonalak találhatók: éleiket kibontja - + No more downgrade possible Nem lehet több visszaminősítést végezni diff --git a/src/Mod/Draft/Resources/translations/Draft_it.qm b/src/Mod/Draft/Resources/translations/Draft_it.qm index 460e8810cc..3783398bf5 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_it.qm and b/src/Mod/Draft/Resources/translations/Draft_it.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_it.ts b/src/Mod/Draft/Resources/translations/Draft_it.ts index afd976c45d..4c9b3882f3 100644 --- a/src/Mod/Draft/Resources/translations/Draft_it.ts +++ b/src/Mod/Draft/Resources/translations/Draft_it.ts @@ -3238,46 +3238,46 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Draft - Pescaggio + Draft - - - - - - + + + + + + Converting: Conversione in corso: - - - + + + Conversion successful Conversione riuscita - - + + LibreDWG converter not found Convertitore LibreDWG non trovato - - + + ODA converter not found Convertitore ODA non trovato - - + + QCAD converter not found Convertitore QCAD non trovato - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ Per maggiori informazioni si veda: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3353,7 +3353,7 @@ Per abilitare FreeCAD a scaricare queste librerie, rispondere Sì. - + @@ -3374,7 +3374,7 @@ Per abilitare FreeCAD a scaricare queste librerie, rispondere Sì. - + @@ -3396,37 +3396,37 @@ Per abilitare FreeCAD a scaricare queste librerie, rispondere Sì.Nessuna interfaccia grafica - + Unable to insert new object into a scaled part Impossibile inserire il nuovo oggetto in una parte scalata - + Symbol not implemented. Using a default symbol. Simbolo non implementato. Usare un simbolo predefinito. - + Visibility off; removed from list: Visibilità disattivata; rimosso dall'elenco: - + image is Null l'immagine è Null - + filename does not exist on the system or in the resource file il nome file non esiste nel sistema o nei file risorsa - + unable to load texture impossibile caricare la texture - + Does not have 'ViewObject.RootNode'. Non ha 'ViewObject.RootNode'. @@ -5172,53 +5172,53 @@ L'angolo finale sarà l'angolo base più questa quantità. Appiattisci - + Upgrade: Unknown force method: Promuovi: Metodo di forzatura sconosciuto: - + Found 1 block: exploding it Trovato 1 blocco: esplosione del blocco - + Found 1 multi-solids compound: exploding it Trovato 1 solido multi-componente: verrà scomposto - + Found 1 parametric object: breaking its dependencies Trovato 1 oggetto parametrico: rottura delle sue dipendenze - + Found 2 objects: subtracting them Trovati 2 oggetti: sottraendoli - + Found several faces: splitting them Trovate diverse facce: divisione delle facce - + Found several objects: subtracting them from the first one Trovati diversi oggetti: loro sottrazione dal primo - + Found 1 face: extracting its wires Trovata 1 faccia: estrazione delle sue polilinee - + Found only wires: extracting their edges Trovate solo polilinee: estrazione dei loro bordi - + No more downgrade possible Non è possibile effettuare ulteriori declassamenti @@ -8108,7 +8108,7 @@ beyond the dimension line Draft - Pescaggio + Draft diff --git a/src/Mod/Draft/Resources/translations/Draft_ja.qm b/src/Mod/Draft/Resources/translations/Draft_ja.qm index 660ebb40ec..1ab38d66c7 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_ja.qm and b/src/Mod/Draft/Resources/translations/Draft_ja.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_ja.ts b/src/Mod/Draft/Resources/translations/Draft_ja.ts index d2891a77c6..75b8751910 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ja.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ja.ts @@ -41,7 +41,7 @@ Layers manager - Layers manager + レイヤーマネージャー @@ -1635,7 +1635,7 @@ such as "Arial:Bold" Screen - Screen + スクリーン @@ -3228,43 +3228,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabled喫水 - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3275,7 +3275,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3345,7 +3345,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3366,7 +3366,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3388,37 +3388,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -3844,7 +3844,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Rotation - Rotation + 回転 @@ -5164,53 +5164,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_ka.ts b/src/Mod/Draft/Resources/translations/Draft_ka.ts index eb89a97747..bb37d3e898 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ka.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ka.ts @@ -3238,43 +3238,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledწყალშიგი - - - - - - + + + + + + Converting: გადაყვანა: - - - + + + Conversion successful გადაყვანა წარმატებულია - - + + LibreDWG converter not found LibreDWG გარდამქმნელი ვერ ვიპოვე - - + + ODA converter not found ODA გარდამქმნელი ვერ ვიპოვე - - + + QCAD converter not found QCAD გარდამქმნელი ვერ ვიპოვე - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3285,7 +3285,7 @@ https://wiki.freecad.org/Import_Export_Preferences https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3352,7 +3352,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3373,7 +3373,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3395,37 +3395,37 @@ https://github.com/yorikvanhavre/Draft-dxf-importer გრაფიკული ინტერფეისის გარეშე - + Unable to insert new object into a scaled part მასშტაბირებად ნაწილში ახალი ობიექტის ჩასმა შეუძლებელია - + Symbol not implemented. Using a default symbol. სიმბოლო განხორციელებული არაა. გამოიყენება ნაგულისხმევი სიმბოლო. - + Visibility off; removed from list: ხილვადობა გამორთულია; ამოღებულია სიიდან: - + image is Null ნულოვანი გამოსახულება - + filename does not exist on the system or in the resource file ფაილი არ არსებობს არც სისტემაში არც რესურსის ფაილში - + unable to load texture ტექსტურის ჩატვირთვის შეცდომა - + Does not have 'ViewObject.RootNode'. არ აქვს 'ViewObject.RootNode'. @@ -5171,53 +5171,53 @@ The final angle will be the base angle plus this amount. გაბრტყელება - + Upgrade: Unknown force method: შეერთება: ძალის უცნობი მეთოდი: - + Found 1 block: exploding it ნაპოვნია 1 ბლოკი: ვშლი - + Found 1 multi-solids compound: exploding it ნაპოვნია 1 რთული შემადგენლობის მყარი ობიექტი: ვშლი - + Found 1 parametric object: breaking its dependencies ნაპოვნია 1 პარამეტრული ობიექტი: მისი დამოკიდებულებების მოცილება - + Found 2 objects: subtracting them ნაპოვნია 2 ობიექტი: ვაკლებ - + Found several faces: splitting them ნაპოვნია რამდენმე ზედაპირი: საჭიროა გაყოფა - + Found several objects: subtracting them from the first one ნაპოვნია რამდენიმე ობიექტი: გამოვაკლოთ ისინი პირველს - + Found 1 face: extracting its wires ნაპოვნია 1 ზედაპირი: ვშლი პოლიხაზებად - + Found only wires: extracting their edges ნაპოვნია მხოლოდ პოლიხაზები: ვიღებ მათ წიბოებს - + No more downgrade possible მეტად გამარტივება შეუძლებელია diff --git a/src/Mod/Draft/Resources/translations/Draft_ko.ts b/src/Mod/Draft/Resources/translations/Draft_ko.ts index 6a6eb6bf61..851b4728fc 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ko.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ko.ts @@ -3237,43 +3237,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabled흘수 - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3284,7 +3284,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3354,7 +3354,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3375,7 +3375,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3397,37 +3397,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5173,53 +5173,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_nl.qm b/src/Mod/Draft/Resources/translations/Draft_nl.qm index ba2b12a60f..b2f577b112 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_nl.qm and b/src/Mod/Draft/Resources/translations/Draft_nl.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_nl.ts b/src/Mod/Draft/Resources/translations/Draft_nl.ts index 5b4270d183..736456e660 100644 --- a/src/Mod/Draft/Resources/translations/Draft_nl.ts +++ b/src/Mod/Draft/Resources/translations/Draft_nl.ts @@ -3037,7 +3037,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Modify subelements - Modify subelements + Subelementen wijzigen @@ -3240,43 +3240,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledSchets - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3287,7 +3287,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3355,7 +3355,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3376,7 +3376,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3398,37 +3398,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -3554,19 +3554,19 @@ To enabled FreeCAD to download these libraries, answer Yes. Create Label - Create Label + Label maken Pick endpoint of leader line - Pick endpoint of leader line + Kies het eindpunt van de leiderslijn Pick text position - Pick text position + Kies tekstpositie @@ -3574,7 +3574,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Pick first point - Pick first point + Kies het eerste punt @@ -3584,7 +3584,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Create Wire - Create Wire + Draad aanmaken @@ -3597,7 +3597,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Pick next point - Pick next point + Kies het volgende punt @@ -3612,7 +3612,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Select an object to join - Select an object to join + Selecteer een object om samen te voegen @@ -3627,27 +3627,27 @@ To enabled FreeCAD to download these libraries, answer Yes. Pick location point - Pick location point + Kies locatiepunt Create Text - Create Text + Tekst maken Select an object to convert. - Select an object to convert. + Selecteer een object om te converteren. Convert to Sketch - Convert to Sketch + Converteren naar schets Convert to Draft - Convert to Draft + Converteren naar ontwerp @@ -3657,18 +3657,18 @@ To enabled FreeCAD to download these libraries, answer Yes. Select an object to move - Select an object to move + Selecteer een object om te verplaatsen Pick start point - Pick start point + Kies startpunt Pick end point - Pick end point + Kies eindpunt @@ -3679,13 +3679,13 @@ To enabled FreeCAD to download these libraries, answer Yes. Some subelements could not be moved. - Some subelements could not be moved. + Sommige subelementen konden niet verplaatst worden. Pick center point - Pick center point + Kies middelpunt @@ -3695,7 +3695,7 @@ To enabled FreeCAD to download these libraries, answer Yes. Pick radius - Pick radius + Kies straal @@ -3703,13 +3703,13 @@ To enabled FreeCAD to download these libraries, answer Yes. Start angle - Start angle + Starthoek Pick start angle - Pick start angle + Kies starthoek @@ -3727,12 +3727,12 @@ To enabled FreeCAD to download these libraries, answer Yes. Create Circle (Part) - Create Circle (Part) + Maak cirkel (Onderdeel) Create Circle - Create Circle + Maak Cirkel @@ -3804,7 +3804,7 @@ To enabled FreeCAD to download these libraries, answer Yes. JSON file (*.json) - JSON file (*.json) + JSON-bestand (*.json) @@ -3998,17 +3998,17 @@ The final angle will be the base angle plus this amount. Create Polygon - Create Polygon + Polygoon maken Click anywhere on a line to split it. - Click anywhere on a line to split it. + Klik ergens op een lijn om deze te splitsen. Split line - Split line + Lijn splitsen @@ -4019,7 +4019,7 @@ The final angle will be the base angle plus this amount. Pick distance - Pick distance + Kies afstand @@ -4039,12 +4039,12 @@ The final angle will be the base angle plus this amount. These objects don't intersect. - These objects don't intersect. + Deze objecten snijden elkaar niet. Too many intersection points. - Too many intersection points. + Te veel snijpunten. @@ -4066,7 +4066,7 @@ The final angle will be the base angle plus this amount. Change Style - Change Style + Stijl wijzigen @@ -4078,13 +4078,13 @@ The final angle will be the base angle plus this amount. Delete point - Delete point + Verwijder punt Add point - Add point + Punt toevoegen @@ -4130,17 +4130,17 @@ The final angle will be the base angle plus this amount. Set first angle - Set first angle + Eerste hoek instellen Set last angle - Set last angle + Laatste hoek instellen Set radius - Set radius + Stel straal in @@ -4160,7 +4160,7 @@ The final angle will be the base angle plus this amount. Make symmetric - Make symmetric + Symetrisch maken @@ -4209,13 +4209,13 @@ The final angle will be the base angle plus this amount. Create Ellipse - Create Ellipse + Ellips aanmaken Pick opposite point - Pick opposite point + Kies een tegenovergesteld punt @@ -4225,17 +4225,17 @@ The final angle will be the base angle plus this amount. Select an object to scale - Select an object to scale + Selecteer een object om te schalen Pick base point - Pick base point + Kies basispunt Pick reference distance from base point - Pick reference distance from base point + Kies een referentieafstand vanaf het basispunt @@ -4247,7 +4247,7 @@ The final angle will be the base angle plus this amount. Some subelements could not be scaled. - Some subelements could not be scaled. + Sommige subelementen konden niet worden geschaald. @@ -4372,17 +4372,17 @@ The final angle will be the base angle plus this amount. Create Rectangle - Create Rectangle + Rechthoek maken Select an object to mirror - Select an object to mirror + Selecteer een object om te spiegelen Pick start point of mirror line - Pick start point of mirror line + Kies het beginpunt van de spiegellijn @@ -4393,7 +4393,7 @@ The final angle will be the base angle plus this amount. Pick end point of mirror line - Pick end point of mirror line + Kies het eindpunt van de spiegellijn @@ -4403,7 +4403,7 @@ The final angle will be the base angle plus this amount. Select an object to clone - Select an object to clone + Selecteer een object om te klonen @@ -4414,7 +4414,7 @@ The final angle will be the base angle plus this amount. Select an object to upgrade - Select an object to upgrade + Selecteer een object om te upgraden @@ -4444,7 +4444,7 @@ The final angle will be the base angle plus this amount. Create 2D view - Create 2D view + 2D-weergave maken @@ -4471,7 +4471,7 @@ The final angle will be the base angle plus this amount. Task panel: - Task panel: + Taakpaneel: @@ -4486,7 +4486,7 @@ The final angle will be the base angle plus this amount. At least one element must be selected. - At least one element must be selected. + Ten minste één element moet worden geselecteerd. @@ -4503,12 +4503,12 @@ The final angle will be the base angle plus this amount. Object: - Object: + Object: Number of elements must be at least 2. - Number of elements must be at least 2. + Aantal elementen moet ten minste 2 zijn. @@ -4531,7 +4531,7 @@ The final angle will be the base angle plus this amount. Fuse: - Fuse: + Samenvoegen: @@ -4580,47 +4580,47 @@ The final angle will be the base angle plus this amount. Interval X reset: - Interval X reset: + Interval X opnieuw instellen: Interval Y reset: - Interval Y reset: + Interval Y opnieuw instellen: Interval Z reset: - Interval Z reset: + Interval Z opnieuw instellen: Number of X elements: - Number of X elements: + Aantal X-elementen: Interval X: - Interval X: + X-interval: Number of Y elements: - Number of Y elements: + Aantal Y-elementen: Interval Y: - Interval Y: + Y-interval: Number of Z elements: - Number of Z elements: + Aantal Z-elementen: Interval Z: - Interval Z: + Z-interval: @@ -4644,7 +4644,7 @@ The final angle will be the base angle plus this amount. Number of layers must be at least 2. - Number of layers must be at least 2. + Aantal lagen moet minimaal 2 zijn. @@ -4831,7 +4831,7 @@ The final angle will be the base angle plus this amount. Cannot generate shape: - Cannot generate shape: + Kan geen vorm genereren: @@ -4846,13 +4846,13 @@ The final angle will be the base angle plus this amount. Create primitive object - Create primitive object + Creëer een primitief object Final placement: - Final placement: + Laatste plaatsing: @@ -4862,7 +4862,7 @@ The final angle will be the base angle plus this amount. Support: - Support: + Ondersteuning: @@ -4879,7 +4879,7 @@ The final angle will be the base angle plus this amount. Wrong input: must be a number. - Wrong input: must be a number. + Verkeerde invoer: moet een getal zijn. @@ -4968,22 +4968,22 @@ The final angle will be the base angle plus this amount. Wrong input: object must not be a list. - Wrong input: object must not be a list. + Verkeerde invoer: object mag geen lijst zijn. Wrong input: subelement not in object. - Wrong input: subelement not in object. + Verkeerde invoer: subelement niet in object. Wrong input: label_type must be a string. - Wrong input: label_type must be a string. + Verkeerde invoer: label_type moet een tekenreeks zijn. Wrong input: label_type must be one of the following: - Wrong input: label_type must be one of the following: + Verkeerde invoer: label_type moet één van de volgende zijn: @@ -4991,7 +4991,7 @@ The final angle will be the base angle plus this amount. Wrong input: must be a list of strings or a single string. - Wrong input: must be a list of strings or a single string. + Verkeerde invoer: moet een lijst van tekenreeksen of een enkele tekenreeks zijn. @@ -5007,7 +5007,7 @@ The final angle will be the base angle plus this amount. Direction is not 'Custom'; points won't be used. - Direction is not 'Custom'; points won't be used. + Richting is niet 'Aangepast'; punten worden niet gebruikt. @@ -5033,7 +5033,7 @@ The final angle will be the base angle plus this amount. Wrong input: object doesn't have a 'Shape' to measure. - Wrong input: object doesn't have a 'Shape' to measure. + Verkeerde invoer: object heeft geen 'Vorm' om te meten. @@ -5044,7 +5044,7 @@ The final angle will be the base angle plus this amount. Wrong input: must be an integer. - Wrong input: must be an integer. + Verkeerde invoer: moet een geheel getal zijn. @@ -5102,12 +5102,12 @@ The final angle will be the base angle plus this amount. Layers - Layers + Lagen Wrong input: it must be a string. - Wrong input: it must be a string. + Verkeerde invoer: het moet een tekenreeks zijn. @@ -5126,12 +5126,12 @@ The final angle will be the base angle plus this amount. Wrong input: must be a number between 0 and 100. - Wrong input: must be a number between 0 and 100. + Verkeerde invoer: moet een getal tussen 0 en 100 zijn. Activate this layer - Activate this layer + Activeer deze laag @@ -5174,53 +5174,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible @@ -5237,7 +5237,7 @@ The final angle will be the base angle plus this amount. mirrored - mirrored + gespiegeld @@ -5451,7 +5451,7 @@ from menu Tools -> Addon Manager Delete original objects - Delete original objects + Originele objecten verwijderen @@ -5461,12 +5461,12 @@ from menu Tools -> Addon Manager Save style - Save style + Stijl opslaan Name of this new style: - Name of this new style: + Naam van deze nieuwe stijl: @@ -5476,7 +5476,7 @@ from menu Tools -> Addon Manager Name exists. Overwrite? - Name exists. Overwrite? + Naam bestaat al. Overschrijven? @@ -5526,22 +5526,22 @@ from menu Tools -> Addon Manager X factor - X factor + X-factor Y factor - Y factor + Y-factor Z factor - Z factor + Z-factor Uniform scaling - Uniform scaling + Uniforme schaalverdeling @@ -5556,12 +5556,12 @@ from menu Tools -> Addon Manager Modify subelements - Modify subelements + Subelementen wijzigen Pick from/to points - Pick from/to points + Kies van/naar punten @@ -6144,7 +6144,7 @@ on supported nodes and on supported objects. Add point - Add point + Punt toevoegen diff --git a/src/Mod/Draft/Resources/translations/Draft_pl.qm b/src/Mod/Draft/Resources/translations/Draft_pl.qm index 8f5b346910..8bf9b0f33f 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_pl.qm and b/src/Mod/Draft/Resources/translations/Draft_pl.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_pl.ts b/src/Mod/Draft/Resources/translations/Draft_pl.ts index 6eafca2444..246cee3fa5 100644 --- a/src/Mod/Draft/Resources/translations/Draft_pl.ts +++ b/src/Mod/Draft/Resources/translations/Draft_pl.ts @@ -428,19 +428,19 @@ Zmień kierunek samej osi w edytorze właściwości. If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - Jeżeli opcja jest zaznaczona, obiekty wynikowe w tablicy zostaną połączone, jeżeli będą się stykać. -Działa to tylko wtedy, gdy opcja "Połącz tablicę" jest wyłączona. + Jeżeli opcja jest zaznaczona, obiekty wynikowe w szyku zostaną połączone, jeżeli będą się stykać. +Działa to tylko wtedy, gdy opcja "Szyk łączy" jest nieaktywna. Fuse - Scalenie + Scal If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. + Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej, gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. @@ -564,19 +564,19 @@ Przy wartościach ujemnych kopie tworzone będą w kierunku przeciwnym. If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - Jeżeli opcja jest zaznaczona, obiekty wynikowe w tablicy zostaną połączone, jeżeli będą się stykać. -Działa to tylko wtedy, gdy opcja "Połącz tablicę" jest wyłączona. + Jeżeli opcja jest zaznaczona, obiekty wynikowe w szyku zostaną połączone, jeżeli będą się stykać. +Działa to tylko wtedy, gdy opcja "Szyk łączy" jest nieaktywna. Fuse - Scalenie + Scal If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. + Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej, gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. @@ -589,7 +589,7 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Polar array - Szyk kołowy + Szyk biegunowy @@ -665,19 +665,19 @@ Zmień kierunek samej osi w edytorze właściwości. If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - Jeżeli opcja jest zaznaczona, obiekty wynikowe w tablicy zostaną połączone, jeżeli będą się stykać. -Działa to tylko wtedy, gdy opcja "Połącz tablicę" jest wyłączona. + Jeżeli opcja jest zaznaczona, obiekty wynikowe w szyku zostaną połączone, jeżeli będą się stykać. +Działa to tylko wtedy, gdy opcja "Szyk łączy" jest nieaktywna. Fuse - Scalenie + Scal If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. + Jeśli opcja zostanie zaznaczona, utworzony zostanie "Szyk powiązań" zamiast zwykłego szyku. Szyk powiązań działa wydajniej, gdy potrzeba utworzyć wiele kopii, jednak nie można go później scalić. @@ -1999,7 +1999,7 @@ z Menedżera dodatków. If you want the non-named blocks (beginning with a *) to be imported too - Zaznacz tą opcję jeśli chcesz, aby zaimportować również bloki bez nazwy (zaczynające się od *) + Zaznacz tę opcję, jeśli chcesz, aby zaimportować również bloki bez nazwy (zaczynające się od *) @@ -3110,7 +3110,7 @@ Opcja jest niedostępna, jeśli opcja preferencji Rysunku Roboczego "używaj ele Arc - Wzdłuż łuku + Łuk @@ -3164,17 +3164,17 @@ Opcja jest niedostępna, jeśli opcja preferencji Rysunku Roboczego "używaj ele Local u0394X - Lokalny u0394X + u0394X lokalnie Local u0394Y - Lokalny u0394Y + u0394Y lokalnie Local u0394Z - Lokalny u0394Z + u0394Z lokalnie @@ -3249,46 +3249,46 @@ Opcja jest niedostępna, jeśli opcja preferencji Rysunku Roboczego "używaj ele Draft - Rysunek roboczy + Rysunek Roboczy - - - - - - + + + + + + Converting: Konwertowanie: - - - + + + Conversion successful Konwersja zakończona - - + + LibreDWG converter not found Nie znaleziono konwertera LibreDWG - - + + ODA converter not found Nie znaleziono konwertera ODA - - + + QCAD converter not found Nie znaleziono konwertera QCAD - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3299,7 +3299,7 @@ Aby uzyskać więcej informacji, zobacz stronę: https://wiki.freecad.org/Import_Export_Preferences/pl - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3368,7 +3368,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3389,7 +3389,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3411,37 +3411,37 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Brak interfejsu graficznego - + Unable to insert new object into a scaled part Nie można wstawić nowego obiektu do przeskalowanej części - + Symbol not implemented. Using a default symbol. Symbol nie został zaimplementowany. Użyj symbolu domyślnego. - + Visibility off; removed from list: Widoczność wyłączona, usunięto z listy: - + image is Null brak obrazu - + filename does not exist on the system or in the resource file nazwa pliku nie istnieje w systemie lub w zasobach - + unable to load texture nie można załadować tekstury - + Does not have 'ViewObject.RootNode'. Nie ma "ViewObject.RootNode". @@ -3546,7 +3546,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Dir Dir here means Direction, not Directory. Also shorten the translation because of available space in GUI - Katalog + Kierunek @@ -4260,7 +4260,7 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość. Some subelements could not be scaled. - Niektóre elementy podrzędne nie mogły być skalowane. + Niektóre elementy podrzędne nie mogły zostać przeskalowane. @@ -4432,7 +4432,7 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość. Upgrade - Aktualizacja + Ulepsz kształt @@ -4452,7 +4452,7 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość. Offset of Bezier curves is currently not supported - Odsunięcie krzywych Beziera nie jest obecnie obsługiwane + Odsunięcie krzywych Béziera nie jest obecnie obsługiwane @@ -4492,7 +4492,7 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość. Polar array - Szyk kołowy + Szyk biegunowy @@ -5187,53 +5187,53 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość.Spłaszcz - + Upgrade: Unknown force method: Ulepszenie: Nieznana metoda siły: - + Found 1 block: exploding it Znaleziono 1 blok: rozbijanie go - + Found 1 multi-solids compound: exploding it Znaleziono 1 złożenie wielu brył: rozstrzeliwuję to - + Found 1 parametric object: breaking its dependencies Znaleziono 1 obiekt parametryczny: łamanie jego zależności - + Found 2 objects: subtracting them Znaleziono 2 obiekty: odejmowanie ich - + Found several faces: splitting them Znaleziono kilka ścian: dzielenie ich - + Found several objects: subtracting them from the first one Znaleziono kilka obiektów: odejmowanie ich od pierwszego - + Found 1 face: extracting its wires Znaleziono 1 powierzchnię: wyodrębnianie jej polilinii - + Found only wires: extracting their edges Znaleziono tylko polilinie: wyodrębnianie ich krawędzi - + No more downgrade possible Brak możliwości dalszego rozbijania @@ -5422,7 +5422,7 @@ Kąt końcowy będzie równy kątowi podstawowemu plus ta wartość. &Modification - &Modyfikacja + M&odyfikacja @@ -5573,7 +5573,7 @@ Proszę zainstalować dodatek bibliotek dxf ręcznie z narzędzi Menu -> Mene Pick from/to points - Wybierz punkty z/do + Wybierz punkty z / do @@ -6072,7 +6072,7 @@ CTRL, aby przyciągnąć, SHIFT, aby utworzyć wiązanie. Arc - Wzdłuż łuku + Łuk @@ -6208,7 +6208,7 @@ Szyk można zmienić w szyk ortogonalny lub kołowy poprzez zmianę jego typu. Manage or create annotation styles - Zarządzaj lub utwórz style adnotacji + Zarządzaj lub twórz style adnotacji @@ -6806,8 +6806,8 @@ A 'Link array' is more efficient when handling many copies but the 'Fuse' option Creates a clone of the selected objects. The resulting clone can be scaled in each of its three directions. - Tworzy klon zaznaczonych obiektów. -Uzyskany klon może być skalowany w każdym z trzech kierunków. + Tworzy klona zaznaczonych obiektów. +Powstały klon może być skalowany w każdym z trzech kierunków. @@ -6815,7 +6815,7 @@ Uzyskany klon może być skalowany w każdym z trzech kierunków. Polar array - Szyk kołowy + Szyk biegunowy @@ -6855,7 +6855,7 @@ prostych linii projektowych, które są rysowane w płaszczyźnie XY. Wybrane ob Upgrade - Aktualizacja + Ulepsz kształt @@ -8134,7 +8134,7 @@ beyond the dimension line Draft - Rysunek roboczy + Rysunek Roboczy diff --git a/src/Mod/Draft/Resources/translations/Draft_pt-BR.qm b/src/Mod/Draft/Resources/translations/Draft_pt-BR.qm index b6e5ab0550..5e23ee92e9 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_pt-BR.qm and b/src/Mod/Draft/Resources/translations/Draft_pt-BR.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_pt-BR.ts b/src/Mod/Draft/Resources/translations/Draft_pt-BR.ts index c2da9103c7..cbb33141c7 100644 --- a/src/Mod/Draft/Resources/translations/Draft_pt-BR.ts +++ b/src/Mod/Draft/Resources/translations/Draft_pt-BR.ts @@ -3233,43 +3233,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledProjeto - - - - - - + + + + + + Converting: Convertendo: - - - + + + Conversion successful Conversão bem sucedida - - + + LibreDWG converter not found Conversor LibreDWG não encontrado - - + + ODA converter not found Conversor ODA não encontrado - - + + QCAD converter not found Conversor QCAD não encontrado - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3280,7 +3280,7 @@ Para mais informações, visite: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3348,7 +3348,7 @@ Para habilitar o FreeCAD para fazer o download destas bibliotecas, responda Sim. - + @@ -3369,7 +3369,7 @@ Para habilitar o FreeCAD para fazer o download destas bibliotecas, responda Sim. - + @@ -3391,37 +3391,37 @@ Para habilitar o FreeCAD para fazer o download destas bibliotecas, responda Sim. Sem interface gráfica - + Unable to insert new object into a scaled part Não foi possível inserir novo objeto em uma peça em escala - + Symbol not implemented. Using a default symbol. Símbolo não implementado. Usando um símbolo padrão. - + Visibility off; removed from list: Visibilidade desativada; removida da lista: - + image is Null imagem é nula - + filename does not exist on the system or in the resource file nome do arquivo não existe no sistema ou no arquivo de recursos - + unable to load texture não foi possível carregar a textura - + Does not have 'ViewObject.RootNode'. Não tem 'ViewObject.RootNode'. @@ -5166,53 +5166,53 @@ The final angle will be the base angle plus this amount. Nivelar - + Upgrade: Unknown force method: Atualizar: Método desconhecido de força: - + Found 1 block: exploding it Um bloco encontrado: explodindo-o - + Found 1 multi-solids compound: exploding it Foi encontrado 1 composto de vários sólidos: explodindo-o - + Found 1 parametric object: breaking its dependencies 1 objeto paramétrico encontrado: quebrando suas dependências - + Found 2 objects: subtracting them Encontrado 2 objetos: separando-os - + Found several faces: splitting them Várias faces encontradas: separando-as - + Found several objects: subtracting them from the first one Vários objetos encontrados: separando-os do primeiro - + Found 1 face: extracting its wires 1 face encontrada: extraindo seus arames - + Found only wires: extracting their edges Apenas arames foram encontrados: extraindo suas arestas - + No more downgrade possible Não há mais regressões possíveis @@ -5401,7 +5401,7 @@ The final angle will be the base angle plus this amount. &Modification - &Alterar + &Modificação @@ -5421,7 +5421,7 @@ The final angle will be the base angle plus this amount. Array tools - Array tools + Ferramentas de Matriz @@ -6515,7 +6515,7 @@ CTRL para ajustar, ALT para selecionar objetos tangentes. Creates a facebinder object from selected faces. - Creates a facebinder object from selected faces. + Cria um objeto película a partir de faces selecionadas. @@ -6548,8 +6548,7 @@ A matriz pode ser transformada em uma matriz polar ou circular alterando seu tip Scales the selected objects from a base point. CTRL to snap, SHIFT to constrain, ALT to copy. - Scales the selected objects from a base point. -CTRL to snap, SHIFT to constrain, ALT to copy. + Redimensiona os objetos selecionados a partir de um ponto de base. CTRL para ajustar, SHIFT para restringir, ALT para copiar. @@ -6563,8 +6562,8 @@ CTRL to snap, SHIFT to constrain, ALT to copy. Adds a layer to the document. Objects added to this layer can share the same visual properties such as line color, line width, and shape color. - Adds a layer to the document. -Objects added to this layer can share the same visual properties such as line color, line width, and shape color. + Adiciona uma camada ao documento. +Objetos adicionados a esta camada podem compartilhar as mesmas propriedades visuais, tais como cor da linha, largura da linha e cor da forma. @@ -6578,8 +6577,8 @@ Objects added to this layer can share the same visual properties such as line co Creates copies of the selected base object at the points of a point object. First select the base object, and then select the point object. - Creates copies of the selected base object at the points of a point object. -First select the base object, and then select the point object. + Cria cópias do objeto base selecionado nos pontos de um objeto de pontos. +Primeiro selecione o objeto base, e depois selecione o objeto ponto. @@ -6587,14 +6586,14 @@ First select the base object, and then select the point object. PointLinkArray - PointLinkArray + Matriz de Pontos de Ligação Like the PointArray tool, but creates a 'Point link array' instead. A 'Point link array' is more efficient when handling many copies. - Like the PointArray tool, but creates a 'Point link array' instead. -A 'Point link array' is more efficient when handling many copies. + Como a ferramenta de Matriz de Pontos, mas cria uma "Matriz de Pontos de Ligação" em vez disso. +A "Matriz de Pontos de Ligação" é mais eficiente ao manipular diversas cópias. @@ -6602,12 +6601,12 @@ A 'Point link array' is more efficient when handling many copies. Array tools - Array tools + Ferramentas de Matriz Create various types of arrays, including rectangular, polar, circular, path, and point - Create various types of arrays, including rectangular, polar, circular, path, and point + Crie vários tipos de matrizes, incluindo retangular, polar, circular, caminho e ponto @@ -6621,8 +6620,8 @@ A 'Point link array' is more efficient when handling many copies. Toggles the Construction mode. When this is active, the following objects created will be included in the construction group, and will be drawn with the specified color and properties. - Toggles the Construction mode. -When this is active, the following objects created will be included in the construction group, and will be drawn with the specified color and properties. + Ativa o modo de construção. +Quando estiver ativo, os próximos objetos criados serão incluídos no grupo de construção e será desenhado com a cor e as propriedades especificadas. @@ -6630,16 +6629,16 @@ When this is active, the following objects created will be included in the const Toggle continue mode - Toggle continue mode + Alternar modo contínuo Toggles the Continue mode. When this is active, any drawing tool that is terminated will automatically start again. This can be used to draw several objects one after the other in succession. - Toggles the Continue mode. -When this is active, any drawing tool that is terminated will automatically start again. -This can be used to draw several objects one after the other in succession. + Alterna o modo contínuo. +Quando isto estiver ativo, qualquer ferramenta de desenho terminada automaticamente começará novamente. +Pode ser utilizado para desenhar vários objetos um após o outro em sucessão. @@ -6647,16 +6646,16 @@ This can be used to draw several objects one after the other in succession. Toggle normal/wireframe display - Toggle normal/wireframe display + Alternar exibição normal/arame Switches the display mode of selected objects from flatlines to wireframe and back. This is helpful to quickly visualize objects that are hidden by other objects. This is intended to be used with closed shapes and solids, and doesn't affect open wires. - Switches the display mode of selected objects from flatlines to wireframe and back. -This is helpful to quickly visualize objects that are hidden by other objects. -This is intended to be used with closed shapes and solids, and doesn't affect open wires. + Alterna o modo de exibição dos objetos selecionados entre linhas planas e arames. +Isso é útil para visualizar rapidamente objetos escondidos por outros objetos. +Isso se destina sobretudo para formas fechadas e sólidas, e não afeta arames abertos. @@ -6680,18 +6679,18 @@ You may select a single line or single circular arc before launching this comman to create the corresponding linked dimension. You may also select an 'App::MeasureDistance' object before launching this command to turn it into a 'Draft Dimension' object. - Creates a dimension. + Cria uma dimensão. -- Pick three points to create a simple linear dimension. -- Select a straight line to create a linear dimension linked to that line. -- Select an arc or circle to create a radius or diameter dimension linked to that arc. -- Select two straight lines to create an angular dimension between them. -CTRL to snap, SHIFT to constrain, ALT to select an edge or arc. +- Indique três pontos para criar uma dimensão linear simples. +- Selecione uma linha reta para criar uma dimensão linear ligada a essa linha. +- Selecione um arco ou círculo para criar um raio ou uma dimensão de diâmetro ligada a esse arco. +- Selecione duas linhas retas para criar uma dimensão angular entre elas. +CTRL para ajustar, Shift para restringir, ALT para selecionar uma aresta ou arco. -You may select a single line or single circular arc before launching this command -to create the corresponding linked dimension. -You may also select an 'App::MeasureDistance' object before launching this command -to turn it into a 'Draft Dimension' object. +Você pode selecionar uma única linha ou arco antes de iniciar este comando +para criar a dimensão vinculada correspondente. +Você também pode selecionar um objeto 'App::MeasureDistance' antes de iniciar este comando +para transformá-lo em um objeto de "Dimensão do Esboço". @@ -6706,9 +6705,9 @@ to turn it into a 'Draft Dimension' object. Stretches the selected objects. Select an object, then draw a rectangle to pick the vertices that will be stretched, then draw a line to specify the distance and direction of stretching. - Stretches the selected objects. -Select an object, then draw a rectangle to pick the vertices that will be stretched, -then draw a line to specify the distance and direction of stretching. + Estica os objetos selecionados. +Selecione um objeto e, em seguida, desenhe um retângulo para escolher quais vértices serão esticadas, +em seguida, desenhe uma linha para especificar a distância e direção do esticamento. @@ -6721,7 +6720,7 @@ then draw a line to specify the distance and direction of stretching. Creates a 2-point rectangle. CTRL to snap. - Creates a 2-point rectangle. CTRL to snap. + Cria um retângulo com 2 pontos. CTRL para ajustar. @@ -6734,7 +6733,7 @@ then draw a line to specify the distance and direction of stretching. Mirrors the selected objects along a line defined by two points. - Mirrors the selected objects along a line defined by two points. + Espelha os objetos selecionados ao longo de uma linha definida por dois pontos. @@ -6749,9 +6748,9 @@ then draw a line to specify the distance and direction of stretching.Creates copies of the selected object along a selected path, and twists the copies. First select the object, and then select the path. The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. - Creates copies of the selected object along a selected path, and twists the copies. -First select the object, and then select the path. -The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. + Cria cópias do objeto selecionado ao longo de uma trajetória selecionada e torce as cópias. +Primeiro selecione o objeto e, em seguida, selecione a trajetória. +A trajetória pode ser uma polilinha, B-spline, curva de Bézier ou até mesmo arestas de outros objetos. @@ -6759,14 +6758,14 @@ The path can be a polyline, B-spline, Bezier curve, or even edges from other obj Path twisted Link array - Path twisted Link array + Matriz de trajetória torcida ligada Like the PathTwistedArray tool, but creates a 'Link array' instead. A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. - Like the PathTwistedArray tool, but creates a 'Link array' instead. -A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. + Como a ferramenta Matriz de trajetória torcida, mas cria uma "Matriz de vínculos" em vez disso. +Uma Matriz de vínculos é mais eficiente ao lidar com muitas cópias, mas a opção '"Unir" não pode ser usada. @@ -6780,8 +6779,8 @@ A 'Link array' is more efficient when handling many copies but the 'Fuse' option Creates a clone of the selected objects. The resulting clone can be scaled in each of its three directions. - Creates a clone of the selected objects. -The resulting clone can be scaled in each of its three directions. + Cria um clone dos objetos selecionados. +O clone resultante pode ser dimensionado em cada uma de suas três direções. @@ -6797,10 +6796,10 @@ The resulting clone can be scaled in each of its three directions. defined by a center of rotation and its angle. The array can be turned into an orthogonal or a circular array by changing its type. - Creates copies of the selected object, and places the copies in a polar pattern -defined by a center of rotation and its angle. + Cria cópias do objeto selecionado e coloca as cópias em um padrão polar +definido por um centro de rotação e um ângulo. -The array can be turned into an orthogonal or a circular array by changing its type. +A rede pode ser transformado em uma rede ortogonal ou circular alterando seu tipo. @@ -6808,7 +6807,7 @@ The array can be turned into an orthogonal or a circular array by changing its t Set slope - Set slope + Definir inclinação @@ -6817,11 +6816,11 @@ If a polyline is selected, it will apply the slope transformation to each of its The slope will always change the Z value, therefore this command only works well for straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. - Sets the slope of the selected line by changing the value of the Z value of one of its points. -If a polyline is selected, it will apply the slope transformation to each of its segments. + Define a inclinação da linha selecionada, alterando o valor Z de um de seus pontos. +Se uma polilinha for selecionada, a inclinação será aplicada em cada um de seus segmentos. -The slope will always change the Z value, therefore this command only works well for -straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. +A inclinação sempre mudará o valor Z. Portanto, este comando só funciona bem para +linhas retas desenhadas no plano XY. Objetos selecionados que não sejam linhas únicas serão ignorados. @@ -6837,10 +6836,10 @@ straight Draft lines that are drawn in the XY plane. Selected objects that aren' The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. For example, it can join the selected objects into one, convert simple edges into parametric polylines, convert closed edges into filled faces and parametric polygons, and merge faces into a single face. - Upgrades the selected objects into more complex shapes. -The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. -For example, it can join the selected objects into one, convert simple edges into parametric polylines, -convert closed edges into filled faces and parametric polygons, and merge faces into a single face. + Promove os objetos selecionados em formas mais complexas. +O resultado da operação depende dos tipos de objetos, que podem ser promovidos várias vezes consecutivas. +Por exemplo, pode se juntar aos objetos selecionados em um, converter arestas simples em polilinhas paramétricas, +converter arestas fechadas em faces preenchidas e polígonos paramétricos, e mesclar faces em uma única face. @@ -6855,9 +6854,9 @@ convert closed edges into filled faces and parametric polygons, and merge faces Offsets of the selected object. It can also create an offset copy of the original object. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. - Offsets of the selected object. -It can also create an offset copy of the original object. -CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. + Desloca o objeto selecionado. +Também pode criar uma cópia deslocada do objeto original. +CTRL para ajustar, SHIFT para restringir. Mantenha ALT e clique para criar uma cópia com cada clique. @@ -6873,10 +6872,10 @@ CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each The initial projection direction is the negative of the current active view direction. You can select individual faces to project, or the entire solid, and also include hidden lines. These projections can be used to create technical drawings with the TechDraw Workbench. - Creates a 2D projection of the selected objects on the XY plane. -The initial projection direction is the negative of the current active view direction. -You can select individual faces to project, or the entire solid, and also include hidden lines. -These projections can be used to create technical drawings with the TechDraw Workbench. + Cria uma projeção 2D dos objetos selecionados no plano XY. +A direção inicial da projeção é negativa da direção atual ativa da vista. +Você pode selecionar faces individuais para projetar, ou todo o sólido e também incluir linhas ocultas. +Essas projeções podem ser usadas para criar desenhos técnicos com a bancada Desenho Técnico. @@ -6890,8 +6889,8 @@ These projections can be used to create technical drawings with the TechDraw Wor Creates a shape from a text string by choosing a specific font and a placement. The closed shapes can be used for extrusions and boolean operations. - Creates a shape from a text string by choosing a specific font and a placement. -The closed shapes can be used for extrusions and boolean operations. + Cria uma forma a partir de um texto escolhendo uma fonte específica e um posicionamento. +As formas fechadas podem ser usadas para extrusões e operações booleanas. @@ -6906,9 +6905,9 @@ The closed shapes can be used for extrusions and boolean operations.Heal faulty Draft objects saved with an earlier version of the program. If an object is selected it will try to heal that object in particular, otherwise it will try to heal all objects in the active document. - Heal faulty Draft objects saved with an earlier version of the program. -If an object is selected it will try to heal that object in particular, -otherwise it will try to heal all objects in the active document. + Repara objetos defeituosos salvos com uma versão anterior do programa. +Se um objeto for selecionado, ele tentará reparar esse objeto em particular, +caso contrário, tentará reparar todos os objetos do documento ativo. @@ -6923,9 +6922,9 @@ otherwise it will try to heal all objects in the active document. Downgrades the selected objects into simpler shapes. The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. - Downgrades the selected objects into simpler shapes. -The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. -For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. + Rebaixa os objetos selecionados em formas mais simples. +O resultado da operação depende dos tipos de objetos, que podem ser rebaixados várias vezes consecutivas. +Por exemplo, explode as polilinhas selecionadas em faces mais simples, arames e em seguida arestas. Também pode subtrair faces. @@ -6933,14 +6932,14 @@ For example, it explodes the selected polylines into simpler faces, wires, and t The placement of the base point of the first line - The placement of the base point of the first line + O posicionamento do ponto de base da primeira linha The text displayed by this object. It is a list of strings; each element in the list will be displayed in its own line. - The text displayed by this object. -It is a list of strings; each element in the list will be displayed in its own line. + O texto exibido por este objeto. +É uma lista; cada elemento da lista será exibido em sua própria linha. @@ -6950,7 +6949,7 @@ It is a list of strings; each element in the list will be displayed in its own l Font file name - Font file name + Nome do arquivo de fonte @@ -6960,76 +6959,76 @@ It is a list of strings; each element in the list will be displayed in its own l Inter-character spacing - Inter-character spacing + Espaçamento entre caracteres Fill letters with faces - Fill letters with faces + Preencha as letras com faces The base object used by this object - The base object used by this object + O objeto de base usado por este objeto The PAT file used by this object - The PAT file used by this object + O arquivo PAT usado por este objeto The pattern name used by this object - The pattern name used by this object + O nome do padrão usado por este objeto The pattern scale used by this object - The pattern scale used by this object + O padrão de escala usado por este objeto The pattern rotation used by this object - The pattern rotation used by this object + O padrão de rotação usado por este objeto If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) - If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) + Se definido como Falso, a hachura é aplicada como é nas faces, sem deslocamento (isso pode dar resultados errados para faces não-XY) The objects included in this clone - The objects included in this clone + Os objetos incluídos neste clone The scale factor of this clone - The scale factor of this clone + O fator de escala deste clone If Clones includes several objects, set True for fusion or False for compound - If Clones includes several objects, -set True for fusion or False for compound + Se os Clones tiverem vários objetos, +defina Verdadeiro para fusão ou Falso para o composto Start angle of the arc - Start angle of the arc + Ângulo inicial do arco End angle of the arc (for a full circle, give it same value as First Angle) - End angle of the arc (for a full circle, - give it same value as First Angle) + Ângulo final do arco (para um círculo completo, + use o mesmo valor do ângulo inicial) Radius of the circle - Radius of the circle + Raio do círculo @@ -7037,7 +7036,7 @@ set True for fusion or False for compound Create a face - Create a face + Criar uma face @@ -7047,62 +7046,62 @@ set True for fusion or False for compound The area of this object - The area of this object + A área deste objeto The objects that are part of this layer - The objects that are part of this layer + Os objetos que fazem parte desta camada Number of faces - Number of faces + Número de faces Radius of the control circle - Radius of the control circle + Raio do círculo de controle How the polygon must be drawn from the control circle - How the polygon must be drawn from the control circle + Como o polígono deve ser desenhado a partir do círculo de controle Radius to use to fillet the corners - Radius to use to fillet the corners + O raio usado para arredondar os cantos Size of the chamfer to give to the corners - Size of the chamfer to give to the corners + Tamanho do chanfro nos cantos The base object that will be duplicated. - The base object that will be duplicated. + O objeto base que será duplicado. The object along which the copies will be distributed. It must contain 'Edges'. - The object along which the copies will be distributed. It must contain 'Edges'. + O objeto ao longo do qual as cópias serão distribuídas. Deve conter 'Arestas'. Number of copies to create. - Number of copies to create. + Número de cópias para criar. Rotation factor of the twisted array. - Rotation factor of the twisted array. + Fator de rotação da rede torcida. @@ -7110,14 +7109,14 @@ set True for fusion or False for compound Show the individual array elements (only for Link arrays) - Show the individual array elements (only for Link arrays) + Mostrar os elementos de matriz individuais (somente para redes de vínculos) The position of the tip of the leader line. This point can be decorated with an arrow or another symbol. - The position of the tip of the leader line. -This point can be decorated with an arrow or another symbol. + A posição da ponta da linha da anotação. +Este ponto pode ser decorado com uma seta ou outro símbolo. @@ -7125,10 +7124,10 @@ This point can be decorated with an arrow or another symbol. as 'Text', depending on 'Label Type'. 'Target' won't be used if 'Label Type' is set to 'Custom'. - Object, and optionally subelement, whose properties will be displayed -as 'Text', depending on 'Label Type'. + Objeto e opcionalmente subelemento, cujas propriedades serão exibidas +como "Texto", dependendo do "Tipo de Rótulo". -'Target' won't be used if 'Label Type' is set to 'Custom'. +O "Objeto Alvo" não será usado se o "Tipo de Rótulo" estiver definido como "personalizado". @@ -7141,15 +7140,15 @@ The middle point is calculated automatically depending on the chosen If 'Straight Direction' is set to 'Custom', the 'Points' property can be set as a list of arbitrary points. - The list of points defining the leader line; normally a list of three points. + A lista de pontos que definem a linha de anotação; normalmente uma lista de três pontos. -The first point should be the position of the text, that is, the 'Placement', -and the last point should be the tip of the line, that is, the 'Target Point'. -The middle point is calculated automatically depending on the chosen -'Straight Direction' and the 'Straight Distance' value and sign. +O primeiro ponto deve ser a posição do texto, ou seja, o "Posicionamento", +e o último ponto deve ser o fim da linha, ou seja, o "Ponto Alvo". +O ponto do meio é calculado automaticamente dependendo da +"Direção Reta" escolhida e do valor e sinal da "Distância Reta". -If 'Straight Direction' is set to 'Custom', the 'Points' property -can be set as a list of arbitrary points. +Se a "Direção Reta" estiver definida como "Personalizada", a propriedade "Pontos" +pode ser definida como uma lista de pontos arbitrários. @@ -7157,10 +7156,10 @@ can be set as a list of arbitrary points. If 'Custom' is chosen, the points of the leader can be specified by assigning a custom list to the 'Points' attribute. - The direction of the straight segment of the leader line. + A direção do segmento reto da linha de anotações. -If 'Custom' is chosen, the points of the leader can be specified by -assigning a custom list to the 'Points' attribute. +Se "Personalizado" é escolhido, os pontos podem ser especificados +atribuindo uma lista personalizada aos "Pontos" atribuídos. @@ -7169,21 +7168,21 @@ assigning a custom list to the 'Points' attribute. This is an oriented distance; if it is negative, the line will be drawn to the left or below the 'Text', otherwise to the right or above it, depending on the value of 'Straight Direction'. - The length of the straight segment of the leader line. + O comprimento do segmento reto da linha de anotações. -This is an oriented distance; if it is negative, the line will be drawn -to the left or below the 'Text', otherwise to the right or above it, -depending on the value of 'Straight Direction'. +Esta é uma distância orientada; se for negativo, a linha será desenhada +para a esquerda ou abaixo do texto, caso contrário, a direita ou acima, +dependendo do valor da "Direção Reta". The placement of the 'Text' element in 3D space - The placement of the 'Text' element in 3D space + A posição do elemento "Texto" no espaço 3D The text to display when 'Label Type' is set to 'Custom' - The text to display when 'Label Type' is set to 'Custom' + O texto a ser exibido quando o "Tipo de Rótulo" está definido como "Personalizado" @@ -7192,11 +7191,11 @@ depending on the value of 'Straight Direction'. This property is read-only, as the final text depends on 'Label Type', and the object defined in 'Target'. The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. - The text displayed by this label. + O texto exibido por este rótulo. -This property is read-only, as the final text depends on 'Label Type', -and the object defined in 'Target'. -The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. +Esta propriedade é somente leitura, já que o texto final depende do "Tipo de Rótulo", +e o objeto definido como "Objeto Alvo". +O "Texto Personalizado" é exibido apenas se o "Tipo de Rótulo" estiver definido como "Personalizado". @@ -7208,74 +7207,74 @@ For other types, the string will be calculated automatically from the object def For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. - The type of information displayed by this label. + O tipo de informação exibida por este rótulo. -If 'Custom' is chosen, the contents of 'Custom Text' will be used. -For other types, the string will be calculated automatically from the object defined in 'Target'. -'Tag' and 'Material' only work for objects that have these properties, like Arch objects. +Se "Personalizado" for escolhido, o conteúdo do "Texto Personalizado" será usado. +Para outros tipos, o texto será calculado automaticamente a partir do objeto definido em 'Alvo'. +"Marcação" e "Material" só funcionam para objetos que possuem essas propriedades, como objetos Arco. -For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', -or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. +Para "Posição", "Comprimento", e "Área" estas propriedades serão extraídas do objeto principal em 'Alvo', +ou do subelemento "VérticeN", "CantoN", ou "FaceN", respectivamente, se especificado. General scaling factor that affects the annotation consistently because it scales the text, and the line decorations, if any, in the same proportion. - General scaling factor that affects the annotation consistently -because it scales the text, and the line decorations, if any, -in the same proportion. + Fator de escala geral que afeta a anotação consistentemente +porque ele dimensiona o texto e as decorações da linha, se houver, +na mesma proporção. Annotation style to apply to this object. When using a saved style some of the view properties will become read-only; they will only be editable by changing the style through the 'Annotation style editor' tool. - Annotation style to apply to this object. -When using a saved style some of the view properties will become read-only; -they will only be editable by changing the style through the 'Annotation style editor' tool. + Estilo de anotações para aplicar a este objeto. +Ao usar um estilo salvo, algumas das propriedades de exibição se tornarão somente leitura; +eles só serão editáveis mudando o estilo através da ferramenta "Editor de estilo de anotação". The base object that will be duplicated - The base object that will be duplicated + O objeto de base que será duplicado List of connected edges in the 'Path Object'. If these are present, the copies will be created along these subelements only. Leave this property empty to create copies along the entire 'Path Object'. - List of connected edges in the 'Path Object'. -If these are present, the copies will be created along these subelements only. -Leave this property empty to create copies along the entire 'Path Object'. + Lista de arestas conectadas no "Objeto de Trajetória". +Se estas estiverem presentes, as cópias serão criadas apenas ao longo destes sub-elementos. +Deixe essa propriedade vazia para criar cópias ao longo de todo o "Objeto de Trajetória". Number of copies to create - Number of copies to create + Número de cópias para criar Additional translation that will be applied to each copy. This is useful to adjust for the difference between shape centre and shape reference point. - Additional translation that will be applied to each copy. -This is useful to adjust for the difference between shape centre and shape reference point. + Deslocamento adicional que será aplicado para cada cópia. +Isto é útil para compensar as diferenças entre o centro das formas e o ponto de referência de forma. Alignment vector for 'Tangent' mode - Alignment vector for 'Tangent' mode + Vetor de alinhamento para o modo "Tangente" Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode - Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode + Força o uso do "Vector Vertical" como direção Z local ao usar o modo de alinhamento "Original" ou "Tangente" Direction of the local Z axis when 'Force Vertical' is true - Direction of the local Z axis when 'Force Vertical' is true + Direção do eixo Z local quando "Forçar Vertical" é ativado @@ -7285,29 +7284,29 @@ This is useful to adjust for the difference between shape centre and shape refer - Tangent: similar to 'Original' but the local X axis is pre-aligned to 'Tangent Vector'. To get better results with 'Original' or 'Tangent' you may have to set 'Force Vertical' to true. - Method to orient the copies along the path. -- Original: X is curve tangent, Y is normal, and Z is the cross product. -- Frenet: aligns the object following the local coordinate system along the path. -- Tangent: similar to 'Original' but the local X axis is pre-aligned to 'Tangent Vector'. + Método para orientar as cópias ao longo do caminho. +- Original: X é tangente à curva, Y é normal e Z é o produto cruzado. +- Frenet: alinha o objeto seguindo o sistema de coordenadas locais ao longo da trajetória. +- Tangente: semelhante a "Original", mas o eixo X local está pré-alinhado com o "Vector Tangente". -To get better results with 'Original' or 'Tangent' you may have to set 'Force Vertical' to true. +Para obter melhores resultados com "Original" ou "Tangente", você pode ter que ativar a "Forçar Vertical". Length from the start of the path to the first copy. - Length from the start of the path to the first copy. + Comprimento desde o início do caminho até a primeira cópia. Length from the end of the path to the last copy. - Length from the end of the path to the last copy. + Comprimento desde o final do caminho até a última cópia. Orient the copies along the path depending on the 'Align Mode'. Otherwise the copies will have the same orientation as the original Base object. - Orient the copies along the path depending on the 'Align Mode'. -Otherwise the copies will have the same orientation as the original Base object. + Oriente as cópias ao longo da trajetória dependendo do "Modo de Alinhamento". +Caso contrário, as cópias terão a mesma orientação do Objeto Base original. @@ -7315,151 +7314,151 @@ Otherwise the copies will have the same orientation as the original Base object. - Ortho: places the copies in the direction of the global X, Y, Z axes. - Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. - Circular: places the copies in concentric circular layers around the base object. - The type of array to create. -- Ortho: places the copies in the direction of the global X, Y, Z axes. -- Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. -- Circular: places the copies in concentric circular layers around the base object. + O tipo de matriz para criar. +- Ortogonal: coloca as cópias na direção dos eixos X, Y, Z globais. +- Polar: coloca as cópias em um arco circular, até um ângulo especificado, e com uma certa orientação definida por um centro e um eixo. +- Circular: coloca as cópias em camadas circulares concêntricas em torno do objeto base. Specifies if the copies should be fused together if they touch each other (slower) - Specifies if the copies should be fused together if they touch each other (slower) + Define se as cópias devem ser unidas caso encostarem umas nas outras (mais lento) Number of copies in X direction - Number of copies in X direction + Número de cópias na direção X Number of copies in Y direction - Number of copies in Y direction + Número de cópias na direção Y Number of copies in Z direction - Number of copies in Z direction + Número de cópias na direção Z Distance and orientation of intervals in X direction - Distance and orientation of intervals in X direction + Distância e orientação de intervalos na direção X Distance and orientation of intervals in Y direction - Distance and orientation of intervals in Y direction + Distância e orientação de intervalos na direção Y Distance and orientation of intervals in Z direction - Distance and orientation of intervals in Z direction + Distância e orientação de intervalos na direção Z The axis direction around which the elements in a polar or a circular array will be created - The axis direction around which the elements in a polar or a circular array will be created + A direção do eixo em torno da qual os elementos serão criados em uma rede polar ou circular Center point for polar and circular arrays. The 'Axis' passes through this point. - Center point for polar and circular arrays. -The 'Axis' passes through this point. + Ponto central para matrizes polar e circulares. +O "Eixo" passa por este ponto. The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. Its placement, position and rotation, will be used when creating polar and circular arrays. Leave this property empty to be able to set 'Axis' and 'Center' manually. - The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. -Its placement, position and rotation, will be used when creating polar and circular arrays. -Leave this property empty to be able to set 'Axis' and 'Center' manually. + O objeto eixo que substitui o valor de "Eixo" e "Centro", por exemplo, uma linha de referência. +Sua localização, posição e rotação, será usada na criação de matrizes polares e circulares. +Deixe essa propriedade vazia para pode definir "Eixo" e "Centro" manualmente. Number of copies in the polar direction - Number of copies in the polar direction + Número de cópias na direção polar Distance and orientation of intervals in 'Axis' direction - Distance and orientation of intervals in 'Axis' direction + Distância e orientação de intervalos na direção do "Eixo" Angle to cover with copies - Angle to cover with copies + Ângulo para cobrir com cópias Distance between circular layers - Distance between circular layers + Distância entre camadas circulares Distance between copies in the same circular layer - Distance between copies in the same circular layer + Distância entre cópias na mesma camada circular Number of circular layers. The 'Base' object counts as one layer. - Number of circular layers. The 'Base' object counts as one layer. + Número de camadas circulares. O "objeto de Base" conta como uma camada. A parameter that determines how many symmetry planes the circular array will have. - A parameter that determines how many symmetry planes the circular array will have. + Um parâmetro que determina quantos planos de simetria terá a matriz circular. Total number of elements in the array. This property is read-only, as the number depends on the parameters of the array. - Total number of elements in the array. -This property is read-only, as the number depends on the parameters of the array. + Número total de elementos na matriz. +Esta propriedade é somente leitura, já que o número depende dos parâmetros da matriz. Base object that will be duplicated - Base object that will be duplicated + Objeto base que será duplicado Object containing points used to distribute the copies. - Object containing points used to distribute the copies. + Objeto contendo pontos usados para distribuir as cópias. Number of copies in the array. This property is read-only, as the number depends on the points in 'Point Object'. - Number of copies in the array. -This property is read-only, as the number depends on the points in 'Point Object'. + Número de cópias na matruz. +Esta propriedade é somente leitura, já que o número depende dos pontos em "Objeto Ponto". Additional placement, shift and rotation, that will be applied to each copy - Additional placement, shift and rotation, that will be applied to each copy + Localização adicional, deslocamento e rotação, que serão aplicadas a cada cópia The base object this 2D view must represent - The base object this 2D view must represent + O objeto base que essa vista 2D deve representar The projection vector of this object - The projection vector of this object + O vetor de projeção deste objeto The way the viewed object must be projected - The way the viewed object must be projected + A maneira como o objeto visualizado deve ser projetada The indices of the faces to be projected in Individual Faces mode - The indices of the faces to be projected in Individual Faces mode + Os índices das faces a serem projetados no modo Individual Faces @@ -7469,66 +7468,66 @@ This property is read-only, as the number depends on the points in 'Point Object Fuse wall and structure objects of same type and material - Fuse wall and structure objects of same type and material + Unir paredes e estruturas de objetos do mesmo tipo e material Tessellate Ellipses and B-splines into line segments - Tessellate Ellipses and B-splines into line segments + Tesselação de Elipses e B-splines em segmentos de linha For Cutlines and Cutfaces modes, this leaves the faces at the cut location - For Cutlines and Cutfaces modes, - this leaves the faces at the cut location + Para os modos CortarLinhas e CortarFaces, +isto deixa as faces no lugar do corte Length of line segments if tessellating Ellipses or B-splines into line segments - Length of line segments if tessellating Ellipses or B-splines - into line segments + Comprimento dos segmentos se tiver tesselação de Elipses ou B-splines + em segmentos de linha If this is True, this object will include only visible objects - If this is True, this object will include only visible objects + Se verdadeiro, este objeto incluirá apenas objetos visíveis A list of exclusion points. Any edge touching any of those points will not be drawn. - A list of exclusion points. Any edge touching any of those points will not be drawn. + Uma lista de pontos de exclusão. Qualquer aresta que toque em qualquer um desses pontos não será desenhada. A list of exclusion object names. Any object viewed that matches a name from the list will not be drawn. - A list of exclusion object names. Any object viewed that matches a name from the list will not be drawn. + Uma liste de nomes de objetos de exclusão. Qualquer objeto visualizado que corresponda a um nome da lista não será desenhado. If this is True, only solid geometry is handled. This overrides the base object's Only Solids property - If this is True, only solid geometry is handled. This overrides the base object's Only Solids property + Se verdadeiro, apenas geometrias sólidas são manipuladas. Isso substitui a propriedade Somente Sólidos do objeto base If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property - If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property + Se isto for verdadeiro, o conteúdo é recortado até as bordas do plano de seção, se aplicável. Isso substitui a propriedade Recorte do objeto base This object will be recomputed only if this is True. - This object will be recomputed only if this is True. + Este objeto será recalculado apenas se isto for Verdadeiro. The points of the Bezier curve - The points of the Bezier curve + Os pontos da curva de Bézier The degree of the Bezier function - The degree of the Bezier function + O grau da função de Bezier @@ -7538,17 +7537,17 @@ This property is read-only, as the number depends on the points in 'Point Object If the Bezier curve should be closed or not - If the Bezier curve should be closed or not + Se a curva de Bézier deve ser fechada ou não Create a face if this curve is closed - Create a face if this curve is closed + Criar uma face se esta curva estiver fechada The length of this object - The length of this object + O comprimento deste objeto @@ -7558,76 +7557,75 @@ This property is read-only, as the number depends on the points in 'Point Object X Location - X Location + Posição de X Y Location - Y Location + Posição de Y Z Location - Z Location + Posição de Z Start angle of the elliptical arc - Start angle of the elliptical arc + Ângulo inicial do arco elíptico End angle of the elliptical arc (for a full circle, give it same value as First Angle) - End angle of the elliptical arc - - (for a full circle, give it same value as First Angle) + Ângulo final do arco elíptico + (para um círculo completo, use o mesmo valor do ângulo inicial) Minor radius of the ellipse - Minor radius of the ellipse + O raio menor da elipse Major radius of the ellipse - Major radius of the ellipse + O raio maior da elipse Area of this object - Area of this object + Área deste objeto The start point of this line. - The start point of this line. + O ponto de partida desta linha. The end point of this line. - The end point of this line. + O ponto final desta linha. The length of this line. - The length of this line. + O comprimento desta linha. Radius to use to fillet the corner. - Radius to use to fillet the corner. + O raio usado para arredondar os cantos. The normal direction of the text of the dimension - The normal direction of the text of the dimension + A direção normal do texto da cota The object measured by this dimension object - The object measured by this dimension object + O objeto medido por esta cota @@ -7638,13 +7636,13 @@ There are various possibilities: - An object, and one of its edges. - An object, and two of its vertices. - An arc object, and its edge. - The object, and specific subelements of it, -that this dimension object is measuring. + O objeto e sub-elementos específicos dele, +que esta cota está medido. -There are various possibilities: -- An object, and one of its edges. -- An object, and two of its vertices. -- An arc object, and its edge. +Existem várias possibilidades: +- Um objeto, e uma de suas arestas. +- Um objeto e dois de seus vértices. +- Um objeto de arco e sua aresta. @@ -7656,14 +7654,14 @@ is to the measured object. that displays the measured radius or diameter. - For angular dimensions, this controls the radius of the dimension arc that displays the measured angle. - A point through which the dimension line, or an extrapolation of it, will pass. + Um ponto através do qual a linha de cota, ou uma extrapolação dela, passará. -- For linear dimensions, this property controls how close the dimension line -is to the measured object. -- For radial dimensions, this controls the direction of the dimension line -that displays the measured radius or diameter. -- For angular dimensions, this controls the radius of the dimension arc -that displays the measured angle. +- Para dimensões lineares, esta propriedade controla o quão perto a linha de cota +está do objeto medido. +- Para dimensões radiais, isto controla a direção da linha de cota +que exibe o raio ou diâmetro medido. +- Para dimensões angulares, isto controla o raio do arco da cota +que exibe o ângulo medido. @@ -7671,10 +7669,10 @@ that displays the measured angle. If it is a radius dimension it will be the center of the arc. If it is a diameter dimension it will be a point that lies on the arc. - Starting point of the dimension line. + Ponto inicial da linha de cota. -If it is a radius dimension it will be the center of the arc. -If it is a diameter dimension it will be a point that lies on the arc. +Se é uma dimensão de raio, ela será o centro do arco. +Se for uma dimensão de diâmetro, será um ponto que está no arco. @@ -7682,17 +7680,17 @@ If it is a diameter dimension it will be a point that lies on the arc. - Ending point of the dimension line. + Ponto final da linha de cota. -If it is a radius or diameter dimension -it will be a point that lies on the arc. +Se for uma cota de raio ou diâmetro +será um ponto que está no arco. The direction of the dimension line. If this remains '(0,0,0)', the direction will be calculated automatically. - The direction of the dimension line. -If this remains '(0,0,0)', the direction will be calculated automatically. + A direção da linha de cota. +Se isto permanecer '(0,0,0)', a direção será calculada automaticamente. @@ -7703,34 +7701,34 @@ from the 'Start' and 'End' properties. If the 'Linked Geometry' is an arc or circle, this 'Distance' is the radius or diameter, depending on the 'Diameter' property. - The value of the measurement. + O valor da medida. -This property is read-only because the value is calculated -from the 'Start' and 'End' properties. +Esta propriedade é somente leitura, pois o valor é calculado +a partir das propriedades "Começo" e "Final". -If the 'Linked Geometry' is an arc or circle, this 'Distance' -is the radius or diameter, depending on the 'Diameter' property. +Se a "Geometria Vinculada" é um arco ou círculo, esta "Distância" +é o raio ou diâmetro, dependendo da propriedade "Diâmetro". When measuring circular arcs, it determines whether to display the radius or the diameter value - When measuring circular arcs, it determines whether to display -the radius or the diameter value + Ao medir arcos circulares, determina se deve exibir +o valor do raio ou do diâmetro Starting angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - Starting angle of the dimension line (circular arc). -The arc is drawn counter-clockwise. + Ângulo inicial da linha de cota (arco circular). +O arco é desenhado no sentido anti-horário. Ending angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - Ending angle of the dimension line (circular arc). -The arc is drawn counter-clockwise. + Ângulo final da linha de cota (arco circular). +O arco é desenhado no sentido anti-horário. @@ -7738,10 +7736,10 @@ The arc is drawn counter-clockwise. This is normally the point where two line segments, or their extensions intersect, resulting in the measured 'Angle' between them. - The center point of the dimension line, which is a circular arc. + O ponto central da linha de cota, sendo um arco circular. -This is normally the point where two line segments, or their extensions -intersect, resulting in the measured 'Angle' between them. +Normalmente este é o ponto onde dois segmentos de linha, ou suas extensões +se cruzam, resultando no "Ângulo" medido entre eles. @@ -7749,140 +7747,140 @@ intersect, resulting in the measured 'Angle' between them. This property is read-only because the value is calculated from the 'First Angle' and 'Last Angle' properties. - The value of the measurement. + O valor das medições. -This property is read-only because the value is calculated from -the 'First Angle' and 'Last Angle' properties. +Essa propriedade é somente leitura pois o valor é calculado a partir +das propriedades "Primeiro Ângulo" e '"Último Ângulo". Length of the rectangle - Length of the rectangle + Comprimento do retângulo Height of the rectangle - Height of the rectangle + Altura do retângulo Horizontal subdivisions of this rectangle - Horizontal subdivisions of this rectangle + Subdivisões horizontais deste retângulo Vertical subdivisions of this rectangle - Vertical subdivisions of this rectangle + Subdivisões verticais deste retângulo Linked faces - Linked faces + Faces vinculadas Specifies if splitter lines must be removed - Specifies if splitter lines must be removed + Especifica se as linhas de divisão devem ser removidas An optional extrusion value to be applied to all faces - An optional extrusion value to be applied to all faces + Um valor de extrusão opcional que será aplicado a todas as faces An optional offset value to be applied to all faces - An optional offset value to be applied to all faces + Um valor de deslocamento opcional que será aplicado em todas as faces This specifies if the shapes sew - This specifies if the shapes sew + Isso específica se as formas se costuram The area of the faces of this Facebinder - The area of the faces of this Facebinder + A área das faces dessa Película The components of this block - The components of this block + Os componentes deste bloco The vertices of the wire - The vertices of the wire + Os vértices do arame If the wire is closed or not - If the wire is closed or not + Se o arame está fechado ou não The base object is the wire, it's formed from 2 objects - The base object is the wire, it's formed from 2 objects + O objeto de base é o arame, é formado a partir de 2 objetos The tool object is the wire, it's formed from 2 objects - The tool object is the wire, it's formed from 2 objects + A ferramenta de objeto é o arame, é formado a partir de 2 objetos The start point of this line - The start point of this line + O ponto de partida desta linha The end point of this line - The end point of this line + O ponto final desta linha The length of this line - The length of this line + O comprimento desta linha Create a face if this object is closed - Create a face if this object is closed + Criar uma face se este objeto estiver fechado The number of subdivisions of each edge - The number of subdivisions of each edge + O número de subdivisões de cada aresta The points of the B-spline - The points of the B-spline + Os pontos da B-spline If the B-spline is closed or not - If the B-spline is closed or not + Se a B-spline está fechada ou não Create a face if this spline is closed - Create a face if this spline is closed + Criar uma face se esta spline estiver fechada Parameterization factor - Parameterization factor + Fator de parametrização Force sync pattern placements even when array elements are expanded - Force sync pattern placements even when array elements are expanded + Forçar sincronização de padrões de posicionamento mesmo quando os elementos da matriz são expandidos Show the individual array elements - Show the individual array elements + Mostrar os elementos individuais da matriz @@ -7893,17 +7891,17 @@ the 'First Angle' and 'Last Angle' properties. Line spacing (relative to font size) - Line spacing (relative to font size) + Espaçamento entre linhas (relativo ao tamanho da fonte) Vertical alignment - Vertical alignment + Alinhamento vertical Maximum number of characters on each line of the text box - Maximum number of characters on each line of the text box + O número máximo de caracteres em cada linha da caixa de texto @@ -7914,12 +7912,12 @@ the 'First Angle' and 'Last Angle' properties. The type of frame around the text of this object - The type of frame around the text of this object + O tipo de moldura em torno do texto deste objeto Display a leader line or not - Display a leader line or not + Exibir ou não uma linha de anotação @@ -7934,57 +7932,57 @@ the 'First Angle' and 'Last Angle' properties. Defines an SVG pattern. - Defines an SVG pattern. + Define um padrão SVG. Defines the size of the SVG pattern. - Defines the size of the SVG pattern. + Define o tamanho do padrão SVG. If it is true, the objects contained within this layer will adopt the line color of the layer - If it is true, the objects contained within this layer will adopt the line color of the layer + Se verdadeiro, os objetos contidos nesta camada adotarão a cor de linha da camada If it is true, the objects contained within this layer will adopt the shape color of the layer - If it is true, the objects contained within this layer will adopt the shape color of the layer + Se verdadeiro, os objetos contidos nesta camada adotarão a cor da forma da camada If it is true, the print color will be used when objects in this layer are placed on a TechDraw page - If it is true, the print color will be used when objects in this layer are placed on a TechDraw page + Se verdadeiro, a cor da impressão será usada quando objetos nesta camada forem colocados em uma página do Desenho Técnico The line color of the objects contained within this layer - The line color of the objects contained within this layer + A cor de linha dos objetos contidos nesta camada The shape color of the objects contained within this layer - The shape color of the objects contained within this layer + A cor de forma dos objetos contidos nesta camada The line width of the objects contained within this layer - The line width of the objects contained within this layer + A largura de linha dos objetos contidos nesta camada The draw style of the objects contained within this layer - The draw style of the objects contained within this layer + O estilo de desenho dos objetos contidos nesta camada The transparency of the objects contained within this layer - The transparency of the objects contained within this layer + A transparência dos objetos contidos nesta camada The line color of the objects contained within this layer, when used on a TechDraw page - The line color of the objects contained within this layer, when used on a TechDraw page + A cor de linha dos objetos contidos nesta camada, quando usados em uma página de Desenho Técnico @@ -7999,31 +7997,31 @@ the 'First Angle' and 'Last Angle' properties. Spacing between text and dimension line - Spacing between text and dimension line + Espaçamento entre texto e linha de cota Rotate the dimension text 180 degrees - Rotate the dimension text 180 degrees + Rotacione o texto da cota a 180 graus Text Position. Leave '(0,0,0)' for automatic position - Text Position. -Leave '(0,0,0)' for automatic position + Posição de texto. +Deixe "(0,0,0)" para posição automática Text override. Write '$dim' so that it is replaced by the dimension length. - Text override. -Write '$dim' so that it is replaced by the dimension length. + Substituição de texto. +Escreva '$dim' para que seja substituído pelo comprimento da cota. The number of decimals to show - The number of decimals to show + O número de casas decimais a exibir @@ -8035,9 +8033,9 @@ Write '$dim' so that it is replaced by the dimension length. A unit to express the measurement. Leave blank for system default. Use 'arch' to force US arch notation - A unit to express the measurement. -Leave blank for system default. -Use 'arch' to force US arch notation + Uma unidade para expressar a medida. +Deixe em branco para o padrão do sistema. +Use "arco" para forçar a notação de arco dos EUA @@ -8054,14 +8052,13 @@ Use 'arch' to force US arch notation Rotate the dimension arrows 180 degrees - Rotate the dimension arrows 180 degrees + Rotacione as setas de cota 180 graus The distance the dimension line is extended past the extension lines - The distance the dimension line is extended -past the extension lines + A distância da linha de cota é estendida além das linhas de extensão @@ -8072,13 +8069,13 @@ past the extension lines Length of the extension line beyond the dimension line - Length of the extension line -beyond the dimension line + Comprimento da linha de extensão +além da linha de cota Shows the dimension line and arrows - Shows the dimension line and arrows + Exibe a linha de cota e as setas @@ -8095,12 +8092,12 @@ beyond the dimension line Manage layers... - Manage layers... + Gerenciar camadas... Set/modify the different layers of this document - Set/modify the different layers of this document + Definir/modificar as diferentes camadas deste documento diff --git a/src/Mod/Draft/Resources/translations/Draft_pt-PT.ts b/src/Mod/Draft/Resources/translations/Draft_pt-PT.ts index 6711f9b8a5..3560d89319 100644 --- a/src/Mod/Draft/Resources/translations/Draft_pt-PT.ts +++ b/src/Mod/Draft/Resources/translations/Draft_pt-PT.ts @@ -3238,43 +3238,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalado do Navio - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3285,7 +3285,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3355,7 +3355,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3376,7 +3376,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3398,37 +3398,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5174,53 +5174,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Encontrado 1 objeto paramétrico: quebrando suas dependências - + Found 2 objects: subtracting them Encontrado 2 objetos: subtraindo - + Found several faces: splitting them Encontradas várias faces: separando-as - + Found several objects: subtracting them from the first one Encontrados vários objetos: subtraindo-os ao primeiro - + Found 1 face: extracting its wires Encontrada 1 face: extraindo os seus traços - + Found only wires: extracting their edges Encontrados apenas traços: extraindo as suas arestas - + No more downgrade possible Não existem mais despromoções possíveis diff --git a/src/Mod/Draft/Resources/translations/Draft_ro.ts b/src/Mod/Draft/Resources/translations/Draft_ro.ts index 3cf4284787..4dc03fbb2a 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ro.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ro.ts @@ -3241,43 +3241,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledPescaj - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3358,7 +3358,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3379,7 +3379,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3401,37 +3401,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5177,53 +5177,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_ru.qm b/src/Mod/Draft/Resources/translations/Draft_ru.qm index 695652633d..944e60da61 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_ru.qm and b/src/Mod/Draft/Resources/translations/Draft_ru.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_ru.ts b/src/Mod/Draft/Resources/translations/Draft_ru.ts index 27efdf6797..2f2b6bc51d 100644 --- a/src/Mod/Draft/Resources/translations/Draft_ru.ts +++ b/src/Mod/Draft/Resources/translations/Draft_ru.ts @@ -247,7 +247,7 @@ The distance between the dimension text and the dimension line - Расстояние между размерным текстом и размерной линией + Расстояние между текстом и размерной линией @@ -288,7 +288,7 @@ Tick - Зацеп + Засечка @@ -308,7 +308,7 @@ Dimension overshoot - Нахлёст размерной линии + Вынос размерной линии @@ -324,7 +324,7 @@ Extension overshoot - Дополнительное расширение + Выступ выносной линии @@ -379,7 +379,7 @@ It must be at least 2. The number of symmetry lines in the circular array. - Количество линий симметрии в круговом массиве. + Количество осей симметрии в круговом массиве. @@ -445,7 +445,7 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Link array - Массив ссылок + Массив из связанных объектов @@ -453,7 +453,7 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Orthogonal array - Ортогональный массив + Прямоугольный массив @@ -581,7 +581,7 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Link array - Массив ссылок + Массив из связанных объектов @@ -683,7 +683,7 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Link array - Массив ссылок + Массив из связанных объектов @@ -1151,7 +1151,7 @@ value by using the [ and ] keys while drawing Tick - Зацеп + Засечка @@ -1694,7 +1694,7 @@ such as "Arial:Bold" Tick - Зацеп + Засечка @@ -3224,43 +3224,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledОсадка - - - - - - + + + + + + Converting: Конвертировать: - - - + + + Conversion successful Конвертация прошла успешно - - + + LibreDWG converter not found Не найден конвертер LibreDWG - - + + ODA converter not found Не найден конвертер ODA - - + + QCAD converter not found Не найден конвертер QCAD - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3271,7 +3271,7 @@ https://wiki.freecad.org/Import_Export_Preferences https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3338,7 +3338,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3359,7 +3359,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3381,37 +3381,37 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Нет графического интерфейса - + Unable to insert new object into a scaled part Невозможно вставить новый объект в масштабированную деталь - + Symbol not implemented. Using a default symbol. Символ не поддерживается. Испольуйте базовые символы. - + Visibility off; removed from list: Видимость выключена; удалена из списка: - + image is Null изображение пустое - + filename does not exist on the system or in the resource file имя файла не существует в системе или в файле ресурсов - + unable to load texture невозможно загрузить текстуру - + Does not have 'ViewObject.RootNode'. Не имеет 'ViewObject.RootNode'. @@ -3438,7 +3438,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Vertices: - Вершины | Узлы: + Вершины: @@ -3459,7 +3459,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Objects have different placements. Distance between the two base points: - Объекты имеют разные размещения. Расстояние между двумя базовыми точками: + Объекты имеют разные позиции. Расстояние между двумя базовыми точками: @@ -3510,7 +3510,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Working plane aligned to global placement of - Рабочая плоскость выровнена по глобальному размещению + Рабочая плоскость, привязанная к глобальному расположению @@ -3527,7 +3527,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Path array - Массив путей + Массив по кривой @@ -3549,7 +3549,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick text position - Выбрать положение текста + Указать положение текста @@ -3557,7 +3557,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick first point - Укажите первую точку + Указать первую точку @@ -3580,7 +3580,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick next point - Укажите следующую точку + Указать следующую точку @@ -3595,7 +3595,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Select an object to join - Выберите объект для присоединения + Выбрать как объект для присоединения @@ -3610,7 +3610,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick location point - Выберите точку местоположения + Выбрать точку расположения @@ -4553,7 +4553,7 @@ The final angle will be the base angle plus this amount. Orthogonal array - Ортогональный массив + Прямоугольный массив @@ -5157,53 +5157,53 @@ The final angle will be the base angle plus this amount. Сведение - + Upgrade: Unknown force method: Обновление: Неизвестный метод силы: - + Found 1 block: exploding it Найден 1 блок: развёртываю его - + Found 1 multi-solids compound: exploding it Найдено 1 соединение нескольких тел: Развёртывание тел - + Found 1 parametric object: breaking its dependencies Найден один параметрический объект: уничтожаю его зависимости - + Found 2 objects: subtracting them Найдены 2 объекта: вычитаю их - + Found several faces: splitting them Найдено несколько граней: разделяю их - + Found several objects: subtracting them from the first one Найдено несколько объектов: вычитаю их из первого - + Found 1 face: extracting its wires Найдена 1 грань: извлекаю ее каркас - + Found only wires: extracting their edges Найден только каркас: извлекаем его края - + No more downgrade possible Дальнейшее разделение не возможно @@ -5669,7 +5669,7 @@ You may also select a three vertices or a Working Plane Proxy. Path array - Массив путей + Массив по кривой diff --git a/src/Mod/Draft/Resources/translations/Draft_sl.qm b/src/Mod/Draft/Resources/translations/Draft_sl.qm index a03f383744..4c8c8b5884 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_sl.qm and b/src/Mod/Draft/Resources/translations/Draft_sl.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_sl.ts b/src/Mod/Draft/Resources/translations/Draft_sl.ts index 9e0cbda66d..ae10891196 100644 --- a/src/Mod/Draft/Resources/translations/Draft_sl.ts +++ b/src/Mod/Draft/Resources/translations/Draft_sl.ts @@ -1082,7 +1082,7 @@ risanjem spremenite s tipkama [ in ] Apply above style to all annotations (texts, dimensions and labels) - Apply above style to all annotations (texts, dimensions and labels) + Uveljavi zgornji slog na vseh pripisih (napisi, kote in oznake) @@ -1167,12 +1167,12 @@ risanjem spremenite s tipkama [ in ] Ext lines - Ext lines + Podalj. črt The distance the dimension line is extended past the extension lines - The distance the dimension line is extended past the extension lines + Dolžina podaljšanja kotnice preko pomožnih kotnic @@ -1197,12 +1197,12 @@ risanjem spremenite s tipkama [ in ] Dim overshoot - Dim overshoot + Prekoračitev s kotnico Length of the extension lines beyond the dimension line - Length of the extension lines beyond the dimension line + Dolžina pomožnih kotnic preko kotnice @@ -1212,7 +1212,7 @@ risanjem spremenite s tipkama [ in ] Ext overshoot - Ext overshoot + Prekoračitev s pomožno kotnico @@ -2061,27 +2061,27 @@ Sicer bo uporabljena privzeta barva. Get original colors from the DXF file (legacy importer only) - Get original colors from the DXF file (legacy importer only) + Izvorne barve pridobi iz datoteke DXF (le podedovan uvozilnik) Import hatch boundaries as wires (legacy importer only) - Import hatch boundaries as wires (legacy importer only) + Meje črtkanj uvozi kot črtovja (le podedovan uvozilnik) Render polylines with width (legacy importer only) - Render polylines with width (legacy importer only) + Izriši črtovja z debelino (le podedovan uvozilnik) Export 3D objects as polyface meshes (legacy exporter only) - Export 3D objects as polyface meshes (legacy exporter only) + Izvozi 3D predmete kot večploskovna ploskovja (le podedovan izvozilnik) Project exported objects along current view direction (legacy exporter only) - Project exported objects along current view direction (legacy exporter only) + Preslikaj izvožene predmete v smeri trenutnega pogleda (le podedovan izvozilnik) @@ -2355,7 +2355,7 @@ To lahko spodleti pri predlogah novejših od DXF R12. Grid size - Velikost mreže + Korak mreže @@ -3244,54 +3244,54 @@ Ta možnost ni na voljo, če je v prednastavitvah izrisovanja možnost "Uporabi Ugrez - - - - - - + + + + + + Converting: Pretvarjanje: - - - + + + Conversion successful Pretvaranje uspelo - - + + LibreDWG converter not found Pretvornika LibreDWG datotek ni mogoče najti - - + + ODA converter not found Pretvornika ODA datotek ni mogoče najti - - + + QCAD converter not found Pretvornika QCAD datotek ni mogoče najti - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: https://wiki.freecad.org/Import_Export_Preferences - No suitable external DWG converter has been found. -Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG -For more information see: + Ni bilo mogoče najti primernega zunanjega DWG-pretvornika. +Ročno ga nastavite v meniju Uredi -> Prednastavitve -> Uvoz/Izvoz -> DWG +Več informacij lahko najdete na: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3361,7 +3361,7 @@ Da FreeCADu omogočite prenos teh knjižnic, odgovorite z Da. - + @@ -3382,7 +3382,7 @@ Da FreeCADu omogočite prenos teh knjižnic, odgovorite z Da. - + @@ -3404,37 +3404,37 @@ Da FreeCADu omogočite prenos teh knjižnic, odgovorite z Da. Brez grafičnega vmesnika - + Unable to insert new object into a scaled part Novega predmeta ni mogoče vstaviti v prevelikosten del - + Symbol not implemented. Using a default symbol. Znak ni uveden. Uporabljanje privzetega znaka. - + Visibility off; removed from list: Vidnost izključena; odstranjeno s seznama: - + image is Null slika je ničelna - + filename does not exist on the system or in the resource file imena datoteke ni v sistemu ali v mapi z viri - + unable to load texture ustroja ni mogoče naložiti - + Does not have 'ViewObject.RootNode'. Nima 'ViewObject.RootNode' (KorenskoVozlišče.PogledaPredmeta). @@ -4700,7 +4700,7 @@ Končni kót bo seštevek izhodiščnega in tega kóta. ShapeString: face creation failed for one character - ShapeString: face creation failed for one character + Besedilna oblika: pri enem znaku je ustvarjanje ploskve spodletelo @@ -5180,53 +5180,53 @@ Končni kót bo seštevek izhodiščnega in tega kóta. Splošči - + Upgrade: Unknown force method: Izpopolni: Nepoznan način prisile: - + Found 1 block: exploding it Najden 1 zbir: razbijanje - + Found 1 multi-solids compound: exploding it Najden 1 večtelesen sestav: razbijanje - + Found 1 parametric object: breaking its dependencies Najden 1 določilovni predmet: odstranjevanje njegovih odvisnosti - + Found 2 objects: subtracting them Najdena 2 predmeta: odštevanje - + Found several faces: splitting them Najdenih več ploskev: razcepljanje - + Found several objects: subtracting them from the first one Najdenih več predmetov: odštevanje od prvega - + Found 1 face: extracting its wires Najdena 1 ploskev: izluščenje črtovij - + Found only wires: extracting their edges Najdena le črtovja: izluščenje njihovih robov - + No more downgrade possible Ni več mogoče popreprostiti @@ -5371,7 +5371,7 @@ Končni kót bo seštevek izhodiščnega in tega kóta. added property 'Count' - added property 'Count' + dodaj lastnost "Število" @@ -5487,7 +5487,7 @@ z menija Orodja -> Upravljalnik vstavkov Error: json module not found. Unable to load style - Error: json module not found. Unable to load style + Napaka: modula JSON ni mogoče najti. Sloga ni mogoče naložiti @@ -5587,7 +5587,7 @@ z menija Orodja -> Upravljalnik vstavkov Writing camera position - Writing camera position + Zapisovanje položaja kamere @@ -5981,12 +5981,12 @@ medtem ko bo en sam očrt z nepovezanimi sledmi pretvorjen v več posamičnih pr Snap Ortho - Snap Ortho + Pripenjanje na pravokotnost Snaps to imaginary lines that cross the previous point at multiples of 45°. - Snaps to imaginary lines that cross the previous point at multiples of 45°. + Pripenjanje na navidezne črte, ki potekajo skozi prejšnjo točko pod večkratnikom kota 45°. @@ -6905,7 +6905,7 @@ Te preslikave je mogoče uporabiti za ustvarjanje tehničnih risb z delovnim oko Creates a shape from a text string by choosing a specific font and a placement. The closed shapes can be used for extrusions and boolean operations. Iz besedilnega niza ustvari obliko tako, da se določi pisavo in postavitev. -Sklenjene oblike je mogoče uporabiti za izrivanje in logična opravila. +Sklenjene oblike je mogoče uporabiti za izrivanje in logične operacije. @@ -7634,7 +7634,7 @@ Ta lastnost je le za branje, saj je število odvisno od števila točk v "Točko The normal direction of the text of the dimension - The normal direction of the text of the dimension + Običajna smer besedila kotnic @@ -7885,7 +7885,7 @@ lastnosti "Prvega kota" in "Zadnjega kota". Force sync pattern placements even when array elements are expanded - Force sync pattern placements even when array elements are expanded + Vsili usklajeni vzorec postavitve tudi, ko so razpostavljeni predmeti razširjeni @@ -8036,7 +8036,7 @@ Write '$dim' so that it is replaced by the dimension length. Show the unit suffix - Show the unit suffix + Prikaži pripono enote diff --git a/src/Mod/Draft/Resources/translations/Draft_sr-CS.qm b/src/Mod/Draft/Resources/translations/Draft_sr-CS.qm index d604a51250..a615879182 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_sr-CS.qm and b/src/Mod/Draft/Resources/translations/Draft_sr-CS.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_sr-CS.ts b/src/Mod/Draft/Resources/translations/Draft_sr-CS.ts index 390d9f0fe3..14e16728b3 100644 --- a/src/Mod/Draft/Resources/translations/Draft_sr-CS.ts +++ b/src/Mod/Draft/Resources/translations/Draft_sr-CS.ts @@ -994,7 +994,7 @@ promeniti korišćenjem tipki [ i ] tokom crtanja Solid - Puno telo + Puno @@ -3241,43 +3241,43 @@ Nije dostupno ako je omogućena Draft opcija podešavanja 'Koristi Part primitiv Zakošenje - - - - - - + + + + + + Converting: Konvertovanje: - - - + + + Conversion successful Konverzija je uspela - - + + LibreDWG converter not found LibreDWG konvertor nije pronađen - - + + ODA converter not found ODA konvertor nije pronađen - - + + QCAD converter not found QCAD konvertor nije pronađen - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ Za više informacija pogledajte: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3356,7 +3356,7 @@ Da bi omogućio FreeCAD-u da preuzme ove biblioteke, odgovori sa Da. - + @@ -3377,7 +3377,7 @@ Da bi omogućio FreeCAD-u da preuzme ove biblioteke, odgovori sa Da. - + @@ -3399,37 +3399,37 @@ Da bi omogućio FreeCAD-u da preuzme ove biblioteke, odgovori sa Da.Nema grafičkog interfejsa - + Unable to insert new object into a scaled part Nije moguće umetnuti novi objekat u skalirani deo - + Symbol not implemented. Using a default symbol. Simbol nije primenjen. Koristi se unapred zadati simbol. - + Visibility off; removed from list: Vidljivost isključena; uklonjeno sa liste: - + image is Null slika je prazna - + filename does not exist on the system or in the resource file naziv datoteke ne postoji na sistemu ili u resursnoj datoteci - + unable to load texture nije moguće učitati teksturu - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5175,53 +5175,53 @@ Krajnji ugao će biti početni ugao plus ovaj iznos. Spljošti - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Pronađen je 1 parametarski objekat: prekidam njegove zavisnosti - + Found 2 objects: subtracting them Pronađena su 2 objekta: oduzimam ih - + Found several faces: splitting them Pronađeno je nekoliko stranica: delim ih - + Found several objects: subtracting them from the first one Pronađeno je nekoliko objekata: oduzimam ih od prvog - + Found 1 face: extracting its wires Pronađena 1 stranica: izdvajaju se njihove žice - + Found only wires: extracting their edges Pronađene samo žice: izdvajaju se njihove ivice - + No more downgrade possible Nije moguće dalje rastavljati diff --git a/src/Mod/Draft/Resources/translations/Draft_sr.qm b/src/Mod/Draft/Resources/translations/Draft_sr.qm index e941ae02f1..c8c46bb4fc 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_sr.qm and b/src/Mod/Draft/Resources/translations/Draft_sr.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_sr.ts b/src/Mod/Draft/Resources/translations/Draft_sr.ts index b115cd1ac1..acac5f3edc 100644 --- a/src/Mod/Draft/Resources/translations/Draft_sr.ts +++ b/src/Mod/Draft/Resources/translations/Draft_sr.ts @@ -994,7 +994,7 @@ value by using the [ and ] keys while drawing Solid - Пуно тело + Пуно @@ -3241,43 +3241,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledЗакошење - - - - - - + + + + + + Converting: Конвертовање: - - - + + + Conversion successful Конверзија је успела - - + + LibreDWG converter not found LibreDWG конвертор датотека није пронађен - - + + ODA converter not found ODA конвертор није пронађен - - + + QCAD converter not found QCAD конвертор није пронађен - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3288,7 +3288,7 @@ https://wiki.freecad.org/Import_Export_Preferences https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3356,7 +3356,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3377,7 +3377,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer - + @@ -3399,37 +3399,37 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Нема графичког интерфејса - + Unable to insert new object into a scaled part Није могуће уметнути нови објекат у скалирани део - + Symbol not implemented. Using a default symbol. Симбол није примењен. Користи се унапред задати симбол. - + Visibility off; removed from list: Видљивост искључена; уклоњено са листе: - + image is Null слика је празна - + filename does not exist on the system or in the resource file назив датотеке не постоји на систему или у ресурсној датотеци - + unable to load texture није могуће учитати текстуру - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5175,53 +5175,53 @@ The final angle will be the base angle plus this amount. Спљошти - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Пронађен је 1 параметарски објекат: прекидам његове зависности - + Found 2 objects: subtracting them Пронађена су 2 објекта: одузимам их - + Found several faces: splitting them Пронађено је неколико страница: делим их - + Found several objects: subtracting them from the first one Пронађено је неколико објеката: одузимам их од првог - + Found 1 face: extracting its wires Пронађена 1 страница: издвајају се њихове жице - + Found only wires: extracting their edges Пронађене само жице: издвајају се њихове ивице - + No more downgrade possible Није могуће даље растављати diff --git a/src/Mod/Draft/Resources/translations/Draft_sv-SE.qm b/src/Mod/Draft/Resources/translations/Draft_sv-SE.qm index 7f2952c0e5..2366a52d93 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_sv-SE.qm and b/src/Mod/Draft/Resources/translations/Draft_sv-SE.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_sv-SE.ts b/src/Mod/Draft/Resources/translations/Draft_sv-SE.ts index aebe79575b..cd0acfab8d 100644 --- a/src/Mod/Draft/Resources/translations/Draft_sv-SE.ts +++ b/src/Mod/Draft/Resources/translations/Draft_sv-SE.ts @@ -136,13 +136,13 @@ The type of arrows or markers to use for dimensions and labels - The type of arrows or markers to use for dimensions and labels + Typ av pilar eller markörer att använda för dimensioner och etiketter The size of the arrows or markers in system units - The size of the arrows or markers in system units + Storlek på pilarna eller markörerna i systemenheter @@ -153,7 +153,7 @@ Line and arrow color - Line and arrow color + Linje- och pilfärg @@ -3237,43 +3237,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledDjupgående - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3284,7 +3284,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3354,7 +3354,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3375,7 +3375,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3397,37 +3397,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5173,53 +5173,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_tr.qm b/src/Mod/Draft/Resources/translations/Draft_tr.qm index cdae0e767b..a96b81aaf4 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_tr.qm and b/src/Mod/Draft/Resources/translations/Draft_tr.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_tr.ts b/src/Mod/Draft/Resources/translations/Draft_tr.ts index e4eae06a34..8e74d28947 100644 --- a/src/Mod/Draft/Resources/translations/Draft_tr.ts +++ b/src/Mod/Draft/Resources/translations/Draft_tr.ts @@ -67,7 +67,7 @@ Isolate - Isolate + İzolasyon @@ -3240,43 +3240,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledTaslak - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3287,7 +3287,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3357,7 +3357,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3378,7 +3378,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3400,37 +3400,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5176,53 +5176,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_uk.ts b/src/Mod/Draft/Resources/translations/Draft_uk.ts index a84fd82e20..e4fe47f0c1 100644 --- a/src/Mod/Draft/Resources/translations/Draft_uk.ts +++ b/src/Mod/Draft/Resources/translations/Draft_uk.ts @@ -3244,43 +3244,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledКреслення - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3291,7 +3291,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3361,7 +3361,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3382,7 +3382,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3404,37 +3404,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5180,53 +5180,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_val-ES.ts b/src/Mod/Draft/Resources/translations/Draft_val-ES.ts index c460defbdf..1da01ecc62 100644 --- a/src/Mod/Draft/Resources/translations/Draft_val-ES.ts +++ b/src/Mod/Draft/Resources/translations/Draft_val-ES.ts @@ -3215,43 +3215,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabledCalat - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3262,7 +3262,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3332,7 +3332,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3353,7 +3353,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3375,37 +3375,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5151,53 +5151,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_zh-CN.qm b/src/Mod/Draft/Resources/translations/Draft_zh-CN.qm index e8bd5bf698..cad0063407 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_zh-CN.qm and b/src/Mod/Draft/Resources/translations/Draft_zh-CN.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_zh-CN.ts b/src/Mod/Draft/Resources/translations/Draft_zh-CN.ts index 2b34d42a5f..4a7b388c90 100644 --- a/src/Mod/Draft/Resources/translations/Draft_zh-CN.ts +++ b/src/Mod/Draft/Resources/translations/Draft_zh-CN.ts @@ -176,7 +176,7 @@ The line spacing for multi-line texts and labels (relative to the font size) - The line spacing for multi-line texts and labels (relative to the font size) + 多行文本和标签的行间距(相对于字体大小) @@ -247,7 +247,7 @@ The distance between the dimension text and the dimension line - The distance between the dimension text and the dimension line + 标注线和标注文本之间的距离 @@ -3236,43 +3236,43 @@ Not available if Draft preference option 'Use Part Primitives' is enabled拔模 - - - - - - + + + + + + Converting: Converting: - - - + + + Conversion successful Conversion successful - - + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3283,7 +3283,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3353,7 +3353,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3374,7 +3374,7 @@ To enabled FreeCAD to download these libraries, answer Yes. - + @@ -3396,37 +3396,37 @@ To enabled FreeCAD to download these libraries, answer Yes. No graphical interface - + Unable to insert new object into a scaled part Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: Visibility off; removed from list: - + image is Null image is Null - + filename does not exist on the system or in the resource file filename does not exist on the system or in the resource file - + unable to load texture unable to load texture - + Does not have 'ViewObject.RootNode'. Does not have 'ViewObject.RootNode'. @@ -5172,53 +5172,53 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: Upgrade: Unknown force method: - + Found 1 block: exploding it Found 1 block: exploding it - + Found 1 multi-solids compound: exploding it Found 1 multi-solids compound: exploding it - + Found 1 parametric object: breaking its dependencies Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them Found 2 objects: subtracting them - + Found several faces: splitting them Found several faces: splitting them - + Found several objects: subtracting them from the first one Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires Found 1 face: extracting its wires - + Found only wires: extracting their edges Found only wires: extracting their edges - + No more downgrade possible No more downgrade possible diff --git a/src/Mod/Draft/Resources/translations/Draft_zh-TW.qm b/src/Mod/Draft/Resources/translations/Draft_zh-TW.qm index d618fef109..7ee20772ae 100644 Binary files a/src/Mod/Draft/Resources/translations/Draft_zh-TW.qm and b/src/Mod/Draft/Resources/translations/Draft_zh-TW.qm differ diff --git a/src/Mod/Draft/Resources/translations/Draft_zh-TW.ts b/src/Mod/Draft/Resources/translations/Draft_zh-TW.ts index 39bcff4920..0699f7b7a0 100644 --- a/src/Mod/Draft/Resources/translations/Draft_zh-TW.ts +++ b/src/Mod/Draft/Resources/translations/Draft_zh-TW.ts @@ -16,7 +16,7 @@ The name of your style. Existing style names can be edited. - The name of your style. Existing style names can be edited. + The name of your style. Existing style names can be edited. @@ -82,12 +82,12 @@ Import styles from json file - Import styles from json file + Import styles from json file Export styles to json file - Export styles to json file + 將樣式匯出至 JSON 檔案 @@ -109,28 +109,28 @@ The font size in system units - 系統單位文字的字體大小 + 系統單位中的字型大小 Lines and arrows - 尺寸線和箭頭 + 線條與箭頭 Show line - 顯示線段 + 顯示線條 The width of the lines - 線寬 + 線條寬度 px - px + px @@ -148,12 +148,12 @@ The color of lines and arrows - 尺寸和箭頭的顏色 + 線條與箭頭顏色 Line and arrow color - 尺寸和箭頭的顏色 + 線條和箭頭顏色 @@ -203,29 +203,29 @@ A multiplier factor that affects the size of texts and markers - A multiplier factor that affects the size of texts and markers + A multiplier factor that affects the size of texts and markers Scale multiplier - Scale multiplier + 縮放倍數 If it is checked it will show the unit next to the dimension value - If it is checked it will show the unit next to the dimension value + If it is checked it will show the unit next to the dimension value Show unit - 顯示單位 + Show unit Specify a valid length unit like mm, m, in, ft, to force displaying the dimension value in this unit - Specify a valid length unit like mm, m, in, ft, to force displaying the dimension value in this unit + Specify a valid length unit like mm, m, in, ft, to force displaying the dimension value in this unit @@ -241,7 +241,7 @@ Decimals - 小數位數 + Decimals @@ -258,7 +258,7 @@ If it is checked it will display the dimension line - If it is checked it will display the dimension line + If it is checked it will display the dimension line @@ -288,12 +288,12 @@ Tick - 鉤號 + Tick Tick-2 - 鉤號-2 + Tick-2 @@ -314,17 +314,17 @@ The length of the extension lines - 延伸線長度 + The length of the extension lines Extension lines - 延伸線 + Extension lines Extension overshoot - Extension overshoot + Extension overshoot @@ -332,55 +332,55 @@ Circular array - 圓形陣列 + Circular array (Placeholder for the icon) - (Placeholder for the icon) + (Placeholder for the icon) Distance from one layer of objects to the next layer of objects. - Distance from one layer of objects to the next layer of objects. + Distance from one layer of objects to the next layer of objects. Radial distance - Radial distance + Radial distance Distance from one element in one ring of the array to the next element in the same ring. It cannot be zero. - Distance from one element in one ring of the array to the next element in the same ring. + Distance from one element in one ring of the array to the next element in the same ring. It cannot be zero. Tangential distance - Tangential distance + Tangential distance Number of circular layers or rings to create, including a copy of the original object. It must be at least 2. - Number of circular layers or rings to create, including a copy of the original object. + Number of circular layers or rings to create, including a copy of the original object. It must be at least 2. Number of circular layers - Number of circular layers + Number of circular layers The number of symmetry lines in the circular array. - The number of symmetry lines in the circular array. + The number of symmetry lines in the circular array. @@ -391,13 +391,13 @@ It must be at least 2. The coordinates of the point through which the axis of rotation passes. Change the direction of the axis itself in the property editor. - The coordinates of the point through which the axis of rotation passes. + The coordinates of the point through which the axis of rotation passes. Change the direction of the axis itself in the property editor. Center of rotation - Center of rotation + Center of rotation @@ -417,18 +417,18 @@ Change the direction of the axis itself in the property editor. Reset the coordinates of the center of rotation. - Reset the coordinates of the center of rotation. + Reset the coordinates of the center of rotation. Reset point - 重置點 + Reset point If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - If checked, the resulting objects in the array will be fused if they touch each other. + If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. @@ -440,13 +440,13 @@ This only works if "Link array" is off. If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - If checked, the resulting object will be a "Link array" instead of a regular array. + If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. Link array - 連結陣列 + Link array @@ -454,24 +454,24 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Orthogonal array - 正交陣列 + Orthogonal array (Placeholder for the icon) - (Placeholder for the icon) + (Placeholder for the icon) Number of elements in the array in the specified direction, including a copy of the original object. The number must be at least 1 in each direction. - Number of elements in the array in the specified direction, including a copy of the original object. + Number of elements in the array in the specified direction, including a copy of the original object. The number must be at least 1 in each direction. Number of elements - 元素總數 + Number of elements @@ -502,70 +502,70 @@ The number must be at least 1 in each direction. Distance between the elements in the X direction. Normally, only the X value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. - Distance between the elements in the X direction. + Distance between the elements in the X direction. Normally, only the X value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. X intervals - X 間隔 + X intervals Reset the distances. - Reset the distances. + Reset the distances. Reset X - 重設 X + Reset X Distance between the elements in the Y direction. Normally, only the Y value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. - Distance between the elements in the Y direction. + Distance between the elements in the Y direction. Normally, only the Y value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. Y intervals - Y 間隔 + Y intervals Reset Y - 重設 Y + Reset Y Distance between the elements in the Z direction. Normally, only the Z value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. - Distance between the elements in the Z direction. + Distance between the elements in the Z direction. Normally, only the Z value is necessary; the other two values can give an additional shift in their respective directions. Negative values will result in copies produced in the negative direction. Z intervals - Z 間隔 + Z intervals Reset Z - 重設 Z + Reset Z If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - If checked, the resulting objects in the array will be fused if they touch each other. + If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. @@ -577,13 +577,13 @@ This only works if "Link array" is off. If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - If checked, the resulting object will be a "Link array" instead of a regular array. + If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. Link array - 連結陣列 + Link array @@ -591,12 +591,12 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Polar array - 極陣列 + Polar array (Placeholder for the icon) - (Placeholder for the icon) + (Placeholder for the icon) @@ -604,39 +604,39 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Sweeping angle of the polar distribution. A negative angle produces a polar pattern in the opposite direction. The maximum absolute value is 360 degrees. - Sweeping angle of the polar distribution. + Sweeping angle of the polar distribution. A negative angle produces a polar pattern in the opposite direction. The maximum absolute value is 360 degrees. Polar angle - 極角度 + Polar angle Number of elements in the array, including a copy of the original object. It must be at least 2. - Number of elements in the array, including a copy of the original object. + Number of elements in the array, including a copy of the original object. It must be at least 2. Number of elements - 元素總數 + Number of elements The coordinates of the point through which the axis of rotation passes. Change the direction of the axis itself in the property editor. - The coordinates of the point through which the axis of rotation passes. + The coordinates of the point through which the axis of rotation passes. Change the direction of the axis itself in the property editor. Center of rotation - Center of rotation + Center of rotation @@ -656,18 +656,18 @@ Change the direction of the axis itself in the property editor. Reset the coordinates of the center of rotation. - Reset the coordinates of the center of rotation. + Reset the coordinates of the center of rotation. Reset point - 重置點 + Reset point If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. - If checked, the resulting objects in the array will be fused if they touch each other. + If checked, the resulting objects in the array will be fused if they touch each other. This only works if "Link array" is off. @@ -679,13 +679,13 @@ This only works if "Link array" is off. If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. - If checked, the resulting object will be a "Link array" instead of a regular array. + If checked, the resulting object will be a "Link array" instead of a regular array. A Link array is more efficient when creating multiple copies, but it cannot be fused together. Link array - 連結陣列 + Link array @@ -758,60 +758,60 @@ A Link array is more efficient when creating multiple copies, but it cannot be f Working plane setup - Working plane setup + Working plane setup Select a face or working plane proxy or 3 vertices. Or choose one of the options below - Select a face or working plane proxy or 3 vertices. + Select a face or working plane proxy or 3 vertices. Or choose one of the options below Sets the working plane to the XY plane (ground plane) - Sets the working plane to the XY plane (ground plane) + Sets the working plane to the XY plane (ground plane) Top (XY) - XY (上) + Top (XY) Sets the working plane to the XZ plane (front plane) - Sets the working plane to the XZ plane (front plane) + Sets the working plane to the XZ plane (front plane) Front (XZ) - XZ (正面) + Front (XZ) Sets the working plane to the YZ plane (side plane) - Sets the working plane to the YZ plane (side plane) + Sets the working plane to the YZ plane (side plane) Side (YZ) - YZ(側面) + Side (YZ) Sets the working plane facing the current view - Sets the working plane facing the current view + Sets the working plane facing the current view Align to view - Align to view + Align to view The working plane will align to the current view each time a command is started - The working plane will align to the current + The working plane will align to the current view each time a command is started @@ -829,7 +829,7 @@ view each time a command is started An optional offset to give to the working plane above its base position. Use this together with one of the buttons above - An optional offset to give to the working plane + An optional offset to give to the working plane above its base position. Use this together with one of the buttons above @@ -839,21 +839,21 @@ of the buttons above If this is selected, the working plane will be centered on the current view when pressing one of the buttons above - If this is selected, the working plane will be + If this is selected, the working plane will be centered on the current view when pressing one of the buttons above Center plane on view - Center plane on view + Center plane on view Or select a single vertex to move the current working plane without changing its orientation. Then, press the button below - Or select a single vertex to move the current + Or select a single vertex to move the current working plane without changing its orientation. Then, press the button below @@ -901,7 +901,7 @@ will be moved to the center of the view lines - 線段 + @@ -936,32 +936,32 @@ value by using the [ and ] keys while drawing Previous - 前一個 + 上一個 Style settings - 樣式設定 + Style settings Fills the values below with a stored style preset - Fills the values below with a stored style preset + Fills the values below with a stored style preset Load preset - 載入預設 + Load preset Save current style as a preset... - Save current style as a preset... + Save current style as a preset... Lines and faces - Lines and faces + Lines and faces @@ -971,7 +971,7 @@ value by using the [ and ] keys while drawing The color of lines - The color of lines + The color of lines @@ -981,7 +981,7 @@ value by using the [ and ] keys while drawing px - px + px @@ -991,7 +991,7 @@ value by using the [ and ] keys while drawing The line style - 線條樣式 + The line style @@ -1006,7 +1006,7 @@ value by using the [ and ] keys while drawing Dotted - + 點線 @@ -1021,12 +1021,12 @@ value by using the [ and ] keys while drawing The display mode for faces - The display mode for faces + The display mode for faces Flat Lines - Flat Lines + Flat Lines @@ -1046,12 +1046,12 @@ value by using the [ and ] keys while drawing Shape color - 形狀色彩 + Shape color The color of faces - 面的顏色 + The color of faces @@ -1061,18 +1061,18 @@ value by using the [ and ] keys while drawing The transparency of faces - The transparency of faces + The transparency of faces Annotations - 註記 + 註解 Text font - 文字字體 + 文字字型 @@ -1122,7 +1122,7 @@ value by using the [ and ] keys while drawing The spacing between different lines of text - The spacing between different lines of text + The spacing between different lines of text @@ -1132,7 +1132,7 @@ value by using the [ and ] keys while drawing Arrow style - 箭頭樣式 + Arrow style @@ -1157,12 +1157,12 @@ value by using the [ and ] keys while drawing Tick - 鉤號 + Tick Tick-2 - 鉤號-2 + Tick-2 @@ -1187,7 +1187,7 @@ value by using the [ and ] keys while drawing Show unit - 顯示單位 + Show unit @@ -1207,7 +1207,7 @@ value by using the [ and ] keys while drawing Length of the extension lines - 延伸線長度 + Length of the extension lines @@ -1227,7 +1227,7 @@ value by using the [ and ] keys while drawing Apply above style to selected object(s) - Apply above style to selected object(s) + Apply above style to selected object(s) @@ -1237,22 +1237,22 @@ value by using the [ and ] keys while drawing Hatch - Hatch + 填充 PAT file: - PAT 檔案: + PAT file: pattern files (*.pat) - 圖樣檔案 (*.pat) + pattern files (*.pat) Pattern: - 圖樣: + Pattern: @@ -1262,7 +1262,7 @@ value by using the [ and ] keys while drawing Rotation: - 旋轉: + 旋轉: @@ -1290,7 +1290,7 @@ value by using the [ and ] keys while drawing XY (Top) - XY (上) + XY (上) @@ -1300,7 +1300,7 @@ value by using the [ and ] keys while drawing YZ (Side) - YZ(側面) + YZ(側面) @@ -1310,7 +1310,7 @@ value by using the [ and ] keys while drawing The number of decimals in internal coordinates operations (for ex. 3 = 0.001). Values between 6 and 8 are usually considered the best trade-off among FreeCAD users. - The number of decimals in internal coordinates operations (for ex. 3 = 0.001). Values between 6 and 8 are usually considered the best trade-off among FreeCAD users. + The number of decimals in internal coordinates operations (for ex. 3 = 0.001). Values between 6 and 8 are usually considered the best trade-off among FreeCAD users. @@ -1321,75 +1321,75 @@ value by using the [ and ] keys while drawing This is the value used by functions that use a tolerance. Values with differences below this value will be treated as same. This value will be obsoleted soon so the precision level above controls both. - This is the value used by functions that use a tolerance. + This is the value used by functions that use a tolerance. Values with differences below this value will be treated as same. This value will be obsoleted soon so the precision level above controls both. If this option is checked, the layers drop-down list will also show groups, allowing you to automatically add objects to groups too. - If this option is checked, the layers drop-down list will also show groups, allowing you to automatically add objects to groups too. + If this option is checked, the layers drop-down list will also show groups, allowing you to automatically add objects to groups too. Show groups in layers list drop-down button - Show groups in layers list drop-down button + Show groups in layers list drop-down button Draft tools options - 底圖工具選項 + Draft tools options When drawing lines, set focus on Length instead of X coordinate. This allows to point the direction and type the distance. - When drawing lines, set focus on Length instead of X coordinate. + When drawing lines, set focus on Length instead of X coordinate. This allows to point the direction and type the distance. Set focus on Length instead of X coordinate - Set focus on Length instead of X coordinate + Set focus on Length instead of X coordinate Normally, after copying objects, the copies get selected. If this option is checked, the base objects will be selected instead. - Normally, after copying objects, the copies get selected. + Normally, after copying objects, the copies get selected. If this option is checked, the base objects will be selected instead. Select base objects after copying - 複製後選定原始物體 + 複製後選定原始物件 If this option is set, when creating Draft objects on top of an existing face of another object, the "Support" property of the Draft object will be set to the base object. This was the standard behaviour before FreeCAD 0.19 - If this option is set, when creating Draft objects on top of an existing face of another object, the "Support" property of the Draft object will be set to the base object. This was the standard behaviour before FreeCAD 0.19 + If this option is set, when creating Draft objects on top of an existing face of another object, the "Support" property of the Draft object will be set to the base object. This was the standard behaviour before FreeCAD 0.19 Set the Support property when possible - Set the Support property when possible + Set the Support property when possible If this is checked, objects will appear as filled by default. Otherwise, they will appear as wireframe - If this is checked, objects will appear as filled by default. + If this is checked, objects will appear as filled by default. Otherwise, they will appear as wireframe Fill objects with faces whenever possible - 當可行時將物體以面填滿 + 當可行時將物件以面填滿 If this is checked, copy mode will be kept across command, otherwise commands will always start in no-copy mode - If this is checked, copy mode will be kept across command, + If this is checked, copy mode will be kept across command, otherwise commands will always start in no-copy mode @@ -1401,7 +1401,7 @@ otherwise commands will always start in no-copy mode Force Draft Tools to create Part primitives instead of Draft objects. Note that this is not fully supported, and many object will be not editable with Draft Modifiers. - Force Draft Tools to create Part primitives instead of Draft objects. + Force Draft Tools to create Part primitives instead of Draft objects. Note that this is not fully supported, and many object will be not editable with Draft Modifiers. @@ -1412,7 +1412,7 @@ Note that this is not fully supported, and many object will be not editable with Prefix labels of Clones with: - Prefix labels of Clones with: + Prefix labels of Clones with: @@ -1442,7 +1442,7 @@ Note that this is not fully supported, and many object will be not editable with This is the default color for objects being drawn while in construction mode. - 這是建構模式中繪製物體的預設顏色. + 這是建構模式中繪製物件的預設顏色。 @@ -1477,12 +1477,12 @@ Note that this is not fully supported, and many object will be not editable with The default color for snap symbols - The default color for snap symbols + The default color for snap symbols Check this if you want to use the color/linewidth from the toolbar as default - Check this if you want to use the color/linewidth from the toolbar as default + Check this if you want to use the color/linewidth from the toolbar as default @@ -1492,7 +1492,7 @@ Note that this is not fully supported, and many object will be not editable with If checked, a widget indicating the current working plane orientation appears during drawing operations - If checked, a widget indicating the current working plane orientation appears during drawing operations + If checked, a widget indicating the current working plane orientation appears during drawing operations @@ -1502,57 +1502,57 @@ Note that this is not fully supported, and many object will be not editable with Alternate SVG patterns location - Alternate SVG patterns location + Alternate SVG patterns location Here you can specify a directory with custom SVG files containing <pattern> definitions to be added to the standard patterns - Here you can specify a directory with custom SVG files containing <pattern> definitions to be added to the standard patterns + Here you can specify a directory with custom SVG files containing <pattern> definitions to be added to the standard patterns SVG pattern resolution - SVG pattern resolution + SVG pattern resolution The resolution to draw the patterns in. Default value is 128. Higher values give better resolutions, lower values make drawing faster - The resolution to draw the patterns in. Default value is 128. Higher values give better resolutions, lower values make drawing faster + The resolution to draw the patterns in. Default value is 128. Higher values give better resolutions, lower values make drawing faster SVG pattern default size - SVG pattern default size + SVG pattern default size The default size for SVG patterns - The default size for SVG patterns + The default size for SVG patterns Check this if you want to preserve colors of faces while doing downgrade and upgrade (splitFaces and makeShell only) - Check this if you want to preserve colors of faces while doing downgrade and upgrade (splitFaces and makeShell only) + Check this if you want to preserve colors of faces while doing downgrade and upgrade (splitFaces and makeShell only) Preserve colors of faces during downgrade/upgrade - Preserve colors of faces during downgrade/upgrade + Preserve colors of faces during downgrade/upgrade Check this if you want the face names to derive from the originating object name and vice versa while doing downgrade/upgrade (splitFaces and makeShell only) - Check this if you want the face names to derive from the originating object name and vice versa while doing downgrade/upgrade (splitFaces and makeShell only) + Check this if you want the face names to derive from the originating object name and vice versa while doing downgrade/upgrade (splitFaces and makeShell only) Preserve names of faces during downgrade/upgrade - Preserve names of faces during downgrade/upgrade + Preserve names of faces during downgrade/upgrade Drawing view line definitions - Drawing view line definitions + Drawing view line definitions @@ -1564,7 +1564,7 @@ Note that this is not fully supported, and many object will be not editable with An SVG linestyle definition - An SVG linestyle definition + An SVG linestyle definition @@ -1597,7 +1597,7 @@ Note that this is not fully supported, and many object will be not editable with It can be a font name such as "Arial", a default style such as "sans", "serif" or "mono", or a family such as "Arial,Helvetica,sans" or a name with a style such as "Arial:Bold" - 這是所有底圖文字和標註的預設字體名稱。如"Arial"、預設樣式如"san"、"serif"或"mono"或一個家族""Arial,Helvetica,sans"或名稱的樣式如"arial: 粗體" + 這是所有底圖文字和標註的預設字體名稱。如"Arial"、預設樣式如"san"、"serif"或"mono"或一個家族""Arial,Helvetica,sans"或名稱的樣式如"arial:粗體" @@ -1649,12 +1649,12 @@ such as "Arial:Bold" Number of decimals - 小數位數 + Number of decimals Extension lines size - 延伸線大小 + Extension lines size @@ -1664,12 +1664,12 @@ such as "Arial:Bold" Extension line overshoot - Extension line overshoot + Extension line overshoot The default length of extension line above dimension line - The default length of extension line above dimension line + The default length of extension line above dimension line @@ -1679,7 +1679,7 @@ such as "Arial:Bold" The default distance the dimension line is extended past extension lines - The default distance the dimension line is extended past extension lines + The default distance the dimension line is extended past extension lines @@ -1704,12 +1704,12 @@ such as "Arial:Bold" Tick - 鉤號 + Tick Tick-2 - 鉤號-2 + Tick-2 @@ -1729,7 +1729,7 @@ such as "Arial:Bold" This is the orientation of the dimension texts when those dimensions are vertical. Default is left, which is the ISO standard. - 當尺度為垂直時,此為尺度文字方向,預設為左且為ISO標準. + 當尺度為垂直時,此為尺度文字方向,預設為左且為ISO標準 @@ -1764,7 +1764,7 @@ such as "Arial:Bold" By leaving this field blank, the dimension measurements will be shown in the current unit defined in FreeCAD. By indicating a unit here such as m or cm, you can force new dimensions to be shown in that unit. - By leaving this field blank, the dimension measurements will be shown in the current unit defined in FreeCAD. By indicating a unit here such as m or cm, you can force new dimensions to be shown in that unit. + By leaving this field blank, the dimension measurements will be shown in the current unit defined in FreeCAD. By indicating a unit here such as m or cm, you can force new dimensions to be shown in that unit. @@ -1794,12 +1794,12 @@ such as "Arial:Bold" Method chosen for importing SVG object color to FreeCAD - Method chosen for importing SVG object color to FreeCAD + Method chosen for importing SVG object color to FreeCAD None (fastest) - 無(最快) + 無(最快) @@ -1815,7 +1815,7 @@ such as "Arial:Bold" If checked, no units conversion will occur. One unit in the SVG file will translate as one millimeter. - If checked, no units conversion will occur. + If checked, no units conversion will occur. One unit in the SVG file will translate as one millimeter. @@ -1831,7 +1831,7 @@ One unit in the SVG file will translate as one millimeter. Style of SVG file to write when exporting a sketch - Style of SVG file to write when exporting a sketch + Style of SVG file to write when exporting a sketch @@ -1846,7 +1846,7 @@ One unit in the SVG file will translate as one millimeter. All white lines will appear in black in the SVG for better readability against white backgrounds - All white lines will appear in black in the SVG for better readability against white backgrounds + All white lines will appear in black in the SVG for better readability against white backgrounds @@ -1856,14 +1856,14 @@ One unit in the SVG file will translate as one millimeter. Max segment length for discretized arcs - Max segment length for discretized arcs + Max segment length for discretized arcs Versions of Open CASCADE older than version 6.8 don't support arc projection. In this case arcs will be discretized into small line segments. This value is the maximum segment length. - Versions of Open CASCADE older than version 6.8 don't support arc projection. + Versions of Open CASCADE older than version 6.8 don't support arc projection. In this case arcs will be discretized into small line segments. This value is the maximum segment length. @@ -1875,7 +1875,7 @@ This value is the maximum segment length. Check this if you want the areas (3D faces) to be imported too. - 如果你想要一併匯入(3D 面)的面域,請勾選此. + 如果你想要一併匯入(3D 面)的面域,請勾選此。 @@ -1890,7 +1890,7 @@ This value is the maximum segment length. This preferences dialog will be shown when importing/ exporting DXF files - This preferences dialog will be shown when importing/ exporting DXF files + This preferences dialog will be shown when importing/ exporting DXF files @@ -1901,7 +1901,7 @@ This value is the maximum segment length. Python importer is used, otherwise the newer C++ is used. Note: C++ importer is faster, but is not as featureful yet - Python importer is used, otherwise the newer C++ is used. + Python importer is used, otherwise the newer C++ is used. Note: C++ importer is faster, but is not as featureful yet @@ -1913,13 +1913,13 @@ Note: C++ importer is faster, but is not as featureful yet Python exporter is used, otherwise the newer C++ is used. Note: C++ exporter is faster, but is not as featureful yet - Python exporter is used, otherwise the newer C++ is used. + Python exporter is used, otherwise the newer C++ is used. Note: C++ exporter is faster, but is not as featureful yet Use legacy python exporter - 使用舊有python匯出器 + Use legacy python exporter @@ -1931,8 +1931,8 @@ Note: C++ exporter is faster, but is not as featureful yet Allow FreeCAD to download the Python converter for DXF import and export. You can also do this manually by installing the "dxf_library" workbench from the Addon Manager. - 允許 FreeCAD 下載用於 DXF 匯入和匯出的 Python 轉換器. -您也可以通過附加元件管理器安裝「dxf_library」工作台手動執行此操作. + 允許 FreeCAD 下載用於 DXF 匯入和匯出的 Python 轉換器。 +您也可以通過附加元件管理器安裝「dxf_library」工作台手動執行此操作。 @@ -1949,7 +1949,7 @@ from the Addon Manager. Note: Not all the options below are used by the new importer yet - 請注意: 並非下列所有選項皆可被新的匯入功能所使用 + 請注意:並非下列所有選項皆可被新的匯入功能所使用 @@ -1959,7 +1959,7 @@ from the Addon Manager. If unchecked, texts and mtexts won't be imported - If unchecked, texts and mtexts won't be imported + If unchecked, texts and mtexts won't be imported @@ -1969,7 +1969,7 @@ from the Addon Manager. If unchecked, points won't be imported - If unchecked, points won't be imported + If unchecked, points won't be imported @@ -1979,7 +1979,7 @@ from the Addon Manager. If checked, paper space objects will be imported too - If checked, paper space objects will be imported too + If checked, paper space objects will be imported too @@ -1989,7 +1989,7 @@ from the Addon Manager. If you want the non-named blocks (beginning with a *) to be imported too - If you want the non-named blocks (beginning with a *) to be imported too + If you want the non-named blocks (beginning with a *) to be imported too @@ -2004,7 +2004,7 @@ from the Addon Manager. Only standard Part objects will be created (fastest) - Only standard Part objects will be created (fastest) + Only standard Part objects will be created (fastest) @@ -2014,17 +2014,17 @@ from the Addon Manager. Parametric Draft objects will be created whenever possible - Parametric Draft objects will be created whenever possible + Parametric Draft objects will be created whenever possible Draft objects - 底圖物體 + 底圖物件 Sketches will be created whenever possible - Sketches will be created whenever possible + Sketches will be created whenever possible @@ -2034,7 +2034,7 @@ from the Addon Manager. Scale factor to apply to imported files - Scale factor to apply to imported files + Scale factor to apply to imported files @@ -2042,7 +2042,7 @@ from the Addon Manager. The factor is the conversion between the unit of your DXF file and millimeters. Example: for files in millimeters: 1, in centimeters: 10, in meters: 1000, in inches: 25.4, in feet: 304.8 - Scale factor to apply to DXF files on import. + Scale factor to apply to DXF files on import. The factor is the conversion between the unit of your DXF file and millimeters. Example: for files in millimeters: 1, in centimeters: 10, in meters: 1000, in inches: 25.4, in feet: 304.8 @@ -2051,7 +2051,7 @@ Example: for files in millimeters: 1, in centimeters: 10, Colors will be retrieved from the DXF objects whenever possible. Otherwise default colors will be applied. - Colors will be retrieved from the DXF objects whenever possible. + Colors will be retrieved from the DXF objects whenever possible. Otherwise default colors will be applied. @@ -2083,7 +2083,7 @@ Otherwise default colors will be applied. FreeCAD will try to join coincident objects into wires. Note that this can take a while! - FreeCAD will try to join coincident objects into wires. + FreeCAD will try to join coincident objects into wires. Note that this can take a while! @@ -2095,7 +2095,7 @@ Note that this can take a while! Objects from the same layers will be joined into Draft Blocks, turning the display faster, but making them less easily editable - Objects from the same layers will be joined into Draft Blocks, + Objects from the same layers will be joined into Draft Blocks, turning the display faster, but making them less easily editable @@ -2107,7 +2107,7 @@ turning the display faster, but making them less easily editable Imported texts will get the standard Draft Text size, instead of the size they have in the DXF document - Imported texts will get the standard Draft Text size, + Imported texts will get the standard Draft Text size, instead of the size they have in the DXF document @@ -2118,17 +2118,17 @@ instead of the size they have in the DXF document If this is checked, DXF layers will be imported as Draft Layers - If this is checked, DXF layers will be imported as Draft Layers + If this is checked, DXF layers will be imported as Draft Layers Use Layers - 使用圖層 + Use Layers Hatches will be converted into simple wires - Hatches will be converted into simple wires + Hatches will be converted into simple wires @@ -2139,7 +2139,7 @@ as closed wires with correct width Ellipse export is poorly supported. Use this to export them as polylines instead. - Ellipse export is poorly supported. Use this to export them as polylines instead. + Ellipse export is poorly supported. Use this to export them as polylines instead. @@ -2149,13 +2149,13 @@ as closed wires with correct width Max Spline Segment: - Max Spline Segment: + Max Spline Segment: Maximum length of each of the polyline segments. If it is set to '0' the whole spline is treated as a straight segment. - Maximum length of each of the polyline segments. + Maximum length of each of the polyline segments. If it is set to '0' the whole spline is treated as a straight segment. @@ -2167,7 +2167,7 @@ If it is set to '0' the whole spline is treated as a straight segment. All objects containing faces will be exported as 3D polyfaces - All objects containing faces will be exported as 3D polyfaces + All objects containing faces will be exported as 3D polyfaces @@ -2184,7 +2184,7 @@ This might fail for post DXF R12 templates. Exported objects will be projected to reflect the current view direction - Exported objects will be projected to reflect the current view direction + Exported objects will be projected to reflect the current view direction @@ -2255,7 +2255,7 @@ This might fail for post DXF R12 templates. The Alt modifier key - The Alt modifier key + The Alt modifier key @@ -2300,32 +2300,32 @@ This might fail for post DXF R12 templates. If checked, an additional border is displayed around the grid, showing the main square size in the bottom left border - If checked, an additional border is displayed around the grid, showing the main square size in the bottom left border + If checked, an additional border is displayed around the grid, showing the main square size in the bottom left border Show grid border - Show grid border + Show grid border <html><head/><body><p>If checked, the outline of a human figure is displayed at the bottom left corner of the grid. This option is only effective if the BIM workbench is installed and if &quot;Show grid border&quot; option is enabled.</p></body></html> - <html><head/><body><p>If checked, the outline of a human figure is displayed at the bottom left corner of the grid. This option is only effective if the BIM workbench is installed and if &quot;Show grid border&quot; option is enabled.</p></body></html> + <html><head/><body><p>If checked, the outline of a human figure is displayed at the bottom left corner of the grid. This option is only effective if the BIM workbench is installed and if &quot;Show grid border&quot; option is enabled.</p></body></html> Show human figure - Show human figure + Show human figure If set, the grid will have its two main axes colored in red, green or blue when they match global axes - If set, the grid will have its two main axes colored in red, green or blue when they match global axes + If set, the grid will have its two main axes colored in red, green or blue when they match global axes Use colored axes - Use colored axes + Use colored axes @@ -2335,7 +2335,7 @@ This might fail for post DXF R12 templates. Mainlines will be drawn thicker. Specify here how many squares between mainlines. - 主線較粗,特別於主線間有許多方形時. + 主線較粗,特別於主線間有許多方形時 @@ -2355,32 +2355,32 @@ This might fail for post DXF R12 templates. The number of horizontal or vertical lines of the grid - The number of horizontal or vertical lines of the grid + The number of horizontal or vertical lines of the grid lines - 線段 + Grid color and transparency - Grid color and transparency + Grid color and transparency The color of the grid - The color of the grid + The color of the grid The overall transparency of the grid - The overall transparency of the grid + The overall transparency of the grid Draft Edit preferences - Draft Edit preferences + Draft Edit preferences @@ -2390,22 +2390,22 @@ This might fail for post DXF R12 templates. Maximum number of contemporary edited objects - Maximum number of contemporary edited objects + Maximum number of contemporary edited objects <html><head/><body><p>Sets the maximum number of objects Draft Edit</p><p>can process at the same time</p></body></html> - <html><head/><body><p>Sets the maximum number of objects Draft Edit</p><p>can process at the same time</p></body></html> + <html><head/><body><p>Sets the maximum number of objects Draft Edit</p><p>can process at the same time</p></body></html> Draft edit pick radius - Draft edit pick radius + Draft edit pick radius Controls pick radius of edit nodes - Controls pick radius of edit nodes + Controls pick radius of edit nodes @@ -2420,12 +2420,12 @@ This might fail for post DXF R12 templates. Conversion method: - Conversion method: + Conversion method: This is the method FreeCAD will use to convert DWG files to DXF. If "Automatic" is chosen, FreeCAD will try to find one of the following converters in the same order as they are shown here. If FreeCAD is unable to find any, you might need to choose a specific converter and indicate its path here under. Choose the "dwg2dxf" utility if using LibreDWG, "ODAFileConverter" if using the ODA file converter, or the "dwg2dwg" utility if using the pro version of QCAD. - This is the method FreeCAD will use to convert DWG files to DXF. If "Automatic" is chosen, FreeCAD will try to find one of the following converters in the same order as they are shown here. If FreeCAD is unable to find any, you might need to choose a specific converter and indicate its path here under. Choose the "dwg2dxf" utility if using LibreDWG, "ODAFileConverter" if using the ODA file converter, or the "dwg2dwg" utility if using the pro version of QCAD. + This is the method FreeCAD will use to convert DWG files to DXF. If "Automatic" is chosen, FreeCAD will try to find one of the following converters in the same order as they are shown here. If FreeCAD is unable to find any, you might need to choose a specific converter and indicate its path here under. Choose the "dwg2dxf" utility if using LibreDWG, "ODAFileConverter" if using the ODA file converter, or the "dwg2dwg" utility if using the pro version of QCAD. @@ -2440,42 +2440,42 @@ This might fail for post DXF R12 templates. ODA Converter - ODA Converter + ODA Converter QCAD pro - QCAD pro + QCAD pro Path to file converter - 檔案轉換目錄 + Path to file converter The path to your DWG file converter executable - The path to your DWG file converter executable + The path to your DWG file converter executable <html><head/><body><p><span style=" font-weight:600;">Note:</span> DXF options apply to DWG files as well.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意: </span>DXF選項也套用至DWG檔。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span>DXF選項也套用至DWG檔。</p></body></html> User interface settings - 使用者介面設定 + User interface settings In-Command Shortcuts - In-Command Shortcuts + In-Command Shortcuts Relative - 相對關係 + Relative @@ -2485,7 +2485,7 @@ This might fail for post DXF R12 templates. Continue - 繼續 + Continue @@ -2515,7 +2515,7 @@ This might fail for post DXF R12 templates. Subelement Mode - Subelement Mode + Subelement Mode @@ -2525,7 +2525,7 @@ This might fail for post DXF R12 templates. Fill - Fill + Fill @@ -2535,7 +2535,7 @@ This might fail for post DXF R12 templates. Exit - 結束離開 + Exit @@ -2545,7 +2545,7 @@ This might fail for post DXF R12 templates. Select Edge - 選擇邊緣 + Select Edge @@ -2555,7 +2555,7 @@ This might fail for post DXF R12 templates. Add Hold - Add Hold + Add Hold @@ -2575,7 +2575,7 @@ This might fail for post DXF R12 templates. Wipe - Wipe + Wipe @@ -2585,7 +2585,7 @@ This might fail for post DXF R12 templates. Set WP - Set WP + Set WP @@ -2595,7 +2595,7 @@ This might fail for post DXF R12 templates. Cycle Snap - Cycle Snap + Cycle Snap @@ -2615,7 +2615,7 @@ This might fail for post DXF R12 templates. Snap - 貼齊 + Snap @@ -2635,7 +2635,7 @@ This might fail for post DXF R12 templates. Restrict X - 限定 X + Restrict X @@ -2645,7 +2645,7 @@ This might fail for post DXF R12 templates. Restrict Y - 限定 Y + Restrict Y @@ -2655,7 +2655,7 @@ This might fail for post DXF R12 templates. Restrict Z - 限定 Z + Restrict Z @@ -2665,27 +2665,27 @@ This might fail for post DXF R12 templates. Draft Statusbar - Draft Statusbar + Draft Statusbar Enable snap statusbar widget - Enable snap statusbar widget + Enable snap statusbar widget Draft snap widget - Draft snap widget + Draft snap widget Enable draft statusbar annotation scale widget - Enable draft statusbar annotation scale widget + Enable draft statusbar annotation scale widget Annotation scale widget - Annotation scale widget + Annotation scale widget @@ -2694,7 +2694,7 @@ This might fail for post DXF R12 templates. Relative - 相對關係 + Relative @@ -2707,7 +2707,7 @@ This might fail for post DXF R12 templates. Continue - 繼續 + Continue @@ -2729,69 +2729,69 @@ This might fail for post DXF R12 templates. Subelement mode - Subelement mode + Subelement mode Fill - Fill + Fill Exit - 結束離開 + Exit Snap On/Off - 鎖點模式 開/關 + Snap On/Off Increase snap radius - Increase snap radius + Increase snap radius Decrease snap radius - Decrease snap radius + Decrease snap radius Restrict X - 限定 X + Restrict X Restrict Y - 限定 Y + Restrict Y Restrict Z - 限定 Z + Restrict Z Select edge - 選擇邊緣 + Select edge Add custom snap point - Add custom snap point + Add custom snap point Length mode - Length mode + Length mode Wipe - Wipe + Wipe @@ -2801,7 +2801,7 @@ This might fail for post DXF R12 templates. Cycle snap object - Cycle snap object + Cycle snap object @@ -2820,14 +2820,14 @@ This might fail for post DXF R12 templates. Front - 正視圖 + 前視圖 Side - Side + Side @@ -2847,17 +2847,17 @@ This might fail for post DXF R12 templates. active command: - 啟動指令: + active command: Active Draft command - 啟動底圖指令 + Active Draft command X coordinate of next point - 下一個點的X座標 + X coordinate of next point @@ -2877,22 +2877,22 @@ This might fail for post DXF R12 templates. Y coordinate of next point - 下一個點的Y座標 + Y coordinate of next point Z coordinate of next point - 下一個點的Z座標 + Z coordinate of next point Enter point - 新增點 + Enter point Enter a new point with the given coordinates - 以給定座標方式新增點 + Enter a new point with the given coordinates @@ -2908,17 +2908,17 @@ This might fail for post DXF R12 templates. Length of current segment - 此線段之長度 + Length of current segment Angle of current segment - 此線段之角度 + Angle of current segment Check this to lock the current angle - Check this to lock the current angle + Check this to lock the current angle @@ -2930,32 +2930,32 @@ This might fail for post DXF R12 templates. Radius of Circle - 圓的半徑 + Radius of Circle Coordinates relative to last point or to coordinate system origin if is the first point to set - Coordinates relative to last point or to coordinate system origin + Coordinates relative to last point or to coordinate system origin if is the first point to set Coordinates relative to global coordinate system. Uncheck to use working plane coordinate system - Coordinates relative to global coordinate system. + Coordinates relative to global coordinate system. Uncheck to use working plane coordinate system Filled - Filled + Filled Check this if the object should appear as filled, otherwise it will appear as wireframe. Not available if Draft preference option 'Use Part Primitives' is enabled - Check this if the object should appear as filled, otherwise it will appear as wireframe. + Check this if the object should appear as filled, otherwise it will appear as wireframe. Not available if Draft preference option 'Use Part Primitives' is enabled @@ -2966,12 +2966,12 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Finishes the current drawing or editing operation - Finishes the current drawing or editing operation + Finishes the current drawing or editing operation If checked, command will not finish until you press the command button again - 如果選取,指令將不會結束直到再次按下指令按鈕 + If checked, command will not finish until you press the command button again @@ -2981,7 +2981,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled &OCC-style offset - &OCC 型式偏移量 + &OCC-style offset @@ -2991,67 +2991,67 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Undo the last segment - Undo the last segment + Undo the last segment Finishes and closes the current line - Finishes and closes the current line + Finishes and closes the current line Wipes the existing segments of this line and starts again from the last point - Wipes the existing segments of this line and starts again from the last point + Wipes the existing segments of this line and starts again from the last point Set WP - Set WP + Set WP Reorients the working plane on the last segment - Reorients the working plane on the last segment + Reorients the working plane on the last segment Selects an existing edge to be measured by this dimension - 選擇一條現有的邊按此尺寸測量 + Selects an existing edge to be measured by this dimension Sides - Sides + Sides Number of sides - 邊數 + Number of sides If checked, objects will be copied instead of moved. Preferences -> Draft -> Global copy mode to keep this mode in next commands - If checked, objects will be copied instead of moved. Preferences -> Draft -> Global copy mode to keep this mode in next commands + If checked, objects will be copied instead of moved. Preferences -> Draft -> Global copy mode to keep this mode in next commands Modify subelements - Modify subelements + Modify subelements If checked, subelements will be modified instead of entire objects - If checked, subelements will be modified instead of entire objects + If checked, subelements will be modified instead of entire objects Create text - 建立文字 + Create text Press this button to create the text object, or finish your text with two blank lines - Press this button to create the text object, or finish your text with two blank lines + Press this button to create the text object, or finish your text with two blank lines @@ -3060,24 +3060,24 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Current working plane - Current working plane + Current working plane Change default style for new objects - Change default style for new objects + Change default style for new objects Toggle construction mode - Toggle construction mode + Toggle construction mode Autogroup off - Autogroup off + Autogroup off @@ -3097,7 +3097,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Arc - 圓弧 + @@ -3113,7 +3113,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Label - 標籤 + Label @@ -3141,7 +3141,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Offset distance - 偏移距離 + Offset distance @@ -3151,47 +3151,47 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Local u0394X - 區域 u0394X + Local u0394X Local u0394Y - 區域 u0394Y + Local u0394Y Local u0394Z - 區域 u0394Z + Local u0394Z Local X - 區域X + Local X Local Y - 區域Y + Local Y Local Z - 區域Z + Local Z Global u0394X - 全域 u0394X + Global u0394X Global u0394Y - 全域 u0394Y + Global u0394Y Global u0394Z - 全域 u0394Z + Global u0394Z @@ -3211,7 +3211,7 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Autogroup: - 自動群組: + Autogroup: @@ -3231,51 +3231,51 @@ Not available if Draft preference option 'Use Part Primitives' is enabled Facebinder elements - Facebinder elements + Facebinder elements Draft 吃水 - - - - - - - - Converting: - 轉換中: - - + - Conversion successful - 轉換成功 + + + + Converting: + Converting: - - + + + + Conversion successful + Conversion successful + + + + LibreDWG converter not found LibreDWG converter not found - - + + ODA converter not found ODA converter not found - - + + QCAD converter not found QCAD converter not found - - + + No suitable external DWG converter has been found. Please set one manually under menu Edit -> Preferences -> Import/Export -> DWG For more information see: @@ -3286,7 +3286,7 @@ For more information see: https://wiki.freecad.org/Import_Export_Preferences - + Error during DWG conversion. Try moving the DWG file to a directory path without spaces and non-english characters, or try saving to a lower DWG version. @@ -3299,12 +3299,12 @@ or try saving to a lower DWG version. All Shapes must be coplanar - All Shapes must be coplanar + All Shapes must be coplanar Selected Shapes must define a plane - Selected Shapes must define a plane + Selected Shapes must define a plane @@ -3316,12 +3316,14 @@ Please either enable FreeCAD to download these libraries: Or download these libraries manually, as explained on https://github.com/yorikvanhavre/Draft-dxf-importer To enabled FreeCAD to download these libraries, answer Yes. - 此系統並無FreeCAD所需用來匯入/匯出DXF格式之函式庫,可啟動FreeCAD來下載這些函式庫: -1-載入底圖模組 -2-選單>編輯>偏好選項>匯入-匯出>DXF>啟動下載 -或是手動下載這些函式庫,參照於 + The DXF import/export libraries needed by FreeCAD to handle +the DXF format were not found on this system. +Please either enable FreeCAD to download these libraries: + 1 - Load Draft workbench + 2 - Menu Edit > Preferences > Import-Export > DXF > Enable downloads +Or download these libraries manually, as explained on https://github.com/yorikvanhavre/Draft-dxf-importer -之說明啟動FreeCAD來下載這些函式庫,並回答確定. +To enabled FreeCAD to download these libraries, answer Yes. @@ -3340,21 +3342,21 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Set custom scale - 設定自定義縮放比例 + Set custom scale Set custom annotation scale in format x:x, x=x - Set custom annotation scale in format x:x, x=x + Set custom annotation scale in format x:x, x=x Set the scale used by draft annotation tools - Set the scale used by draft annotation tools + Set the scale used by draft annotation tools - + @@ -3371,11 +3373,11 @@ https://github.com/yorikvanhavre/Draft-dxf-importer No active document. Aborting. - No active document. Aborting. + No active document. Aborting. - + @@ -3389,52 +3391,52 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Wrong input: object not in document. - Wrong input: object not in document. + Wrong input: object not in document. No graphical interface - No graphical interface + No graphical interface - + Unable to insert new object into a scaled part - Unable to insert new object into a scaled part + Unable to insert new object into a scaled part - + Symbol not implemented. Using a default symbol. - Symbol not implemented. Using a default symbol. + Symbol not implemented. Using a default symbol. - + Visibility off; removed from list: - Visibility off; removed from list: + Visibility off; removed from list: - + image is Null - image is Null + image is Null - + filename does not exist on the system or in the resource file - filename does not exist on the system or in the resource file + filename does not exist on the system or in the resource file - + unable to load texture - unable to load texture + unable to load texture - + Does not have 'ViewObject.RootNode'. - Does not have 'ViewObject.RootNode'. + Does not have 'ViewObject.RootNode'. Solids: - 實體: + Solids: @@ -3444,17 +3446,17 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Wires: - 線: + Wires: Edges: - 邊緣: + Edges: Vertices: - 頂點: + Vertices: @@ -3470,102 +3472,102 @@ https://github.com/yorikvanhavre/Draft-dxf-importer different types - different types + different types Objects have different placements. Distance between the two base points: - Objects have different placements. Distance between the two base points: + Objects have different placements. Distance between the two base points: has a different value - has a different value + has a different value doesn't exist in one of the objects - doesn't exist in one of the objects + doesn't exist in one of the objects %s shares a base with %d other objects. Please check if you want to modify this. - %s shares a base with %d other objects. Please check if you want to modify this. + %s shares a base with %d other objects. Please check if you want to modify this. %s cannot be modified because its placement is readonly. - %s cannot be modified because its placement is readonly. + %s cannot be modified because its placement is readonly. Wrong input: unknown document. - Wrong input: unknown document. + Wrong input: unknown document. This function will be deprecated in - This function will be deprecated in + This function will be deprecated in Please use - Please use + Please use This function will be deprecated. - This function will be deprecated. + This function will be deprecated. Pick a face, 3 vertices or a WP Proxy to define the drawing plane - Pick a face, 3 vertices or a WP Proxy to define the drawing plane + Pick a face, 3 vertices or a WP Proxy to define the drawing plane Working plane aligned to global placement of - Working plane aligned to global placement of + Working plane aligned to global placement of Dir Dir here means Direction, not Directory. Also shorten the translation because of available space in GUI - 方向 + Dir Please select exactly two objects, the base object and the path object, before calling this command. - Please select exactly two objects, the base object and the path object, before calling this command. + Please select exactly two objects, the base object and the path object, before calling this command. Path array - 路徑陣列 + Path array Pick target point - Pick target point + Pick target point Create Label - 建立標籤 + Create Label Pick endpoint of leader line - Pick endpoint of leader line + Pick endpoint of leader line Pick text position - Pick text position + Pick text position @@ -3573,17 +3575,17 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick first point - Pick first point + Pick first point Create Line - 建立直線 + Create Line Create Wire - Create Wire + Create Wire @@ -3596,27 +3598,27 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick next point - Pick next point + Pick next point Unable to create a Wire from selected objects - Unable to create a Wire from selected objects + Unable to create a Wire from selected objects Convert to Wire - Convert to Wire + Convert to Wire Select an object to join - Select an object to join + Select an object to join Join lines - Join lines + Join lines @@ -3626,48 +3628,48 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick location point - Pick location point + Pick location point Create Text - 建立文字 + Create Text Select an object to convert. - Select an object to convert. + Select an object to convert. Convert to Sketch - 轉換為草圖 + Convert to Sketch Convert to Draft - 轉換為底圖 + Convert to Draft Convert Draft/Sketch - 轉換 底圖/草圖 + Convert Draft/Sketch Select an object to move - Select an object to move + Select an object to move Pick start point - Pick start point + Pick start point Pick end point - Pick end point + Pick end point @@ -3678,13 +3680,13 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Some subelements could not be moved. - Some subelements could not be moved. + Some subelements could not be moved. Pick center point - Pick center point + Pick center point @@ -3694,7 +3696,7 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Pick radius - Pick radius + Pick radius @@ -3702,13 +3704,13 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Start angle - Start angle + Start angle Pick start angle - Pick start angle + Pick start angle @@ -3716,58 +3718,58 @@ https://github.com/yorikvanhavre/Draft-dxf-importer Aperture angle - Aperture angle + Aperture angle Pick aperture - Pick aperture + Pick aperture Create Circle (Part) - 建立圓形(零件) + Create Circle (Part) Create Circle - 建立圓形 + Create Circle Create Arc (Part) - 建立弧線(零件) + Create Arc (Part) Create Arc - 建立弧線 + Create Arc Pick aperture angle - Pick aperture angle + Pick aperture angle Arc by 3 points - 3點建立弧 + Arc by 3 points Toggle grid - 切換格線 + Toggle grid Select an object to edit - Select an object to edit + Select an object to edit Select a Draft object to edit - Select a Draft object to edit + Select a Draft object to edit @@ -3777,122 +3779,122 @@ https://github.com/yorikvanhavre/Draft-dxf-importer No edit point found for selected object - No edit point found for selected object + No edit point found for selected object Too many objects selected, max number set to: - Too many objects selected, max number set to: + Too many objects selected, max number set to: : this object is not editable - : this object is not editable + : this object is not editable Annotation style editor - Annotation style editor + Annotation style editor Open styles file - Open styles file + Open styles file JSON file (*.json) - JSON file (*.json) + JSON file (*.json) Save styles file - 儲存樣式檔案 + Save styles file Select an object to project - Select an object to project + Select an object to project Create Point - 建立點 + Create Point Select an object to rotate - Select an object to rotate + Select an object to rotate Pick rotation center - Pick rotation center + Pick rotation center Base angle - Base angle + Base angle The base angle you wish to start the rotation from - The base angle you wish to start the rotation from + The base angle you wish to start the rotation from Pick base angle - Pick base angle + Pick base angle Rotation - 旋轉 + Rotation The amount of rotation you wish to perform. The final angle will be the base angle plus this amount. - The amount of rotation you wish to perform. + The amount of rotation you wish to perform. The final angle will be the base angle plus this amount. Pick rotation angle - Pick rotation angle + Pick rotation angle Add to group - 新增到群組 + Add to group Ungroup - 取消群組 + Ungroup Add new group - 新增群組 + Add new group Select group - 選擇群組 + Select group No new selection. You must select non-empty groups or objects inside groups. - No new selection. You must select non-empty groups or objects inside groups. + No new selection. You must select non-empty groups or objects inside groups. @@ -3902,27 +3904,27 @@ The final angle will be the base angle plus this amount. Add new Layer - 新增圖層 + Add new Layer Add to construction group - Add to construction group + Add to construction group Add a new group with a given name - Add a new group with a given name + Add a new group with a given name Add group - 新增群組 + Add group Group name - 群組名稱 + Group name @@ -3932,57 +3934,57 @@ The final angle will be the base angle plus this amount. Flip dimension - 旋轉尺寸 + Flip dimension Sketch is too complex to edit: it is suggested to use sketcher default editor - Sketch is too complex to edit: it is suggested to use sketcher default editor + Sketch is too complex to edit: it is suggested to use sketcher default editor Fillet radius - Fillet radius + Fillet radius Radius of fillet - Radius of fillet + Radius of fillet Enter radius. - Enter radius. + Enter radius. Delete original objects: - Delete original objects: + Delete original objects: Chamfer mode: - 倒角模式: + Chamfer mode: Two elements needed. - Two elements needed. + Two elements needed. Test object - Test object + Test object Test object removed - Test object removed + Test object removed Fillet cannot be created - 無法建立倒角 + Fillet cannot be created @@ -3992,70 +3994,70 @@ The final angle will be the base angle plus this amount. Create Polygon (Part) - Create Polygon (Part) + Create Polygon (Part) Create Polygon - Create Polygon + Create Polygon Click anywhere on a line to split it. - Click anywhere on a line to split it. + Click anywhere on a line to split it. Split line - 拆分線段 + Split line Select objects to trim or extend - Select objects to trim or extend + Select objects to trim or extend Pick distance - Pick distance + Pick distance Offset angle - Offset angle + Offset angle Unable to trim these objects, only Draft wires and arcs are supported. - Unable to trim these objects, only Draft wires and arcs are supported. + Unable to trim these objects, only Draft wires and arcs are supported. Unable to trim these objects, too many wires - Unable to trim these objects, too many wires + Unable to trim these objects, too many wires These objects don't intersect. - These objects don't intersect. + These objects don't intersect. Too many intersection points. - Too many intersection points. + Too many intersection points. Spline has been closed - Spline has been closed + Spline has been closed Last point has been removed - Last point has been removed + Last point has been removed @@ -4065,13 +4067,13 @@ The final angle will be the base angle plus this amount. Change Style - Change Style + Change Style This object does not support possible coincident points, please try again. - This object does not support possible coincident points, please try again. + This object does not support possible coincident points, please try again. @@ -4083,7 +4085,7 @@ The final angle will be the base angle plus this amount. Add point - 增加點 + Add point @@ -4093,7 +4095,7 @@ The final angle will be the base angle plus this amount. Close wire - Close wire + Close wire @@ -4104,7 +4106,7 @@ The final angle will be the base angle plus this amount. Active object must have more than two points/nodes - Active object must have more than two points/nodes + Active object must have more than two points/nodes @@ -4179,62 +4181,62 @@ The final angle will be the base angle plus this amount. Selection is not a Knot - Selection is not a Knot + Selection is not a Knot Endpoint of BezCurve can't be smoothed - Endpoint of BezCurve can't be smoothed + Endpoint of BezCurve can't be smoothed Bézier curve has been closed - Bézier curve has been closed + Bézier curve has been closed Create BezCurve - Create BezCurve + Create BezCurve Click and drag to define next knot - Click and drag to define next knot + Click and drag to define next knot Create Ellipse - 建立橢圓 + Create Ellipse Pick opposite point - Pick opposite point + Pick opposite point Select faces from existing objects - Select faces from existing objects + Select faces from existing objects Select an object to scale - Select an object to scale + Select an object to scale Pick base point - Pick base point + Pick base point Pick reference distance from base point - Pick reference distance from base point + Pick reference distance from base point @@ -4246,49 +4248,49 @@ The final angle will be the base angle plus this amount. Some subelements could not be scaled. - Some subelements could not be scaled. + Some subelements could not be scaled. Unable to scale object: - Unable to scale object: + Unable to scale object: Unable to scale objects: - Unable to scale objects: + Unable to scale objects: This object type cannot be scaled directly. Please use the clone method. - This object type cannot be scaled directly. Please use the clone method. + This object type cannot be scaled directly. Please use the clone method. Pick new distance from base point - Pick new distance from base point + Pick new distance from base point Layer - 圖層 + Layer Please select exactly two objects, the base object and the point object, before calling this command. - Please select exactly two objects, the base object and the point object, before calling this command. + Please select exactly two objects, the base object and the point object, before calling this command. Point array - Point array + Point array No active Draft Toolbar. - No active Draft Toolbar. + No active Draft Toolbar. @@ -4298,12 +4300,12 @@ The final angle will be the base angle plus this amount. Continue mode - Continue mode + Continue mode Toggle display mode - Toggle display mode + Toggle display mode @@ -4316,161 +4318,161 @@ The final angle will be the base angle plus this amount. Create Dimension (radial) - 建立尺寸(圓弧) + Create Dimension (radial) Edge too short! - 邊緣過短! + Edge too short! Edges don't intersect! - 邊緣未相交! + Edges don't intersect! Select an object to stretch - Select an object to stretch + Select an object to stretch Pick first point of selection rectangle - Pick first point of selection rectangle + Pick first point of selection rectangle Pick opposite point of selection rectangle - Pick opposite point of selection rectangle + Pick opposite point of selection rectangle Pick start point of displacement - Pick start point of displacement + Pick start point of displacement Pick end point of displacement - Pick end point of displacement + Pick end point of displacement Turning one Rectangle into a Wire - Turning one Rectangle into a Wire + Turning one Rectangle into a Wire Stretch - Stretch + Stretch Create Plane - Create Plane + Create Plane Create Rectangle - Create Rectangle + Create Rectangle Select an object to mirror - Select an object to mirror + Select an object to mirror Pick start point of mirror line - Pick start point of mirror line + Pick start point of mirror line Mirror - 鏡像 + Mirror Pick end point of mirror line - Pick end point of mirror line + Pick end point of mirror line Path twisted array - Path twisted array + Path twisted array Select an object to clone - Select an object to clone + Select an object to clone Change slope - Change slope + Change slope Select an object to upgrade - Select an object to upgrade + Select an object to upgrade Upgrade - 升級 + Upgrade Select an object to offset - Select an object to offset + Select an object to offset Offset only works on one object at a time. - Offset only works on one object at a time. + Offset only works on one object at a time. Cannot offset this object type - Cannot offset this object type + Cannot offset this object type Offset of Bezier curves is currently not supported - Offset of Bezier curves is currently not supported + Offset of Bezier curves is currently not supported Create 2D view - 建立2D視景 + Create 2D view Pick ShapeString location point - Pick ShapeString location point + Pick ShapeString location point Create ShapeString - 建立字串造型產生器 + Create ShapeString Heal - Heal + Heal Downgrade - 降級 + Downgrade Task panel: - 工作面板: + Task panel: @@ -4478,21 +4480,21 @@ The final angle will be the base angle plus this amount. Polar array - 極陣列 + Polar array At least one element must be selected. - At least one element must be selected. + At least one element must be selected. Selection is not suitable for array. - Selection is not suitable for array. + Selection is not suitable for array. @@ -4502,65 +4504,65 @@ The final angle will be the base angle plus this amount. Object: - 物體: + Object: Number of elements must be at least 2. - Number of elements must be at least 2. + Number of elements must be at least 2. The angle is above 360 degrees. It is set to this value to proceed. - The angle is above 360 degrees. It is set to this value to proceed. + The angle is above 360 degrees. It is set to this value to proceed. The angle is below -360 degrees. It is set to this value to proceed. - The angle is below -360 degrees. It is set to this value to proceed. + The angle is below -360 degrees. It is set to this value to proceed. Center reset: - Center reset: + Center reset: Fuse: - 融合: + Fuse: Create Link array: - 建立連結陣列: + Create Link array: Number of elements: - Number of elements: + Number of elements: Polar angle: - Polar angle: + Polar angle: Center of rotation: - Center of rotation: + Center of rotation: Aborted: - 已中止: + Aborted: @@ -4569,57 +4571,57 @@ The final angle will be the base angle plus this amount. Orthogonal array - 正交陣列 + Orthogonal array Number of elements must be at least 1. - Number of elements must be at least 1. + Number of elements must be at least 1. Interval X reset: - 間距 X 重置: + Interval X reset: Interval Y reset: - 間距 Y 重置: + Interval Y reset: Interval Z reset: - 間距 Z 重置: + Interval Z reset: Number of X elements: - X 方向的複製數: + Number of X elements: Interval X: - 間距 X: + Interval X: Number of Y elements: - Y 方向的複製數: + Number of Y elements: Interval Y: - 間距 Y: + Interval Y: Number of Z elements: - Z 方向的複製數: + Number of Z elements: Interval Z: - 間距 Z: + Interval Z: @@ -4638,57 +4640,57 @@ The final angle will be the base angle plus this amount. Circular array - 圓形陣列 + Circular array Number of layers must be at least 2. - Number of layers must be at least 2. + Number of layers must be at least 2. Radial distance is zero. Resulting array may not look correct. - Radial distance is zero. Resulting array may not look correct. + Radial distance is zero. Resulting array may not look correct. Radial distance is negative. It is made positive to proceed. - Radial distance is negative. It is made positive to proceed. + Radial distance is negative. It is made positive to proceed. Tangential distance cannot be zero. - Tangential distance cannot be zero. + Tangential distance cannot be zero. Tangential distance is negative. It is made positive to proceed. - Tangential distance is negative. It is made positive to proceed. + Tangential distance is negative. It is made positive to proceed. Radial distance: - Radial distance: + Radial distance: Tangential distance: - Tangential distance: + Tangential distance: Number of circular layers: - Number of circular layers: + Number of circular layers: Symmetry parameter: - Symmetry parameter: + Symmetry parameter: ShapeString: string has no wires - ShapeString: string has no wires + ShapeString: string has no wires @@ -4698,7 +4700,7 @@ The final angle will be the base angle plus this amount. added view property 'ScaleMultiplier' - added view property 'ScaleMultiplier' + added view property 'ScaleMultiplier' @@ -4708,14 +4710,14 @@ The final angle will be the base angle plus this amount. , path object doesn't have 'Edges'. - , path object doesn't have 'Edges'. + , path object doesn't have 'Edges'. 'PathObj' property will be migrated to 'PathObject' - 'PathObj' property will be migrated to 'PathObject' + 'PathObj' property will be migrated to 'PathObject' @@ -4752,23 +4754,23 @@ The final angle will be the base angle plus this amount. AlignMode {} is not implemented - AlignMode {} is not implemented + AlignMode {} is not implemented added property 'ExtraPlacement' - added property 'ExtraPlacement' + added property 'ExtraPlacement' No shape found - No shape found + No shape found All Shapes must be planar - All Shapes must be planar + All Shapes must be planar @@ -4776,61 +4778,61 @@ The final angle will be the base angle plus this amount. length: - 長度: + length: Two elements are needed. - Two elements are needed. + Two elements are needed. Radius is too large - Radius is too large + Radius is too large Segment - Segment + Segment Removed original objects. - Removed original objects. + Removed original objects. Points: - 點: + Points: Wrong input: must be list or tuple of three points exactly. - Wrong input: must be list or tuple of three points exactly. + Wrong input: must be list or tuple of three points exactly. Placement: - 放置位置: + Placement: Wrong input: incorrect type of placement. - Wrong input: incorrect type of placement. + Wrong input: incorrect type of placement. Wrong input: incorrect type of points. - Wrong input: incorrect type of points. + Wrong input: incorrect type of points. Cannot generate shape: - Cannot generate shape: + Cannot generate shape: @@ -4840,33 +4842,33 @@ The final angle will be the base angle plus this amount. Center: - 中心: + 中心: Create primitive object - Create primitive object + Create primitive object Final placement: - 最終放置位置: + Final placement: Face: True - Face: True + Face: True Support: - 支撐: + Support: Map mode: - 地圖模式: + Map mode: @@ -4878,7 +4880,7 @@ The final angle will be the base angle plus this amount. Wrong input: must be a number. - Wrong input: must be a number. + Wrong input: must be a number. @@ -4897,54 +4899,54 @@ The final angle will be the base angle plus this amount. Wrong input: must be a vector. - Wrong input: must be a vector. + Wrong input: must be a vector. Wrong input: must be a list or tuple of strings, or a single string. - Wrong input: must be a list or tuple of strings, or a single string. + Wrong input: must be a list or tuple of strings, or a single string. Wrong input: must be 'Original', 'Frenet', or 'Tangent'. - Wrong input: must be 'Original', 'Frenet', or 'Tangent'. + Wrong input: must be 'Original', 'Frenet', or 'Tangent'. Internal orthogonal array - Internal orthogonal array + Internal orthogonal array Wrong input: must be a number or vector. - Wrong input: must be a number or vector. + Wrong input: must be a number or vector. Input: single value expanded to vector. - Input: single value expanded to vector. + Input: single value expanded to vector. Wrong input: must be an integer number. - Wrong input: must be an integer number. + Wrong input: must be an integer number. Input: number of elements must be at least 1. It is set to 1. - Input: number of elements must be at least 1. It is set to 1. + Input: number of elements must be at least 1. It is set to 1. Orthogonal array 2D - Orthogonal array 2D + Orthogonal array 2D @@ -4954,35 +4956,35 @@ The final angle will be the base angle plus this amount. Rectangular array 2D - Rectangular array 2D + Rectangular array 2D Wrong input: must be a placement, a vector, or a rotation. - Wrong input: must be a placement, a vector, or a rotation. + Wrong input: must be a placement, a vector, or a rotation. Wrong input: object must not be a list. - Wrong input: object must not be a list. + Wrong input: object must not be a list. Wrong input: subelement not in object. - Wrong input: subelement not in object. + Wrong input: subelement not in object. Wrong input: label_type must be a string. - Wrong input: label_type must be a string. + Wrong input: label_type must be a string. Wrong input: label_type must be one of the following: - Wrong input: label_type must be one of the following: + Wrong input: label_type must be one of the following: @@ -4990,28 +4992,28 @@ The final angle will be the base angle plus this amount. Wrong input: must be a list of strings or a single string. - Wrong input: must be a list of strings or a single string. + Wrong input: must be a list of strings or a single string. Wrong input: must be a string, 'Horizontal', 'Vertical', or 'Custom'. - Wrong input: must be a string, 'Horizontal', 'Vertical', or 'Custom'. + Wrong input: must be a string, 'Horizontal', 'Vertical', or 'Custom'. Wrong input: must be a list of at least two vectors. - Wrong input: must be a list of at least two vectors. + Wrong input: must be a list of at least two vectors. Direction is not 'Custom'; points won't be used. - Direction is not 'Custom'; points won't be used. + Direction is not 'Custom'; points won't be used. Wrong input: must be a list of two elements. For example, [object, 'Edge1']. - Wrong input: must be a list of two elements. For example, [object, 'Edge1']. + Wrong input: must be a list of two elements. For example, [object, 'Edge1']. @@ -5021,92 +5023,92 @@ The final angle will be the base angle plus this amount. This function is deprecated. Do not use this function directly. - This function is deprecated. Do not use this function directly. + This function is deprecated. Do not use this function directly. Use one of 'make_linear_dimension', or 'make_linear_dimension_obj'. - Use one of 'make_linear_dimension', or 'make_linear_dimension_obj'. + Use one of 'make_linear_dimension', or 'make_linear_dimension_obj'. Wrong input: object doesn't have a 'Shape' to measure. - Wrong input: object doesn't have a 'Shape' to measure. + Wrong input: object doesn't have a 'Shape' to measure. Wrong input: object doesn't have at least one element in 'Vertexes' to use for measuring. - Wrong input: object doesn't have at least one element in 'Vertexes' to use for measuring. + Wrong input: object doesn't have at least one element in 'Vertexes' to use for measuring. Wrong input: must be an integer. - Wrong input: must be an integer. + Wrong input: must be an integer. i1: values below 1 are not allowed; will be set to 1. - i1: values below 1 are not allowed; will be set to 1. + i1: values below 1 are not allowed; will be set to 1. Wrong input: vertex not in object. - Wrong input: vertex not in object. + Wrong input: vertex not in object. i2: values below 1 are not allowed; will be set to the last vertex in the object. - i2: values below 1 are not allowed; will be set to the last vertex in the object. + i2: values below 1 are not allowed; will be set to the last vertex in the object. Wrong input: object doesn't have at least one element in 'Edges' to use for measuring. - Wrong input: object doesn't have at least one element in 'Edges' to use for measuring. + Wrong input: object doesn't have at least one element in 'Edges' to use for measuring. index: values below 1 are not allowed; will be set to 1. - index: values below 1 are not allowed; will be set to 1. + index: values below 1 are not allowed; will be set to 1. Wrong input: index doesn't correspond to an edge in the object. - Wrong input: index doesn't correspond to an edge in the object. + Wrong input: index doesn't correspond to an edge in the object. Wrong input: index doesn't correspond to a circular edge. - Wrong input: index doesn't correspond to a circular edge. + Wrong input: index doesn't correspond to a circular edge. Wrong input: must be a string, 'radius' or 'diameter'. - Wrong input: must be a string, 'radius' or 'diameter'. + Wrong input: must be a string, 'radius' or 'diameter'. Wrong input: must be a list with two angles. - Wrong input: must be a list with two angles. + Wrong input: must be a list with two angles. Wrong input: must be a number or quantity. - Wrong input: must be a number or quantity. + Wrong input: must be a number or quantity. Layers - 圖層 + Layers Wrong input: it must be a string. - Wrong input: it must be a string. + Wrong input: it must be a string. @@ -5114,18 +5116,18 @@ The final angle will be the base angle plus this amount. Wrong input: must be a tuple of three floats 0.0 to 1.0. - Wrong input: must be a tuple of three floats 0.0 to 1.0. + Wrong input: must be a tuple of three floats 0.0 to 1.0. Wrong input: must be 'Solid', 'Dashed', 'Dotted', or 'Dashdot'. - Wrong input: must be 'Solid', 'Dashed', 'Dotted', or 'Dashdot'. + Wrong input: must be 'Solid', 'Dashed', 'Dotted', or 'Dashdot'. Wrong input: must be a number between 0 and 100. - Wrong input: must be a number between 0 and 100. + Wrong input: must be a number between 0 and 100. @@ -5135,29 +5137,29 @@ The final angle will be the base angle plus this amount. Select layer contents - Select layer contents + Select layer contents Merge layer duplicates - Merge layer duplicates + Merge layer duplicates Add new layer - 新增圖層 + Add new layer Relabeling layer: - Relabeling layer: + Relabeling layer: Merging layer: - Merging layer: + Merging layer: @@ -5173,161 +5175,161 @@ The final angle will be the base angle plus this amount. Flatten - + Upgrade: Unknown force method: - Upgrade: Unknown force method: - - - - Found 1 block: exploding it - Found 1 block: exploding it - - - - Found 1 multi-solids compound: exploding it - Found 1 multi-solids compound: exploding it + Upgrade: Unknown force method: + Found 1 block: exploding it + Found 1 block: exploding it + + + + Found 1 multi-solids compound: exploding it + Found 1 multi-solids compound: exploding it + + + Found 1 parametric object: breaking its dependencies - Found 1 parametric object: breaking its dependencies + Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them - Found 2 objects: subtracting them + Found 2 objects: subtracting them - + Found several faces: splitting them - Found several faces: splitting them + Found several faces: splitting them - + Found several objects: subtracting them from the first one - Found several objects: subtracting them from the first one + Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires - Found 1 face: extracting its wires + Found 1 face: extracting its wires - + Found only wires: extracting their edges - Found only wires: extracting their edges + Found only wires: extracting their edges - + No more downgrade possible - No more downgrade possible + No more downgrade possible No object given - No object given + No object given The two points are coincident - The two points are coincident + The two points are coincident mirrored - 鏡像 + mirrored Object must be a closed shape - Object must be a closed shape + Object must be a closed shape No solid object created - No solid object created + No solid object created Faces must be coplanar to be refined - Faces must be coplanar to be refined + Faces must be coplanar to be refined Found groups: closing each open object inside - Found groups: closing each open object inside + Found groups: closing each open object inside Found meshes: turning into Part shapes - Found meshes: turning into Part shapes + Found meshes: turning into Part shapes Found 1 solidifiable object: solidifying it - Found 1 solidifiable object: solidifying it + Found 1 solidifiable object: solidifying it Found 2 objects: fusing them - Found 2 objects: fusing them + Found 2 objects: fusing them Found object with several coplanar faces: refine them - Found object with several coplanar faces: refine them + Found object with several coplanar faces: refine them Found 1 non-parametric objects: draftifying it - Found 1 non-parametric objects: draftifying it + Found 1 non-parametric objects: draftifying it Found 1 closed sketch object: creating a face from it - Found 1 closed sketch object: creating a face from it + Found 1 closed sketch object: creating a face from it Found closed wires: creating faces - Found closed wires: creating faces + Found closed wires: creating faces Found several wires or edges: wiring them - Found several wires or edges: wiring them + Found several wires or edges: wiring them Found several non-treatable objects: creating compound - Found several non-treatable objects: creating compound + Found several non-treatable objects: creating compound trying: closing it - trying: closing it + trying: closing it Found 1 open wire: closing it - Found 1 open wire: closing it + Found 1 open wire: closing it Found 1 object: draftifying it - Found 1 object: draftifying it + Found 1 object: draftifying it Found points: creating compound - Found points: creating compound + Found points: creating compound Unable to upgrade these objects. - Unable to upgrade these objects. + Unable to upgrade these objects. @@ -5372,22 +5374,22 @@ The final angle will be the base angle plus this amount. Draft creation tools - 底圖建立工具 + Draft creation tools Draft annotation tools - 底圖註釋工具 + Draft annotation tools Draft modification tools - 底圖編修工具 + Draft modification tools Draft utility tools - 底圖實用工具 + Draft utility tools @@ -5398,7 +5400,7 @@ The final angle will be the base angle plus this amount. &Drafting - 底圖繪製(&D) + &Drafting @@ -5408,27 +5410,27 @@ The final angle will be the base angle plus this amount. &Modification - 編修(&M) + &Modification &Utilities - 實用工具(&U) + &Utilities Arc tools - 圓弧工具 + Arc tools Bézier tools - B-雲形線工具 + Bézier tools Array tools - 陣列工具 + Array tools @@ -5438,34 +5440,34 @@ The final angle will be the base angle plus this amount. Download of dxf libraries failed. Please install the dxf Library addon manually from menu Tools -> Addon Manager - 下載 dxf 資料庫失敗. -請手動安裝 dxf 資料庫附加元件 -從功能表 工具 -> 附加元件管理器 + Download of dxf libraries failed. +Please install the dxf Library addon manually +from menu Tools -> Addon Manager You must choose a base object before using this command - You must choose a base object before using this command + You must choose a base object before using this command Delete original objects - Delete original objects + Delete original objects Create chamfer - 建立倒角 + Create chamfer Save style - 儲存樣式 + Save style Name of this new style: - Name of this new style: + Name of this new style: @@ -5475,7 +5477,7 @@ from menu Tools -> Addon Manager Name exists. Overwrite? - Name exists. Overwrite? + Name exists. Overwrite? @@ -5485,7 +5487,7 @@ from menu Tools -> Addon Manager Error: json module not found. Unable to save style - Error: json module not found. Unable to save style + Error: json module not found. Unable to save style @@ -5496,12 +5498,12 @@ from menu Tools -> Addon Manager Slope - 斜率 + 坡度 Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction - Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction + Offset direction is not defined. Please move the mouse on either side of the object first to indicate a direction @@ -5525,27 +5527,27 @@ from menu Tools -> Addon Manager X factor - X 因子 + X factor Y factor - Y 因子 + Y factor Z factor - Z 因子 + Z factor Uniform scaling - Uniform scaling + Uniform scaling Working plane orientation - Working plane orientation + Working plane orientation @@ -5555,37 +5557,37 @@ from menu Tools -> Addon Manager Modify subelements - Modify subelements + Modify subelements Pick from/to points - Pick from/to points + Pick from/to points Create a clone - 建立一個複製體 + 建立一個副本 Point object doesn't have a discrete point, it cannot be used for an array. - Point object doesn't have a discrete point, it cannot be used for an array. + Point object doesn't have a discrete point, it cannot be used for an array. _BSpline.createGeometry: Closed with same first/last Point. Geometry not updated. - _BSpline.createGeometry: Closed with same first/last Point. Geometry not updated. + _BSpline.createGeometry: Closed with same first/last Point. Geometry not updated. Writing camera position - Writing camera position + Writing camera position Writing objects shown/hidden state - Writing objects shown/hidden state + Writing objects shown/hidden state @@ -5638,12 +5640,12 @@ from menu Tools -> Addon Manager OCA: found no data to export - OCA: found no data to export + OCA: found no data to export successfully exported - 成功匯出 + successfully exported @@ -5651,7 +5653,7 @@ from menu Tools -> Addon Manager Did not find enough coordinates - Did not find enough coordinates + Did not find enough coordinates @@ -5659,12 +5661,12 @@ from menu Tools -> Addon Manager Unknown SVG export style, switching to Translated - Unknown SVG export style, switching to Translated + Unknown SVG export style, switching to Translated The export list contains no object with a valid bounding box - The export list contains no object with a valid bounding box + The export list contains no object with a valid bounding box @@ -5672,13 +5674,13 @@ from menu Tools -> Addon Manager Select Plane - 選取平面 + Select Plane Select the face of solid body to create a working plane on which to sketch Draft objects. You may also select a three vertices or a Working Plane Proxy. - Select the face of solid body to create a working plane on which to sketch Draft objects. + Select the face of solid body to create a working plane on which to sketch Draft objects. You may also select a three vertices or a Working Plane Proxy. @@ -5687,14 +5689,14 @@ You may also select a three vertices or a Working Plane Proxy. Path array - 路徑陣列 + Path array Creates copies of the selected object along a selected path. First select the object, and then select the path. The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. - Creates copies of the selected object along a selected path. + Creates copies of the selected object along a selected path. First select the object, and then select the path. The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. @@ -5704,13 +5706,13 @@ The path can be a polyline, B-spline, Bezier curve, or even edges from other obj Path Link array - 路徑連結陣列 + Path Link array Like the PathArray tool, but creates a 'Link array' instead. A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. - Like the PathArray tool, but creates a 'Link array' instead. + Like the PathArray tool, but creates a 'Link array' instead. A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. @@ -5719,7 +5721,7 @@ A 'Link array' is more efficient when handling many copies but the 'Fuse' option Label - 標籤 + Label @@ -5732,7 +5734,7 @@ if any. If many objects or many subelements are selected, only the first one in each case will be used to provide information to the label. - Creates a label, optionally attached to a selected object or subelement. + Creates a label, optionally attached to a selected object or subelement. First select a vertex, an edge, or a face of an object, then call this command, and then set the position of the leader line and the textual label. @@ -5753,7 +5755,7 @@ will be used to provide information to the label. Creates a 2-point line. CTRL to snap, SHIFT to constrain. - Creates a 2-point line. CTRL to snap, SHIFT to constrain. + Creates a 2-point line. CTRL to snap, SHIFT to constrain. @@ -5761,12 +5763,12 @@ will be used to provide information to the label. Polyline - 聚合線 + Polyline Creates a multiple-points line (polyline). CTRL to snap, SHIFT to constrain. - Creates a multiple-points line (polyline). CTRL to snap, SHIFT to constrain. + Creates a multiple-points line (polyline). CTRL to snap, SHIFT to constrain. @@ -5774,12 +5776,12 @@ will be used to provide information to the label. Hatch - Hatch + 填充 Creates hatches on the faces of a selected object - Creates hatches on the faces of a selected object + Creates hatches on the faces of a selected object @@ -5793,7 +5795,7 @@ will be used to provide information to the label. Joins the selected lines or polylines into a single object. The lines must share a common point at the start or at the end for the operation to succeed. - Joins the selected lines or polylines into a single object. + Joins the selected lines or polylines into a single object. The lines must share a common point at the start or at the end for the operation to succeed. @@ -5807,7 +5809,7 @@ The lines must share a common point at the start or at the end for the operation Creates a multi-line annotation. CTRL to snap. - Creates a multi-line annotation. CTRL to snap. + Creates a multi-line annotation. CTRL to snap. @@ -5815,14 +5817,14 @@ The lines must share a common point at the start or at the end for the operation Draft to Sketch - 轉換為草圖 + Draft to Sketch Convert bidirectionally between Draft objects and Sketches. Many Draft objects will be converted into a single non-constrained Sketch. However, a single sketch with disconnected traces will be converted into several individual Draft objects. - Convert bidirectionally between Draft objects and Sketches. + Convert bidirectionally between Draft objects and Sketches. Many Draft objects will be converted into a single non-constrained Sketch. However, a single sketch with disconnected traces will be converted into several individual Draft objects. @@ -5832,7 +5834,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Lock - 自動貼齊定位 + Snap Lock @@ -5845,7 +5847,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Midpoint - 貼齊中點 + Snap Midpoint @@ -5858,7 +5860,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Perpendicular - 貼齊垂直方向 + Snap Perpendicular @@ -5871,7 +5873,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Grid - 對齊網格 + Snap Grid @@ -5884,7 +5886,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Intersection - 貼齊相交 + Snap Intersection @@ -5897,7 +5899,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Parallel - 平行貼齊 + Snap Parallel @@ -5910,7 +5912,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Endpoint - 貼齊端點 + Snap Endpoint @@ -5923,7 +5925,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Angle - 貼齊角度 + Snap Angle @@ -5936,7 +5938,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Center - 貼齊中心 + Snap Center @@ -5949,7 +5951,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Extension - 延伸貼齊 + Snap Extension @@ -5962,7 +5964,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Near - 鄰近貼齊 + Snap Near @@ -5975,7 +5977,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Ortho - 對齊頂部 + Snap Ortho @@ -5988,7 +5990,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Special - 特殊貼齊 + Snap Special @@ -6001,7 +6003,7 @@ However, a single sketch with disconnected traces will be converted into several Snap Dimensions - 捕捉尺寸 + Snap Dimensions @@ -6027,7 +6029,7 @@ However, a single sketch with disconnected traces will be converted into several Show snap toolbar - 顯示貼齊工具列 + Show snap toolbar @@ -6047,7 +6049,7 @@ However, a single sketch with disconnected traces will be converted into several Moves the selected objects from one base point to another point. If the "copy" option is active, it will create displaced copies. CTRL to snap, SHIFT to constrain. - Moves the selected objects from one base point to another point. + Moves the selected objects from one base point to another point. If the "copy" option is active, it will create displaced copies. CTRL to snap, SHIFT to constrain. @@ -6057,13 +6059,13 @@ CTRL to snap, SHIFT to constrain. Arc - 圓弧 + Creates a circular arc by a center point and a radius. CTRL to snap, SHIFT to constrain. - Creates a circular arc by a center point and a radius. + Creates a circular arc by a center point and a radius. CTRL to snap, SHIFT to constrain. @@ -6072,13 +6074,13 @@ CTRL to snap, SHIFT to constrain. Arc by 3 points - 3點建立弧 + Arc by 3 points Creates a circular arc by picking 3 points. CTRL to snap, SHIFT to constrain. - Creates a circular arc by picking 3 points. + Creates a circular arc by picking 3 points. CTRL to snap, SHIFT to constrain. @@ -6087,12 +6089,12 @@ CTRL to snap, SHIFT to constrain. Arc tools - 圓弧工具 + Arc tools Create various types of circular arcs. - Create various types of circular arcs. + Create various types of circular arcs. @@ -6100,12 +6102,12 @@ CTRL to snap, SHIFT to constrain. Toggle grid - 切換格線 + Toggle grid Toggles the Draft grid on and off. - Toggles the Draft grid on and off. + Toggles the Draft grid on and off. @@ -6113,12 +6115,12 @@ CTRL to snap, SHIFT to constrain. Subelement highlight - Subelement highlight + Subelement highlight Highlight the subelements of the selected objects, so that they can then be edited with the move, rotate, and scale tools. - Highlight the subelements of the selected objects, so that they can then be edited with the move, rotate, and scale tools. + Highlight the subelements of the selected objects, so that they can then be edited with the move, rotate, and scale tools. @@ -6133,7 +6135,7 @@ CTRL to snap, SHIFT to constrain. Edits the active object. Press E or ALT+LeftClick to display context menu on supported nodes and on supported objects. - Edits the active object. + Edits the active object. Press E or ALT+LeftClick to display context menu on supported nodes and on supported objects. @@ -6143,12 +6145,12 @@ on supported nodes and on supported objects. Add point - 增加點 + Add point Adds a point to an existing Wire or B-spline. - Adds a point to an existing Wire or B-spline. + Adds a point to an existing Wire or B-spline. @@ -6156,12 +6158,12 @@ on supported nodes and on supported objects. Remove point - 移除點 + Remove point Removes a point from an existing Wire or B-spline. - Removes a point from an existing Wire or B-spline. + Removes a point from an existing Wire or B-spline. @@ -6169,7 +6171,7 @@ on supported nodes and on supported objects. Circular array - 圓形陣列 + Circular array @@ -6177,8 +6179,10 @@ on supported nodes and on supported objects. creating various circular layers. The array can be turned into an orthogonal or a polar array by changing its type. - 建立所選對象的拷貝,並將拷貝放置在建立各種圓形圖層的放射狀圖案中. -陣列可以通過改變其類型變成正交或極坐標陣列. + Creates copies of the selected object, and places the copies in a radial pattern +creating various circular layers. + +The array can be turned into an orthogonal or a polar array by changing its type. @@ -6186,12 +6190,12 @@ The array can be turned into an orthogonal or a polar array by changing its type Annotation styles... - Annotation styles... + Annotation styles... Manage or create annotation styles - Manage or create annotation styles + Manage or create annotation styles @@ -6204,7 +6208,7 @@ The array can be turned into an orthogonal or a polar array by changing its type Creates a point object. Click anywhere on the 3D view. - Creates a point object. Click anywhere on the 3D view. + Creates a point object. Click anywhere on the 3D view. @@ -6219,7 +6223,7 @@ The array can be turned into an orthogonal or a polar array by changing its type Rotates the selected objects. Choose the center of rotation, then the initial angle, and then the final angle. If the "copy" option is active, it will create rotated copies. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. - Rotates the selected objects. Choose the center of rotation, then the initial angle, and then the final angle. + Rotates the selected objects. Choose the center of rotation, then the initial angle, and then the final angle. If the "copy" option is active, it will create rotated copies. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. @@ -6229,13 +6233,13 @@ CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each Move to group... - 移動到群組... + Move to group... Moves the selected objects to an existing group, or removes them from any group. Create a group first to use this tool. - Moves the selected objects to an existing group, or removes them from any group. + Moves the selected objects to an existing group, or removes them from any group. Create a group first to use this tool. @@ -6244,12 +6248,12 @@ Create a group first to use this tool. Select group - 選擇群組 + Select group Selects the contents of selected groups. For selected non-group objects, the contents of the group they are in is selected. - Selects the contents of selected groups. For selected non-group objects, the contents of the group they are in is selected. + Selects the contents of selected groups. For selected non-group objects, the contents of the group they are in is selected. @@ -6262,7 +6266,7 @@ Create a group first to use this tool. Select a group to add all Draft and Arch objects to. - Select a group to add all Draft and Arch objects to. + Select a group to add all Draft and Arch objects to. @@ -6270,14 +6274,14 @@ Create a group first to use this tool. Add to Construction group - Add to Construction group + Add to Construction group Adds the selected objects to the construction group, and changes their appearance to the construction style. It creates a construction group if it doesn't exist. - Adds the selected objects to the construction group, + Adds the selected objects to the construction group, and changes their appearance to the construction style. It creates a construction group if it doesn't exist. @@ -6287,12 +6291,12 @@ It creates a construction group if it doesn't exist. Add a new named group - 新增命名群組 + Add a new named group Add a new group with a given name. - Add a new group with a given name. + Add a new group with a given name. @@ -6300,14 +6304,14 @@ It creates a construction group if it doesn't exist. Create working plane proxy - Create working plane proxy + Create working plane proxy Creates a proxy object from the current working plane. Once the object is created double click it in the tree view to restore the camera position and objects' visibilities. Then you can use it to save a different camera position and objects' states any time you need. - Creates a proxy object from the current working plane. + Creates a proxy object from the current working plane. Once the object is created double click it in the tree view to restore the camera position and objects' visibilities. Then you can use it to save a different camera position and objects' states any time you need. @@ -6317,12 +6321,12 @@ Then you can use it to save a different camera position and objects' states any Wire to B-spline - Wire to B-spline + Wire to B-spline Converts a selected polyline to a B-spline, or a B-spline to a polyline. - Converts a selected polyline to a B-spline, or a B-spline to a polyline. + Converts a selected polyline to a B-spline, or a B-spline to a polyline. @@ -6330,13 +6334,13 @@ Then you can use it to save a different camera position and objects' states any Flip dimension - 旋轉尺寸 + Flip dimension Flip the normal direction of the selected dimensions (linear, radial, angular). If other objects are selected they are ignored. - Flip the normal direction of the selected dimensions (linear, radial, angular). + Flip the normal direction of the selected dimensions (linear, radial, angular). If other objects are selected they are ignored. @@ -6350,7 +6354,7 @@ If other objects are selected they are ignored. Creates a fillet between two selected wires or edges. - Creates a fillet between two selected wires or edges. + Creates a fillet between two selected wires or edges. @@ -6358,12 +6362,12 @@ If other objects are selected they are ignored. Set style - 設定樣式 + Set style Sets default styles - 設定預設樣式 + Sets default styles @@ -6377,7 +6381,7 @@ If other objects are selected they are ignored. Creates a regular polygon (triangle, square, pentagon, ...), by defining the number of sides and the circumscribed radius. CTRL to snap, SHIFT to constrain - Creates a regular polygon (triangle, square, pentagon, ...), by defining the number of sides and the circumscribed radius. + Creates a regular polygon (triangle, square, pentagon, ...), by defining the number of sides and the circumscribed radius. CTRL to snap, SHIFT to constrain @@ -6386,14 +6390,14 @@ CTRL to snap, SHIFT to constrain Split - 分割 + Split Splits the selected line or polyline into two independent lines or polylines by clicking anywhere along the original object. It works best when choosing a point on a straight segment and not a corner vertex. - Splits the selected line or polyline into two independent lines + Splits the selected line or polyline into two independent lines or polylines by clicking anywhere along the original object. It works best when choosing a point on a straight segment and not a corner vertex. @@ -6409,7 +6413,7 @@ It works best when choosing a point on a straight segment and not a corner verte Trims or extends the selected object, or extrudes single faces. CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. - Trims or extends the selected object, or extrudes single faces. + Trims or extends the selected object, or extrudes single faces. CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. @@ -6418,12 +6422,12 @@ CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. B-spline - 貝茲曲線 + B 雲形線 Creates a multiple-point B-spline. CTRL to snap, SHIFT to constrain. - Creates a multiple-point B-spline. CTRL to snap, SHIFT to constrain. + Creates a multiple-point B-spline. CTRL to snap, SHIFT to constrain. @@ -6431,12 +6435,12 @@ CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. Apply current style - Apply current style + Apply current style Applies the current style defined in the toolbar (line width and colors) to the selected objects and groups. - Applies the current style defined in the toolbar (line width and colors) to the selected objects and groups. + Applies the current style defined in the toolbar (line width and colors) to the selected objects and groups. @@ -6444,13 +6448,13 @@ CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts. Bézier curve - B-雲形曲線 + Bézier curve Creates an N-degree Bézier curve. The more points you pick, the higher the degree. CTRL to snap, SHIFT to constrain. - Creates an N-degree Bézier curve. The more points you pick, the higher the degree. + Creates an N-degree Bézier curve. The more points you pick, the higher the degree. CTRL to snap, SHIFT to constrain. @@ -6459,14 +6463,14 @@ CTRL to snap, SHIFT to constrain. Cubic Bézier curve - 立體B-雲形曲線 + Cubic Bézier curve Creates a Bézier curve made of 2nd degree (quadratic) and 3rd degree (cubic) segments. Click and drag to define each segment. After the curve is created you can go back to edit each control point and set the properties of each knot. CTRL to snap, SHIFT to constrain. - Creates a Bézier curve made of 2nd degree (quadratic) and 3rd degree (cubic) segments. Click and drag to define each segment. + Creates a Bézier curve made of 2nd degree (quadratic) and 3rd degree (cubic) segments. Click and drag to define each segment. After the curve is created you can go back to edit each control point and set the properties of each knot. CTRL to snap, SHIFT to constrain. @@ -6476,12 +6480,12 @@ CTRL to snap, SHIFT to constrain. Bézier tools - B-雲形線工具 + Bézier tools Create various types of Bézier curves. - Create various types of Bézier curves. + Create various types of Bézier curves. @@ -6495,7 +6499,7 @@ CTRL to snap, SHIFT to constrain. Creates a circle (full circular arc). CTRL to snap, ALT to select tangent objects. - Creates a circle (full circular arc). + Creates a circle (full circular arc). CTRL to snap, ALT to select tangent objects. @@ -6509,7 +6513,7 @@ CTRL to snap, ALT to select tangent objects. Creates an ellipse. CTRL to snap. - 建立一個橢圓,使用 CTRL 捕捉. + Creates an ellipse. CTRL to snap. @@ -6522,7 +6526,7 @@ CTRL to snap, ALT to select tangent objects. Creates a facebinder object from selected faces. - 由所選面中建立一個面連接器物體. + Creates a facebinder object from selected faces. @@ -6530,7 +6534,7 @@ CTRL to snap, ALT to select tangent objects. Array - 矩陣 + Array @@ -6538,7 +6542,7 @@ CTRL to snap, ALT to select tangent objects. meaning the copies follow the specified direction in the X, Y, Z axes. The array can be turned into a polar or a circular array by changing its type. - Creates copies of the selected object, and places the copies in an orthogonal pattern, + Creates copies of the selected object, and places the copies in an orthogonal pattern, meaning the copies follow the specified direction in the X, Y, Z axes. The array can be turned into a polar or a circular array by changing its type. @@ -6555,7 +6559,7 @@ The array can be turned into a polar or a circular array by changing its type. Scales the selected objects from a base point. CTRL to snap, SHIFT to constrain, ALT to copy. - Scales the selected objects from a base point. + Scales the selected objects from a base point. CTRL to snap, SHIFT to constrain, ALT to copy. @@ -6564,13 +6568,13 @@ CTRL to snap, SHIFT to constrain, ALT to copy. Layer - 圖層 + Layer Adds a layer to the document. Objects added to this layer can share the same visual properties such as line color, line width, and shape color. - Adds a layer to the document. + Adds a layer to the document. Objects added to this layer can share the same visual properties such as line color, line width, and shape color. @@ -6579,7 +6583,7 @@ Objects added to this layer can share the same visual properties such as line co Point array - Point array + Point array @@ -6594,13 +6598,13 @@ First select the base object, and then select the point object. PointLinkArray - 點連結陣列 + PointLinkArray Like the PointArray tool, but creates a 'Point link array' instead. A 'Point link array' is more efficient when handling many copies. - Like the PointArray tool, but creates a 'Point link array' instead. + Like the PointArray tool, but creates a 'Point link array' instead. A 'Point link array' is more efficient when handling many copies. @@ -6609,12 +6613,12 @@ A 'Point link array' is more efficient when handling many copies. Array tools - 陣列工具 + Array tools Create various types of arrays, including rectangular, polar, circular, path, and point - Create various types of arrays, including rectangular, polar, circular, path, and point + Create various types of arrays, including rectangular, polar, circular, path, and point @@ -6622,13 +6626,13 @@ A 'Point link array' is more efficient when handling many copies. Toggle construction mode - Toggle construction mode + Toggle construction mode Toggles the Construction mode. When this is active, the following objects created will be included in the construction group, and will be drawn with the specified color and properties. - Toggles the Construction mode. + Toggles the Construction mode. When this is active, the following objects created will be included in the construction group, and will be drawn with the specified color and properties. @@ -6637,14 +6641,14 @@ When this is active, the following objects created will be included in the const Toggle continue mode - Toggle continue mode + Toggle continue mode Toggles the Continue mode. When this is active, any drawing tool that is terminated will automatically start again. This can be used to draw several objects one after the other in succession. - Toggles the Continue mode. + Toggles the Continue mode. When this is active, any drawing tool that is terminated will automatically start again. This can be used to draw several objects one after the other in succession. @@ -6654,14 +6658,14 @@ This can be used to draw several objects one after the other in succession. Toggle normal/wireframe display - Toggle normal/wireframe display + Toggle normal/wireframe display Switches the display mode of selected objects from flatlines to wireframe and back. This is helpful to quickly visualize objects that are hidden by other objects. This is intended to be used with closed shapes and solids, and doesn't affect open wires. - Switches the display mode of selected objects from flatlines to wireframe and back. + Switches the display mode of selected objects from flatlines to wireframe and back. This is helpful to quickly visualize objects that are hidden by other objects. This is intended to be used with closed shapes and solids, and doesn't affect open wires. @@ -6687,7 +6691,7 @@ You may select a single line or single circular arc before launching this comman to create the corresponding linked dimension. You may also select an 'App::MeasureDistance' object before launching this command to turn it into a 'Draft Dimension' object. - Creates a dimension. + Creates a dimension. - Pick three points to create a simple linear dimension. - Select a straight line to create a linear dimension linked to that line. @@ -6706,14 +6710,14 @@ to turn it into a 'Draft Dimension' object. Stretch - Stretch + Stretch Stretches the selected objects. Select an object, then draw a rectangle to pick the vertices that will be stretched, then draw a line to specify the distance and direction of stretching. - Stretches the selected objects. + Stretches the selected objects. Select an object, then draw a rectangle to pick the vertices that will be stretched, then draw a line to specify the distance and direction of stretching. @@ -6728,7 +6732,7 @@ then draw a line to specify the distance and direction of stretching. Creates a 2-point rectangle. CTRL to snap. - Creates a 2-point rectangle. CTRL to snap. + Creates a 2-point rectangle. CTRL to snap. @@ -6736,12 +6740,12 @@ then draw a line to specify the distance and direction of stretching. Mirror - 鏡像 + Mirror Mirrors the selected objects along a line defined by two points. - Mirrors the selected objects along a line defined by two points. + Mirrors the selected objects along a line defined by two points. @@ -6749,14 +6753,14 @@ then draw a line to specify the distance and direction of stretching. Path twisted array - Path twisted array + Path twisted array Creates copies of the selected object along a selected path, and twists the copies. First select the object, and then select the path. The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. - Creates copies of the selected object along a selected path, and twists the copies. + Creates copies of the selected object along a selected path, and twists the copies. First select the object, and then select the path. The path can be a polyline, B-spline, Bezier curve, or even edges from other objects. @@ -6766,13 +6770,13 @@ The path can be a polyline, B-spline, Bezier curve, or even edges from other obj Path twisted Link array - Path twisted Link array + Path twisted Link array Like the PathTwistedArray tool, but creates a 'Link array' instead. A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. - Like the PathTwistedArray tool, but creates a 'Link array' instead. + Like the PathTwistedArray tool, but creates a 'Link array' instead. A 'Link array' is more efficient when handling many copies but the 'Fuse' option cannot be used. @@ -6787,7 +6791,7 @@ A 'Link array' is more efficient when handling many copies but the 'Fuse' option Creates a clone of the selected objects. The resulting clone can be scaled in each of its three directions. - Creates a clone of the selected objects. + Creates a clone of the selected objects. The resulting clone can be scaled in each of its three directions. @@ -6796,7 +6800,7 @@ The resulting clone can be scaled in each of its three directions. Polar array - 極陣列 + Polar array @@ -6804,7 +6808,7 @@ The resulting clone can be scaled in each of its three directions. defined by a center of rotation and its angle. The array can be turned into an orthogonal or a circular array by changing its type. - Creates copies of the selected object, and places the copies in a polar pattern + Creates copies of the selected object, and places the copies in a polar pattern defined by a center of rotation and its angle. The array can be turned into an orthogonal or a circular array by changing its type. @@ -6815,7 +6819,7 @@ The array can be turned into an orthogonal or a circular array by changing its t Set slope - Set slope + Set slope @@ -6824,7 +6828,7 @@ If a polyline is selected, it will apply the slope transformation to each of its The slope will always change the Z value, therefore this command only works well for straight Draft lines that are drawn in the XY plane. Selected objects that aren't single lines will be ignored. - Sets the slope of the selected line by changing the value of the Z value of one of its points. + Sets the slope of the selected line by changing the value of the Z value of one of its points. If a polyline is selected, it will apply the slope transformation to each of its segments. The slope will always change the Z value, therefore this command only works well for @@ -6836,7 +6840,7 @@ straight Draft lines that are drawn in the XY plane. Selected objects that aren' Upgrade - 升級 + Upgrade @@ -6844,7 +6848,7 @@ straight Draft lines that are drawn in the XY plane. Selected objects that aren' The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. For example, it can join the selected objects into one, convert simple edges into parametric polylines, convert closed edges into filled faces and parametric polygons, and merge faces into a single face. - Upgrades the selected objects into more complex shapes. + Upgrades the selected objects into more complex shapes. The result of the operation depends on the types of objects, which may be able to be upgraded several times in a row. For example, it can join the selected objects into one, convert simple edges into parametric polylines, convert closed edges into filled faces and parametric polygons, and merge faces into a single face. @@ -6862,7 +6866,7 @@ convert closed edges into filled faces and parametric polygons, and merge faces Offsets of the selected object. It can also create an offset copy of the original object. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. - Offsets of the selected object. + Offsets of the selected object. It can also create an offset copy of the original object. CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each click. @@ -6880,7 +6884,7 @@ CTRL to snap, SHIFT to constrain. Hold ALT and click to create a copy with each The initial projection direction is the negative of the current active view direction. You can select individual faces to project, or the entire solid, and also include hidden lines. These projections can be used to create technical drawings with the TechDraw Workbench. - Creates a 2D projection of the selected objects on the XY plane. + Creates a 2D projection of the selected objects on the XY plane. The initial projection direction is the negative of the current active view direction. You can select individual faces to project, or the entire solid, and also include hidden lines. These projections can be used to create technical drawings with the TechDraw Workbench. @@ -6897,7 +6901,7 @@ These projections can be used to create technical drawings with the TechDraw Wor Creates a shape from a text string by choosing a specific font and a placement. The closed shapes can be used for extrusions and boolean operations. - Creates a shape from a text string by choosing a specific font and a placement. + Creates a shape from a text string by choosing a specific font and a placement. The closed shapes can be used for extrusions and boolean operations. @@ -6906,14 +6910,14 @@ The closed shapes can be used for extrusions and boolean operations. Heal - Heal + Heal Heal faulty Draft objects saved with an earlier version of the program. If an object is selected it will try to heal that object in particular, otherwise it will try to heal all objects in the active document. - Heal faulty Draft objects saved with an earlier version of the program. + Heal faulty Draft objects saved with an earlier version of the program. If an object is selected it will try to heal that object in particular, otherwise it will try to heal all objects in the active document. @@ -6923,14 +6927,14 @@ otherwise it will try to heal all objects in the active document. Downgrade - 降級 + Downgrade Downgrades the selected objects into simpler shapes. The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. - Downgrades the selected objects into simpler shapes. + Downgrades the selected objects into simpler shapes. The result of the operation depends on the types of objects, which may be able to be downgraded several times in a row. For example, it explodes the selected polylines into simpler faces, wires, and then edges. It can also subtract faces. @@ -6940,14 +6944,14 @@ For example, it explodes the selected polylines into simpler faces, wires, and t The placement of the base point of the first line - 第一行基準點的位置 + The placement of the base point of the first line The text displayed by this object. It is a list of strings; each element in the list will be displayed in its own line. - 此物體顯示的文字. -它是一個字串列表; 列表中的每個元素都將顯示在自己的行中. + The text displayed by this object. +It is a list of strings; each element in the list will be displayed in its own line. @@ -6957,86 +6961,86 @@ It is a list of strings; each element in the list will be displayed in its own l Font file name - 字型檔案名稱 + Font file name Height of text - 字高 + Height of text Inter-character spacing - 字元間距 + Inter-character spacing Fill letters with faces - 在面上填充字母 + Fill letters with faces The base object used by this object - The base object used by this object + The base object used by this object The PAT file used by this object - The PAT file used by this object + The PAT file used by this object The pattern name used by this object - The pattern name used by this object + The pattern name used by this object The pattern scale used by this object - The pattern scale used by this object + The pattern scale used by this object The pattern rotation used by this object - The pattern rotation used by this object + The pattern rotation used by this object If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) - If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) + If set to False, hatch is applied as is to the faces, without translation (this might give wrong results for non-XY faces) The objects included in this clone - The objects included in this clone + The objects included in this clone The scale factor of this clone - The scale factor of this clone + The scale factor of this clone If Clones includes several objects, set True for fusion or False for compound - If Clones includes several objects, + If Clones includes several objects, set True for fusion or False for compound Start angle of the arc - 這個弧度的起始角度 + Start angle of the arc End angle of the arc (for a full circle, give it same value as First Angle) - End angle of the arc (for a full circle, + End angle of the arc (for a full circle, give it same value as First Angle) Radius of the circle - 圓的半徑 + Radius of the circle @@ -7044,7 +7048,7 @@ set True for fusion or False for compound Create a face - 建立一個面 + Create a face @@ -7054,62 +7058,62 @@ set True for fusion or False for compound The area of this object - 此物體的面積 + The area of this object The objects that are part of this layer - 物體是此圖層的一部分 + The objects that are part of this layer Number of faces - 面的數量 + Number of faces Radius of the control circle - 控制圓的半徑 + Radius of the control circle How the polygon must be drawn from the control circle - 如何從控制圓中繪製多邊形 + How the polygon must be drawn from the control circle Radius to use to fillet the corners - 倒角半徑 + Radius to use to fillet the corners Size of the chamfer to give to the corners - 倒角尺寸 + Size of the chamfer to give to the corners The base object that will be duplicated. - 將被複製的基本物體. + The base object that will be duplicated. The object along which the copies will be distributed. It must contain 'Edges'. - 將沿其分布複製的物體。 它必須包含「邊緣」. + The object along which the copies will be distributed. It must contain 'Edges'. Number of copies to create. - 欲複製的數量. + Number of copies to create. Rotation factor of the twisted array. - 扭曲陣列的旋轉係數. + Rotation factor of the twisted array. @@ -7117,14 +7121,14 @@ set True for fusion or False for compound Show the individual array elements (only for Link arrays) - 顯示單個陣列元素(僅適用於連結陣列) + Show the individual array elements (only for Link arrays) The position of the tip of the leader line. This point can be decorated with an arrow or another symbol. - 引導線尖端的位置. -這個點可以設定為箭頭或其他符號. + The position of the tip of the leader line. +This point can be decorated with an arrow or another symbol. @@ -7132,9 +7136,10 @@ This point can be decorated with an arrow or another symbol. as 'Text', depending on 'Label Type'. 'Target' won't be used if 'Label Type' is set to 'Custom'. - 物體和可選的子元素,其屬性將顯示為「文字」,具體取決於「標籤類型」. + Object, and optionally subelement, whose properties will be displayed +as 'Text', depending on 'Label Type'. -如果「標籤類型」設定為「自定義」,則不會使用「目標」. +'Target' won't be used if 'Label Type' is set to 'Custom'. @@ -7147,13 +7152,15 @@ The middle point is calculated automatically depending on the chosen If 'Straight Direction' is set to 'Custom', the 'Points' property can be set as a list of arbitrary points. - 定義引導線的點列表; 通常是三點列表. + The list of points defining the leader line; normally a list of three points. -第一個點為文字的位置,也就是「位置」, -最後一點為線的尖端,即「目標點」. -中點將根據選擇的「直線方向」與「直線距離」值和符號自動計算. +The first point should be the position of the text, that is, the 'Placement', +and the last point should be the tip of the line, that is, the 'Target Point'. +The middle point is calculated automatically depending on the chosen +'Straight Direction' and the 'Straight Distance' value and sign. -如果「直線方向」設定為「自定義」,則「點」屬性可以設定為任意點的列表. +If 'Straight Direction' is set to 'Custom', the 'Points' property +can be set as a list of arbitrary points. @@ -7161,9 +7168,10 @@ can be set as a list of arbitrary points. If 'Custom' is chosen, the points of the leader can be specified by assigning a custom list to the 'Points' attribute. - 引導線直線段的方向. + The direction of the straight segment of the leader line. -如果選擇「自定義」,則可以透過將自定義列表設定「點」屬性來指定引導點. +If 'Custom' is chosen, the points of the leader can be specified by +assigning a custom list to the 'Points' attribute. @@ -7172,20 +7180,21 @@ assigning a custom list to the 'Points' attribute. This is an oriented distance; if it is negative, the line will be drawn to the left or below the 'Text', otherwise to the right or above it, depending on the value of 'Straight Direction'. - 引導線直線段的長度. + The length of the straight segment of the leader line. -這是一個定向距離; 如果為負數,則線將繪製在「文字」的左側或下方, -否則將繪製在其右側或上方,具體取決於「直線方向」的值. +This is an oriented distance; if it is negative, the line will be drawn +to the left or below the 'Text', otherwise to the right or above it, +depending on the value of 'Straight Direction'. The placement of the 'Text' element in 3D space - 3D 空間中「文字」元素的位置 + The placement of the 'Text' element in 3D space The text to display when 'Label Type' is set to 'Custom' - 當「標籤類型」設定為「自定義」時顯示的文字 + The text to display when 'Label Type' is set to 'Custom' @@ -7194,11 +7203,11 @@ depending on the value of 'Straight Direction'. This property is read-only, as the final text depends on 'Label Type', and the object defined in 'Target'. The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. - 文字由這個標籤顯示. + The text displayed by this label. -這個屬性是唯讀的,就像是最終文字是依賴於'標籤類型', -而該物體定義在'目標'. -'自訂文字'只有在當'標籤類型'被設定為'自定義'時顯示. +This property is read-only, as the final text depends on 'Label Type', +and the object defined in 'Target'. +The 'Custom Text' is displayed only if 'Label Type' is set to 'Custom'. @@ -7210,20 +7219,21 @@ For other types, the string will be calculated automatically from the object def For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. - 這個標籤顯示了資訊的類型. + The type of information displayed by this label. -如果選擇了'自訂','自訂文字'的內容將會被使用. -至於其他類型,定義為'目標'的物體字串會自動被計算. -"標籤"和'材質'只適用擁有這些屬性的物體上,像是弧形物體. +If 'Custom' is chosen, the contents of 'Custom Text' will be used. +For other types, the string will be calculated automatically from the object defined in 'Target'. +'Tag' and 'Material' only work for objects that have these properties, like Arch objects. -如果被指定,像'位置'、'長度'和'面積'這些屬性會被從主要的'目標'物體抽取,或是分別從次元素'頂點N'、'邊N'、'面N'分別抽取. +For 'Position', 'Length', and 'Area' these properties will be extracted from the main object in 'Target', +or from the subelement 'VertexN', 'EdgeN', or 'FaceN', respectively, if it is specified. General scaling factor that affects the annotation consistently because it scales the text, and the line decorations, if any, in the same proportion. - General scaling factor that affects the annotation consistently + General scaling factor that affects the annotation consistently because it scales the text, and the line decorations, if any, in the same proportion. @@ -7240,43 +7250,43 @@ they will only be editable by changing the style through the 'Annotation style e The base object that will be duplicated - 將被複製的基本物體 + The base object that will be duplicated List of connected edges in the 'Path Object'. If these are present, the copies will be created along these subelements only. Leave this property empty to create copies along the entire 'Path Object'. - List of connected edges in the 'Path Object'. + List of connected edges in the 'Path Object'. If these are present, the copies will be created along these subelements only. Leave this property empty to create copies along the entire 'Path Object'. Number of copies to create - 欲複製的數量 + Number of copies to create Additional translation that will be applied to each copy. This is useful to adjust for the difference between shape centre and shape reference point. - Additional translation that will be applied to each copy. + Additional translation that will be applied to each copy. This is useful to adjust for the difference between shape centre and shape reference point. Alignment vector for 'Tangent' mode - Alignment vector for 'Tangent' mode + Alignment vector for 'Tangent' mode Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode - Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode + Force use of 'Vertical Vector' as local Z direction when using 'Original' or 'Tangent' alignment mode Direction of the local Z axis when 'Force Vertical' is true - Direction of the local Z axis when 'Force Vertical' is true + Direction of the local Z axis when 'Force Vertical' is true @@ -7286,7 +7296,7 @@ This is useful to adjust for the difference between shape centre and shape refer - Tangent: similar to 'Original' but the local X axis is pre-aligned to 'Tangent Vector'. To get better results with 'Original' or 'Tangent' you may have to set 'Force Vertical' to true. - Method to orient the copies along the path. + Method to orient the copies along the path. - Original: X is curve tangent, Y is normal, and Z is the cross product. - Frenet: aligns the object following the local coordinate system along the path. - Tangent: similar to 'Original' but the local X axis is pre-aligned to 'Tangent Vector'. @@ -7307,7 +7317,7 @@ To get better results with 'Original' or 'Tangent' you may have to set 'Force Ve Orient the copies along the path depending on the 'Align Mode'. Otherwise the copies will have the same orientation as the original Base object. - Orient the copies along the path depending on the 'Align Mode'. + Orient the copies along the path depending on the 'Align Mode'. Otherwise the copies will have the same orientation as the original Base object. @@ -7316,113 +7326,113 @@ Otherwise the copies will have the same orientation as the original Base object. - Ortho: places the copies in the direction of the global X, Y, Z axes. - Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. - Circular: places the copies in concentric circular layers around the base object. - 要建立的陣列類型. -- Ortho: 將複製放置於全域 X、Y、Z 軸的方向上. -- Polar: 將複製沿圓弧放置,直到指定角度,並具有由中心和軸定義的特定方向. -- Circular: 將複製放置於環繞基礎物體的同心圓層中. + The type of array to create. +- Ortho: places the copies in the direction of the global X, Y, Z axes. +- Polar: places the copies along a circular arc, up to a specified angle, and with certain orientation defined by a center and an axis. +- Circular: places the copies in concentric circular layers around the base object. Specifies if the copies should be fused together if they touch each other (slower) - 如果複製相互接觸,是否對它們進行合併(較慢) + Specifies if the copies should be fused together if they touch each other (slower) Number of copies in X direction - X方向的複製數 + Number of copies in X direction Number of copies in Y direction - Y方向的複製數 + Number of copies in Y direction Number of copies in Z direction - Z方向的複製數 + Number of copies in Z direction Distance and orientation of intervals in X direction - X方向區間的距離和方向 + Distance and orientation of intervals in X direction Distance and orientation of intervals in Y direction - Y方向區間的距離和方向 + Distance and orientation of intervals in Y direction Distance and orientation of intervals in Z direction - Z方向區間的距離和方向 + Distance and orientation of intervals in Z direction The axis direction around which the elements in a polar or a circular array will be created - 將建立極坐標或圓形陣列中元素所圍繞的軸方向 + The axis direction around which the elements in a polar or a circular array will be created Center point for polar and circular arrays. The 'Axis' passes through this point. - 極座標與圓形陣列的中心點. -「軸」將穿過這一點. + Center point for polar and circular arrays. +The 'Axis' passes through this point. The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. Its placement, position and rotation, will be used when creating polar and circular arrays. Leave this property empty to be able to set 'Axis' and 'Center' manually. - 覆蓋「軸」與「中心」值的軸物體,例如基準線. -它的位置、位置和旋轉將在建立極坐標和圓形陣列時使用. -將此屬性留空,以便能手動設定「軸」與「中心」. + The axis object that overrides the value of 'Axis' and 'Center', for example, a datum line. +Its placement, position and rotation, will be used when creating polar and circular arrays. +Leave this property empty to be able to set 'Axis' and 'Center' manually. Number of copies in the polar direction - 極方向的複製數 + Number of copies in the polar direction Distance and orientation of intervals in 'Axis' direction - 「軸」方向間隔的距離與方向 + Distance and orientation of intervals in 'Axis' direction Angle to cover with copies - 覆蓋複製的角度 + Angle to cover with copies Distance between circular layers - 圓形圖層之間的距離 + Distance between circular layers Distance between copies in the same circular layer - 同一圓形圖層中複製之間的距離 + Distance between copies in the same circular layer Number of circular layers. The 'Base' object counts as one layer. - 圓形圖層的數量。「基礎」物體計為一層. + Number of circular layers. The 'Base' object counts as one layer. A parameter that determines how many symmetry planes the circular array will have. - 確定圓形陣列具有多少個對稱平面的參數. + A parameter that determines how many symmetry planes the circular array will have. Total number of elements in the array. This property is read-only, as the number depends on the parameters of the array. - 陣列中的元素總數. -此屬性是唯讀的,因為數量取決於陣列的參數. + Total number of elements in the array. +This property is read-only, as the number depends on the parameters of the array. Base object that will be duplicated - 基本物體將被複製 + Base object that will be duplicated @@ -7440,27 +7450,27 @@ This property is read-only, as the number depends on the points in 'Point Object Additional placement, shift and rotation, that will be applied to each copy - Additional placement, shift and rotation, that will be applied to each copy + Additional placement, shift and rotation, that will be applied to each copy The base object this 2D view must represent - The base object this 2D view must represent + The base object this 2D view must represent The projection vector of this object - The projection vector of this object + The projection vector of this object The way the viewed object must be projected - The way the viewed object must be projected + The way the viewed object must be projected The indices of the faces to be projected in Individual Faces mode - The indices of the faces to be projected in Individual Faces mode + The indices of the faces to be projected in Individual Faces mode @@ -7470,36 +7480,36 @@ This property is read-only, as the number depends on the points in 'Point Object Fuse wall and structure objects of same type and material - Fuse wall and structure objects of same type and material + Fuse wall and structure objects of same type and material Tessellate Ellipses and B-splines into line segments - Tessellate Ellipses and B-splines into line segments + Tessellate Ellipses and B-splines into line segments For Cutlines and Cutfaces modes, this leaves the faces at the cut location - For Cutlines and Cutfaces modes, + For Cutlines and Cutfaces modes, this leaves the faces at the cut location Length of line segments if tessellating Ellipses or B-splines into line segments - Length of line segments if tessellating Ellipses or B-splines + Length of line segments if tessellating Ellipses or B-splines into line segments If this is True, this object will include only visible objects - If this is True, this object will include only visible objects + If this is True, this object will include only visible objects A list of exclusion points. Any edge touching any of those points will not be drawn. - A list of exclusion points. Any edge touching any of those points will not be drawn. + A list of exclusion points. Any edge touching any of those points will not be drawn. @@ -7509,27 +7519,27 @@ This property is read-only, as the number depends on the points in 'Point Object If this is True, only solid geometry is handled. This overrides the base object's Only Solids property - If this is True, only solid geometry is handled. This overrides the base object's Only Solids property + If this is True, only solid geometry is handled. This overrides the base object's Only Solids property If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property - If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property + If this is True, the contents are clipped to the borders of the section plane, if applicable. This overrides the base object's Clip property This object will be recomputed only if this is True. - This object will be recomputed only if this is True. + This object will be recomputed only if this is True. The points of the Bezier curve - The points of the Bezier curve + The points of the Bezier curve The degree of the Bezier function - The degree of the Bezier function + The degree of the Bezier function @@ -7539,96 +7549,96 @@ This property is read-only, as the number depends on the points in 'Point Object If the Bezier curve should be closed or not - If the Bezier curve should be closed or not + If the Bezier curve should be closed or not Create a face if this curve is closed - 如果為封閉曲線,則建立一個面 + Create a face if this curve is closed The length of this object - 此物體的長度 + The length of this object The placement of this object - 這個物件的位置 + 此物件所在位置 X Location - X 位置 + X Location Y Location - Y 位置 + Y Location Z Location - Z 位置 + Z Location Start angle of the elliptical arc - Start angle of the elliptical arc + Start angle of the elliptical arc End angle of the elliptical arc (for a full circle, give it same value as First Angle) - End angle of the elliptical arc + End angle of the elliptical arc (for a full circle, give it same value as First Angle) Minor radius of the ellipse - Minor radius of the ellipse + Minor radius of the ellipse Major radius of the ellipse - Major radius of the ellipse + Major radius of the ellipse Area of this object - 此物體的面積 + Area of this object The start point of this line. - 此線段的起點. + The start point of this line. The end point of this line. - 此線段的終點. + The end point of this line. The length of this line. - 此線段的長度. + The length of this line. Radius to use to fillet the corner. - 倒角的半徑. + Radius to use to fillet the corner. The normal direction of the text of the dimension - 標示尺寸文字的法線方向 + The normal direction of the text of the dimension The object measured by this dimension object - 尺寸物體標示測量的物體 + The object measured by this dimension object @@ -7639,12 +7649,13 @@ There are various possibilities: - An object, and one of its edges. - An object, and two of its vertices. - An arc object, and its edge. - 此物體尺寸標示正在測量的物體及其特定子元素. + The object, and specific subelements of it, +that this dimension object is measuring. -有各種可能性: -- 物體及其邊緣之一. -- 物體及其兩個頂點. -- 弧形物體及其邊緣. +There are various possibilities: +- An object, and one of its edges. +- An object, and two of its vertices. +- An arc object, and its edge. @@ -7656,11 +7667,14 @@ is to the measured object. that displays the measured radius or diameter. - For angular dimensions, this controls the radius of the dimension arc that displays the measured angle. - 一個在尺寸線上或在尺寸線的延長線上的點 + A point through which the dimension line, or an extrapolation of it, will pass. -- 對於線性尺寸標示,這個屬性控制尺寸線與被測物體之間的距離. -- 對於徑向尺寸標示,它控制顯示測量半徑或直徑的尺寸線的方向. -- 對於角度尺寸標示,它控制顯示測量角度的尺寸弧度的半徑. +- For linear dimensions, this property controls how close the dimension line +is to the measured object. +- For radial dimensions, this controls the direction of the dimension line +that displays the measured radius or diameter. +- For angular dimensions, this controls the radius of the dimension arc +that displays the measured angle. @@ -7668,10 +7682,10 @@ that displays the measured angle. If it is a radius dimension it will be the center of the arc. If it is a diameter dimension it will be a point that lies on the arc. - 尺寸線的起點. + Starting point of the dimension line. -如果為半徑尺寸標示,則是圓弧的中心點. -如果為直徑尺寸標示,則是圓弧上的一點. +If it is a radius dimension it will be the center of the arc. +If it is a diameter dimension it will be a point that lies on the arc. @@ -7679,17 +7693,17 @@ If it is a diameter dimension it will be a point that lies on the arc. If it is a radius or diameter dimension it will be a point that lies on the arc. - 尺寸線的終點. + Ending point of the dimension line. -如果是半徑或直徑標示 -它將為圓弧上的一個點. +If it is a radius or diameter dimension +it will be a point that lies on the arc. The direction of the dimension line. If this remains '(0,0,0)', the direction will be calculated automatically. - 尺寸線的方向. -如果仍為「(0,0,0)」,將自動計算方向. + The direction of the dimension line. +If this remains '(0,0,0)', the direction will be calculated automatically. @@ -7700,31 +7714,34 @@ from the 'Start' and 'End' properties. If the 'Linked Geometry' is an arc or circle, this 'Distance' is the radius or diameter, depending on the 'Diameter' property. - 測量值. + The value of the measurement. -此屬性是唯讀的,因為該值是由「起點」與「終點」計算出來的. +This property is read-only because the value is calculated +from the 'Start' and 'End' properties. -如果「連結幾何」是圓弧或圓,則此「距離」為半徑或直徑,將取決於「直徑」屬性. +If the 'Linked Geometry' is an arc or circle, this 'Distance' +is the radius or diameter, depending on the 'Diameter' property. When measuring circular arcs, it determines whether to display the radius or the diameter value - 測量圓弧時,決定是否顯示半徑或直徑值 + When measuring circular arcs, it determines whether to display +the radius or the diameter value Starting angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - 尺寸線(圓弧)的起始角度. -圓弧是逆時針方向繪製的. + Starting angle of the dimension line (circular arc). +The arc is drawn counter-clockwise. Ending angle of the dimension line (circular arc). The arc is drawn counter-clockwise. - 尺寸線(圓弧)的結束角度. -圓弧是逆時針方向繪製的. + Ending angle of the dimension line (circular arc). +The arc is drawn counter-clockwise. @@ -7732,10 +7749,10 @@ The arc is drawn counter-clockwise. This is normally the point where two line segments, or their extensions intersect, resulting in the measured 'Angle' between them. - 圓弧為尺寸線的中心點. + The center point of the dimension line, which is a circular arc. -這通常是兩條線段或其延伸的點 -相交,從而在它們之間產生測量的'角度'. +This is normally the point where two line segments, or their extensions +intersect, resulting in the measured 'Angle' between them. @@ -7743,139 +7760,140 @@ intersect, resulting in the measured 'Angle' between them. This property is read-only because the value is calculated from the 'First Angle' and 'Last Angle' properties. - 測量值. + The value of the measurement. -此屬性是唯讀的,因為該值是由「第一個角度」和「最後一個角度」屬性計算而來. +This property is read-only because the value is calculated from +the 'First Angle' and 'Last Angle' properties. Length of the rectangle - 矩形的長度 + Length of the rectangle Height of the rectangle - 矩形的高度 + Height of the rectangle Horizontal subdivisions of this rectangle - 此矩形的水平細分 + Horizontal subdivisions of this rectangle Vertical subdivisions of this rectangle - 此矩形的垂直細分 + Vertical subdivisions of this rectangle Linked faces - 已連結平面 + Linked faces Specifies if splitter lines must be removed - Specifies if splitter lines must be removed + Specifies if splitter lines must be removed An optional extrusion value to be applied to all faces - An optional extrusion value to be applied to all faces + An optional extrusion value to be applied to all faces An optional offset value to be applied to all faces - An optional offset value to be applied to all faces + An optional offset value to be applied to all faces This specifies if the shapes sew - This specifies if the shapes sew + This specifies if the shapes sew The area of the faces of this Facebinder - The area of the faces of this Facebinder + The area of the faces of this Facebinder The components of this block - 此區塊的元件 + The components of this block The vertices of the wire - The vertices of the wire + The vertices of the wire If the wire is closed or not - If the wire is closed or not + If the wire is closed or not The base object is the wire, it's formed from 2 objects - The base object is the wire, it's formed from 2 objects + The base object is the wire, it's formed from 2 objects The tool object is the wire, it's formed from 2 objects - The tool object is the wire, it's formed from 2 objects + The tool object is the wire, it's formed from 2 objects The start point of this line - 此線段之起點 + The start point of this line The end point of this line - 此線段之終點 + The end point of this line The length of this line - 此線段的長度 + The length of this line Create a face if this object is closed - Create a face if this object is closed + Create a face if this object is closed The number of subdivisions of each edge - The number of subdivisions of each edge + The number of subdivisions of each edge The points of the B-spline - The points of the B-spline + The points of the B-spline If the B-spline is closed or not - If the B-spline is closed or not + If the B-spline is closed or not Create a face if this spline is closed - 如果為封閉樣條,則建立一個面 + Create a face if this spline is closed Parameterization factor - Parameterization factor + Parameterization factor Force sync pattern placements even when array elements are expanded - Force sync pattern placements even when array elements are expanded + Force sync pattern placements even when array elements are expanded Show the individual array elements - 顯示單獨的陣列元素 + Show the individual array elements @@ -7891,7 +7909,7 @@ the 'First Angle' and 'Last Angle' properties. Vertical alignment - 垂直對齊 + Vertical alignment @@ -7912,7 +7930,7 @@ the 'First Angle' and 'Last Angle' properties. Display a leader line or not - Display a leader line or not + Display a leader line or not @@ -7927,17 +7945,17 @@ the 'First Angle' and 'Last Angle' properties. Defines an SVG pattern. - Defines an SVG pattern. + Defines an SVG pattern. Defines the size of the SVG pattern. - Defines the size of the SVG pattern. + Defines the size of the SVG pattern. If it is true, the objects contained within this layer will adopt the line color of the layer - If it is true, the objects contained within this layer will adopt the line color of the layer + If it is true, the objects contained within this layer will adopt the line color of the layer @@ -7952,32 +7970,32 @@ the 'First Angle' and 'Last Angle' properties. The line color of the objects contained within this layer - The line color of the objects contained within this layer + The line color of the objects contained within this layer The shape color of the objects contained within this layer - The shape color of the objects contained within this layer + The shape color of the objects contained within this layer The line width of the objects contained within this layer - The line width of the objects contained within this layer + The line width of the objects contained within this layer The draw style of the objects contained within this layer - The draw style of the objects contained within this layer + The draw style of the objects contained within this layer The transparency of the objects contained within this layer - The transparency of the objects contained within this layer + The transparency of the objects contained within this layer The line color of the objects contained within this layer, when used on a TechDraw page - The line color of the objects contained within this layer, when used on a TechDraw page + The line color of the objects contained within this layer, when used on a TechDraw page @@ -7992,43 +8010,43 @@ the 'First Angle' and 'Last Angle' properties. Spacing between text and dimension line - 文字與尺寸線間的間距 + Spacing between text and dimension line Rotate the dimension text 180 degrees - 將尺寸文字旋轉180度 + Rotate the dimension text 180 degrees Text Position. Leave '(0,0,0)' for automatic position - Text Position. + Text Position. Leave '(0,0,0)' for automatic position Text override. Write '$dim' so that it is replaced by the dimension length. - 文字覆蓋. -輸入「$dim」將其取代為尺寸長度. + Text override. +Write '$dim' so that it is replaced by the dimension length. The number of decimals to show - The number of decimals to show + The number of decimals to show Show the unit suffix - 在字尾顯示單位 + Show the unit suffix A unit to express the measurement. Leave blank for system default. Use 'arch' to force US arch notation - A unit to express the measurement. + A unit to express the measurement. Leave blank for system default. Use 'arch' to force US arch notation @@ -8047,31 +8065,31 @@ Use 'arch' to force US arch notation Rotate the dimension arrows 180 degrees - 將尺寸箭頭旋轉180度 + Rotate the dimension arrows 180 degrees The distance the dimension line is extended past the extension lines - The distance the dimension line is extended + The distance the dimension line is extended past the extension lines Length of the extension lines - 延伸線長度 + Length of the extension lines Length of the extension line beyond the dimension line - Length of the extension line + Length of the extension line beyond the dimension line Shows the dimension line and arrows - 顯示尺寸線與箭頭 + Shows the dimension line and arrows diff --git a/src/Mod/Draft/TestDraft.py b/src/Mod/Draft/TestDraft.py index 6845cfb726..82bf1915de 100644 --- a/src/Mod/Draft/TestDraft.py +++ b/src/Mod/Draft/TestDraft.py @@ -110,6 +110,7 @@ from drafttests.test_dxf import DraftDXF as DraftTest06 from drafttests.test_dwg import DraftDWG as DraftTest07 # from drafttests.test_oca import DraftOCA as DraftTest08 # from drafttests.test_airfoildat import DraftAirfoilDAT as DraftTest09 +from drafttests.test_array import DraftArray as DraftTest10 # Use the modules so that code checkers don't complain (flake8) True if DraftTest01 else False @@ -121,3 +122,4 @@ True if DraftTest06 else False True if DraftTest07 else False # True if DraftTest08 else False # True if DraftTest09 else False +True if DraftTest10 else False diff --git a/src/Mod/Draft/WorkingPlane.py b/src/Mod/Draft/WorkingPlane.py index 397a5f8e40..da0698d7c1 100644 --- a/src/Mod/Draft/WorkingPlane.py +++ b/src/Mod/Draft/WorkingPlane.py @@ -795,11 +795,11 @@ class Plane: coin_up = coin.SbVec3f(0, 1, 0) upvec = Vector(rot.multVec(coin_up).getValue()) vdir = view.getViewDirection() - # The angle is between 0 and 180 degrees. - angle = vdir.getAngle(self.axis) - # don't change the plane if the axis is already - # antiparallel to the current view - if abs(math.pi - angle) > Part.Precision.angular(): + # don't change the plane if the axis and v vector + # are already correct: + tol = Part.Precision.angular() + if abs(math.pi - vdir.getAngle(self.axis)) > tol \ + or abs(math.pi - upvec.getAngle(self.v)) > tol: self.alignToPointAndAxis(Vector(0, 0, 0), vdir.negative(), 0, upvec) except Exception: diff --git a/src/Mod/Draft/draftfunctions/downgrade.py b/src/Mod/Draft/draftfunctions/downgrade.py index 31d85269f4..5418932ddb 100644 --- a/src/Mod/Draft/draftfunctions/downgrade.py +++ b/src/Mod/Draft/draftfunctions/downgrade.py @@ -72,7 +72,7 @@ def downgrade(objects, delete=False, force=None): See Also -------- - ugrade + upgrade """ _name = "downgrade" utils.print_header(_name, "Downgrade objects") @@ -88,15 +88,12 @@ def downgrade(objects, delete=False, force=None): def explode(obj): """Explode a Draft block.""" pl = obj.Placement - newobj = [] for o in obj.Components: - o.Placement = o.Placement.multiply(pl) + o.Placement = pl.multiply(o.Placement) if App.GuiUp: o.ViewObject.Visibility = True - if newobj: - delete_list(obj) - return newobj - return None + delete_list.append(obj) + return True def cut2(objects): """Cut first object from the last one.""" @@ -196,6 +193,24 @@ def downgrade(objects, delete=False, force=None): result = True return result + def delete_object(obj): + if obj.FullName == "?": # Already deleted. + return + # special case: obj is a body or belongs to a body: + if obj.TypeId == "PartDesign::Body": + obj.removeObjectsFromDocument() + if hasattr(obj, "_Body") and obj._Body is not None: + obj = obj._Body + obj.removeObjectsFromDocument() + else: + for parent in obj.InList: + if parent.TypeId == "PartDesign::Body" \ + and obj in parent.Group: + obj = parent + obj.removeObjectsFromDocument() + break + doc.removeObject(obj.Name) + # analyzing objects faces = [] edges = [] @@ -238,16 +253,19 @@ def downgrade(objects, delete=False, force=None): _msg(translate("draft","Found 1 block: exploding it")) # we have one multi-solids compound object: extract its solids - elif (len(objects) == 1 and hasattr(objects[0], 'Shape') - and len(solids) > 1): + elif len(objects) == 1 \ + and hasattr(objects[0], "Shape") \ + and len(solids) > 1: result = splitCompounds(objects) # print(result) if result: _msg(translate("draft","Found 1 multi-solids compound: exploding it")) # special case, we have one parametric object: we "de-parametrize" it - elif (len(objects) == 1 and hasattr(objects[0], 'Shape') - and hasattr(objects[0], 'Base')): + elif len(objects) == 1 \ + and hasattr(objects[0], "Shape") \ + and hasattr(objects[0], "Base") \ + and not objects[0].isDerivedFrom("PartDesign::Feature"): result = utils.shapify(objects[0]) if result: _msg(translate("draft","Found 1 parametric object: breaking its dependencies")) @@ -271,6 +289,7 @@ def downgrade(objects, delete=False, force=None): result = subtr(objects) if result: _msg(translate("draft","Found several objects: subtracting them from the first one")) + # only one face: we extract its wires elif len(faces) > 0: result = getWire(objects[0]) @@ -288,12 +307,9 @@ def downgrade(objects, delete=False, force=None): _msg(translate("draft","No more downgrade possible")) if delete: - names = [] for o in delete_list: - names.append(o.Name) + delete_object(o) delete_list = [] - for n in names: - doc.removeObject(n) gui_utils.select(add_list) return add_list, delete_list diff --git a/src/Mod/Draft/draftguitools/gui_arcs.py b/src/Mod/Draft/draftguitools/gui_arcs.py index 1fe23452e1..eb3d5f4e6c 100644 --- a/src/Mod/Draft/draftguitools/gui_arcs.py +++ b/src/Mod/Draft/draftguitools/gui_arcs.py @@ -392,7 +392,7 @@ class Arc(gui_base_original.Creator): except Exception: _err("Draft: error delaying commit") - # Finalize full circle or cirular arc + # Finalize full circle or circular arc self.finish(cont=None) def numericInput(self, numx, numy, numz): diff --git a/src/Mod/Draft/drafttests/test_array.py b/src/Mod/Draft/drafttests/test_array.py new file mode 100644 index 0000000000..27b548842e --- /dev/null +++ b/src/Mod/Draft/drafttests/test_array.py @@ -0,0 +1,91 @@ +# *************************************************************************** +# * Copyright (c) 2023 Werner Mayer * +# * * +# * This file is part of FreeCAD. * +# * * +# * FreeCAD is free software: you can redistribute it and/or modify it * +# * under the terms of the GNU Lesser General Public License as * +# * published by the Free Software Foundation, either version 2.1 of the * +# * License, or (at your option) any later version. * +# * * +# * FreeCAD is distributed in the hope that it will be useful, but * +# * WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +# * Lesser General Public License for more details. * +# * * +# * You should have received a copy of the GNU Lesser General Public * +# * License along with FreeCAD. If not, see * +# * . * +# * * +# *************************************************************************** +"""Unit tests for the Draft Workbench, array tests.""" +## @package test_array +# \ingroup drafttests +# \brief Unit tests for the Draft Workbench, array tests. + +## \addtogroup drafttests +# @{ +import unittest +import math + +import FreeCAD as App +import Draft + +from FreeCAD import Vector +from draftutils.messages import _msg + + +class DraftArray(unittest.TestCase): + """Test Draft array functions.""" + + def setUp(self): + """Set up a new document to hold the tests. + + This is executed before every test, so we create a document + to hold the objects. + """ + doc_name = self.__class__.__name__ + if App.ActiveDocument: + if App.ActiveDocument.Name != doc_name: + App.newDocument(doc_name) + else: + App.newDocument(doc_name) + App.setActiveDocument(doc_name) + self.doc = App.ActiveDocument + _msg(" Temporary document '{}'".format(self.doc.Name)) + + def test_link_array(self): + """Create a link array.""" + box = self.doc.addObject("Part::Box","Box") + box.Label = "Box" + self.doc.recompute() + + array = Draft.make_ortho_array(box, v_x=App.Vector(100.0, 0.0, 0.0), + v_y=App.Vector(0.0, 100.0, 0.0), + v_z=App.Vector(0.0, 0.0, 100.0), + n_x=12, n_y=1, n_z=1, use_link=True) + + Draft.autogroup(array) + array.ExpandArray = True + array.Fuse = False + self.doc.recompute(None,True,True) + + array.NumberX = 6 + self.doc.recompute(None,True,True) + self.assertEqual(array.Count, array.NumberX) + + array.NumberX = 24 + self.doc.recompute(None,True,True) + self.assertEqual(array.Count, array.NumberX) + + self.doc.recompute(None,True,True) + self.assertEqual(array.Count, array.NumberX) + + def tearDown(self): + """Finish the test. + + This is executed after each test, so we close the document. + """ + App.closeDocument(self.doc.Name) + +## @} diff --git a/src/Mod/Draft/draftutils/gui_utils.py b/src/Mod/Draft/draftutils/gui_utils.py index 94a76be2ce..63359b8e15 100644 --- a/src/Mod/Draft/draftutils/gui_utils.py +++ b/src/Mod/Draft/draftutils/gui_utils.py @@ -346,8 +346,6 @@ removeHidden = remove_hidden def get_diffuse_color(objs): """Get a (cumulative) diffuse color from one or more objects. - Part::Feature objects are processed. Objects with Groups are recursively - checked for those objects. If all tuples in the result are identical a list with a single tuple is returned. In theory all faces of an object can be set to the same diffuse @@ -364,7 +362,49 @@ def get_diffuse_color(objs): The list will be empty if no valid object is found. """ def _get_color(obj): - if obj.isDerivedFrom("Part::Feature"): + if hasattr(obj, "ColoredElements"): + if hasattr(obj, "Count") or hasattr(obj, "ElementCount"): + # Link and Link array. + if hasattr(obj, "Count"): + count = obj.Count + base = obj.Base + else: + count = obj.ElementCount if obj.ElementCount > 0 else 1 + base = obj.LinkedObject + if base is None: + return [] + cols = _get_color(base) * count + if obj.ColoredElements is None: + return cols + face_num = len(base.Shape.Faces) + for elm, overide in zip(obj.ColoredElements[1], obj.ViewObject.OverrideColorList): + if "Face" in elm: # Examples: "Face3" and "1.Face6". Int before "." is zero-based, other int is 1-based. + if "." in elm: + elm0, elm1 = elm.split(".") + i = (int(elm0) * face_num) + int(elm1[4:]) - 1 + cols[i] = overide + else: + i = int(elm[4:]) - 1 + for j in range(count): + cols[(j * face_num) + i] = overide + return cols + elif hasattr(obj, "ElementList"): + # LinkGroup + cols = [] + for sub in obj.ElementList: + sub_cols = _get_color(sub) + if obj.ColoredElements is None: + cols += sub_cols + else: + for elm, overide in zip(obj.ColoredElements[1], obj.ViewObject.OverrideColorList): + if sub.Name + ".Face" in elm: + i = int(elm[(len(sub.Name) + 5):]) - 1 + sub_cols[i] = overide + cols += sub_cols + return cols + else: + return [] + elif hasattr(obj.ViewObject, "DiffuseColor"): if len(obj.ViewObject.DiffuseColor) == len(obj.Shape.Faces): return obj.ViewObject.DiffuseColor else: @@ -382,7 +422,8 @@ def get_diffuse_color(objs): if not isinstance(objs, list): # Quick check to avoid processing a single object: obj = objs - if obj.isDerivedFrom("Part::Feature") \ + if not hasattr(obj, "ColoredElements") \ + and hasattr(obj.ViewObject, "DiffuseColor") \ and (len(obj.ViewObject.DiffuseColor) == 1 \ or len(obj.ViewObject.DiffuseColor) == len(obj.Shape.Faces)): return obj.ViewObject.DiffuseColor diff --git a/src/Mod/Draft/draftutils/todo.py b/src/Mod/Draft/draftutils/todo.py index d0a9efd81d..3af6ad78bf 100644 --- a/src/Mod/Draft/draftutils/todo.py +++ b/src/Mod/Draft/draftutils/todo.py @@ -35,6 +35,7 @@ to execute the instructions stored in internal lists. # \brief Provides the ToDo static class to run commands with a time delay. import traceback +import sys import PySide.QtCore as QtCore import FreeCAD as App diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index 4a6a79c6b6..cf053fc4c7 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -48,7 +48,7 @@ texts, colors,layers (from groups) # scaling factor between autocad font sizes and coin font sizes # the minimum version of the dxfLibrary needed to run TEXTSCALING = 1.35 -CURRENTDXFLIB = 1.40 +CURRENTDXFLIB = 1.41 import sys import os diff --git a/src/Mod/Drawing/Gui/AppDrawingGuiPy.cpp b/src/Mod/Drawing/Gui/AppDrawingGuiPy.cpp index 6eead31417..07c25df42d 100644 --- a/src/Mod/Drawing/Gui/AppDrawingGuiPy.cpp +++ b/src/Mod/Drawing/Gui/AppDrawingGuiPy.cpp @@ -82,7 +82,7 @@ private: PyMem_Free(Name); Base::FileInfo file(EncodedName.c_str()); - if (file.hasExtension("svg") || file.hasExtension("svgz")) { + if (file.hasExtension({"svg", "svgz"})) { QString fileName = QString::fromUtf8(EncodedName.c_str()); // Displaying the image in a view DrawingView* view = new DrawingView(nullptr, Gui::getMainWindow()); @@ -110,7 +110,7 @@ private: PyMem_Free(Name); Base::FileInfo file(EncodedName.c_str()); - if (file.hasExtension("svg") || file.hasExtension("svgz")) { + if (file.hasExtension({"svg", "svgz"}) { QString fileName = QString::fromUtf8(EncodedName.c_str()); // Displaying the image in a view DrawingView* view = new DrawingView(nullptr, Gui::getMainWindow()); diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh-TW.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh-TW.ts index 3b2639b35e..5304318422 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh-TW.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh-TW.ts @@ -612,7 +612,7 @@ Do you want to continue? No active document - 未選擇文件 + 無可用文件 diff --git a/src/Mod/Fem/App/FemConstraintFluidBoundary.cpp b/src/Mod/Fem/App/FemConstraintFluidBoundary.cpp index feadb44f90..20f6f57f76 100644 --- a/src/Mod/Fem/App/FemConstraintFluidBoundary.cpp +++ b/src/Mod/Fem/App/FemConstraintFluidBoundary.cpp @@ -61,7 +61,7 @@ static const char* ThermalBoundaryHelpTexts[] = {"fixed Temperature [K]", "no he ConstraintFluidBoundary::ConstraintFluidBoundary() { - /// momemtum boundary: pressure and velocity + /// momentum boundary: pressure and velocity ADD_PROPERTY_TYPE(BoundaryType,(1),"FluidBoundary",(App::PropertyType)(App::Prop_None), "Basic boundary type like inlet, wall, outlet,etc"); BoundaryType.setEnums(BoundaryTypes); diff --git a/src/Mod/Fem/App/FemConstraintInitialTemperature.h b/src/Mod/Fem/App/FemConstraintInitialTemperature.h index 2bfcc7bb83..0f27c06d81 100644 --- a/src/Mod/Fem/App/FemConstraintInitialTemperature.h +++ b/src/Mod/Fem/App/FemConstraintInitialTemperature.h @@ -56,7 +56,7 @@ public: protected: void handleChangedPropertyType(Base::XMLReader& reader, const char* TypeName, - App::Property* prop); + App::Property* prop) override; void onChanged(const App::Property* prop) override; }; diff --git a/src/Mod/Fem/App/FemConstraintTemperature.h b/src/Mod/Fem/App/FemConstraintTemperature.h index c2e088f8db..9da66dc089 100644 --- a/src/Mod/Fem/App/FemConstraintTemperature.h +++ b/src/Mod/Fem/App/FemConstraintTemperature.h @@ -58,7 +58,7 @@ public: protected: void handleChangedPropertyType(Base::XMLReader& reader, const char* TypeName, - App::Property* prop); + App::Property* prop) override; void onChanged(const App::Property* prop) override; }; diff --git a/src/Mod/Fem/App/FemConstraintTransform.h b/src/Mod/Fem/App/FemConstraintTransform.h index e0c2705b3c..417992501c 100644 --- a/src/Mod/Fem/App/FemConstraintTransform.h +++ b/src/Mod/Fem/App/FemConstraintTransform.h @@ -59,7 +59,7 @@ public: protected: void handleChangedPropertyType(Base::XMLReader& reader, const char* TypeName, - App::Property* prop); + App::Property* prop) override; void onChanged(const App::Property* prop) override; }; diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp index bab2974362..e055f343fa 100644 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -1911,7 +1911,7 @@ void FemMesh::read(const char *FileName) readNastran(File.filePath()); } #ifdef FC_USE_VTK - else if (File.hasExtension("vtk") || File.hasExtension("vtu") || File.hasExtension("pvtu")) { + else if (File.hasExtension({"vtk", "vtu", "pvtu"})) { // read *.vtk legacy format or *.vtu XML unstructure Mesh FemVTKTools::readVTKMesh(File.filePath().c_str(), this); } @@ -2406,7 +2406,7 @@ void FemMesh::write(const char *FileName) const writeABAQUS(File.filePath(), elemParam, groupParam); } #ifdef FC_USE_VTK - else if (File.hasExtension("vtk") || File.hasExtension("vtu") ) { + else if (File.hasExtension({"vtk", "vtu"})) { Base::Console().Log("FEM mesh object will be exported to either vtk or vtu format.\n"); // write unstructure mesh to VTK format *.vtk and *.vtu FemVTKTools::writeVTKMesh(File.filePath().c_str(), this); diff --git a/src/Mod/Fem/App/FemPostPipeline.cpp b/src/Mod/Fem/App/FemPostPipeline.cpp index a6bfaed642..0921df2e2d 100644 --- a/src/Mod/Fem/App/FemPostPipeline.cpp +++ b/src/Mod/Fem/App/FemPostPipeline.cpp @@ -121,17 +121,8 @@ DocumentObjectExecReturn* FemPostPipeline::execute() { bool FemPostPipeline::canRead(Base::FileInfo File) { - if (File.hasExtension("vtk") || - // from FemResult only unstructural mesh is supported in femvtktoools.cpp - File.hasExtension("vtp") || - File.hasExtension("vts") || - File.hasExtension("vtr") || - File.hasExtension("vti") || - File.hasExtension("vtu") || - File.hasExtension("pvtu")) - return true; - - return false; + // from FemResult only unstructural mesh is supported in femvtktoools.cpp + return File.hasExtension({"vtk", "vtp", "vts", "vtr", "vti", "vtu", "pvtu"}); } void FemPostPipeline::read(Base::FileInfo File) { diff --git a/src/Mod/Fem/App/FemVTKTools.cpp b/src/Mod/Fem/App/FemVTKTools.cpp index 95d90f2239..4f3a04d1d2 100644 --- a/src/Mod/Fem/App/FemVTKTools.cpp +++ b/src/Mod/Fem/App/FemVTKTools.cpp @@ -613,7 +613,7 @@ App::DocumentObject* createObjectByType(const Base::Type type) return newobj; } else { - return pcDoc->addObject(type.getName());// create in the acitive document + return pcDoc->addObject(type.getName());// create in the active document } } diff --git a/src/Mod/Fem/Gui/AbaqusHighlighter.h b/src/Mod/Fem/Gui/AbaqusHighlighter.h index 4b6d5a9e1c..38311646f5 100644 --- a/src/Mod/Fem/Gui/AbaqusHighlighter.h +++ b/src/Mod/Fem/Gui/AbaqusHighlighter.h @@ -36,10 +36,10 @@ class AbaqusHighlighter : public Gui::SyntaxHighlighter { public: explicit AbaqusHighlighter(QObject* parent); - virtual ~AbaqusHighlighter(); + ~AbaqusHighlighter() override; protected: - void highlightBlock(const QString &text); + void highlightBlock(const QString &text) override; }; } // namespace FemGui diff --git a/src/Mod/Fem/Gui/Command.cpp b/src/Mod/Fem/Gui/Command.cpp index 34e42e330b..75ed4dac15 100644 --- a/src/Mod/Fem/Gui/Command.cpp +++ b/src/Mod/Fem/Gui/Command.cpp @@ -1699,7 +1699,7 @@ CmdFemPostClipFilter::CmdFemPostClipFilter() sGroup = QT_TR_NOOP("Fem"); sMenuText = QT_TR_NOOP("Region clip filter"); sToolTipText = - QT_TR_NOOP("Define/create a clip filter which uses functions to define the cliped region"); + QT_TR_NOOP("Define/create a clip filter which uses functions to define the clipped region"); sWhatsThis = "FEM_PostFilterClipRegion"; sStatusTip = sToolTipText; sPixmap = "FEM_PostFilterClipRegion"; diff --git a/src/Mod/Fem/Gui/DlgSettingsFemGeneralImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemGeneralImp.cpp index adf05bc409..4c647f772b 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemGeneralImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemGeneralImp.cpp @@ -44,16 +44,16 @@ DlgSettingsFemGeneralImp::DlgSettingsFemGeneralImp(QWidget* parent) std::vector Solvers = {"None"}; if (!Fem::Tools::checkIfBinaryExists("CCX", "ccx", "ccx").empty()) - Solvers.push_back("CalculiX"); + Solvers.emplace_back("CalculiX"); if (!Fem::Tools::checkIfBinaryExists("Elmer", "elmer", "ElmerSolver").empty()) - Solvers.push_back("Elmer"); + Solvers.emplace_back("Elmer"); // also check the multi-CPU Elmer build else if (!Fem::Tools::checkIfBinaryExists("Elmer", "elmer", "ElmerSolver_mpi").empty()) - Solvers.push_back("Elmer"); + Solvers.emplace_back("Elmer"); if (!Fem::Tools::checkIfBinaryExists("Mystran", "mystran", "mystran").empty()) - Solvers.push_back("Mystran"); + Solvers.emplace_back("Mystran"); if (!Fem::Tools::checkIfBinaryExists("Z88", "z88", "z88r").empty()) - Solvers.push_back("Z88"); + Solvers.emplace_back("Z88"); QStringList solversList; for (auto item : Solvers) { diff --git a/src/Mod/Fem/Gui/PreCompiled.h b/src/Mod/Fem/Gui/PreCompiled.h index 1b68eb50dc..d8132644f4 100644 --- a/src/Mod/Fem/Gui/PreCompiled.h +++ b/src/Mod/Fem/Gui/PreCompiled.h @@ -36,7 +36,6 @@ #include #include #include -#include // STL #include diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem.ts b/src/Mod/Fem/Gui/Resources/translations/Fem.ts index 430106aa8a..24f5b04d91 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem.ts @@ -5303,117 +5303,119 @@ used for the Elmer solver - + Fluid Constraints - + &Fluid Constraints - + + Electromagnetic Constraints - + + &Electromagnetic Constraints - + Geometrical Constraints - + &Geometrical Constraints - + Mechanical Constraints - + &Mechanical Constraints - + Thermal Constraints - + &Thermal Constraints - + Constraints without solver - + &Constraints without solver - + Overwrite Constants - + &Overwrite Constants - + Mesh - + M&esh - + Solve - + &Solve - + Results - + &Results - + Filter functions - + &Filter functions - + Utilities diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_be.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_be.ts index 15ccff99ba..c50c2cce57 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_be.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_be.ts @@ -5356,117 +5356,119 @@ used for the Elmer solver &Электрастатычныя абмежаванні - + Fluid Constraints Гідрастатычныя абмежаванні - + &Fluid Constraints &Гідрастатычныя абмежаванні - + + Electromagnetic Constraints Электрамагнітныя абмежаванні - + + &Electromagnetic Constraints &Электрамагнітныя абмежаванні - + Geometrical Constraints Геаметрычныя абмежаванні - + &Geometrical Constraints Геа&метрычныя абмежаванні - + Mechanical Constraints Механічныя абмежаванні - + &Mechanical Constraints &Механічныя абмежаванні - + Thermal Constraints Цеплавыя абмежаванні - + &Thermal Constraints &Цеплавыя абмежаванні - + Constraints without solver Абмежаванні без сродку рашэння - + &Constraints without solver &Абмежаванні без сродку рашэння - + Overwrite Constants Перазапісаць канстанты - + &Overwrite Constants &Перазапісаць канстанты - + Mesh Mesh - + M&esh Паліганальная &сетка - + Solve Вырашыць - + &Solve Вы&рашыць - + Results Вынікі - + &Results &Вынікі - + Filter functions Функцыі фільтра - + &Filter functions Функцыі &фільтра - + Utilities Службовыя diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ca.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ca.ts index a9ec7cc8d3..c23f5c728d 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ca.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ca.ts @@ -1296,7 +1296,7 @@ constraint or material is applied. Results - Results + Resultats @@ -5381,117 +5381,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - - Electromagnetic Constraints - Electromagnetic Constraints - - - - &Electromagnetic Constraints - &Electromagnetic Constraints - - + + Electromagnetic Constraints + Restriccions electromagnètiques + + + + + &Electromagnetic Constraints + &Restriccions electromagnètiques + + + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Resol - + &Solve &Solve - + Results - Results + Resultats - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Utilitats diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_cs.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_cs.ts index f766514f72..c89c019131 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_cs.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_cs.ts @@ -5382,117 +5382,119 @@ používá se pro řešič Elmer &Elektrostatická omezení - + Fluid Constraints Omezení tekutin - + &Fluid Constraints &Omezení tekutiny - - Electromagnetic Constraints - Electromagnetic Constraints - - - - &Electromagnetic Constraints - &Electromagnetic Constraints - - + + Electromagnetic Constraints + Elektromagnetická omezení + + + + + &Electromagnetic Constraints + &Elektromagnetická omezení + + + Geometrical Constraints Geometrická omezení - + &Geometrical Constraints &Geometrická omezení - + Mechanical Constraints Mechanická omezení - + &Mechanical Constraints &Mechanická omezení - + Thermal Constraints Tepelná omezení - + &Thermal Constraints &Tepelná omezení - + Constraints without solver Omezení bez řešitele - + &Constraints without solver &Omezení bez řešiče - + Overwrite Constants Přepsat konstanty - + &Overwrite Constants &Přepsat konstanty - + Mesh Mesh - + M&esh Pletivo - + Solve Řešit - + &Solve &Řešit - + Results Results - + &Results &Výsledek - + Filter functions Funkce filtru - + &Filter functions &Filtrovat funkce - + Utilities Nástroje @@ -5558,7 +5560,7 @@ používá se pro řešič Elmer Constant vacuum permittivity - Constant vacuum permittivity + Přípustnost konstantního vakuu diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts index 81c98970fd..ad72682aee 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts @@ -1066,8 +1066,8 @@ Specify another file please. The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible. - The mesh volume regions processed by each CPU core -will be merged to make the volume boundaries invisible. + Die von jedem CPU-Kern +verarbeiteten Mesh-Volume-Bereiche werden zusammengeführt, um die Volume-Grenzen unsichtbar zu machen. @@ -1645,7 +1645,7 @@ Wenn die Fehlermeldung "MAXGS", bei der Verwendung des Cholesky Solvers, angezei Max places in coincidence vector - Max places in coincidence vector + Max. Plätze im Zufallsvektor @@ -1656,13 +1656,13 @@ Wenn die Fehlermeldung "MAXGS", bei der Verwendung des Cholesky Solvers, angezei You might need to increase this when using an iterative solver and you get the error message that "MAXKOI" needs to be increased. - Maximal places in coincidence vector. -(number of knots per element times - number of finite elements) + Maximale Plätze im Zufallsvektor. +(Anzahl der Knoten pro Element multipliziert +mit Anzahl der Finiten Elementen) -You might need to increase this when using an -iterative solver and you get the error message -that "MAXKOI" needs to be increased. +Eventuell ist eine Erweiterung der Plätze nötig, wenn ein +iterativen Löser eingesetzt wird und die Fehlermeldung +""MAXKOI" muss erhöht werden" erscheint. @@ -2973,7 +2973,7 @@ Bitte eine andere Datei angeben. Open Channel Section Parameter - Open Channel Section Parameter + Parameter Kanalbereich öffnen @@ -3111,8 +3111,8 @@ Bitte eine andere Datei angeben. Imaginary part is only used for equations with a harmonic/oscillating driving force - Imaginary part is only used for equations -with a harmonic/oscillating driving force + Imaginärteil wird nur für Gleichungen +mit harmonischer/oszillierender Antriebskraft verwendet @@ -3209,7 +3209,7 @@ Hinweis: hat keinen Effekt, wenn ein Volumen ausgewählt wurde Whether the constraint defines a constant potential - Whether the constraint defines a constant potential + Ob die Einschränkung ein konstantes Potenzial definiert @@ -3219,7 +3219,7 @@ Hinweis: hat keinen Effekt, wenn ein Volumen ausgewählt wurde Whether the constraint defines a farfield potential - Whether the constraint defines a farfield potential + Ob die Einschränkung ein Fernfeld-Potenzial definiert @@ -3229,7 +3229,7 @@ Hinweis: hat keinen Effekt, wenn ein Volumen ausgewählt wurde Whether the constraint is for the electric force - Whether the constraint is for the electric force + Ob die Einschränkung für die elektrische Kraft ist @@ -3245,7 +3245,7 @@ Hinweis: hat keinen Effekt, wenn ein Volumen ausgewählt wurde Counter of the body (or face) with a capacitance - Counter of the body (or face) with a capacitance + Zähler des Körpers (oder der Fläche) mit einer Kapazität @@ -3398,10 +3398,10 @@ Hinweis: hat keinen Effekt, wenn ein Volumen ausgewählt wurde Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Real part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + Realer Teil der potenziellen x-Komponente +Hinweis: wenn eine Seite ausgewählt ist, das wird der Wert + in senkrechter Seitenrichtung + Einstellung für y und z wird ignoriert @@ -3409,28 +3409,28 @@ Note: if a face was selected this will be the value Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Imaginary part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + Imaginärer Teil der potenziellen x-Komponente +Hinweis: wenn eine Seite ausgewählt ist, das wird der Wert + in senkrechter Seitenrichtung + Einstellung für y und z wird ignoriert Real part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Real part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + Realer Teil der potenziellen y-Komponente +Hinweis: Für 2D ist nur Einstellung für x möglich, + Einstellung für y wird ignoriert Imaginary part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Imaginary part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + Imaginärer Teil der potenziellen y-Komponente +Hinweis: Für 2D ist nur für x möglich, + Einstellung für y wird ignoriert @@ -3472,7 +3472,7 @@ Note: for 2D only setting for x is possible, Normal to boundary - Normal to boundary + Senkrecht zu Grenze @@ -3868,9 +3868,9 @@ Note: for 2D only setting for x is possible, Runs the equation given in the field below, outputs the results to the Min and Max fields and colors the result mesh accordingly - Runs the equation given in the field below, -outputs the results to the Min and Max fields -and colors the result mesh accordingly + Führt die Gleichung aus, die im folgenden Feld angegeben wurde, +gibt die Ergebnisse in die Min- und Max-Felder aus +und färbt das Ergebnisnetz dementsprechend ein @@ -4188,7 +4188,7 @@ Siehe das nachfolgende Beschreibungsfeld für mögliche Variablen. Load [N] - Kraft [N] + Belastung [N] @@ -4413,15 +4413,15 @@ für den Löser Elmer surface force (and thus displacement) generated by the flow (Option only applies for Elmer solver) - Flow solution is used to determine -surface force (and thus displacement) -generated by the flow -(Option only applies for Elmer solver) + Die Flusslösung wird verwendet, um +Oberflächenkraft (und damit die Verschiebung) +zu ermitteln, die durch der Strömung erzeugt wurde +(die Option gilt nur für Elmer-Löser) Surface force by flow - Surface force by flow + Oberflächenkraft durch Strömung @@ -4607,7 +4607,7 @@ Normalenvektors der Fläche wird als Richtung verwendet Load [N] - Kraft [N] + Belastung [N] @@ -5357,117 +5357,119 @@ für den Löser Elmer verwendet werden &Elektrostatische Randbedingungen - + Fluid Constraints Strömungs-Randbedingungen - + &Fluid Constraints &Fluid-Randbedingungen - + + Electromagnetic Constraints Elektromagnetische Randbedingungen - + + &Electromagnetic Constraints &Elektromagnetische Randbedingungen - + Geometrical Constraints Geometrische Randbedingungen - + &Geometrical Constraints &Geometrische Randbedingungen - + Mechanical Constraints Mechanische Randbedingungen - + &Mechanical Constraints &Mechanische Randbedingungen - + Thermal Constraints Thermische Randbedingungen - + &Thermal Constraints &Thermische Randbedingungen - + Constraints without solver Randbedingungen ohne Solver - + &Constraints without solver &Randbedingungen ohne Solver - + Overwrite Constants Konstanten überschreiben - + &Overwrite Constants &Konstanten überschreiben - + Mesh Netz - + M&esh N&etz - + Solve Lösen - + &Solve &Lösen - + Results Ergebnisse - + &Results &Ergebnisse - + Filter functions Filterfunktionen - + &Filter functions &Filterfunktionen - + Utilities Dienstprogramme diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_el.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_el.ts index bc97207bb5..bb5520879e 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_el.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_el.ts @@ -5379,117 +5379,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Επίλυση - + &Solve &Solve - + Results Results - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Βοηθήματα diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_es-AR.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_es-AR.ts index c62739d397..ff28111a70 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_es-AR.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_es-AR.ts @@ -5381,117 +5381,119 @@ usada por el solver Elmer &Restricciones Electroestáticas - + Fluid Constraints Restricciones de Fluido - + &Fluid Constraints &Restricciones de Fluido - + + Electromagnetic Constraints Restricciones electromagnéticas - + + &Electromagnetic Constraints Restricciones &electromagnéticas - + Geometrical Constraints Restricciónes geométricas - + &Geometrical Constraints &Restricciónes geométricas - + Mechanical Constraints Restricciones mecánicas - + &Mechanical Constraints &Restricciones mecánicas - + Thermal Constraints Restricciones térmicas - + &Thermal Constraints &Restricciones térmicas - + Constraints without solver Restricciones sin solucionador - + &Constraints without solver &Restricciones sin solucionador - + Overwrite Constants Sobrescribir Constantes - + &Overwrite Constants &Sobrescribir Constantes - + Mesh Malla - + M&esh M&esh - + Solve Resolver - + &Solve &Resolver - + Results Resultados - + &Results &Resultados - + Filter functions Funciones de filtro - + &Filter functions &Filtrar funciones - + Utilities Utilidades diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_es-ES.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_es-ES.ts index 01267435d1..1b3ee7f572 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_es-ES.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_es-ES.ts @@ -5381,117 +5381,119 @@ usada por el solver Elmer &Restricciones Electroestáticas - + Fluid Constraints Restricciones de Fluido - + &Fluid Constraints &Restricciones de Fluido - + + Electromagnetic Constraints Restricciones electromagnéticas - + + &Electromagnetic Constraints Restricciones &electromagnéticas - + Geometrical Constraints Restricciónes geométricas - + &Geometrical Constraints &Restricciónes geométricas - + Mechanical Constraints Restricciones mecánicas - + &Mechanical Constraints &Restricciones mecánicas - + Thermal Constraints Restricciones térmicas - + &Thermal Constraints &Restricciones térmicas - + Constraints without solver Restricciones sin solucionador - + &Constraints without solver &Restricciones sin solucionador - + Overwrite Constants Sobrescribir Constantes - + &Overwrite Constants &Sobrescribir Constantes - + Mesh Malla - + M&esh M&esh - + Solve Resolver - + &Solve &Resolver - + Results Resultados - + &Results &Resultados - + Filter functions Funciones de filtro - + &Filter functions &Filtrar funciones - + Utilities Utilidades diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_eu.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_eu.ts index 30f642e83c..ba0b8b3015 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_eu.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_eu.ts @@ -5383,117 +5383,119 @@ Elmer ebazlean Murrizketa &elektrostatikoak - + Fluid Constraints Jariakin-murrizketak - + &Fluid Constraints &Jariakin-murrizketak - + + Electromagnetic Constraints Murrizketa elektromagnetikoak - + + &Electromagnetic Constraints &Murrizketa elektromagnetikoak - + Geometrical Constraints Murrizketa geometrikoak - + &Geometrical Constraints Murrizketa ge&ometrikoak - + Mechanical Constraints Murrizketa mekanikoak - + &Mechanical Constraints Murrizketa &mekanikoak - + Thermal Constraints Murrizketa termalak - + &Thermal Constraints Murrizketa &termalak - + Constraints without solver Ebazlerik gabeko murrizketak - + &Constraints without solver &Ebazlerik gabeko murrizketak - + Overwrite Constants Gainidatzi murrizketak - + &Overwrite Constants &Gainidatzi murrizketak - + Mesh Amarauna - + M&esh A&marauna - + Solve Ebatzi - + &Solve E&batzi - + Results Emaitzak - + &Results &Emaitzak - + Filter functions Iragazki-funtzioak - + &Filter functions &Iragazi funtzioak - + Utilities Utilitateak diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts index 508c5d9101..f14b7b73e0 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Ratkaise - + &Solve &Ratkaise - + Results Tulokset - + &Results &Tulokset - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Apuvälineet diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts index 2ad1f100b1..dcf5607337 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts @@ -16,7 +16,7 @@ Creates a FEM constraint for a bearing - Crée une contrainte FEM de roulement + Créer une contrainte FEM de roulement @@ -34,7 +34,7 @@ Creates a FEM constraint for contact between faces - Crée une contrainte FEM de contact entre les faces + Créer une contrainte FEM de contact entre des faces @@ -52,7 +52,7 @@ Creates a FEM constraint for a displacement acting on a geometric entity - Crée une contrainte FEM de déplacement agissant sur une entité géométrique + Créer une contrainte FEM de déplacement agissant sur une entité géométrique @@ -70,7 +70,7 @@ Creates a FEM constraint for a fixed geometric entity - Crée une contrainte FEM pour une entité géométrique fixe + Créer une contrainte FEM pour une entité géométrique fixe @@ -88,7 +88,7 @@ Create fluid boundary condition on face entity for Computional Fluid Dynamics - Créer une condition limite de fluide sur la face de l'entité face pour le calcul de dynamique des fluides + Créer une condition limite de fluide sur une face pour la Mécanique des fluides numérique @@ -106,7 +106,7 @@ Creates a FEM constraint for a force acting on a geometric entity - Crée une contrainte FEM pour une force agissant sur une entité géométrique + Créer une contrainte FEM pour une force agissant sur une entité géométrique @@ -124,7 +124,7 @@ Creates a FEM constraint for a gear - Crée une contrainte FEM d'engrenage + Créer une contrainte FEM d'engrenage @@ -142,7 +142,7 @@ Creates a FEM constraint for a heatflux acting on a face - Crée une contrainte FEM de flux de chaleur agissant sur une face + Créer une contrainte FEM de flux de chaleur agissant sur une face @@ -160,7 +160,7 @@ Creates a FEM constraint for initial temperature acting on a body - Crée une contrainte FEM de température initiale agissant sur un corps + Créer une contrainte FEM de température initiale agissant sur un corps @@ -178,7 +178,7 @@ Creates a FEM constraint for plane rotation face - Crée une contrainte FEM de rotation plane + Créer une contrainte FEM de rotation plane @@ -196,7 +196,7 @@ Creates a FEM constraint for a pressure acting on a face - Crée une contrainte FEM de pression agissant sur la face + Créer une contrainte FEM de pression agissant sur la face @@ -214,7 +214,7 @@ Creates a FEM constraint for a pulley - Crée une contrainte FEM de poulie + Créer une contrainte FEM de poulie @@ -250,7 +250,7 @@ Creates a FEM constraint for a temperature/concentrated heat flux acting on a face - Crée une contrainte FEM d'un flux concentré de chaleur/température agissant sur une face + Créer une contrainte FEM d'un flux concentré de chaleur/température agissant sur une face @@ -286,7 +286,7 @@ Creates a FEM mesh nodes set - Crée un ensemble de nœuds de maillage FEM + Créer un ensemble de nœuds de maillage FEM @@ -351,7 +351,7 @@ Define/create a clip filter which uses functions to define the cliped region - Définir/créer un filtre d'écrêtage qui utilise des fonctions pour définir la région écrêtée + Définir/créer un filtre d'écrêtage qui utilisera des fonctions pour définir la région écrêtée @@ -397,7 +397,7 @@ Define/create a clip filter which clips a field along a line - Définir/créer un filtre d'écrêtage qui écrête un champ le long d'une ligne + Définir/créer un filtre d'écrêtage qui écrêtera un champ le long d'une ligne @@ -415,7 +415,7 @@ Define/create a clip filter which clips a field data at point - Définir/créer un filtre d'écrêtage qui écrête les données d'un champ à un point donné + Définir/créer un filtre d'écrêtage qui écrêtera les données d'un champ à un point donné @@ -433,7 +433,7 @@ Functions for use in postprocessing filter... - Fonctions à utiliser dans le filtre de post-traitement... + Fonctions pour le filtrage de post-traitement... @@ -537,7 +537,7 @@ Creates a post processing pipeline from a result object - Crée un pipeline de post-traitement à partir d'un objet résultat + Créer un pipeline de post-traitement à partir d'un objet résultat @@ -565,7 +565,7 @@ Define/create a clip filter which clips a field with a scalar value - Définir/créer un filtre d'écrêtage qui écrête un champ avec une valeur scalaire + Définir/créer un filtre d'écrêtage qui écrêtera un champ avec une valeur scalaire @@ -596,7 +596,7 @@ Make FEM constraint contact on face - Créer une contrainte de contact sur la surface + Créer une contrainte FEM de contact sur une face @@ -621,7 +621,7 @@ Make FEM constraint for gear - Créer la contrainte FEM pour un engrenage + Créer une contrainte FEM pour un engrenage @@ -636,32 +636,32 @@ Make FEM constraint Plane Rotation face - Crée une contrainte FEM face à la rotation du plan + Créer une contrainte FEM pour une surface de révolution plane Make FEM constraint pressure on face - Crée une contrainte FEM de pression sur une face + Créer une contrainte FEM de pression sur une face Make FEM constraint spring on face - Crée une contrainte FEM de ressort sur une face + Créer une contrainte FEM de ressort sur une face Make FEM constraint for pulley - Crée une contrainte FEM pour une poulie + Créer une contrainte FEM pour une poulie Make FEM constraint temperature on face - Crée une contrainte FEM de température sur une face + Créer une contrainte FEM de température sur une face Make FEM constraint transform on face - Crée une contrainte FEM de déformation sur une face + Créer une contrainte FEM de déformation sur une face @@ -763,7 +763,7 @@ Remove - Enlever + Supprimer @@ -1198,7 +1198,7 @@ FEM : éléments FEM seulement (uniquement les arêtes n'appartenant pas aux fac All - Tous + Tout @@ -4344,7 +4344,7 @@ Pour les variables possibles, voir la zone de description ci-dessous. Remove - Enlever + Supprimer @@ -4382,7 +4382,7 @@ Pour les variables possibles, voir la zone de description ci-dessous. Remove - Enlever + Supprimer @@ -4485,7 +4485,7 @@ générée par l'écoulement (l'option ne s'applique qu'au solveur Elmer) Remove - Enlever + Supprimer @@ -4518,7 +4518,7 @@ générée par l'écoulement (l'option ne s'applique qu'au solveur Elmer) Remove - Enlever + Supprimer @@ -4623,7 +4623,7 @@ vecteur normal de la face est utilisée comme sens Remove - Enlever + Supprimer @@ -4673,7 +4673,7 @@ vecteur normal de la face est utilisée comme sens Remove - Enlever + Supprimer @@ -4745,7 +4745,7 @@ vecteur normal de la face est utilisée comme sens Remove - Enlever + Supprimer @@ -4768,7 +4768,7 @@ vecteur normal de la face est utilisée comme sens Remove - Enlever + Supprimer @@ -4806,7 +4806,7 @@ vecteur normal de la face est utilisée comme sens Remove - Enlever + Supprimer @@ -4850,7 +4850,7 @@ used for the Elmer solver Remove - Enlever + Supprimer @@ -4894,7 +4894,7 @@ used for the Elmer solver Remove - Enlever + Supprimer @@ -5377,117 +5377,119 @@ used for the Elmer solver &Contraintes électrostatiques - + Fluid Constraints Contraintes du fluide - + &Fluid Constraints Contraintes du &fluide - + + Electromagnetic Constraints Contraintes électromagnétiques - + + &Electromagnetic Constraints Contraintes &électromagnétiques - + Geometrical Constraints Contraintes géométriques - + &Geometrical Constraints Contraintes &géométriques - + Mechanical Constraints Contraintes mécaniques - + &Mechanical Constraints Contraintes &mécaniques - + Thermal Constraints Contraintes thermiques - + &Thermal Constraints Contraintes &thermiques - + Constraints without solver Contraintes sans solveur - + &Constraints without solver &Contraintes sans solveur - + Overwrite Constants Remplacer les constantes - + &Overwrite Constants Remplacer les c&onstantes - + Mesh Maillage - + M&esh Ma&illage - + Solve Résoudre - + &Solve Ré&solution - + Results Résultats - + &Results &Résultats - + Filter functions Fonctions de filtrage - + &Filter functions &Fonctions de filtrage - + Utilities Utilitaires @@ -5523,7 +5525,7 @@ used for the Elmer solver Creates an analysis container with default solver - Crée un conteneur d’analyse avec le solveur standard + Créer un conteneur d’analyse avec le solveur standard @@ -5558,7 +5560,7 @@ used for the Elmer solver Creates a FEM constant vacuum permittivity to overwrite standard value - Crée une constante FEM de permittivité du vide pour recouvrir la valeur standard + Créer une constante FEM de permittivité du vide pour remplacer la valeur standard @@ -5571,7 +5573,7 @@ used for the Elmer solver Creates a FEM constraint body heat source - Crée une contrainte FEM de type source de chaleur pour un corps + Créer une contrainte FEM de type source de chaleur pour un corps @@ -5584,7 +5586,7 @@ used for the Elmer solver Creates a FEM constraint centrif - Crée une contrainte FEM de type centrifuge + Créer une contrainte FEM de type centrifuge @@ -5597,7 +5599,7 @@ used for the Elmer solver Creates a FEM constraint electrostatic potential - Crée une contrainte FEM de type potentiel électrostatique + Créer une contrainte FEM de type potentiel électrostatique @@ -5610,7 +5612,7 @@ used for the Elmer solver Creates a FEM constraint flow velocity - Crée une contrainte FEM de type vitesse d'écoulement + Créer une contrainte FEM de type vitesse d'écoulement @@ -5623,7 +5625,7 @@ used for the Elmer solver Creates a FEM constraint initial flow velocity - Crée une contrainte FEM de type vitesse d'écoulement initiale + Créer une contrainte FEM de type vitesse d'écoulement initiale @@ -5636,7 +5638,7 @@ used for the Elmer solver Creates a FEM constraint initial pressure - Crée une contrainte FEM de type pression initiale + Créer une contrainte FEM de type pression initiale @@ -5649,7 +5651,7 @@ used for the Elmer solver Creates a FEM constraint sectionprint - Crée une contrainte FEM d'affichage de la section + Créer une contrainte FEM d'affichage de la section @@ -5662,7 +5664,7 @@ used for the Elmer solver Creates a FEM constraint self weight - Crée une contrainte FEM de type poids propre + Créer une contrainte FEM de type poids propre @@ -5675,7 +5677,7 @@ used for the Elmer solver Creates a FEM constraint tie - Crée une contrainte FEM de type liaison + Créer une contrainte FEM de type liaison @@ -5688,7 +5690,7 @@ used for the Elmer solver Creates a FEM fluid section for 1D flow - Crée une section de fluide FEM pour un écoulement 1D + Créer une section de fluide FEM pour un écoulement 1D @@ -5754,7 +5756,7 @@ used for the Elmer solver Creates a FEM equation for elasticity (stress) - Crée une équation FEM pour l'élasticité (contrainte) + Créer une équation FEM pour l'élasticité (contrainte) @@ -5854,7 +5856,7 @@ used for the Elmer solver Creates a nonlinear mechanical material - Crée un matériau mécanique non linéaire + Créer un matériau mécanique non linéaire @@ -5867,7 +5869,7 @@ used for the Elmer solver Creates a material for reinforced matrix material such as concrete - Crée un matériau pour des composites renforcés tels que le béton + Créer un matériau pour des composites renforcés tels que le béton @@ -5880,7 +5882,7 @@ used for the Elmer solver Creates a FEM material for solid - Crée un matériau FEM pour solide + Créer un matériau FEM pour solide @@ -5906,7 +5908,7 @@ used for the Elmer solver Creates a FEM mesh boundary layer - Crée une couche limite du maillage FEM + Créer une couche limite FEM du maillage @@ -5954,7 +5956,7 @@ used for the Elmer solver Creates a FEM mesh group - Crée un groupe de maillages FEM + Créer un groupe de maillages FEM @@ -5967,7 +5969,7 @@ used for the Elmer solver Create a FEM mesh from a solid or face shape by Netgen internal mesher - Crée un maillage FEM à partir d'un solide ou d'une forme de face par le mailleur interne Netgen + Créer un maillage FEM à partir d'un solide ou d'une face par le mailleur interne Netgen @@ -5980,7 +5982,7 @@ used for the Elmer solver Creates a FEM mesh region - Crée une région de maillage FEM + Créer une région de maillage FEM @@ -6019,7 +6021,7 @@ used for the Elmer solver Creates a standard FEM solver CalculiX with ccx tools - Crée un solveur standard CalculiX FEM avec les outils ccx + Créer un solveur standard CalculiX FEM avec les outils ccx @@ -6045,7 +6047,7 @@ used for the Elmer solver Creates a FEM solver Elmer - Crée un solveur Elmer FEM + Créer un solveur FEM Elmer @@ -6058,7 +6060,7 @@ used for the Elmer solver Creates a FEM solver Mystran - Crée un solveur Mystran FEM + Créer un solveur FEM Mystran @@ -6084,7 +6086,7 @@ used for the Elmer solver Creates a FEM solver Z88 - Crée un solveur Z88 FEM + Créer un solveur FEM Z88 @@ -6151,7 +6153,7 @@ used for the Elmer solver Remove - Enlever + Supprimer @@ -6319,7 +6321,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM constraint current density - Crée une contrainte FEM de densité de courant + Créer une contrainte FEM de densité de courant @@ -6333,7 +6335,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM equation for 2D magnetodynamic forces - Crée une équation FEM pour des forces magnétodynamiques 2D + Créer une équation FEM pour des forces magnétodynamiques 2D @@ -6360,7 +6362,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM constraint magnetization - Crée une contrainte FEM de magnétisation + Créer une contrainte FEM de magnétisation @@ -6374,7 +6376,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM equation for magnetodynamic forces - Crée une équation FEM pour des forces magnétodynamiques + Créer une équation FEM pour des forces magnétodynamiques @@ -6438,7 +6440,7 @@ Veuillez d'abord sélectionner un type de résultat. Define/create a contours filter which displays iso contours - Définir/créer un filtre par contours qui affiche des iso-contours + Définir/créer un filtre par contours qui affichera des iso-contours @@ -6460,7 +6462,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM equation for deformation (nonlinear elasticity) - Crée une équation FEM pour une déformation (élasticité non linéaire) + Créer une équation FEM pour une déformation (élasticité non linéaire) @@ -6572,7 +6574,7 @@ Veuillez d'abord sélectionner un type de résultat. Creates a FEM solver CalculiX new framework (less result error handling) - Crée un solveur nouveau modèle CalculiX FEM (moins de traitement des erreurs de résultat) + Créer un solveur FEM nouveau modèle de CalculiX (moins de traitement des erreurs de résultat) diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_gl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_gl.ts index 160041463e..5699e8f2a0 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_gl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_gl.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Resolver - + &Solve &Solve - + Results Resultados - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Utilidades diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts index 33b4dd9b44..66d5af9d5d 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts @@ -541,17 +541,17 @@ Ograničenje kontakta Creates a post processing pipeline from a result object - Creates a post processing pipeline from a result object + Kreira post-procesnu pipeline iz objekta rezultata. Wrong selection type - Wrong selection type + Pogrešan tip odabira Select a result object, please. - Select a result object, please. + Molim odaberite rezultatni objekt @@ -564,12 +564,12 @@ Ograničenje kontakta Scalar clip filter - Scalar clip filter + Skalarni isječak filter Define/create a clip filter which clips a field with a scalar value - Define/create a clip filter which clips a field with a scalar value + Definiraj/izradi filtar isječka koji odsjeca polje sa skalarnom vrijednosti @@ -587,7 +587,7 @@ Ograničenje kontakta Warp the geometry along a vector field by a certain factor - Warp the geometry along a vector field by a certain factor + Izobličite geometriju duž vektorskog polja određenim faktorom @@ -745,7 +745,7 @@ Ograničenje kontakta Select the vertices, lines and surfaces: - Select the vertices, lines and surfaces: + Odaberi vrhove, linije i površine: @@ -792,12 +792,12 @@ Ograničenje kontakta Create a cylinder function, defined by its center, axis and radius - Create a cylinder function, defined by its center, axis and radius + Izradi fukciju cilindra, definiranu središtem, osi i polumjerom Create a box function, defined by its center, length, width and height - Create a box function, defined by its center, length, width and height + Izradi fukciju kocke definiranu središtem, dužinom, širinom i visinom @@ -851,12 +851,12 @@ Ograničenje kontakta Split writing of *.inp - Split writing of *.inp + Razdjeli kod pisanja *.inp Analysis defaults - Analysis defaults + Zadane vrijednosti analize @@ -881,22 +881,22 @@ Ograničenje kontakta Thermomech - Thermomech + Termomehanika Check Mesh - Check Mesh + Provjeri mrežu Buckling - Buckling + Ugibanje Solver defaults - Solver defaults + Zadane vrijednosti alata za rješavanje @@ -916,17 +916,17 @@ Ograničenje kontakta Spooles - Spooles + Špule Iterative Scaling - Iterative Scaling + Iteracijsko skaliranje Iterative Cholesky - Iterative Cholesky + Iteracijsko Cholesky @@ -941,12 +941,12 @@ Ograničenje kontakta Time incrementation control parameter - Time incrementation control parameter + Parametar kontrole vremenskog inkrementa Use non ccx defaults - Use non ccx defaults + Koristi nestandardne ccx vrijednosti @@ -967,27 +967,27 @@ Ograničenje kontakta Beam, shell element 3D output format - Beam, shell element 3D output format + 3D format izvoza elementa Grede, Šuplje konstrukcije 3D Output, unchecked for 2D - 3D Output, unchecked for 2D + Izlaz u 3D, za 2D nije označeno Thermo mechanical defaults - Thermo mechanical defaults + Zadane vrijednosti termomehanike Analysis type (transient or steady state) - Analysis type (transient or steady state) + Vrsta analize (prolazno ili stabilno stanje) Use steady state - Use steady state + Koristi stabilno stanje @@ -997,7 +997,7 @@ Ograničenje kontakta Frequency defaults - Frequency defaults + Zadane vrijednosti frekvencije @@ -1031,10 +1031,10 @@ Ograničenje kontakta '%1' does not exist! Specify another file please. - The specified executable + Navedena izvršna datoteka '%1' - does not exist! -Specify another file please. + ne postoji! +Navedi drugu datoteku. @@ -1052,7 +1052,7 @@ Specify another file please. ElmerGrid: - ElmerGrid: + ElmerGrid: @@ -1063,19 +1063,19 @@ Specify another file please. ElmerGrid binary path - ElmerGrid binary path + Putanja ElmerGrid binarne datoteke Multi-CPU core support: - Multi-CPU core support: + Podrška za višeprocesorsku arhitekturu: The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible. - The mesh volume regions processed by each CPU core -will be merged to make the volume boundaries invisible. + Spajanjem regija volumena mreže obrađenih od strane svake CPU jezge + granice volumena će se učiniti nevidljivima. @@ -1095,12 +1095,14 @@ will be merged to make the volume boundaries invisible. ElmerSolver binary path - ElmerSolver binary path + Putanja ElmerSolver binarne datoteke <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> - <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> + <html> <head></head><body><p>Ostavite prazno za korištenje zadanih Elmer elmer binarnih datoteka</p><p><span style=" font-weight:600;">Napomena:</span> Da biste koristili višedretvene programe, morate ovdje specificirati<br> izvršnu varijantu s nastavkom &quot;_mpi&quot;.</p></body></html> + + @@ -1110,17 +1112,17 @@ will be merged to make the volume boundaries invisible. Multithreading: - Multithreading: + Multithreading: CPU cores to be used: - CPU cores to be used: + CPU jezgre koje će se koristiti: <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Napomena:</span> Preporuča se koristiti paran broj jezgri kako bi se iskoristile simetrije mreže. (Korištenje 8 jezgri može biti brže od korištenja 9 jezgri.)<br/><span style=" font-weight:600;">Napomena:</span> U ekstremnim slučajevima, ElmerSolver se možda neće konvergirati ako je broj jezgri previsok.</p></body></html> @@ -1133,30 +1135,30 @@ will be merged to make the volume boundaries invisible. '%1' does not exist! Specify another file please. - The specified executable + Navedena izvršna datoteka '%1' - does not exist! -Specify another file please. + ne postoji! +Navedi drugu datoteku. FEM Elmer: Not suitable for multithreading - FEM Elmer: Not suitable for multithreading + FEM Elmer: Nije prikladno za multithreading Wrong Elmer setting: You use more than one CPU core. Therefore an executable with the suffix '_mpi.exe' is required. - Wrong Elmer setting: You use more than one CPU core. -Therefore an executable with the suffix '_mpi.exe' is required. + Netočna Elmer postavka: Koristite više od jednog CPU jezgra. +Stoga je potreban izvršni program s nastavkom '_mpi.exe'. Wrong Elmer setting: You use more than one CPU core. Therefore an executable with the suffix '_mpi' is required. - Wrong Elmer setting: You use more than one CPU core. -Therefore an executable with the suffix '_mpi' is required. + Netočna Elmer postavka: Koristite više od jednog CPU jezgra. +Stoga je potreban izvršni program s nastavkom '_mpi'. @@ -1174,7 +1176,7 @@ Therefore an executable with the suffix '_mpi' is required. Which mesh elements to export - Which mesh elements to export + Koje elemente mreže da izvezem @@ -1185,18 +1187,21 @@ for means volumes for a volume mesh and faces for a shell mesh. FEM: Only FEM elements will be exported. This means only edges not belonging to faces and faces not belonging to volumes. - All: All elements will be exported. + Svi: Svi elementi će biti eksportirani. -Highest: Only the highest elements will be exported. This means -for means volumes for a volume mesh and faces for a shell mesh. +Najviši: Samo će biti eksportirani najviši elementi. To znači +za glavne volumene za 3D mrežu i plohe za mrežu ljuske. -FEM: Only FEM elements will be exported. This means only edges -not belonging to faces and faces not belonging to volumes. +FEM: Samo će biti eksportirani FEM elementi. To znači samo rubove +koji ne pripadaju plohama i plohe koje ne pripadaju volumenima. + + element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) - element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) + Parametar elementa: Svi: svi elementi, Najviši: samo najviši elementi, FEM: samo FEM elementi (samo rubovi koji ne pripadaju plohama i plohe koje ne pripadaju volumenima) + @@ -1216,7 +1221,7 @@ not belonging to faces and faces not belonging to volumes. Export group data - Export group data + Izvezi skupinu podataka @@ -1224,10 +1229,10 @@ not belonging to faces and faces not belonging to volumes. Every constraint and, if there are different materials, material consists of two mesh groups, faces and nodes where the constraint or material is applied. - Mesh groups are exported too. -Every constraint and, if there are different materials, material -consists of two mesh groups, faces and nodes where the -constraint or material is applied. + Mrežne grupe se također eksportiraju. +Svako ograničenje i, ako postoje različiti materijali, materijal +se sastoji od dvije mrežne grupe, površina i čvorova gdje je +ograničenje ili materijal primijenjeno. @@ -1240,7 +1245,7 @@ constraint or material is applied. Working directory for solving analysis and gmsh meshing - Working directory for solving analysis and gmsh meshing + Radni direktorij za rješavanje analize i gmsh mreženja @@ -1255,17 +1260,19 @@ constraint or material is applied. Let the application manage (create, delete) the working directories for all solver. Use temporary directories. - Let the application manage (create, delete) the working directories for all solver. Use temporary directories. + Neka aplikacija upravlja (stvara, briše) radne direktorije za sve rješavače. Koristit će se privremeni direktoriji. Beside .FCStd file - Beside .FCStd file + Osim .FCStd datoteke Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). - Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). + Sure, here is the translation of the text you provided in Croatian: + +U istom direktoriju u kojem se nalazi FCStd datoteka dokumenta, stvorite direktorij. Koristite poddirektorij za svaki rješavač (npr. za datoteku ./mydoc.FCStd i rješavač s oznakom Elmer002 koristite ./mydoc/Elmer002). @@ -1275,7 +1282,7 @@ constraint or material is applied. Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. - Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + Koristite direktorij ispod. Stvorite vlastitu poddirektoriju za svaki solver. Nazovite direktorij prema oznaki rješavača prefiksiranom s nazivom dokumenta. @@ -1285,7 +1292,7 @@ constraint or material is applied. Overwrite solver working directory with the directory chosen above - Overwrite solver working directory with the directory chosen above + Prepisati radni direktorij rješavača s direktorijem odabranim iznad @@ -1295,7 +1302,7 @@ constraint or material is applied. Create mesh groups for analysis reference shapes (highly experimental) - Create mesh groups for analysis reference shapes (highly experimental) + Stvorite grupe mreže za analize referentnih oblika (vrlo eksperimentalno) @@ -1306,37 +1313,36 @@ constraint or material is applied. Existing result objects will be kept otherwise overwritten by new solver run - Existing result objects will be kept -otherwise overwritten by new solver run + Postojeći objekti rezultata bit će sačuvani +dok ne budu prepisani novim pokretanjem rješavača Keep results on calculation re-run - Keep results on calculation re-run + Zadržite rezultate pri ponovnom pokretanju izračuna The results dialog will be opened with the last used dialog settings - The results dialog will be opened -with the last used dialog settings + Rezultati će se otvoriti u dijalogu +sa posljednjim korištenim postavkama dijaloga Restore result dialog settings - Restore result dialog settings + Vrati postavke dijaloga rezultata All constraints are hidden in the model view when the results dialog is opened - All constraints are hidden in the model view -when the results dialog is opened + Sva su ograničenja skrivena u prikazu modela kada se otvori dijalog rezultata Hide constraints when open result dialog - Hide constraints when open result dialog + Sakrij ograničenja kada se otvori dijalog rezultata @@ -1346,14 +1352,14 @@ when the results dialog is opened Default solver - Default solver + Zadani alat za rješavanje Default solver to be added when adding an analysis container - Default solver to be added when -adding an analysis container + Zadani alat za rješavanje koji će biti dodan kada +se dodaje kontejner za analizu @@ -1399,10 +1405,10 @@ adding an analysis container '%1' does not exist! Specify another file please. - The specified executable + Navedena izvršna datoteka '%1' - does not exist! -Specify another file please. + ne postoji! +Navedi drugu datoteku. @@ -1420,7 +1426,7 @@ Specify another file please. Which object to import into - Which object to import into + U koji objekt se uvozi @@ -1434,21 +1440,16 @@ FreeCAD result object: The imported data will be converted into a FreeCAD FEM Result object. Note: this setting needs the exact result component names and thus it only works properly with VTK files exported from FreeCAD. - VTK result object: A FreeCAD FEM VTK result object will be imported -(equals to the object which was exported). + Objekt rezultata VTK: Uvezit će se FreeCAD FEM VTK objekt rezultata (jednak objektu koji je bio izvezen). -FEM mesh object: The results in the VTK file will be omitted, only the -mesh data will be imported and a FreeCAD FEM mesh object will be created. +Objekt FEM mreže: Rezultati u VTK datoteci bit će izostavljeni, samo će se uvesti podaci o mreži i stvorit će se FreeCAD FEM objekt mreže. -FreeCAD result object: The imported data will be converted into a -FreeCAD FEM Result object. Note: this setting needs the exact result -component names and thus it only works properly with VTK files -exported from FreeCAD. +Objekt FreeCAD rezultata: Uvezeni podaci bit će pretvoreni u FreeCAD FEM objekt rezultata. Napomena: ova postavka zahtijeva točne nazive komponenata rezultata i stoga samo radi ispravno s VTK datotekama izvezenim iz FreeCAD-a. Choose in which object to import into - Choose in which object to import into + Odaberi u koji objekt se uvozi @@ -1477,12 +1478,12 @@ exported from FreeCAD. Card resources - Card resources + Biblioteka kartica The cards built-in to FreeCAD will be listed as available. - The cards built-in to FreeCAD will be listed as available. + Ugrađene kartice u FreeCAD bit će navedene kao dostupne. @@ -1492,19 +1493,18 @@ exported from FreeCAD. Also cards from FreeCAD's preferences directory will be listed as available. - Also cards from FreeCAD's preferences directory will be listed as available. + Takođe kartice iz FreeCAD direktorija postavki bit će navedene kao dostupne. Use materials from Materials directory in user's FreeCAD preference directory - Use materials from Materials directory in user's FreeCAD preference directory + Koristi materijale iz direktorija Materijali u korisničkom direktoriju postavke FreeCAD-a. Also material cards also from the specified directory will be listed as available. - Also material cards also from the specified directory -will be listed as available. + Takođe kartice materijala iz navedenog direktorija bit će navedene kao dostupne. @@ -1519,12 +1519,12 @@ will be listed as available. Card sorting and duplicates - Card sorting and duplicates + Sortiranje kartica i duplikati Duplicate cards will be deleted from the displayed material card list. - Duplicate cards will be deleted from the displayed material card list. + Duplikati kartica će biti obrisani sa prikazane liste kartica materijala. @@ -1535,13 +1535,13 @@ will be listed as available. Material cards appear sorted by their resources (locations). If unchecked, they will be sorted by their name. - Material cards appear sorted by their resources (locations). -If unchecked, they will be sorted by their name. + Kartice materijala će se pojavljivati sortirane prema bibliotekama kojima pripadaju (lokacijama). +Ako nije označeno, one će biti sortirane po imenima. Sort by resources - Sort by resources + Sortiraj po bibliotekama @@ -1554,7 +1554,7 @@ If unchecked, they will be sorted by their name. Mystran binary - Mystran binary + Mystran binary @@ -1564,12 +1564,12 @@ If unchecked, they will be sorted by their name. Mystran binary path - Mystran binary path + Mystran binary putanja Leave blank to use default Mystran binary file location - Leave blank to use default Mystran binary file location + Ostavite prazno da biste koristili zadanu lokaciju binarne datoteke Mystran. @@ -1579,7 +1579,7 @@ If unchecked, they will be sorted by their name. Write comments to input file - Write comments to input file + Napiši komentare u datoteku unosa @@ -1592,10 +1592,10 @@ If unchecked, they will be sorted by their name. '%1' does not exist! Specify another file please. - The specified executable + Navedena izvršna datoteka '%1' - does not exist! -Specify another file please. + ne postoji! +Navedi drugu datoteku. @@ -1608,7 +1608,7 @@ Specify another file please. Z88 binary - Z88 binary + Z88 binary @@ -1618,47 +1618,47 @@ Specify another file please. z88r binary path - z88r binary path + putanja binarne datoteke z88r Leave blank to use default Z88 z88r binary file - Leave blank to use default Z88 z88r binary file + Ostavite prazno za korištenje zadane Z88 z88r binarne datoteke Solver settings - Solver settings + Postavke alata za rješavanje Solver method - Solver method + Metoda alata za rješavanje Solver method to be used - Solver method to be used + Metoda alata za rješavanje koja se koristi Iteration solver with SOR preconditioning (-sorcg) - Iteration solver with SOR preconditioning (-sorcg) + Iteracijski rješavač sa SOR predkondicioniranjem (-sorcg) Iteration solver with SIC preconditioning (-siccg) - Iteration solver with SIC preconditioning (-siccg) + Iteracijski rješavač sa SIC predkondicioniranjem (-siccg) Simple Cholesky solver (-choly) - Simple Cholesky solver (-choly) + Jednostavni Cholesky rješavač (-choly) Max places in stiffness matrix - Max places in stiffness matrix + Maksimalni broj mjesta u matrici krutosti @@ -1666,15 +1666,15 @@ Specify another file please. You might need to increase this when using the Cholesky solver and you get the error message that "MAXGS" needs to be increased. - Maximal places in stiffnes matrix. -You might need to increase this when using the -Cholesky solver and you get the error message -that "MAXGS" needs to be increased. + Maksimalan broj mjesta u matrici krutosti. +Možda ćete to morati povećati kada koristite +Choleskyov rješavač i dobijete poruku o pogrešci +da se "MAXGS" mora povećati." Max places in coincidence vector - Max places in coincidence vector + Maksimalan broj mjesta u vektoru koincidencije @@ -1685,13 +1685,13 @@ that "MAXGS" needs to be increased. You might need to increase this when using an iterative solver and you get the error message that "MAXKOI" needs to be increased. - Maximal places in coincidence vector. -(number of knots per element times - number of finite elements) + Maksimalan broj mjesta u vektoru koincidencije. +(broj čvorova po elementu množeno sa + broj konačnih elementa) -You might need to increase this when using an -iterative solver and you get the error message -that "MAXKOI" needs to be increased. +Možda ćete to morati povećati kada koristite +iterativni rješavač i dobijete poruku o pogrešci +da se "MAXKOI" mora povećati @@ -1704,21 +1704,21 @@ that "MAXKOI" needs to be increased. '%1' does not exist! Specify another file please. - The specified z88r executable + Navedena z88r izvršna datoteka '%1' - does not exist! -Specify another file please. + ne postoji! +Navedi drugu datoteku. Wrong file - Wrong file + Pogrešna datoteka You must specify the path to the z88r.exe! - You must specify the path to the z88r.exe! + Moraš odrediti stazu za ovu z88r.exe! @@ -1984,13 +1984,13 @@ Specify another file please. Only one face in object! - moved to master face - Only one face in object! - moved to master face + Samo jedna površina u objektu! - premještena u glavnu površinu Only one master face and one slave face for a contact constraint! - Only one master face and one slave face for a contact constraint! + Samo jedna glavna površina i jedna podređena površina za ograničenje kontakta! @@ -2004,7 +2004,7 @@ Specify another file please. Only one slave face for a contact constraint! - Only one slave face for a contact constraint! + Samo jedna podređena površina za ograničenje kontakta! @@ -2023,12 +2023,12 @@ Specify another file please. Only one master for a contact constraint! - Only one master for a contact constraint! + Samo jedan glavni za ograničenje kontakta! Only one master face for a contact constraint! - Only one master face for a contact constraint! + Samo jedna glavna površina za ograničenje kontakta! @@ -2057,7 +2057,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Samo je jedna vrsta selekcije (vrh, ploha ili rub) po ograničenju dopuštena! @@ -2086,7 +2086,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Samo je jedna vrsta selekcije (vrh, ploha ili rub) po ograničenju dopuštena! @@ -2099,7 +2099,7 @@ Specify another file please. Turbulence - Turbulence + Turbulencija @@ -2109,7 +2109,7 @@ Specify another file please. select boundary type, faces and set value - select boundary type, faces and set value + odaberite vrstu granice, površine i postavite vrijednost @@ -2119,43 +2119,43 @@ Specify another file please. Dissipation Rate [m2/s3] - Dissipation Rate [m2/s3] + Stopa disipacije [m2/s3] Length Scale[m] - Length Scale[m] + Skala dužine [m] Viscosity Ratio [1] - Viscosity Ratio [1] + Omjer viskoznosti [1] Hydraulic Diameter [m] - Hydraulic Diameter [m] + Hidraulički Promjer [m] Gradient [K/m] - Gradient [K/m] + Gradient [K/m] Flux [W/m2] - Flux [W/m2] + Protok [W/m2] Empty selection - Empty selection + Prazan odabir Select an edge or a face, please. - Select an edge or a face, please. + Molim odaberi rub ili plohu. @@ -2169,12 +2169,12 @@ Specify another file please. Selected object is not a part object! - Selected object is not a part object! + Odabrani objekt nije jedan dio! Only one planar face or edge can be selected! - Only one planar face or edge can be selected! + Samo jedna ravan ili rub mogu biti odabrani @@ -2189,7 +2189,7 @@ Specify another file please. Only faces for 3D part or edges for 2D can be picked - Only faces for 3D part or edges for 2D can be picked + Samo plohe za 3D dio ili rubovi za 2D mogu se pokupiti @@ -2215,7 +2215,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Samo je jedna vrsta selekcije (vrh, ploha ili rub) po ograničenju dopuštena! @@ -2244,7 +2244,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Samo je jedna vrsta selekcije (vrh, ploha ili rub) po ograničenju dopuštena! @@ -2255,7 +2255,7 @@ Specify another file please. Select an edge or a face, please. - Select an edge or a face, please. + Molim odaberi rub ili plohu. @@ -2311,7 +2311,7 @@ Specify another file please. Selection must only consist of faces! - Selection must only consist of faces! + Odabrati možete samo plohe! @@ -2332,7 +2332,7 @@ Specify another file please. Only one face can be selected for a plane rotation constraint! - Only one face can be selected for a plane rotation constraint! + Samo jedna ploha se može odabrati za ograničenje rotacije ravnine! @@ -2456,12 +2456,12 @@ Specify another file please. Constraint update error - Constraint update error + Ograničenje greška ažuriranja The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! - The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! + Transformabilna lica su se promijenila. Molimo dodajte samo transformabilna lica i uklonite netransformabilna lica! @@ -2487,7 +2487,7 @@ Specify another file please. Only one face for rectangular transform constraint! - Only one face for rectangular transform constraint! + Samo jedno lice za pravokutno ograničenje transformacije! @@ -2498,7 +2498,7 @@ Specify another file please. Only one face for transform constraint! - Only one face for transform constraint! + Samo jedno lice za ograničenje transformacije! @@ -2513,7 +2513,7 @@ Specify another file please. Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface - Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface + Samo transformabilna lica se mogu odabrati! Prvo primjeni premještanje na površinu prije nego primjeniš ograničenje na površinu @@ -2529,7 +2529,7 @@ Specify another file please. Clip region, choose implicit function - Clip region, choose implicit function + Područje isječka, odaberi implicitnu funkciju @@ -2537,7 +2537,7 @@ Specify another file please. Function cut, choose implicit function - Function cut, choose implicit function + Funkcijski rez, odaberi implicitnu funkciju @@ -2545,7 +2545,7 @@ Specify another file please. Data along a line options - Data along a line options + Opcije za podatke uzduž linije @@ -2559,12 +2559,12 @@ Specify another file please. Data at point options - Data at point options + Opcije za podatke kod točke %1 at (%2; %3; %4) is: %5 %6 - %1 at (%2; %3; %4) is: %5 %6 + %1 kod (%2; %3; %4) je: %5 %6 @@ -2572,7 +2572,7 @@ Specify another file please. Result display options - Result display options + Opcije prikaza rezultata @@ -2580,7 +2580,7 @@ Specify another file please. Implicit function - Implicit function + Implicitna funkcija @@ -2588,7 +2588,7 @@ Specify another file please. Scalar clip options - Scalar clip options + Opcije skalarnog rezanja @@ -2596,7 +2596,7 @@ Specify another file please. Warp options - Warp options + Opcije izobličenja @@ -2688,17 +2688,17 @@ Specify another file please. use this task panel - use this task panel + koristi ovau ploču zadataka Basic Properties - Basic Properties + Osnovne postavke Density - Density + Gustina @@ -2708,7 +2708,7 @@ Specify another file please. Mechanical Properties - Mechanical Properties + Mehanička svojstva @@ -2728,12 +2728,12 @@ Specify another file please. Fluidic Properties - Fluidic Properties + Osobine tekučine Kinematic viscosity: - Kinematic viscosity: + Kinematička viskoznost: @@ -2743,12 +2743,12 @@ Specify another file please. Thermal Properties - Thermal Properties + Toplinska svojstva Thermal Conductivity: - Thermal Conductivity: + Toplinska provodljivost: @@ -2758,7 +2758,7 @@ Specify another file please. Expansion Coefficient: - Expansion Coefficient: + Koeficijent ekspanzije: @@ -2769,7 +2769,7 @@ Specify another file please. Specific Heat: - Specific Heat: + Specifična toplina: @@ -2779,12 +2779,12 @@ Specify another file please. Vol Expansion Coeff - Vol Expansion Coeff + Koeficijent toplinske ekspanzije Matrix Material - Matrix Material + Materijal matrice @@ -2819,7 +2819,7 @@ Specify another file please. Reinforcement Material - Reinforcement Material + Materijal armature @@ -2832,17 +2832,17 @@ Specify another file please. Fluid Section Parameter - Fluid Section Parameter + Parametar fluidnog presjeka Liquid Section Parameter - Liquid Section Parameter + Parametar tekućinskog presjeka Pipe Area - Pipe Area + Površina cijevi @@ -2864,33 +2864,33 @@ Specify another file please. Hydraulic Radius - Hydraulic Radius + Hidraulični polumjer Manning Coefficient - Manning Coefficient + Manning Koeficient Initial Area - Initial Area + Početna površina Enlarged Area - Enlarged Area + Povećana površina Contracted Area - Contracted Area + Površina skupljanja Inlet Pressure - Inlet Pressure + Ulazni tlak @@ -2907,13 +2907,13 @@ Specify another file please. Inlet Mass Flow Rate - Inlet Mass Flow Rate + Maseni protok ulaza Mass flow rate - Mass flow rate + Maseni protok @@ -2924,12 +2924,12 @@ Specify another file please. Outlet Pressure - Outlet Pressure + Ispusni pritisak Outlet Mass Flow Rate - Outlet Mass Flow Rate + Maseni protok ispusta @@ -2938,77 +2938,78 @@ Specify another file please. Pipe Area - Pipe Area + Područje cijevi Entrance Area - Entrance Area + Područje ulaza Diaphragm Area - Diaphragm Area + Područje membrane Bend Radius/Pipe Diameter - Bend Radius/Pipe Diameter + Polumjer savijanja/ Promjer cijevi Bend Angle - Bend Angle + Ugao savijanja Head loss coefficient - Head loss coefficient + Koeficijent gubitka tlaka Gate valve closing coefficient - Gate valve closing coefficient + Koeficijent zatvaranja vratne slavine Pump Characteristic - Pump Characteristic + Karakteristika pumpe Flow rate [mm^3/s] - Flow rate [mm^3/s] + Protok [mm^3/s] Head Loss[mm] - Head Loss[mm] + Gubitak tlaka [mm] Grain diameter - Grain diameter + Promjer zrna Cross section form factor - Cross section form factor + Koeficijent oblika poprečnog presjeka Gas Section Parameter - Gas Section Parameter + Parametri presjeka plina Open Channel Section Parameter - Open Channel Section Parameter + Parametri presjeka otvorenog kanala + Tie parameter - Tie parameter + Parameter veze @@ -3034,7 +3035,7 @@ Specify another file please. Centrif parameter - Centrif parameter + Centrifugalni parametar @@ -3048,12 +3049,12 @@ Specify another file please. Rotation frequency f<sub>rot</sub> [rps] - Rotation frequency f<sub>rot</sub> [rps] + Frekvencija rotacije f<sub>rot</sub> [rps] revolutions per second - revolutions per second + okretaja po sekundi @@ -3068,7 +3069,7 @@ Specify another file please. SectionPrint parameter - SectionPrint parameter + Parametri ispisa presjeka @@ -3079,12 +3080,12 @@ Specify another file please. Constraint Properties - Constraint Properties + Svojstva Ograničenja Body heat in W/kg: - Body heat in W/kg: + Tjelesna toplina u W/kg: @@ -3125,38 +3126,38 @@ Specify another file please. Electric potential - Electric potential + Električni potencijal To define a vector field - To define a vector field + Definira jedno vertorsko polje Vector Field - Vector Field + Vektorsko polje Imaginary part is only used for equations with a harmonic/oscillating driving force - Imaginary part is only used for equations -with a harmonic/oscillating driving force + Imaginarni dio se koristi samo za jednadžbe +s harmoničnim/oscilirajućim pogonskim silom. Real - Real + Realno Imaginary - Imaginary + Imaginarno @@ -3166,12 +3167,12 @@ with a harmonic/oscillating driving force Potential as specified above - Potential as specified above + Potencijal kao gore navedeno Imaginary part of scalar potential - Imaginary part of scalar potential + Imaginarni dio skalarnog potencijala @@ -3184,15 +3185,15 @@ with a harmonic/oscillating driving force Real part of potential x-component Note: has no effect if a solid was selected - Real part of potential x-component -Note: has no effect if a solid was selected + Realni dio potencijalne x-komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo Imaginary part of potential x-component Note: has no effect if a solid was selected - Imaginary part of potential x-component -Note: has no effect if a solid was selected + Imaginarni dio potencijalne x-komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo @@ -3205,15 +3206,15 @@ Note: has no effect if a solid was selected Real part of potential y-component Note: has no effect if a solid was selected - Real part of potential y-component -Note: has no effect if a solid was selected + Realni dio potencijalne -komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo Imaginary part of potential y-component Note: has no effect if a solid was selected - Imaginary part of potential y-component -Note: has no effect if a solid was selected + Imaginarni dio potencijalne y-komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo @@ -3226,67 +3227,67 @@ Note: has no effect if a solid was selected Real part of potential z-component Note: has no effect if a solid was selected - Real part of potential z-component -Note: has no effect if a solid was selected + Realni dio potencijalne z-komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo Imaginary part of potential z-component Note: has no effect if a solid was selected - Imaginary part of potential z-component -Note: has no effect if a solid was selected + Imaginarni dio potencijalne z-komponente +Napomena: nema utjecaja ako je odabrano volumensko tijelo Whether the constraint defines a constant potential - Whether the constraint defines a constant potential + Da li je ograničenje definirano konstantnim potencijalom Potential Constant - Potential Constant + Konstantni potencijal Whether the constraint defines a farfield potential - Whether the constraint defines a farfield potential + Da li je ograničenje definirano Fairfeld potencijalom Farfield / Electric infinity - Farfield / Electric infinity + Farfield / Electric infinity (beskonačno) Whether the constraint is for the electric force - Whether the constraint is for the electric force + Je li ograničenje za električnu silu Calculate Electric Force - Calculate Electric Force + Izračunaj električnu silu Capacity Body: Enabled by 'Calculate Capacity Matrix' in Electrostatic equation - Capacity Body: + Tijelo kapaciteta: Counter of the body (or face) with a capacitance - Counter of the body (or face) with a capacitance + Brojač tijela (ili lica) s capacitivnošću Beam section parameter - Beam section parameter + Parametri presjeka grede Cross section parameter - Cross section parameter + Parametar poprečnog presjeka @@ -3314,7 +3315,7 @@ Note: has no effect if a solid was selected Shell thickness parameter - Shell thickness parameter + Parametar debljine ljuske @@ -3324,7 +3325,7 @@ Note: has no effect if a solid was selected Beam section rotation - Beam section rotation + Rotacija presjeka grede @@ -3344,7 +3345,7 @@ Note: has no effect if a solid was selected formula - formula + formula @@ -3367,7 +3368,7 @@ Note: has no effect if a solid was selected Mesh boundary layer settings - Mesh boundary layer settings + Postavke mreže za granični sloj @@ -3377,7 +3378,7 @@ Note: has no effect if a solid was selected Min/1st thickness - Min/1st thickness + Min/1. debljina @@ -3412,7 +3413,7 @@ Note: has no effect if a solid was selected Max element size: - Max element size: + Maksimalna veličina elementa: @@ -3422,7 +3423,7 @@ Note: has no effect if a solid was selected Current density: - Current density: + Trenutna gustoća: @@ -3430,10 +3431,10 @@ Note: has no effect if a solid was selected Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Real part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + Realni dio potencijala x-komponente +Napomena: ako je izabrana stranica, ovo će biti vrijednost + u normalnom pravcu na stranicu + podešavanja za y i z će biti zanemarena @@ -3441,70 +3442,70 @@ Note: if a face was selected this will be the value Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Imaginary part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + Imaginarni dio potencijala x-komponente +Napomena: ako je izabrana stranica, ovo će biti vrijednost + u normalnom pravcu na stranicu + podešavanja za y i z će biti zanemarena Real part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Real part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + Realni dio potencijala y-komponente +Napomena: u 2D je moguće samo podešavanje za x + podešavanja za y će biti zanemarena Imaginary part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Imaginary part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + Imaginarni dio potencijala y-komponente +Napomena: u 2D je moguće samo podešavanje za x + podešavanja za y će biti zanemarena Magnetization - Magnetization + Magnetizacija Real part of potential x-component - Real part of potential x-component + Realni dio potencijala x-komponente Imaginary part of potential x-component - Imaginary part of potential x-component + Imaginarni dio potencijala x-komponente Real part of potential y-component - Real part of potential y-component + Realni dio potencijala y-komponente Imaginary part of potential y-component - Imaginary part of potential y-component + Imaginarni dio potencijala y-komponente Real part of potential z-component - Real part of potential z-component + Realni dio potencijala z-komponente Imaginary part of potential z-component - Imaginary part of potential z-component + Imaginarni dio potencijala z-komponente Normal to boundary - Normal to boundary + Okomito na granicu @@ -3512,17 +3513,17 @@ Note: for 2D only setting for x is possible, FEM Mesh by Gmsh - FEM Mesh by Gmsh + FEM mreža pomoću Gmsh FEM Mesh Parameter - FEM Mesh Parameter + FEM mreža Parametar Element dimension: - Element dimension: + Dimenzija elementa: @@ -3543,7 +3544,7 @@ Note: for 2D only setting for x is possible, Element order: - Element order: + Red elementa: @@ -3558,7 +3559,7 @@ Note: for 2D only setting for x is possible, Gmsh version - Gmsh version + Gmsh verzija @@ -3675,7 +3676,7 @@ Note: for 2D only setting for x is possible, Constraint Contact - Constraint Contact + Kontaktno Ograničenje @@ -3690,12 +3691,12 @@ Note: for 2D only setting for x is possible, Constraint fluid boundary - Constraint fluid boundary + Granica fluida s ograničenjem Constraint heat flux - Constraint heat flux + Ograničenje toplinskog toka @@ -3705,7 +3706,7 @@ Note: for 2D only setting for x is possible, Constraint planerotation - Constraint planerotation + Ograničenja rotacija ravnine @@ -3735,7 +3736,7 @@ Note: for 2D only setting for x is possible, Edit post processing object - Edit post processing object + Uredi postprocesiranje objekta @@ -3760,12 +3761,12 @@ Note: for 2D only setting for x is possible, Volumes - Volumes + Zapremine Polyhedrons - Polyhedrons + Poliedri @@ -3833,17 +3834,17 @@ Note: for 2D only setting for x is possible, Max Shear Stress (Tresca) - Max Shear Stress (Tresca) + Maksimalno smično naprezanje (Tresca) Equivalent Plastic Strain - Equivalent Plastic Strain + Ekvivalentno Plastično naprezanje Mass Flow Rate - Mass Flow Rate + Maseni Protok @@ -3900,9 +3901,9 @@ Note: for 2D only setting for x is possible, Runs the equation given in the field below, outputs the results to the Min and Max fields and colors the result mesh accordingly - Runs the equation given in the field below, -outputs the results to the Min and Max fields -and colors the result mesh accordingly + Pokreni jednadžbu danu u polju ispod, +ispišite rezultate u polja Min i Max +i obojte rezultirajuću mrežu u skladu s tim @@ -3913,28 +3914,28 @@ and colors the result mesh accordingly Enter here an equation to be calculated. For possible variables, see the description box below. - Enter here an equation to be calculated. -For possible variables, see the description box below. + Unesi ovdje jednadžbu koju treba izračunati. +Za moguće varijable, pogledaj okvir za opis ispod. P1 - P3 # Max - Min Principal Stress - P1 - P3 # Max - Min Principal Stress + P1 - P3 # Max - Min. Glavno naprezanje Hints user defined equations - Hints user defined equations + Savjeti za pisanje korisničkih definiranih jednadžbi Available result types: - Available result types: + Dostupne vrste rezultata: displacement: x, y, z - displacement: x, y, z + premještanje: x, y, z @@ -3944,7 +3945,7 @@ For possible variables, see the description box below. stress: sxx, syy, szz, sxy, sxz, syz - stress: sxx, syy, szz, sxy, sxz, syz + naprezanje: sxx, syy, szz, sxy, sxz, syz @@ -3954,47 +3955,47 @@ For possible variables, see the description box below. strain: exx, eyy, ezz, exy, exz, eyz - strain: exx, eyy, ezz, exy, exz, eyz + deformacija: exx, eyy, ezz, exy, exz, eyz mass flow rate: MF - mass flow rate: MF + maseni protok: MF von Mises stress: vM - von Mises stress: vM + von Mises naprezanje: vM max shear stress: MS - max shear stress: MS + max. smično naprezanje: MS max princ. stress vector: s3x, s3y, s3z - max princ. stress vector: s3x, s3y, s3z + max. glavno naprezanje vektor: s3x, s3y, s3z max principal stress: P1 - max principal stress: P1 + max. glavno naprezanje: P1 med princ. stress vector: s2x, s2y, s2z - med princ. stress vector: s2x, s2y, s2z + srednje glavno naprezanje vektor: s2x, s2y, s2z med principal stress: P2 - med principal stress: P2 + srednje glavno naprezanje: P2 min princ. stress vector: s1x, s1y, s1z - min princ. stress vector: s1x, s1y, s1z + min. glavno naprezanje vektor: s1x, s1y, s1z @@ -4004,17 +4005,17 @@ For possible variables, see the description box below. reinforcement ratio: rx, ry, rz - reinforcement ratio: rx, ry, rz + omjer armiranja: rx, ry, rz Mohr Coulomb: mc - Mohr Coulomb: mc + Mohr Coulomb: mc equivalent plastic strain: Peeq - equivalent plastic strain: Peeq + ekvivalentno plastično naprezanje: Peeq @@ -4047,17 +4048,17 @@ For possible variables, see the description box below. Thermo mechanical - Thermo mechanical + Termo mehaničko Check Mesh - Check Mesh + Provjeri mrežu Buckling - Buckling + Ugibanje @@ -4072,7 +4073,7 @@ For possible variables, see the description box below. Run CalculiX - Run CalculiX + Pokreni CalculiX @@ -4189,7 +4190,7 @@ For possible variables, see the description box below. Collect adjacent nodes - Collect adjacent nodes + Skupite susjedne čvorove @@ -4363,12 +4364,12 @@ For possible variables, see the description box below. Contact Stiffness - Contact Stiffness + Krutost kontakta Friction coefficient - Friction coefficient + Koeficijent trenja @@ -4414,15 +4415,14 @@ For possible variables, see the description box below. Formulas are only valid for the Elmer solver - Formulas are only valid -for the Elmer solver + Formule su samo valjane za Elmerov rješavač Formula - Formula + Formula @@ -4445,15 +4445,15 @@ for the Elmer solver surface force (and thus displacement) generated by the flow (Option only applies for Elmer solver) - Flow solution is used to determine -surface force (and thus displacement) -generated by the flow -(Option only applies for Elmer solver) + Rješavanje protoka se koristi +za određivanje površinske sile + (i time pomaka) generirane strujom +(Opcija vrijedi samo za Elmerov rješavač) Surface force by flow - Surface force by flow + Površinska sila kod protoka @@ -4549,7 +4549,7 @@ generated by the flow Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + Odaberite planarni rub ili površinu, a zatim pritisnite ovaj gumb @@ -4560,8 +4560,8 @@ generated by the flow The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the -normal vector of the face is used as direction + Smjer ruba ili smjer normalnog +vektora površine koristi se kao smjer @@ -4576,7 +4576,7 @@ normal vector of the face is used as direction Turbulence specification - Turbulence specification + Specifikacija turbulencije @@ -4606,12 +4606,12 @@ normal vector of the face is used as direction Heat flux [W/m2] - Heat flux [W/m2] + Tok topline [W/m2] HT coeff - HT coeff + HT coeff @@ -4619,7 +4619,7 @@ normal vector of the face is used as direction Prescribed Force - Prescribed Force + Propisana sila @@ -4644,7 +4644,7 @@ normal vector of the face is used as direction Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + Odaberite planarni rub ili površinu, a zatim pritisnite ovaj gumb @@ -4655,8 +4655,8 @@ normal vector of the face is used as direction The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the -normal vector of the face is used as direction + Smjer ruba ili smjer normalnog +vektora površine koristi se kao smjer @@ -4669,7 +4669,7 @@ normal vector of the face is used as direction TaskFemConstraintHeatflux - TaskFemConstraintHeatflux + TaskFemConstraintHeatflux @@ -4689,18 +4689,18 @@ normal vector of the face is used as direction Surface Convection - Surface Convection + Konvekcija površine Surface heat flux - Surface heat flux + Tok toplinena površini Film coefficient - Film coefficient + Koeficijent filma @@ -4822,24 +4822,24 @@ normal vector of the face is used as direction Normal Stiffness - Normal Stiffness + Normalna krutost Stiffness for Elmer - Stiffness for Elmer + Krutost za Elmer What stiffness should be used for the Elmer solver - What stiffness should be -used for the Elmer solver + Koja krutost bi se trebala +koristiti za Elmerov rješavač Tangential Stiffness - Tangential Stiffness + Tangencijalna krutost @@ -4873,7 +4873,7 @@ used for the Elmer solver Concentrated heat flux - Concentrated heat flux + Koncentrirani toplinski tok @@ -4886,12 +4886,12 @@ used for the Elmer solver Rectangular transform - Rectangular transform + Pravokutna transformacija Cylindrical transform - Cylindrical transform + Cilindrična transformacija @@ -4911,23 +4911,23 @@ used for the Elmer solver Rotation about X-Axis - Rotation about X-Axis + Rotacija oko X-osi Rotation about Y-Axis - Rotation about Y-Axis + Rotacija oko Y-osi Rotation about Z-Axis - Rotation about Z-Axis + Rotacija oko Z-osi Transformable surfaces - Transformable surfaces + Promjenjive Površine @@ -4958,7 +4958,7 @@ used for the Elmer solver Cut Cells - Cut Cells + Izrez Ćelija @@ -4984,7 +4984,7 @@ used for the Elmer solver Coordinates - Coordinates + Koordinate @@ -5004,12 +5004,12 @@ used for the Elmer solver Point 1 - Point 1 + Točka 1 Point 2 - Point 2 + Točka 2 @@ -5108,7 +5108,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Površina sa rubovima @@ -5119,7 +5119,7 @@ used for the Elmer solver Coloring - Coloring + Bojanje @@ -5134,7 +5134,7 @@ used for the Elmer solver Magnitute - Magnitute + Magnituda @@ -5154,7 +5154,7 @@ used for the Elmer solver Styling - Styling + Stiliranje @@ -5187,7 +5187,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Površina sa rubovima @@ -5197,22 +5197,22 @@ used for the Elmer solver Min scalar - Min scalar + Min. skalar Clip scalar - Clip scalar + Isječak skalara Max scalar - Max scalar + Max. skalar Clip inside out - Clip inside out + Izrezak obrnuti @@ -5230,22 +5230,22 @@ used for the Elmer solver warp vectors - warp vectors + vektor izobličenja Min warp - Min warp + Min. Izobličenje Warp factor - Warp factor + Faktor izobličenja Max warp - Max warp + Max. Izobličenje @@ -5333,7 +5333,7 @@ used for the Elmer solver Tetrahedron count: - Tetrahedron count: + Broj tetraedara: @@ -5389,117 +5389,119 @@ used for the Elmer solver &Elektrostatička ograničenja - + Fluid Constraints Ograničenja tekućine - + &Fluid Constraints &Ograničenja tekućine - - Electromagnetic Constraints - Electromagnetic Constraints - - - - &Electromagnetic Constraints - &Electromagnetic Constraints - - + + Electromagnetic Constraints + Elektromagnetna ograničenja + + + + + &Electromagnetic Constraints + &Elektromagnetna ograničenja + + + Geometrical Constraints Geometrijska ograničenja - + &Geometrical Constraints &Geometrijska ograničenja - + Mechanical Constraints Mehanička ograničenja - + &Mechanical Constraints &Mehanička ograničenja - + Thermal Constraints Toplinska ograničenja - + &Thermal Constraints &Toplinska ograničenja - + Constraints without solver Ograničenja bez alata za rješavanje - + &Constraints without solver &Ograničenja bez alata za rješavanje - + Overwrite Constants Prepiši konstante - + &Overwrite Constants &Prepiši konstante - + Mesh Mreža - + M&esh Mr&eža - + Solve Riješi - + &Solve &Riješi - + Results Rezultati - + &Results &Rezultati - + Filter functions Funkcije filtra - + &Filter functions &Funkcije filtra - + Utilities Uslužni programi @@ -5509,20 +5511,20 @@ used for the Elmer solver Error: A filter can only be applied to a single object. - Error: A filter can only be applied to a single object. + Greška: Filter se može primijeniti samo na jedan objekt. The filter could not be set up. - The filter could not be set up. + Nije moguće postaviti filter. Error: no post processing object selected. - Error: no post processing object selected. + Greška: Nije odabran nijedan objekt za naknadnu obradu @@ -5530,12 +5532,12 @@ used for the Elmer solver Analysis container - Analysis container + Spremnik Analize Creates an analysis container with default solver - Creates an analysis container with default solver + Stvara jedan kontejner analize s zadanim rješavačem @@ -5543,12 +5545,12 @@ used for the Elmer solver Clipping plane on face - Clipping plane on face + Isječak ravnine na površini Add a clipping plane on a selected face - Add a clipping plane on a selected face + Dodavanje isječka ravnine na odabranom licu @@ -5557,7 +5559,7 @@ used for the Elmer solver Remove all clipping planes - Remove all clipping planes + Uklonite sve isječke ravnine @@ -5570,7 +5572,7 @@ used for the Elmer solver Creates a FEM constant vacuum permittivity to overwrite standard value - Creates a FEM constant vacuum permittivity to overwrite standard value + Stvara FEM konstantu permitivnost vakuuma kojom se prepisuje standardna vrijednost @@ -5578,12 +5580,12 @@ used for the Elmer solver Constraint body heat source - Constraint body heat source + Ograničenje izvora tjelesne topline Creates a FEM constraint body heat source - Creates a FEM constraint body heat source + Stvara FEM ograničenja izvora tjelesne topline @@ -5591,12 +5593,14 @@ used for the Elmer solver Constraint centrif - Constraint centrif + + +Ograničenje centrifugalnog naprezanja Creates a FEM constraint centrif - Creates a FEM constraint centrif + Stvara FEM ograničenje centrifugalnog naprezanja @@ -5604,12 +5608,12 @@ used for the Elmer solver Constraint electrostatic potential - Constraint electrostatic potential + Ograničenja elektrostatskog potencijala Creates a FEM constraint electrostatic potential - Creates a FEM constraint electrostatic potential + Stvara FEM ograničenje elektrostatskog potencijala @@ -5617,12 +5621,12 @@ used for the Elmer solver Constraint flow velocity - Constraint flow velocity + Ograničenja brzine protoka Creates a FEM constraint flow velocity - Creates a FEM constraint flow velocity + Stvara FEM ograničenje brzine protoka @@ -5630,12 +5634,12 @@ used for the Elmer solver Constraint initial flow velocity - Constraint initial flow velocity + Ograničenja brzine početnog protoka Creates a FEM constraint initial flow velocity - Creates a FEM constraint initial flow velocity + Stvara FEM ograničenje početne brzine protoka @@ -5643,12 +5647,12 @@ used for the Elmer solver Constraint initial pressure - Constraint initial pressure + Ograničenje početnog tlaka Creates a FEM constraint initial pressure - Creates a FEM constraint initial pressure + Stvara FEM ograničenje početnog tlaka @@ -5656,12 +5660,12 @@ used for the Elmer solver Constraint sectionprint - Constraint sectionprint + Ograničenje presjeka ispisa Creates a FEM constraint sectionprint - Creates a FEM constraint sectionprint + Stvara FEM ograničenje presjeka ispisa @@ -5669,12 +5673,12 @@ used for the Elmer solver Constraint self weight - Constraint self weight + Ograničenje vlastite težine Creates a FEM constraint self weight - Creates a FEM constraint self weight + Stvara FEM ograničenje vlastite težine @@ -5682,12 +5686,12 @@ used for the Elmer solver Constraint tie - Constraint tie + Ograničenje poveza Creates a FEM constraint tie - Creates a FEM constraint tie + Stvara FEM ograničenje poveza @@ -5695,12 +5699,12 @@ used for the Elmer solver Fluid section for 1D flow - Fluid section for 1D flow + Tekući dio za 1D protok Creates a FEM fluid section for 1D flow - Creates a FEM fluid section for 1D flow + Stvara FEM tekući dio za 1D protok @@ -5708,12 +5712,12 @@ used for the Elmer solver Beam cross section - Beam cross section + Poprečni presjek nosača Creates a FEM beam cross section - Creates a FEM beam cross section + Stvara FEM poprečni presjek nosača @@ -5721,12 +5725,12 @@ used for the Elmer solver Shell plate thickness - Shell plate thickness + Debljina ljuske ploče Creates a FEM shell plate thickness - Creates a FEM shell plate thickness + Stvara FEM debljinu ljuske ploče @@ -5734,12 +5738,12 @@ used for the Elmer solver Beam rotation - Beam rotation + Rotacija nosača Creates a FEM beam rotation - Creates a FEM beam rotation + Stvara FEM rotaciju nosača @@ -5747,12 +5751,12 @@ used for the Elmer solver Electrostatic equation - Electrostatic equation + Elektrostatička jednadžba Creates a FEM equation for electrostatic - Creates a FEM equation for electrostatic + Stvara FEM jednadžbe za elektrostatiku @@ -5760,14 +5764,14 @@ used for the Elmer solver Elasticity equation - Elasticity equation + Jednadžba Elastičnosti Creates a FEM equation for elasticity (stress) - Creates a FEM equation for - elasticity (stress) + Stvara FEM jednadžbe za + elastičnost (naprezanje) @@ -5775,12 +5779,12 @@ used for the Elmer solver Flow equation - Flow equation + Jednadžba Protoka Creates a FEM equation for flow - Creates a FEM equation for flow + Stvara FEM jednadžbe za protok @@ -5788,12 +5792,12 @@ used for the Elmer solver Flux equation - Flux equation + Jednadžba Toka Creates a FEM equation for flux - Creates a FEM equation for flux + Stvara FEM jednadžbu za tok @@ -5806,7 +5810,7 @@ used for the Elmer solver Creates a FEM equation for electric forces - Creates a FEM equation for electric forces + Stvori FEM Jednadžbu električne sile @@ -5814,12 +5818,12 @@ used for the Elmer solver Heat equation - Heat equation + Jednadžba Topline Creates a FEM equation for heat - Creates a FEM equation for heat + Stvara FEM jednadžbe za toplinu @@ -5828,7 +5832,7 @@ used for the Elmer solver Open FEM examples - Open FEM examples + Otvori FEM primjere @@ -5836,12 +5840,12 @@ used for the Elmer solver Material editor - Material editor + Uređivač Materijala Opens the FreeCAD material editor - Opens the FreeCAD material editor + Otvara FreeCAD uređivač materijala @@ -5849,12 +5853,12 @@ used for the Elmer solver Material for fluid - Material for fluid + Materijal za tekućine Creates a FEM material for fluid - Creates a FEM material for fluid + Stvara FEM materijal za tekučinu @@ -5862,12 +5866,12 @@ used for the Elmer solver Nonlinear mechanical material - Nonlinear mechanical material + Nelinearni mehanički materijal Creates a nonlinear mechanical material - Creates a nonlinear mechanical material + Stvori nelinearni mehanički materijal @@ -5875,12 +5879,12 @@ used for the Elmer solver Reinforced material (concrete) - Reinforced material (concrete) + Armirani materijal (beton) Creates a material for reinforced matrix material such as concrete - Creates a material for reinforced matrix material such as concrete + Stvori materijal za ojačani složeni materijal kao što je beton @@ -5888,12 +5892,12 @@ used for the Elmer solver Material for solid - Material for solid + Materijal za kruto tijelo Creates a FEM material for solid - Creates a FEM material for solid + Stvara FEM materijal za kruto tijelo @@ -5901,12 +5905,12 @@ used for the Elmer solver FEM mesh to mesh - FEM mesh to mesh + FEM mreža do mreže Convert the surface of a FEM mesh to a mesh - Convert the surface of a FEM mesh to a mesh + Pretvoriti površinu FEM mreže u mrežu @@ -5914,12 +5918,12 @@ used for the Elmer solver FEM mesh boundary layer - FEM mesh boundary layer + FEM sloj ruba granice mreže Creates a FEM mesh boundary layer - Creates a FEM mesh boundary layer + Stvara granični sloj FEM mreže @@ -5927,12 +5931,12 @@ used for the Elmer solver Clear FEM mesh - Clear FEM mesh + Izbriši FEM mreže Clear the Mesh of a FEM mesh object - Clear the Mesh of a FEM mesh object + Brisanje mreže FEM mrežnog objekta @@ -5941,7 +5945,7 @@ used for the Elmer solver Display FEM mesh info - Display FEM mesh info + Prikaz informacija o FEM mreži @@ -5949,12 +5953,12 @@ used for the Elmer solver FEM mesh from shape by Gmsh - FEM mesh from shape by Gmsh + FEM mreža od oblika po Gmsh Create a FEM mesh from a shape by Gmsh mesher - Create a FEM mesh from a shape by Gmsh mesher + Napravite FEM mrežu iz oblika pomoću Gmsh mreženja @@ -5962,12 +5966,12 @@ used for the Elmer solver FEM mesh group - FEM mesh group + FEM grupa mreže Creates a FEM mesh group - Creates a FEM mesh group + Stvara grupu FEM mreže @@ -5975,12 +5979,12 @@ used for the Elmer solver FEM mesh from shape by Netgen - FEM mesh from shape by Netgen + FEM mreža od Netgen forme Create a FEM mesh from a solid or face shape by Netgen internal mesher - Create a FEM mesh from a solid or face shape by Netgen internal mesher + Kreiranje FEM mreže iz krutog tijela ili oblika lica uz pomoć Netgenovog internog kreatora mreža @@ -5988,12 +5992,12 @@ used for the Elmer solver FEM mesh region - FEM mesh region + FEM područje mreže Creates a FEM mesh region - Creates a FEM mesh region + Stvara FEM područje mreže @@ -6006,7 +6010,7 @@ used for the Elmer solver Shows and visualizes selected result data - Shows and visualizes selected result data + Pokazuje i vizualizira odabrane rezultate podataka @@ -6014,12 +6018,12 @@ used for the Elmer solver Purge results - Purge results + Brisanje rezultata Purges all results from active analysis - Purges all results from active analysis + Briše sve rezultate iz aktivne analize @@ -6027,12 +6031,12 @@ used for the Elmer solver Solver CalculiX Standard - Solver CalculiX Standard + Alat za rješavanje CalculiX Standard Creates a standard FEM solver CalculiX with ccx tools - Creates a standard FEM solver CalculiX with ccx tools + Stvara standardni FEM CalculiX rješavač sa ccx alatom @@ -6040,12 +6044,12 @@ used for the Elmer solver Solver job control - Solver job control + Kontrola posla rješavača Changes solver attributes and runs the calculations for the selected solver - Changes solver attributes and runs the calculations for the selected solver + Mijenja atribute rješavača i izvodi izračune za odabrani alat za rješavanje @@ -6053,12 +6057,12 @@ used for the Elmer solver Solver Elmer - Solver Elmer + Alat za rješavanje Elmer Creates a FEM solver Elmer - Creates a FEM solver Elmer + Stvara FEM rješavača Elmer @@ -6066,12 +6070,12 @@ used for the Elmer solver Solver Mystran - Solver Mystran + Alat za rješavanje Mystran Creates a FEM solver Mystran - Creates a FEM solver Mystran + Stvara FEM rješavač Mystran @@ -6079,12 +6083,12 @@ used for the Elmer solver Run solver calculations - Run solver calculations + Pokrenuti rješavanje izračuna Runs the calculations for the selected solver - Runs the calculations for the selected solver + Izvodi izračune sa odabranim alatom za rješavanje @@ -6092,12 +6096,12 @@ used for the Elmer solver Solver Z88 - Solver Z88 + Rješavač Z88 Creates a FEM solver Z88 - Creates a FEM solver Z88 + Stvara FEM rješavača Z88 @@ -6105,18 +6109,18 @@ used for the Elmer solver Solver Control - Solver Control + Kontrola Rješavača Working Directory - Working Directory + Radni Direktorij Write - Write + Pisanje @@ -6129,7 +6133,7 @@ used for the Elmer solver Elapsed Time: - Elapsed Time: + Proteklo vrijeme: @@ -6141,17 +6145,17 @@ used for the Elmer solver Re-write - Re-write + Ponovo zapiši Re-run - Re-run + Ponovno pokreni Abort - Abort + Prekini @@ -6172,12 +6176,12 @@ used for the Elmer solver Select Faces/Edges/Vertexes - Select Faces/Edges/Vertexes + Odaberite Površine/Rubove/Vrhove To add references: select them in the 3D view and click "Add". - To add references: select them in the 3D view and click "Add". + Za dodavanje referenci: odaberite ih u 3D prikazu i kliknite "Dodaj". @@ -6185,12 +6189,12 @@ used for the Elmer solver Select Solids - Select Solids + Odaberite Čvrsto tijelo Select elements part of the solid that shall be added to the list. To add the solid click "Add". - Select elements part of the solid that shall be added to the list. To add the solid click "Add". + Odaberite elemente, dijelove krutog tijela koji će se dodati popisu. Da biste dodali kruto tijelo, kliknite "Dodaj". @@ -6198,7 +6202,7 @@ used for the Elmer solver Geometry reference selector for a {} - Geometry reference selector for a {} + Odabir referentne geometrije za {} @@ -6208,17 +6212,17 @@ used for the Elmer solver Click on "Add" and select geometric elements to add them to the list.{}The following geometry elements can be selected: {}{}{} - Click on "Add" and select geometric elements to add them to the list.{}The following geometry elements can be selected: {}{}{} + Kliknite na "Dodaj" i odaberite geometrijske elemente da biste ih dodali na popis.{}Sljedeće geometrijske elemente je moguće odabrati: {}{}{} {}If no geometry is added to the list, all remaining ones are used. - {}If no geometry is added to the list, all remaining ones are used. + {}Ako na popis nije dodana geometrija, koriste se sve preostale. Selection mode - Selection mode + Način odabira @@ -6256,7 +6260,7 @@ used for the Elmer solver Max Shear Stress - Max Shear Stress + Max. Smično naprezanje @@ -6271,7 +6275,7 @@ used for the Elmer solver Mass Flow Rate - Mass Flow Rate + Maseni Protok @@ -6286,7 +6290,7 @@ used for the Elmer solver Equivalent Plastic Strain - Equivalent Plastic Strain + Ekvivalentno Plastično naprezanje @@ -6297,13 +6301,14 @@ used for the Elmer solver No histogram available. Please select a result type first. - No histogram available. -Please select a result type first. + Nije dostupan histogram. +Molimo odaberite vrstu rezultata prvo. + Histogram of {} - Histogram of {} + Histogram od {} @@ -6313,13 +6318,13 @@ Please select a result type first. Empty result mesh - Empty result mesh + Isprazni rezultate mreže No result object - No result object + Nema objekta rezultata @@ -6327,12 +6332,12 @@ Please select a result type first. Constraint current density - Constraint current density + Ograničenje gustoće struje Creates a FEM constraint current density - Creates a FEM constraint current density + Stvara FEM ograničenje gustoće struje @@ -6340,14 +6345,14 @@ Please select a result type first. Magnetodynamic2D equation - Magnetodynamic2D equation + Magnetodinamička 2D jednadžba Creates a FEM equation for 2D magnetodynamic forces - Creates a FEM equation for - 2D magnetodynamic forces + Stvara FEM jednadžbu za +2D magnetodinamičke sile @@ -6361,7 +6366,7 @@ Please select a result type first. Electromagnetic constraints - Electromagnetic constraints + Elektromagnetna ograničenja @@ -6369,12 +6374,12 @@ Please select a result type first. Constraint magnetization - Constraint magnetization + Ograničenje magnetizacije Creates a FEM constraint magnetization - Creates a FEM constraint magnetization + Stvara FEM ograničenje magnetizacije @@ -6382,14 +6387,14 @@ Please select a result type first. Magnetodynamic equation - Magnetodynamic equation + Magnetodinamička jednadžba Creates a FEM equation for magnetodynamic forces - Creates a FEM equation for - magnetodynamic forces + Stvara FEM jednadžbu za +magnetodinamičke sile @@ -6402,22 +6407,22 @@ Please select a result type first. Vector: - Vector: + Vektor: Field: - Field: + Polje: Contour lines will not be colored - Contour lines will not be colored + Konturne linije neće biti obojene No color - No color + Bez boje @@ -6430,12 +6435,12 @@ Please select a result type first. Electromagnetic equations - Electromagnetic equations + Elektromagnetne jednadžbe Electromagnetic equations for the Elmer solver - Electromagnetic equations for the Elmer solver + Elektromagnetne jednadžbe za Elmer alat za rješavanje @@ -6448,12 +6453,12 @@ Please select a result type first. Contours filter - Contours filter + Filter konture Define/create a contours filter which displays iso contours - Define/create a contours filter which displays iso contours + Definiraj/stvori filter kontura koji prikazuje ISO konture @@ -6461,7 +6466,7 @@ Please select a result type first. Contours filter options - Contours filter options + Opcije filtera kontura @@ -6469,14 +6474,14 @@ Please select a result type first. Deformation equation - Deformation equation + Jednadžba deformacije Creates a FEM equation for deformation (nonlinear elasticity) - Creates a FEM equation for - deformation (nonlinear elasticity) + Stvara FEM jednadžbu za + deformaciju (nelinearni elasticitet) @@ -6570,12 +6575,12 @@ Please select a result type first. Mechanical equations - Mechanical equations + Mehaničke jednadžbe Mechanical equations for the Elmer solver - Mechanical equations for the Elmer solver + Mehaničke jednadžbe za Elmer alat za rješavanje @@ -6583,12 +6588,12 @@ Please select a result type first. Solver CalculiX (new framework) - Solver CalculiX (new framework) + Alat za rješavanje CalculiX (new framework) Creates a FEM solver CalculiX new framework (less result error handling) - Creates a FEM solver CalculiX new framework (less result error handling) + Stvori FEM alat za rješavanje CalculiX new framework (manje rukovanje pogreškama rezultata) diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts index c368a08749..2745d5cc1f 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts @@ -3484,7 +3484,7 @@ Megjegyzés: 2D esetén csak az x beállítása lehetséges, Normal to boundary - Aktuális a határra + Merőleges a határra @@ -5368,117 +5368,119 @@ az Elmer megoldóhoz &Elektrosztatikus kötések - + Fluid Constraints Folyadék kényszerítések - + &Fluid Constraints &Folyadék kényszerítések - + + Electromagnetic Constraints Elektromágneses kényszerítések - + + &Electromagnetic Constraints &Elektromágneses kényszerítések - + Geometrical Constraints Geometriai kényszerítések - + &Geometrical Constraints &Geometriai kényszerítések - + Mechanical Constraints Mechanikai kényszerítések - + &Mechanical Constraints &Mechanikai kényszerítések - + Thermal Constraints Hőmérséklet kényszerítések - + &Thermal Constraints &Hőmérséklet kényszerítések - + Constraints without solver Kényszerítések megoldó nélkül - + &Constraints without solver &Kényszerítések megoldó nélkül - + Overwrite Constants Fellülíró kényszerítések - + &Overwrite Constants &Fellülíró kényszerítések - + Mesh Háló - + M&esh &Háló - + Solve Megoldás - + &Solve &Megoldás - + Results Eredmények - + &Results &Eredmény - + Filter functions Szűrési funkciók - + &Filter functions Szűrési &funkció - + Utilities Kiegészítők diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts index 8bf4c96bd4..fd84d9ab6b 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts @@ -1138,7 +1138,7 @@ Specificare un altro file, per favore. FEM Elmer: Not suitable for multithreading - FEM Elmer: Not suitable for multithreading + FEM Elmer: Non adatto per multithreading @@ -1342,7 +1342,7 @@ when the results dialog is opened Default solver - Default solver + Risolutore predefinito @@ -2880,7 +2880,7 @@ Specificare un altro file, per favore. Contracted Area - Contracted Area + Area Contrattata @@ -3043,7 +3043,7 @@ Specificare un altro file, per favore. Rotation frequency f<sub>rot</sub> [rps] - Rotation frequency f<sub>rot</sub> [rps] + Frequenza di rotazione f<sub>rot</sub> [rps] @@ -3307,7 +3307,7 @@ Nota: non ha effetto se è stato selezionato un solido Shell thickness parameter - Shell thickness parameter + Parametro spessore guscio @@ -3415,7 +3415,7 @@ Nota: non ha effetto se è stato selezionato un solido Current density: - Current density: + Densità attuale: @@ -4040,7 +4040,7 @@ Per le variabili possibili, vedere la casella di descrizione qui sotto. Thermo mechanical - Thermo mechanical + Termo meccanico @@ -4415,7 +4415,7 @@ per il risolutore Elmer Formula - Formula + Formula @@ -5101,7 +5101,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Superficie con bordi @@ -5180,7 +5180,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Superficie con bordi @@ -5382,117 +5382,119 @@ used for the Elmer solver &Vincoli Elettrostatici - + Fluid Constraints Vincoli dei Fluidi - + &Fluid Constraints &Vincoli dei Fluidi - - Electromagnetic Constraints - Electromagnetic Constraints - - - - &Electromagnetic Constraints - &Electromagnetic Constraints - - + + Electromagnetic Constraints + Vincoli Elettromagnetici + + + + + &Electromagnetic Constraints + &Vincoli Elettromagnetici + + + Geometrical Constraints Vincoli Geometrici - + &Geometrical Constraints &Vincoli Geometrici - + Mechanical Constraints Vincoli Meccanici - + &Mechanical Constraints &Vincoli Meccanici - + Thermal Constraints Vincoli Termici - + &Thermal Constraints &Vincoli Termici - + Constraints without solver Vincoli senza risolutore - + &Constraints without solver &Vincoli senza risolutore - + Overwrite Constants Sovrascrivi Costanti - + &Overwrite Constants S&Ovrascrivi costanti - + Mesh Mesh - + M&esh M&esh - + Solve Risolvi - + &Solve Ri&solvi - + Results Risultati - + &Results &Risultati - + Filter functions Funzioni di filtro - + &Filter functions &Funzioni di filtro - + Utilities Utilità @@ -5536,7 +5538,7 @@ used for the Elmer solver Clipping plane on face - Clipping plane on face + Piano di ritaglio sulla faccia @@ -5623,12 +5625,12 @@ used for the Elmer solver Constraint initial flow velocity - Constraint initial flow velocity + Vincolo velocità di flusso iniziale Creates a FEM constraint initial flow velocity - Creates a FEM constraint initial flow velocity + Crea un vincolo FEM per la velocità di flusso iniziale @@ -5636,12 +5638,12 @@ used for the Elmer solver Constraint initial pressure - Constraint initial pressure + Vincolo pressione iniziale Creates a FEM constraint initial pressure - Creates a FEM constraint initial pressure + Crea un vincolo FEM pressione iniziale @@ -5701,12 +5703,12 @@ used for the Elmer solver Beam cross section - Beam cross section + Sezione trasversale trave Creates a FEM beam cross section - Creates a FEM beam cross section + Crea una sezione trasversale di una trave FEM @@ -5732,7 +5734,7 @@ used for the Elmer solver Creates a FEM beam rotation - Creates a FEM beam rotation + Crea una rotazione di una trave FEM @@ -5740,12 +5742,12 @@ used for the Elmer solver Electrostatic equation - Electrostatic equation + Equazione elettrostatica Creates a FEM equation for electrostatic - Creates a FEM equation for electrostatic + Crea un'equazione FEM per l'elettrostatica @@ -5759,8 +5761,8 @@ used for the Elmer solver Creates a FEM equation for elasticity (stress) - Creates a FEM equation for - elasticity (stress) + Crea un'equazione FEM per l'elasticità + (stress) @@ -5894,12 +5896,12 @@ used for the Elmer solver FEM mesh to mesh - FEM mesh to mesh + Converti mesh FEM in mesh Convert the surface of a FEM mesh to a mesh - Convert the surface of a FEM mesh to a mesh + Converte la superficie di una mesh FEM in una mesh @@ -5981,12 +5983,12 @@ used for the Elmer solver FEM mesh region - FEM mesh region + Regione di mesh FEM Creates a FEM mesh region - Creates a FEM mesh region + Crea una regione di mesh FEM @@ -6012,7 +6014,7 @@ used for the Elmer solver Purges all results from active analysis - Purges all results from active analysis + Elimina tutti i risultati dall'analisi attiva @@ -6462,14 +6464,14 @@ Per favore seleziona prima un tipo di risultato. Deformation equation - Deformation equation + Equazione deformazione Creates a FEM equation for deformation (nonlinear elasticity) - Creates a FEM equation for - deformation (nonlinear elasticity) + Crea un'equazione FEM per la deformazione + (elasticità non lineare) diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts index 75679a9568..70a0e7ec94 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts @@ -788,12 +788,12 @@ Create a cylinder function, defined by its center, axis and radius - Create a cylinder function, defined by its center, axis and radius + 中心点、軸、半径で定義された円筒関数を作成 Create a box function, defined by its center, length, width and height - Create a box function, defined by its center, length, width and height + 中心、奥行き、幅、高さで定義された直方体関数を作成 @@ -897,7 +897,7 @@ Number of CPU's to use - Number of CPU's to use + 使用するCPUの数 @@ -1019,7 +1019,7 @@ File does not exist - File does not exist + ファイルが存在しません。 @@ -1027,10 +1027,10 @@ '%1' does not exist! Specify another file please. - The specified executable + 指定された実行可能ファイル '%1' - does not exist! -Specify another file please. + が存在しません! +別のファイルを指定してください。 @@ -1064,19 +1064,18 @@ Specify another file please. Multi-CPU core support: - Multi-CPU core support: + マルチ CPU コアサポート: The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible. - The mesh volume regions processed by each CPU core -will be merged to make the volume boundaries invisible. + 各 CPU コアで処理されるメッシュ体積領域は体積境界を非表示にするためにマージされます。 Filter results - Filter results + フィルター結果 @@ -1096,7 +1095,7 @@ will be merged to make the volume boundaries invisible. <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> - <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> + <html><head/><body><p>デフォルトのバイナリーファイルを使用する場合は空欄のままにします。</p><p><span style=" font-weight:600;">注意:</span> マルチスレッドを使用するにはここで接尾辞 &quot;_mpi&quot; をつけた実行バリアントを指定する必要があります。</p></body></html> @@ -1106,22 +1105,22 @@ will be merged to make the volume boundaries invisible. Multithreading: - Multithreading: + マルチスレッド: CPU cores to be used: - CPU cores to be used: + 使用する CPU コア: <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> メッシュの対称性上有利なため偶数のコア数を使用することを推奨します(8コア使用の方が9コアよりも早くなる可能性があります)。<br/><span style=" font-weight:600;">注意:</span>極端な場合にはコア数が多すぎると ElmerSolver が収束しないことがあります。</p></body></html> File does not exist - File does not exist + ファイルが存在しません。 @@ -1129,16 +1128,16 @@ will be merged to make the volume boundaries invisible. '%1' does not exist! Specify another file please. - The specified executable + 指定された実行可能ファイル '%1' - does not exist! -Specify another file please. + が存在しません! +別のファイルを指定してください。 FEM Elmer: Not suitable for multithreading - FEM Elmer: Not suitable for multithreading + FEM Elmer: マルチスレッドには適していません。 @@ -1338,14 +1337,13 @@ when the results dialog is opened Default solver - Default solver + デフォルトのソルバー Default solver to be added when adding an analysis container - Default solver to be added when -adding an analysis container + 解析コンテナーが追加される時に追加されるデフォルトのソルバー @@ -1383,7 +1381,7 @@ adding an analysis container File does not exist - File does not exist + ファイルが存在しません。 @@ -1391,10 +1389,10 @@ adding an analysis container '%1' does not exist! Specify another file please. - The specified executable + 指定された実行可能ファイル '%1' - does not exist! -Specify another file please. + が存在しません! +別のファイルを指定してください。 @@ -1569,7 +1567,7 @@ If unchecked, they will be sorted by their name. File does not exist - File does not exist + ファイルが存在しません。 @@ -1577,10 +1575,10 @@ If unchecked, they will be sorted by their name. '%1' does not exist! Specify another file please. - The specified executable + 指定された実行可能ファイル '%1' - does not exist! -Specify another file please. + が存在しません! +別のファイルを指定してください。 @@ -1678,7 +1676,7 @@ that "MAXKOI" needs to be increased. File does not exist - File does not exist + ファイルが存在しません。 @@ -1695,17 +1693,17 @@ Specify another file please. Wrong file - Wrong file + ファイルが間違っています。 You must specify the path to the z88r.exe! - You must specify the path to the z88r.exe! + z88r.exe のパスを指定する必要があります! You must specify the path to the z88r! - You must specify the path to the z88r! + z88r のパスを指定する必要があります! @@ -3066,7 +3064,7 @@ Specify another file please. Body heat in W/kg: - Body heat in W/kg: + 体積発熱 (W/kg) @@ -3107,38 +3105,37 @@ Specify another file please. Electric potential - Electric potential + 電位 To define a vector field - To define a vector field + ベクトル場を定義 Vector Field - Vector Field + ベクトル場 Imaginary part is only used for equations with a harmonic/oscillating driving force - Imaginary part is only used for equations -with a harmonic/oscillating driving force + 虚部は調和/振動駆動力を持つ方程式でのみ使用されます。 Real - Real + 実部 Imaginary - Imaginary + 虚部 @@ -3148,12 +3145,12 @@ with a harmonic/oscillating driving force Potential as specified above - Potential as specified above + 上で指定されたポテンシャル Imaginary part of scalar potential - Imaginary part of scalar potential + スカラーポテンシャルの虚部 @@ -3166,15 +3163,15 @@ with a harmonic/oscillating driving force Real part of potential x-component Note: has no effect if a solid was selected - Real part of potential x-component -Note: has no effect if a solid was selected + ポテンシャル x 成分の実部 +注意: ソリッドが選択されている場合は無効 Imaginary part of potential x-component Note: has no effect if a solid was selected - Imaginary part of potential x-component -Note: has no effect if a solid was selected + ポテンシャル x 成分の虚部 +注意: ソリッドが選択されている場合は無効 @@ -3187,15 +3184,15 @@ Note: has no effect if a solid was selected Real part of potential y-component Note: has no effect if a solid was selected - Real part of potential y-component -Note: has no effect if a solid was selected + ポテンシャル y 成分の実部 +注意: ソリッドが選択されている場合は無効 Imaginary part of potential y-component Note: has no effect if a solid was selected - Imaginary part of potential y-component -Note: has no effect if a solid was selected + ポテンシャル y 成分の虚部 +注意: ソリッドが選択されている場合は無効 @@ -3208,15 +3205,15 @@ Note: has no effect if a solid was selected Real part of potential z-component Note: has no effect if a solid was selected - Real part of potential z-component -Note: has no effect if a solid was selected + ポテンシャル z 成分の実部 +注意: ソリッドが選択されている場合は無効 Imaginary part of potential z-component Note: has no effect if a solid was selected - Imaginary part of potential z-component -Note: has no effect if a solid was selected + ポテンシャル z 成分の虚部 +注意: ソリッドが選択されている場合は無効 @@ -3324,7 +3321,7 @@ Note: has no effect if a solid was selected formula - formula + @@ -3397,12 +3394,12 @@ Note: has no effect if a solid was selected Pressure: - Pressure: + 圧力: Current density: - Current density: + 現在の密度: @@ -3410,10 +3407,8 @@ Note: has no effect if a solid was selected Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Real part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + ポテンシャル x 成分の実部 +注意: 面が選択されている場合は面の法線方向の値となり y と z の設定は無視されます。 @@ -3421,70 +3416,66 @@ Note: if a face was selected this will be the value Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Imaginary part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + ポテンシャル x 成分の虚部 +注意: 面が選択されている場合は面の法線方向の値となり y と z の設定は無視されます。 Real part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Real part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + ポテンシャル y 成分の実部 +注意: 2D では x の設定のみ可能で、y の設定は無視されます。 Imaginary part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Imaginary part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + ポテンシャル y 成分の虚部 +注意: 2D では x の設定のみ可能で、y の設定は無視されます。 Magnetization - Magnetization + 磁化 Real part of potential x-component - Real part of potential x-component + ポテンシャル x 成分の実部 Imaginary part of potential x-component - Imaginary part of potential x-component + ポテンシャル x 成分の虚部 Real part of potential y-component - Real part of potential y-component + ポテンシャル y 成分の実部 Imaginary part of potential y-component - Imaginary part of potential y-component + ポテンシャル y 成分の虚部 Real part of potential z-component - Real part of potential z-component + ポテンシャル z 成分の実部 Imaginary part of potential z-component - Imaginary part of potential z-component + ポテンシャル z 成分の虚部 Normal to boundary - Normal to boundary + 境界の法線方向 @@ -4392,15 +4383,14 @@ For possible variables, see the description box below. Formulas are only valid for the Elmer solver - Formulas are only valid -for the Elmer solver + 式は Elmer ソルバーでのみ有効 Formula - Formula + @@ -4803,14 +4793,13 @@ normal vector of the face is used as direction Stiffness for Elmer - Stiffness for Elmer + Elmer 用の剛性 What stiffness should be used for the Elmer solver - What stiffness should be -used for the Elmer solver + Elmer ソルバーでどのような剛性を使用するか @@ -4960,7 +4949,7 @@ used for the Elmer solver Coordinates - Coordinates + 座標 @@ -4980,12 +4969,12 @@ used for the Elmer solver Point 1 - Point 1 + 点1 Point 2 - Point 2 + 点2 @@ -5365,117 +5354,119 @@ used for the Elmer solver 静電的拘束(&E) - + Fluid Constraints 流体的拘束 - + &Fluid Constraints 流体的拘束(&F) - - Electromagnetic Constraints - Electromagnetic Constraints - - - - &Electromagnetic Constraints - &Electromagnetic Constraints - - + + Electromagnetic Constraints + 電磁拘束 + + + + + &Electromagnetic Constraints + 電磁拘束(&E) + + + Geometrical Constraints 幾何的拘束 - + &Geometrical Constraints 幾何的拘束(&G) - + Mechanical Constraints 機械的拘束 - + &Mechanical Constraints 機械的拘束(&M) - + Thermal Constraints 熱的拘束 - + &Thermal Constraints 熱的拘束(&T) - + Constraints without solver ソルバー無しの拘束 - + &Constraints without solver ソルバー無しの拘束(&C) - + Overwrite Constants 定数を上書き - + &Overwrite Constants 定数を上書き(&O) - + Mesh Mesh - + M&esh メッシュ(&e) - + Solve 求解 - + &Solve 求解(&S) - + Results 結果 - + &Results 結果(&R) - + Filter functions フィルター関数 - + &Filter functions フィルター関数(&F) - + Utilities ユーティリティ @@ -5506,12 +5497,12 @@ used for the Elmer solver Analysis container - Analysis container + 解析コンテナー Creates an analysis container with default solver - Creates an analysis container with default solver + デフォルトのソルバーを使用して解析のコンテナーを作成 @@ -5519,12 +5510,12 @@ used for the Elmer solver Clipping plane on face - Clipping plane on face + 面上のクリッピング平面 Add a clipping plane on a selected face - Add a clipping plane on a selected face + 選択した面にクリッピング平面を追加 @@ -5533,7 +5524,7 @@ used for the Elmer solver Remove all clipping planes - Remove all clipping planes + すべてのクリッピング平面を削除 @@ -5546,7 +5537,7 @@ used for the Elmer solver Creates a FEM constant vacuum permittivity to overwrite standard value - Creates a FEM constant vacuum permittivity to overwrite standard value + 標準値を上書きするためのFEM定数である真空誘電率を作成 @@ -5554,12 +5545,12 @@ used for the Elmer solver Constraint body heat source - Constraint body heat source + 体積発熱拘束 Creates a FEM constraint body heat source - Creates a FEM constraint body heat source + 体積発熱FEM拘束を作成 @@ -5567,12 +5558,12 @@ used for the Elmer solver Constraint centrif - Constraint centrif + 遠心荷重拘束 Creates a FEM constraint centrif - Creates a FEM constraint centrif + 遠心荷重FEM拘束を作成 @@ -5580,12 +5571,12 @@ used for the Elmer solver Constraint electrostatic potential - Constraint electrostatic potential + 静電ポテンシャル拘束 Creates a FEM constraint electrostatic potential - Creates a FEM constraint electrostatic potential + 静電ポテンシャルFEM拘束を作成 @@ -5593,12 +5584,12 @@ used for the Elmer solver Constraint flow velocity - Constraint flow velocity + 流速拘束 Creates a FEM constraint flow velocity - Creates a FEM constraint flow velocity + 流速FEM拘束を作成 @@ -5606,12 +5597,12 @@ used for the Elmer solver Constraint initial flow velocity - Constraint initial flow velocity + 初期流速拘束 Creates a FEM constraint initial flow velocity - Creates a FEM constraint initial flow velocity + 初期流速FEM拘束を作成 @@ -5619,12 +5610,12 @@ used for the Elmer solver Constraint initial pressure - Constraint initial pressure + 初期圧力拘束 Creates a FEM constraint initial pressure - Creates a FEM constraint initial pressure + 初期圧力FEM拘束を作成 @@ -5632,12 +5623,12 @@ used for the Elmer solver Constraint sectionprint - Constraint sectionprint + 断面集計表示拘束 Creates a FEM constraint sectionprint - Creates a FEM constraint sectionprint + 断面集計表示のFEM拘束を作成 @@ -5645,12 +5636,12 @@ used for the Elmer solver Constraint self weight - Constraint self weight + 自重拘束 Creates a FEM constraint self weight - Creates a FEM constraint self weight + 自重FEM拘束を作成 @@ -5658,12 +5649,12 @@ used for the Elmer solver Constraint tie - Constraint tie + 結合拘束 Creates a FEM constraint tie - Creates a FEM constraint tie + 結合FEM拘束を作成 @@ -5671,12 +5662,12 @@ used for the Elmer solver Fluid section for 1D flow - Fluid section for 1D flow + 1次元流れのための流体セクション Creates a FEM fluid section for 1D flow - Creates a FEM fluid section for 1D flow + 1次元流れのためのFEM流体セクションを作成 @@ -5684,12 +5675,12 @@ used for the Elmer solver Beam cross section - Beam cross section + ビーム断面 Creates a FEM beam cross section - Creates a FEM beam cross section + FEMビーム断面を作成 @@ -5697,12 +5688,12 @@ used for the Elmer solver Shell plate thickness - Shell plate thickness + シェルの板厚 Creates a FEM shell plate thickness - Creates a FEM shell plate thickness + FEMシェルの板厚を作成 @@ -5710,12 +5701,12 @@ used for the Elmer solver Beam rotation - Beam rotation + ビーム回転 Creates a FEM beam rotation - Creates a FEM beam rotation + FEMビーム回転を作成 @@ -5723,12 +5714,12 @@ used for the Elmer solver Electrostatic equation - Electrostatic equation + 静電方程式 Creates a FEM equation for electrostatic - Creates a FEM equation for electrostatic + 静電のためのFEM方程式を作成 @@ -5736,14 +5727,13 @@ used for the Elmer solver Elasticity equation - Elasticity equation + 弾性方程式 Creates a FEM equation for elasticity (stress) - Creates a FEM equation for - elasticity (stress) + 弾性のためのFEM方程式を作成 (応力) @@ -5751,12 +5741,12 @@ used for the Elmer solver Flow equation - Flow equation + 流れ方程式 Creates a FEM equation for flow - Creates a FEM equation for flow + 流れのためのFEM方程式を作成 @@ -5764,12 +5754,12 @@ used for the Elmer solver Flux equation - Flux equation + 流束方程式 Creates a FEM equation for flux - Creates a FEM equation for flux + 流束のためのFEM方程式を作成 @@ -5782,7 +5772,7 @@ used for the Elmer solver Creates a FEM equation for electric forces - Creates a FEM equation for electric forces + 電気力のためのFEM方程式を作成 @@ -5790,12 +5780,12 @@ used for the Elmer solver Heat equation - Heat equation + 熱方程式 Creates a FEM equation for heat - Creates a FEM equation for heat + 熱のためのFEM方程式を作成 @@ -5804,7 +5794,7 @@ used for the Elmer solver Open FEM examples - Open FEM examples + FEM サンプルを開く @@ -5812,12 +5802,12 @@ used for the Elmer solver Material editor - Material editor + 材料エディター Opens the FreeCAD material editor - Opens the FreeCAD material editor + FreeCAD 材料エディターを開く @@ -5825,12 +5815,12 @@ used for the Elmer solver Material for fluid - Material for fluid + 流体用材料 Creates a FEM material for fluid - Creates a FEM material for fluid + 流体のためのFEM材料を作成 @@ -5838,12 +5828,12 @@ used for the Elmer solver Nonlinear mechanical material - Nonlinear mechanical material + 非線形機械材料 Creates a nonlinear mechanical material - Creates a nonlinear mechanical material + 非線形機械材料を作成 @@ -5851,12 +5841,12 @@ used for the Elmer solver Reinforced material (concrete) - Reinforced material (concrete) + 強化材料 (コンクリート) Creates a material for reinforced matrix material such as concrete - Creates a material for reinforced matrix material such as concrete + コンクリートなどの強化マトリックス材料のための材料を作成 @@ -5864,12 +5854,12 @@ used for the Elmer solver Material for solid - Material for solid + 固体用材料 Creates a FEM material for solid - Creates a FEM material for solid + 固体のためのFEM材料を作成 @@ -5877,12 +5867,12 @@ used for the Elmer solver FEM mesh to mesh - FEM mesh to mesh + FEMメッシュからメッシュへ Convert the surface of a FEM mesh to a mesh - Convert the surface of a FEM mesh to a mesh + FEMメッシュの表面をメッシュに変換 @@ -5890,12 +5880,12 @@ used for the Elmer solver FEM mesh boundary layer - FEM mesh boundary layer + FEMメッシュ境界層 Creates a FEM mesh boundary layer - Creates a FEM mesh boundary layer + FEMメッシュ境界層を作成 @@ -5903,12 +5893,12 @@ used for the Elmer solver Clear FEM mesh - Clear FEM mesh + FEMメッシュを削除 Clear the Mesh of a FEM mesh object - Clear the Mesh of a FEM mesh object + FEMメッシュオブジェクトのメッシュを削除 @@ -5917,7 +5907,7 @@ used for the Elmer solver Display FEM mesh info - Display FEM mesh info + FEMメッシュ情報を表示 @@ -5925,12 +5915,12 @@ used for the Elmer solver FEM mesh from shape by Gmsh - FEM mesh from shape by Gmsh + Gmshによる形状からのFEMメッシュ Create a FEM mesh from a shape by Gmsh mesher - Create a FEM mesh from a shape by Gmsh mesher + Gmshメッシャーを使用して形状からFEMメッシュを作成 @@ -5938,12 +5928,12 @@ used for the Elmer solver FEM mesh group - FEM mesh group + FEMメッシュグループ Creates a FEM mesh group - Creates a FEM mesh group + FEMメッシュグループを作成 @@ -5951,12 +5941,12 @@ used for the Elmer solver FEM mesh from shape by Netgen - FEM mesh from shape by Netgen + Netgenによる形状からのFEMメッシュ Create a FEM mesh from a solid or face shape by Netgen internal mesher - Create a FEM mesh from a solid or face shape by Netgen internal mesher + Netgen内部メッシャーを使用してソリッド、またはフェイス形状からFEMメッシュを作成 @@ -5964,12 +5954,12 @@ used for the Elmer solver FEM mesh region - FEM mesh region + FEMメッシュ領域 Creates a FEM mesh region - Creates a FEM mesh region + FEMメッシュ領域を作成 @@ -5982,7 +5972,7 @@ used for the Elmer solver Shows and visualizes selected result data - Shows and visualizes selected result data + 選択した結果データを表示、可視化 @@ -5990,12 +5980,12 @@ used for the Elmer solver Purge results - Purge results + 結果を消去 Purges all results from active analysis - Purges all results from active analysis + アクティブな解析からすべての結果を削除 @@ -6003,12 +5993,12 @@ used for the Elmer solver Solver CalculiX Standard - Solver CalculiX Standard + ソルバー CalculiX 標準 Creates a standard FEM solver CalculiX with ccx tools - Creates a standard FEM solver CalculiX with ccx tools + 標準FEMソルバーであるccxツール付属CalculiXを作成 @@ -6016,12 +6006,12 @@ used for the Elmer solver Solver job control - Solver job control + ソルバー ジョブ制御 Changes solver attributes and runs the calculations for the selected solver - Changes solver attributes and runs the calculations for the selected solver + ソルバー属性を変更し、選択したソルバーのための計算を実行 @@ -6029,12 +6019,12 @@ used for the Elmer solver Solver Elmer - Solver Elmer + ソルバー Elmer Creates a FEM solver Elmer - Creates a FEM solver Elmer + FEMソルバーElmerを作成 @@ -6042,12 +6032,12 @@ used for the Elmer solver Solver Mystran - Solver Mystran + ソルバー Mystran Creates a FEM solver Mystran - Creates a FEM solver Mystran + FEMソルバーMystranを作成 @@ -6055,12 +6045,12 @@ used for the Elmer solver Run solver calculations - Run solver calculations + ソルバー計算の実行 Runs the calculations for the selected solver - Runs the calculations for the selected solver + 選択したソルバーの計算を実行 @@ -6068,12 +6058,12 @@ used for the Elmer solver Solver Z88 - Solver Z88 + ソルバー Z88 Creates a FEM solver Z88 - Creates a FEM solver Z88 + FEMソルバーZ88を作成 @@ -6081,18 +6071,18 @@ used for the Elmer solver Solver Control - Solver Control + ソルバー制御 Working Directory - Working Directory + 作業ディレクトリ Write - Write + 書き込み @@ -6105,7 +6095,7 @@ used for the Elmer solver Elapsed Time: - Elapsed Time: + 経過時間: @@ -6117,17 +6107,17 @@ used for the Elmer solver Re-write - Re-write + 再書き込み Re-run - Re-run + 再実行 Abort - Abort + 中断 @@ -6148,12 +6138,12 @@ used for the Elmer solver Select Faces/Edges/Vertexes - Select Faces/Edges/Vertexes + 面/辺/頂点を選択 To add references: select them in the 3D view and click "Add". - To add references: select them in the 3D view and click "Add". + 参照の追加: 3Dビューで選択し「追加」をクリック @@ -6161,7 +6151,7 @@ used for the Elmer solver Select Solids - Select Solids + ソリッドを選択 @@ -6194,7 +6184,7 @@ used for the Elmer solver Selection mode - Selection mode + 選択モード @@ -6232,7 +6222,7 @@ used for the Elmer solver Max Shear Stress - Max Shear Stress + 最大せん断応力 @@ -6273,13 +6263,13 @@ used for the Elmer solver No histogram available. Please select a result type first. - No histogram available. -Please select a result type first. + 利用できるヒストグラムがありません。 +最初に結果タイプを選択してください。 Histogram of {} - Histogram of {} + {} のヒストグラム @@ -6289,13 +6279,13 @@ Please select a result type first. Empty result mesh - Empty result mesh + 結果メッシュがありません。 No result object - No result object + 結果オブジェクトがありません。 @@ -6303,12 +6293,12 @@ Please select a result type first. Constraint current density - Constraint current density + 電流密度拘束 Creates a FEM constraint current density - Creates a FEM constraint current density + 電流密度FEM拘束を作成 @@ -6316,14 +6306,13 @@ Please select a result type first. Magnetodynamic2D equation - Magnetodynamic2D equation + 2次元磁気力学方程式 Creates a FEM equation for 2D magnetodynamic forces - Creates a FEM equation for - 2D magnetodynamic forces + 2次元の磁気力学的な力のためのFEM方程式を作成 @@ -6337,7 +6326,7 @@ Please select a result type first. Electromagnetic constraints - Electromagnetic constraints + 電磁拘束 @@ -6345,12 +6334,12 @@ Please select a result type first. Constraint magnetization - Constraint magnetization + 磁化拘束 Creates a FEM constraint magnetization - Creates a FEM constraint magnetization + 磁化FEM拘束を作成 @@ -6358,14 +6347,13 @@ Please select a result type first. Magnetodynamic equation - Magnetodynamic equation + 磁気力学方程式 Creates a FEM equation for magnetodynamic forces - Creates a FEM equation for - magnetodynamic forces + 磁気力学的な力のためのFEM方程式を作成 @@ -6378,22 +6366,22 @@ Please select a result type first. Vector: - Vector: + ベクトル: Field: - Field: + フィールド: Contour lines will not be colored - Contour lines will not be colored + 等高線は色付けされません。 No color - No color + 無色 @@ -6406,12 +6394,12 @@ Please select a result type first. Electromagnetic equations - Electromagnetic equations + 電磁方程式 Electromagnetic equations for the Elmer solver - Electromagnetic equations for the Elmer solver + Elmer ソルバー用の電磁方程式 @@ -6424,12 +6412,12 @@ Please select a result type first. Contours filter - Contours filter + 等高線フィルター Define/create a contours filter which displays iso contours - Define/create a contours filter which displays iso contours + ISO 等高線を表示する等高線フィルターを定義/作成 @@ -6437,7 +6425,7 @@ Please select a result type first. Contours filter options - Contours filter options + 等高線フィルターのオプション @@ -6445,14 +6433,13 @@ Please select a result type first. Deformation equation - Deformation equation + 変形方程式 Creates a FEM equation for deformation (nonlinear elasticity) - Creates a FEM equation for - deformation (nonlinear elasticity) + 変形のためのFEM方程式を作成 (非線形弾性) @@ -6546,12 +6533,12 @@ Please select a result type first. Mechanical equations - Mechanical equations + 力学方程式 Mechanical equations for the Elmer solver - Mechanical equations for the Elmer solver + Elmer ソルバー用の力学方程式 @@ -6559,12 +6546,12 @@ Please select a result type first. Solver CalculiX (new framework) - Solver CalculiX (new framework) + ソルバー CalculiX (新しいフレームワーク) Creates a FEM solver CalculiX new framework (less result error handling) - Creates a FEM solver CalculiX new framework (less result error handling) + FEMソルバーCalculiXの新しいフレームワークを作成 (結果エラー処理が減少) diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ka.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ka.ts index 35889ca2b1..3132ddca6d 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ka.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ka.ts @@ -5372,117 +5372,119 @@ used for the Elmer solver &ელექტროსტატიკური შეზღუდვები - + Fluid Constraints სითხის შეზღუდვები - + &Fluid Constraints &სითხის შეზღუდვები - + + Electromagnetic Constraints ელექტრომაგნიტური შეზღუდვები - + + &Electromagnetic Constraints &ელექტრომაგნიტური შეზღუდვები - + Geometrical Constraints გეომეტრიული შეზღუდვები - + &Geometrical Constraints &გეომეტრიული შეზღუდვები - + Mechanical Constraints მექანიკური შეზღუდვები - + &Mechanical Constraints &მექანიკური შეზღუდვები - + Thermal Constraints თერმული შეზღუდვები - + &Thermal Constraints &თერმული შეზღუდვები - + Constraints without solver შეზღუდვები ამომხსნელის გარეშე - + &Constraints without solver &შეზღუდვები ამომხსნელის გარეშე - + Overwrite Constants კონსტანტებზე გადაწერა - + &Overwrite Constants &კონსტანტებზე გადაწერა - + Mesh Mesh - + M&esh &ბადე - + Solve გადაწყვეტა - + &Solve &გადაწყვეტა - + Results შედეგები - + &Results &შედეგები - + Filter functions ფილტრის ფუნქციები - + &Filter functions &ფილტრის ფუნქციები - + Utilities ხელსაწყოები diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ko.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ko.ts index 5c056c8554..45f7b1b3cf 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ko.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ko.ts @@ -11,7 +11,7 @@ Constraint bearing - Constraint bearing + 지지점 구속 조건 @@ -3291,13 +3291,13 @@ Note: has no effect if a solid was selected Height: - Height: + 높이 Diameter: - Diameter: + 직경 @@ -3312,7 +3312,7 @@ Note: has no effect if a solid was selected Thickness: - Thickness: + 두께 @@ -3327,7 +3327,7 @@ Note: has no effect if a solid was selected Rotation: - Rotation: + 회전: @@ -3337,25 +3337,25 @@ Note: has no effect if a solid was selected formula - formula + 수식 Velocity x: - Velocity x: + X 축 방향 속도 Velocity y: - Velocity y: + Y 축 방향 속도 Velocity z: - Velocity z: + Z 축 방향 속도 @@ -3380,7 +3380,7 @@ Note: has no effect if a solid was selected Mesh group - Mesh group + 메쉬 그룹 @@ -3410,7 +3410,7 @@ Note: has no effect if a solid was selected Pressure: - Pressure: + 압력 @@ -3497,7 +3497,7 @@ Note: for 2D only setting for x is possible, Normal to boundary - Normal to boundary + 경계에 대한 법선방향 @@ -3597,7 +3597,7 @@ Note: for 2D only setting for x is possible, You need to create or activate a Analysis - You need to create or activate a Analysis + 새로 생성 하거나 해석파일을 지정해서 활성화 해야 합니다. @@ -3728,7 +3728,7 @@ Note: for 2D only setting for x is possible, Edit post processing object - Edit post processing object + 대상물 해석결과의 정리 @@ -3753,7 +3753,7 @@ Note: for 2D only setting for x is possible, Volumes - Volumes + 체적들 @@ -3893,21 +3893,18 @@ Note: for 2D only setting for x is possible, Runs the equation given in the field below, outputs the results to the Min and Max fields and colors the result mesh accordingly - Runs the equation given in the field below, -outputs the results to the Min and Max fields -and colors the result mesh accordingly + 주어진 칸에 있는 수식을 계산하고, 결과를 최대값, 최소값의 칸에 넣고, 결과 메쉬를 다음에 따라서 색을 입히세요 Calculate - Calculate + 계산 Enter here an equation to be calculated. For possible variables, see the description box below. - Enter here an equation to be calculated. -For possible variables, see the description box below. + 여기에 계산시킬 수식을 넣으세요. 이용하고 싶은 변수는 밑의 박스에서 찾아보세요 @@ -3917,7 +3914,7 @@ For possible variables, see the description box below. Hints user defined equations - Hints user defined equations + 사용자가 입력한 수식에 관한 정보 @@ -3957,7 +3954,7 @@ For possible variables, see the description box below. von Mises stress: vM - von Mises stress: vM + 폰 미세스 응력(응력불변량): vM @@ -3972,7 +3969,7 @@ For possible variables, see the description box below. max principal stress: P1 - max principal stress: P1 + 최대 주응력: σ1 @@ -3982,7 +3979,7 @@ For possible variables, see the description box below. med principal stress: P2 - med principal stress: P2 + 중간 주응력: σ2 @@ -3992,7 +3989,7 @@ For possible variables, see the description box below. min principal stress: P3 - min principal stress: P3 + 최소 주응력: σ3 @@ -4002,12 +3999,12 @@ For possible variables, see the description box below. Mohr Coulomb: mc - Mohr Coulomb: mc + 모아 쿨롱: mc equivalent plastic strain: Peeq - equivalent plastic strain: Peeq + 등 소성변형율: Pεeq @@ -4542,7 +4539,7 @@ generated by the flow Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + '면의 경계' 또는 '면'을 선택한 다음, 이 버튼을 누르세요 @@ -4553,8 +4550,7 @@ generated by the flow The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the -normal vector of the face is used as direction + 면의 방향은 면의 모서리의 방향 또는 면에 직각방향 벡터에 해당 합니다. @@ -4637,7 +4633,7 @@ normal vector of the face is used as direction Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + '면의 경계' 또는 '면'을 선택한 다음, 이 버튼을 누르세요 @@ -4648,8 +4644,7 @@ normal vector of the face is used as direction The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the -normal vector of the face is used as direction + 면의 방향은 면의 모서리의 방향 또는 면에 직각방향 벡터에 해당 합니다. @@ -4667,7 +4662,7 @@ normal vector of the face is used as direction Select multiple face(s), click Add or Remove: - Select multiple face(s), click Add or Remove: + 클릭하여 추가 또는 제외할 면(들)을 선택합니다: @@ -4739,7 +4734,7 @@ normal vector of the face is used as direction Select a single face, click Add or Remove - Select a single face, click Add or Remove + 클릭하여 추가 또는 제외할 면을 선택합니다: @@ -4787,7 +4782,7 @@ normal vector of the face is used as direction Reverse Direction - Reverse Direction + 반대 방향 @@ -4815,7 +4810,7 @@ normal vector of the face is used as direction Normal Stiffness - Normal Stiffness + 직각방향 강성 @@ -4832,7 +4827,7 @@ used for the Elmer solver Tangential Stiffness - Tangential Stiffness + 접선방향 강성 @@ -4889,7 +4884,7 @@ used for the Elmer solver Select a face, click Add or Remove - Select a face, click Add or Remove + 클릭하여 추가 또는 제외할 면을 선택합니다 @@ -4904,17 +4899,17 @@ used for the Elmer solver Rotation about X-Axis - Rotation about X-Axis + X축에 대한 회전 Rotation about Y-Axis - Rotation about Y-Axis + Y축에 대한 회전 Rotation about Z-Axis - Rotation about Z-Axis + Z축에 대한 회전 @@ -4946,7 +4941,7 @@ used for the Elmer solver Inside Out - Inside Out + 뒤집어서 안팎을 서로 바꾸기 @@ -5326,7 +5321,7 @@ used for the Elmer solver Tetrahedron count: - Tetrahedron count: + 사면체 갯수: @@ -5364,7 +5359,7 @@ used for the Elmer solver Element Geometry - Element Geometry + 요소의 모양 @@ -5374,7 +5369,7 @@ used for the Elmer solver Electrostatic Constraints - Electrostatic Constraints + 정적 전기 구속 조건 @@ -5382,117 +5377,119 @@ used for the Elmer solver 정전기 제약조건(&E) - + Fluid Constraints Fluid Constraints - + &Fluid Constraints 유체 제약조건(&F) - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints - Geometrical Constraints + 형태상의 구속조건 - + &Geometrical Constraints 형상 제약조건(&G) - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints 기계적 제약조건(&M) - + Thermal Constraints Thermal Constraints - + &Thermal Constraints 열 제약조건(&T) - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants 상수 덮어쓰기(&O) - + Mesh Mesh - + M&esh 메시(&E) - + Solve 솔버 실행 - + &Solve &Solve - + Results Results - + &Results 결과(&R) - + Filter functions Filter functions - + &Filter functions 필터 기능(&F) - + Utilities Utilities @@ -5502,20 +5499,20 @@ used for the Elmer solver Error: A filter can only be applied to a single object. - Error: A filter can only be applied to a single object. + 오류: 한 개체에 한 필터만 적용 가능함. The filter could not be set up. - The filter could not be set up. + 필터 적용이 설정 될 수 없습니다. Error: no post processing object selected. - Error: no post processing object selected. + 오류: 해석결과를 정리할 대상을 선택하지 않았습니다. @@ -5528,7 +5525,7 @@ used for the Elmer solver Creates an analysis container with default solver - Creates an analysis container with default solver + 기본 해석 메뉴로 해석파일을 생성하세요 @@ -5662,7 +5659,7 @@ used for the Elmer solver Constraint self weight - Constraint self weight + 자중 구속조건 @@ -5753,7 +5750,7 @@ used for the Elmer solver Elasticity equation - Elasticity equation + 탄성식 @@ -5768,12 +5765,12 @@ used for the Elmer solver Flow equation - Flow equation + 유동 함수 Creates a FEM equation for flow - Creates a FEM equation for flow + 유동에 관한 FEM 식을 생성하기 @@ -5821,7 +5818,7 @@ used for the Elmer solver Open FEM examples - Open FEM examples + FEM 예제 열기 @@ -5855,7 +5852,7 @@ used for the Elmer solver Nonlinear mechanical material - Nonlinear mechanical material + 비선형적 역학거동 물질 @@ -5881,7 +5878,7 @@ used for the Elmer solver Material for solid - Material for solid + 고체 물질 @@ -5899,7 +5896,7 @@ used for the Elmer solver Convert the surface of a FEM mesh to a mesh - Convert the surface of a FEM mesh to a mesh + FEM 망요소의 표면을 메쉬로 변환 @@ -5920,7 +5917,7 @@ used for the Elmer solver Clear FEM mesh - Clear FEM mesh + FEM 메쉬 치우기 @@ -6170,7 +6167,7 @@ used for the Elmer solver To add references: select them in the 3D view and click "Add". - To add references: select them in the 3D view and click "Add". + 참조물 추가: 3D 보기에서 대상을 선택하여 "추가"를 클릭하세요. @@ -6183,7 +6180,7 @@ used for the Elmer solver Select elements part of the solid that shall be added to the list. To add the solid click "Add". - Select elements part of the solid that shall be added to the list. To add the solid click "Add". + 고체의 부분요소들에서 목록에 추가 되어야 할 것을 선택하세요. "추가"를 클릭하여 고체를 추가합니다. @@ -6206,7 +6203,7 @@ used for the Elmer solver {}If no geometry is added to the list, all remaining ones are used. - {}If no geometry is added to the list, all remaining ones are used. + {}목록에 추가되는 물체가 없다면, 있던것들 중에서 사용합니다. diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts index e8aa077670..fb499e695d 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts @@ -250,7 +250,7 @@ Creates a FEM constraint for a temperature/concentrated heat flux acting on a face - Creates a FEM constraint for a temperature/concentrated heat flux acting on a face + Creert een FEM-randvoorwaarde voor een temperatuur- of geconcentreerde warmte-flux op een oppervlak @@ -268,7 +268,7 @@ Create FEM constraint for transforming a face - Create FEM constraint for transforming a face + Creert een FEM-randvoorwaarde voor het transformeren van een oppervlak @@ -286,7 +286,7 @@ Creates a FEM mesh nodes set - Creates a FEM mesh nodes set + Creert een set knooppunten voor een FEM-maaswerk @@ -474,7 +474,7 @@ Linearized Stresses Plot title - Linearized Stresses + Gelineariseerde spanningen @@ -486,7 +486,7 @@ Membrane and Bending Plot legend item label - Membrane and Bending + Membraan en buiging @@ -502,12 +502,12 @@ Stress linearization plot - Stress linearization plot + Spanningslinearisatie-grafiek Define/create stress linearization plots - Define/create stress linearization plots + Definiëer/creëer spanningslinearisatie-grafieken @@ -591,37 +591,37 @@ Make FEM constraint for bearing - Make FEM constraint for bearing + Maak een FEM-randvoorwaarde voor een lager Make FEM constraint contact on face - Make FEM constraint contact on face + Maak een FEM-randvoorwaarde-contact op vlak Make FEM constraint displacement on face - Make FEM constraint displacement on face + Maak een FEM-randvoorwaarde-verplaatsing op vlak Make FEM constraint fixed geometry - Make FEM constraint fixed geometry + Maak een FEM-randvoorwaarde vaste geometrie Create fluid boundary condition - Create fluid boundary condition + Creer een vloeistof randvoorwaarde Make FEM constraint force on geometry - Make FEM constraint force on geometry + Maak een FEM-randvoorwaarde voor een kracht op een geometrie Make FEM constraint for gear - Make FEM constraint for gear + Maak een FEM-randvoorwaarde voor een tandwiel @@ -2646,7 +2646,7 @@ Specify another file please. Material card - Material card + Materiaal kaart @@ -2703,7 +2703,7 @@ Specify another file please. Mechanical Properties - Mechanical Properties + Mechanische eigenschappen @@ -2743,7 +2743,7 @@ Specify another file please. Thermal Conductivity: - Thermal Conductivity: + Warmte geleiding: @@ -2753,7 +2753,7 @@ Specify another file please. Expansion Coefficient: - Expansion Coefficient: + Expansie Coëfficiënt: @@ -2764,7 +2764,7 @@ Specify another file please. Specific Heat: - Specific Heat: + Specifieke Heat: @@ -3415,7 +3415,7 @@ Note: has no effect if a solid was selected Current density: - Current density: + Huidige dichtheid: @@ -5112,7 +5112,7 @@ used for the Elmer solver Coloring - Coloring + Kleuren @@ -5147,7 +5147,7 @@ used for the Elmer solver Styling - Styling + Opmaak @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Elektromagnetische beperkingen - + + &Electromagnetic Constraints &Elektromagnetische beperkingen - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Oplossen - + &Solve &Oplossen - + Results Resultaten - + &Results &Resultaten - + Filter functions Filter functies - + &Filter functions &Filter functions - + Utilities Hulpmiddelen @@ -6109,7 +6111,7 @@ used for the Elmer solver Write - Write + Schrijven @@ -6134,17 +6136,17 @@ used for the Elmer solver Re-write - Re-write + Herschrijven Re-run - Re-run + Herstarten Abort - Abort + Afbreken @@ -6165,7 +6167,7 @@ used for the Elmer solver Select Faces/Edges/Vertexes - Select Faces/Edges/Vertexes + Selecteer vlakken/randen/hoekpunten @@ -6211,7 +6213,7 @@ used for the Elmer solver Selection mode - Selection mode + Selectiemodus @@ -6296,7 +6298,7 @@ Please select a result type first. Histogram of {} - Histogram of {} + Histogram van {} diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts index e8b2e1dfa6..8ad1824a9f 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts @@ -453,7 +453,7 @@ Box - Sześcian + Prostopadłościan @@ -792,7 +792,7 @@ Create a box function, defined by its center, length, width and height - Utwórz funkcję prostopadłościanu, zdefiniowanego przez jego środek, długość, szerokość i wysokość + Utwórz cechę prostopadłościanu, zdefiniowanego przez jego środek, długość, szerokość i wysokość @@ -1230,7 +1230,7 @@ constraint or material is applied. Working directory for solving analysis and gmsh meshing - Katalog roboczy do przeprowadzania analiz i tworzenia siatki gmsh + Katalog roboczy do przeprowadzania analiz i tworzenia siatki Gmsh @@ -1966,7 +1966,7 @@ Wybierz inny plik. Selection error - Błąd zaznaczenia + Błąd selekcji @@ -2027,7 +2027,7 @@ Wybierz inny plik. Selection error - Błąd selekcji + Błąd zaznaczenia @@ -2214,7 +2214,7 @@ Wybierz inny plik. Selection error - Błąd wyboru + Błąd selekcji @@ -2252,7 +2252,7 @@ Wybierz inny plik. Selection error - Błąd w zaznaczeniu + Błąd wyboru @@ -2280,7 +2280,7 @@ Wybierz inny plik. Selection error - Błąd selekcji + Błąd w zaznaczeniu @@ -4154,7 +4154,7 @@ Aby uzyskać możliwe zmienne, zobacz pole opisu poniżej. Box - Sześcian + Prostopadłościan @@ -5372,117 +5372,119 @@ użyta przez solver Elmer Wiązania &elektrostatyczne - + Fluid Constraints Wiązania płynu - + &Fluid Constraints Wiązania &płynu - + + Electromagnetic Constraints Wiązania elektromagnetyczne - + + &Electromagnetic Constraints &Wiązania elektromagnetyczne - + Geometrical Constraints Wiązania geometryczne - + &Geometrical Constraints Wiązania &geometryczne - + Mechanical Constraints Wiązania mechaniczne - + &Mechanical Constraints Wiązania &mechaniczne - + Thermal Constraints Wiązania termiczne - + &Thermal Constraints Wiązania &termiczne - + Constraints without solver Wiązania bez solvera - + &Constraints without solver &Wiązania bez solvera - + Overwrite Constants Nadpisz stałe - + &Overwrite Constants &Nadpisz stałe - + Mesh Siatka - + M&esh &Siatka - + Solve Rozwiąż - + &Solve &Rozwiąż - + Results Wyniki - + &Results &Wyniki - + Filter functions Funkcje filtrów - + &Filter functions &Funkcje filtra - + Utilities &Narzędzia diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pt-BR.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pt-BR.ts index 39f3e1664c..8d35e03edc 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_pt-BR.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_pt-BR.ts @@ -578,12 +578,12 @@ Warp filter - Filtro de deformação + Filtro de dobra Warp the geometry along a vector field by a certain factor - Deforma a geometria ao longo de um campo de vetores por um determindado fator + Dobra a geometria ao longo de um campo de vetores por um fator determindado @@ -787,12 +787,12 @@ Create a cylinder function, defined by its center, axis and radius - Create a cylinder function, defined by its center, axis and radius + Função criar um cilindro, definida por seu centro, eixo e raio Create a box function, defined by its center, length, width and height - Create a box function, defined by its center, length, width and height + Função criar uma caixa, definida por seu centro, comprimento, largura e altura @@ -846,7 +846,7 @@ Split writing of *.inp - Split writing of *.inp + Dividir escrita de *.inp @@ -911,17 +911,17 @@ Spooles - Spooles + Spooles Iterative Scaling - Iterative Scaling + Escala Iterativa Iterative Cholesky - Iterative Cholesky + Cholesky Iterativo @@ -941,12 +941,12 @@ Use non ccx defaults - Use non ccx defaults + Usar padrões não ccx Time Initial Step - Time Initial Step + Passo Inicial de Tempo @@ -962,12 +962,12 @@ Beam, shell element 3D output format - Beam, shell element 3D output format + Viga, formato de saída do elemento 3D 3D Output, unchecked for 2D - 3D Output, unchecked for 2D + Saída 3D, desmarcada para 2D @@ -1026,10 +1026,10 @@ '%1' does not exist! Specify another file please. - The specified executable + O executável especificado '%1' - does not exist! -Specify another file please. + não existe! +Especifique outro arquivo, por favor. @@ -1037,17 +1037,17 @@ Specify another file please. Elmer - Elmer + Elmer Elmer binaries - Elmer binaries + Binários de Elmer ElmerGrid: - ElmerGrid: + ElmerGrid: @@ -1058,44 +1058,44 @@ Specify another file please. ElmerGrid binary path - ElmerGrid binary path + Caminho binário ElmerGrid Multi-CPU core support: - Multi-CPU core support: + Suporte para CPU multi-núcleo: The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible. - The mesh volume regions processed by each CPU core -will be merged to make the volume boundaries invisible. + As regiões de volume de malha processadas por cada núcleo de CPU +serão mescladas para tornar os limites de volume invisíveis. Filter results - Filter results + Filtrar resultados Leave blank to use default ElmerGrid binary file - Leave blank to use default ElmerGrid binary file + Deixe em branco para padrão ElmerGrid arquivo binário ElmerSolver: - ElmerSolver: + ElmerSolver: ElmerSolver binary path - ElmerSolver binary path + Caminho binário ElmerSolver <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> - <html><head/><body><p>Leave blank to use default Elmer elmer binary file</p><p><span style=" font-weight:600;">Note:</span> To use multithreading you must specify here<br> the executable variant with the suffix &quot;_mpi&quot;.</p></body></html> + <html><head/><body><p>Deixe em branco para usar o arquivo binário padrão dos Elmer elmer</p><p><span style=" font-weight:600;">Nota:</span> Para usar multithreading você deve especificar aqui<br> a variante executável com o sufixo &quot;_mpi&quot;.</p></body></html> @@ -1105,7 +1105,7 @@ will be merged to make the volume boundaries invisible. Multithreading: - Multithreading: + Multithreading: @@ -1115,7 +1115,7 @@ will be merged to make the volume boundaries invisible. <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">Note:</span> It is recommended to use an even number of cores to benefit from mesh symmetries. (Using 8 cores can be faster than 9 cores.)<br/><span style=" font-weight:600;">Note too:</span> In extreme cases ElmerSolver might not converge if the core number is too high.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Nota:</span> Recomenda-se usar um número par de núcleos para se beneficiar de simetrias da malha. (O uso de 8 núcleos pode ser mais rápido que 9 núcleos.)<br/><span style=" font-weight:600;">Nota também:</span> Em casos extremos, ElmerSolver pode não convergir se o número de núcleos for muito alto.</p></body></html> @@ -1128,30 +1128,30 @@ will be merged to make the volume boundaries invisible. '%1' does not exist! Specify another file please. - The specified executable + O executável especificado '%1' - does not exist! -Specify another file please. + não existe! +Especifique outro arquivo, por favor. FEM Elmer: Not suitable for multithreading - FEM Elmer: Not suitable for multithreading + FEM Elmer: Não adequado para multithreading Wrong Elmer setting: You use more than one CPU core. Therefore an executable with the suffix '_mpi.exe' is required. - Wrong Elmer setting: You use more than one CPU core. -Therefore an executable with the suffix '_mpi.exe' is required. + Configuração errada de Elmer: Você usa mais de um núcleo da CPU. +Portanto, é necessário um executável com o sufixo '_mpi.exe'. Wrong Elmer setting: You use more than one CPU core. Therefore an executable with the suffix '_mpi' is required. - Wrong Elmer setting: You use more than one CPU core. -Therefore an executable with the suffix '_mpi' is required. + Configuração errada de Elmer: Você usa mais de um núcleo da CPU. +Portanto, é necessário um executável com o sufixo '_mpi'. @@ -1159,7 +1159,7 @@ Therefore an executable with the suffix '_mpi' is required. INP - INP + INP @@ -1180,18 +1180,18 @@ for means volumes for a volume mesh and faces for a shell mesh. FEM: Only FEM elements will be exported. This means only edges not belonging to faces and faces not belonging to volumes. - All: All elements will be exported. + Todos: Todos os elementos serão exportados. -Highest: Only the highest elements will be exported. This means -for means volumes for a volume mesh and faces for a shell mesh. +Mais alto: Apenas os elementos mais altos serão exportados. Isso significa +para meios volumes, para uma malha de volume e faces para uma malha de casca. -FEM: Only FEM elements will be exported. This means only edges -not belonging to faces and faces not belonging to volumes. +FEM: Somente elementos FEM serão exportados. Isso significa apenas arestas +não pertencentes a faces e faces não pertencentes a volumes. element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) - element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) + parâmetro de elemento: Todos: todos os elementos, mais altos: somente os elementos mais altos, FEM: apenas elementos FEM (apenas arestas não pertencentes a faces e faces não pertencentes a volumes) @@ -1219,10 +1219,10 @@ not belonging to faces and faces not belonging to volumes. Every constraint and, if there are different materials, material consists of two mesh groups, faces and nodes where the constraint or material is applied. - Mesh groups are exported too. -Every constraint and, if there are different materials, material -consists of two mesh groups, faces and nodes where the -constraint or material is applied. + Grupos de malha também são exportados. +Cada restrição e, se houver materiais diferentes, material +consiste em dois grupos de malha, faces e nós onde a +restrição ou material é aplicada. @@ -1235,32 +1235,32 @@ constraint or material is applied. Working directory for solving analysis and gmsh meshing - Working directory for solving analysis and gmsh meshing + Diretório de trabalho para análise de solução e malha de gmsh sdfsdfsdfds - sdfsdfsdfds + sdfsdfsdfds Temporary directories - Temporary directories + Diretórios temporários Let the application manage (create, delete) the working directories for all solver. Use temporary directories. - Let the application manage (create, delete) the working directories for all solver. Use temporary directories. + Permita que o aplicativo gerencie (criar, excluir) os diretórios de trabalho para todos os solver. Use diretórios temporários. Beside .FCStd file - Beside .FCStd file + Além de arquivos .FCStd Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). - Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). + Cria um diretório na mesma pasta em que o arquivo FCStd do documento está localizado. Use a subpasta para cada solver (por exemplo, para um arquivo ./mydoc.FCStd e um solver com a etiqueta Elmer002 usam ./mydoc/Elmer002). @@ -1270,7 +1270,7 @@ constraint or material is applied. Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. - Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + Use o diretório definido abaixo. Crie o próprio subdiretório para cada solver. Nomeia o diretório após o prefixo do rótulo do solver com o nome do documento. @@ -1280,7 +1280,7 @@ constraint or material is applied. Overwrite solver working directory with the directory chosen above - Overwrite solver working directory with the directory chosen above + Sobrescrever o diretório de trabalho do solver pelo diretório escolhido acima @@ -1290,7 +1290,7 @@ constraint or material is applied. Create mesh groups for analysis reference shapes (highly experimental) - Create mesh groups for analysis reference shapes (highly experimental) + Criar grupos de malha para analisar formas de referência (altamente experimental) @@ -1301,37 +1301,37 @@ constraint or material is applied. Existing result objects will be kept otherwise overwritten by new solver run - Existing result objects will be kept -otherwise overwritten by new solver run + Objetos resultantes existentes serão mantidos +caso contrário substituídos pela nova execução do solver Keep results on calculation re-run - Keep results on calculation re-run + Manter os resultados ao refazer cálculos The results dialog will be opened with the last used dialog settings - The results dialog will be opened -with the last used dialog settings + A caixa de diálogo de resultados será aberta +com as últimas configurações utilizadas Restore result dialog settings - Restore result dialog settings + Restaurar configurações de diálogo de resultados All constraints are hidden in the model view when the results dialog is opened - All constraints are hidden in the model view -when the results dialog is opened + Todas as restrições estão escondidas na visão de modelo +quando a caixa de diálogo de resultado é aberta Hide constraints when open result dialog - Hide constraints when open result dialog + Oculta restrições quando abrir caixa de diálogo de resultados @@ -1341,14 +1341,14 @@ when the results dialog is opened Default solver - Default solver + Calculador padrão Default solver to be added when adding an analysis container - Default solver to be added when -adding an analysis container + Solver padrão a ser adicionado quando +adicionar um recipiente de análise @@ -1376,7 +1376,7 @@ adding an analysis container Gmsh binary path - Gmsh binary path + Caminho binário gmsh @@ -1394,10 +1394,10 @@ adding an analysis container '%1' does not exist! Specify another file please. - The specified executable + O executável especificado '%1' - does not exist! -Specify another file please. + não existe! +Especifique outro arquivo, por favor. @@ -1415,7 +1415,7 @@ Specify another file please. Which object to import into - Which object to import into + Qual objeto para importar @@ -1429,16 +1429,15 @@ FreeCAD result object: The imported data will be converted into a FreeCAD FEM Result object. Note: this setting needs the exact result component names and thus it only works properly with VTK files exported from FreeCAD. - VTK result object: A FreeCAD FEM VTK result object will be imported -(equals to the object which was exported). + Objeto resultado VTK: Um objeto resultado FEM VTK FreeCAD será importado +(igual ao objeto que foi exportado). -FEM mesh object: The results in the VTK file will be omitted, only the -mesh data will be imported and a FreeCAD FEM mesh object will be created. +Objeto de malha FEM: O resultado no arquivo VTK será omitido, apenas os +dados da malha serão importados e o objeto de malha FEM FreeCAD será criado. -FreeCAD result object: The imported data will be converted into a -FreeCAD FEM Result object. Note: this setting needs the exact result -component names and thus it only works properly with VTK files -exported from FreeCAD. +Objeto resultado FreeCAD: Os dados importados serão convertidos em um +objeto resultado FEM FreeCAD. Nota: esta configuração precisa do componente nome +exato, então só funciona com arquivos VTK própriamente exportados do FreeCAD. @@ -1453,12 +1452,12 @@ exported from FreeCAD. FEM mesh object - FEM mesh object + Objeto de malha FEM FreeCAD result object - FreeCAD result object + Objeto de resultado FreeCAD @@ -1471,7 +1470,7 @@ exported from FreeCAD. Card resources - Card resources + Recursos de Cartão @@ -1491,14 +1490,14 @@ exported from FreeCAD. Use materials from Materials directory in user's FreeCAD preference directory - Use materials from Materials directory in user's FreeCAD preference directory + Use materiais do diretório de materiais no diretório de preferências do FreeCAD do usuário Also material cards also from the specified directory will be listed as available. - Also material cards also from the specified directory -will be listed as available. + Também cartões materiais do diretório especificado +serão listados como disponível. @@ -1513,24 +1512,24 @@ will be listed as available. Card sorting and duplicates - Card sorting and duplicates + Ordenação e duplicação de cartões Duplicate cards will be deleted from the displayed material card list. - Duplicate cards will be deleted from the displayed material card list. + Catões duplicados serão deletados da lista de materiais exibidos. Delete card duplicates - Delete card duplicates + Deletar cartões duplicados Material cards appear sorted by their resources (locations). If unchecked, they will be sorted by their name. - Material cards appear sorted by their resources (locations). -If unchecked, they will be sorted by their name. + Cartões de material aparecem classificados por seus recursos (locais). +Se desmarcado, eles serão classificados por seus nomes. @@ -1543,12 +1542,12 @@ If unchecked, they will be sorted by their name. Mystran - Mystran + Mystran Mystran binary - Mystran binary + Mystran binário @@ -1558,12 +1557,12 @@ If unchecked, they will be sorted by their name. Mystran binary path - Mystran binary path + Caminho binário do Mystran Leave blank to use default Mystran binary file location - Leave blank to use default Mystran binary file location + Deixe em branco para usar o local do arquivo binário padrão do Mystran @@ -1573,7 +1572,7 @@ If unchecked, they will be sorted by their name. Write comments to input file - Write comments to input file + Escrever comentários para o arquivo de entrada @@ -1586,10 +1585,10 @@ If unchecked, they will be sorted by their name. '%1' does not exist! Specify another file please. - The specified executable + O executável especificado '%1' - does not exist! -Specify another file please. + não existe! +Especifique outro arquivo, por favor. @@ -1597,12 +1596,12 @@ Specify another file please. Z88 - Z88 + Z88 Z88 binary - Z88 binary + Z88 binário @@ -1612,12 +1611,12 @@ Specify another file please. z88r binary path - z88r binary path + caminho binário z88r Leave blank to use default Z88 z88r binary file - Leave blank to use default Z88 z88r binary file + Deixe em branco para usar o arquivo binário Z88, z88r padrão @@ -1637,22 +1636,22 @@ Specify another file please. Iteration solver with SOR preconditioning (-sorcg) - Iteration solver with SOR preconditioning (-sorcg) + Solver de iteração com pré-condicionamento SOR (-sorcg) Iteration solver with SIC preconditioning (-siccg) - Iteration solver with SIC preconditioning (-siccg) + Solver de iteração com pré-condicionamento SIC (-sorcg) Simple Cholesky solver (-choly) - Simple Cholesky solver (-choly) + Solver simples de Cholesky (-choly) Max places in stiffness matrix - Max places in stiffness matrix + Máximo de lugares na matriz de rigidez @@ -1660,15 +1659,15 @@ Specify another file please. You might need to increase this when using the Cholesky solver and you get the error message that "MAXGS" needs to be increased. - Maximal places in stiffnes matrix. -You might need to increase this when using the -Cholesky solver and you get the error message -that "MAXGS" needs to be increased. + Locais máximos na matriz de rigidez. +Você pode precisar aumentar isso ao usar o +Solver Cholesky e você receberá uma mensagem de erro +que "MAXGS" precisa ser aumentada. Max places in coincidence vector - Max places in coincidence vector + Máximo de lugares no vetor de coincidência @@ -1679,13 +1678,13 @@ that "MAXGS" needs to be increased. You might need to increase this when using an iterative solver and you get the error message that "MAXKOI" needs to be increased. - Maximal places in coincidence vector. -(number of knots per element times - number of finite elements) + Locais máximos no vetor de coincidência. +(número de nós por elemento vezes + número de elementos finitos) -You might need to increase this when using an -iterative solver and you get the error message -that "MAXKOI" needs to be increased. +Talvez seja necessário aumentar isso ao usar um +solver iterativo e receberá uma mensagem de erro +que "MAXKOI" precisa ser aumentada. @@ -1698,10 +1697,10 @@ that "MAXKOI" needs to be increased. '%1' does not exist! Specify another file please. - The specified z88r executable + O executável z88r especificado '%1' - does not exist! -Specify another file please. + não existe! +Especifique outro arquivo, por favor. @@ -1712,12 +1711,12 @@ Specify another file please. You must specify the path to the z88r.exe! - You must specify the path to the z88r.exe! + Você deve especificar o caminho para o z88r.exe! You must specify the path to the z88r! - You must specify the path to the z88r! + Você deve especificar o caminho para o z88r! @@ -1978,13 +1977,13 @@ Specify another file please. Only one face in object! - moved to master face - Only one face in object! - moved to master face + Apenas uma face no objeto! - movida para face mestre Only one master face and one slave face for a contact constraint! - Only one master face and one slave face for a contact constraint! + Apenas uma face mestre e uma face subordinada para restrição de contato! @@ -1998,7 +1997,7 @@ Specify another file please. Only one slave face for a contact constraint! - Only one slave face for a contact constraint! + Apenas uma face subordinada para restrições de contato! @@ -2017,12 +2016,12 @@ Specify another file please. Only one master for a contact constraint! - Only one master for a contact constraint! + Apenas um mestre para restrições de contato! Only one master face for a contact constraint! - Only one master face for a contact constraint! + Apenas uma face mestre para restrições de contato! @@ -2051,7 +2050,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Apenas um tipo de seleção (vértice, face ou aresta) por restrição permitida! @@ -2080,7 +2079,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Apenas um tipo de seleção (vértice, face ou aresta) por restrição permitida! @@ -2103,12 +2102,12 @@ Specify another file please. select boundary type, faces and set value - select boundary type, faces and set value + selecione o tipo de limite, faces e definir valor Intensity [0~1] - Intensity [0~1] + Intensidade [0~1] @@ -2118,12 +2117,12 @@ Specify another file please. Length Scale[m] - Length Scale[m] + Escala de comprimento [m] Viscosity Ratio [1] - Viscosity Ratio [1] + Proporção de Viscosidade [1] @@ -2144,7 +2143,7 @@ Specify another file please. Empty selection - Empty selection + Limpar seleção @@ -2209,7 +2208,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Apenas um tipo de seleção (vértice, face ou aresta) por restrição permitida! @@ -2238,7 +2237,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Apenas um tipo de seleção (vértice, face ou aresta) por restrição permitida! @@ -2326,7 +2325,7 @@ Specify another file please. Only one face can be selected for a plane rotation constraint! - Only one face can be selected for a plane rotation constraint! + Apenas uma face pode ser selecionada para uma restrição de rotação de plano! @@ -2450,12 +2449,12 @@ Specify another file please. Constraint update error - Constraint update error + Erro de atualização de restrição The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! - The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! + As faces transformáveis mudaram. Por favor, adicione apenas as faces transformáveis e remova as faces não-transformáveis! @@ -2481,7 +2480,7 @@ Specify another file please. Only one face for rectangular transform constraint! - Only one face for rectangular transform constraint! + Apenas uma face para restrição de transformação retangular! @@ -2492,7 +2491,7 @@ Specify another file please. Only one face for transform constraint! - Only one face for transform constraint! + Apenas uma face para restrições de transformação! @@ -2507,7 +2506,7 @@ Specify another file please. Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface - Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface + Apenas faces transformáveis podem ser selecionadas! Aplique a restrição de deslocamento à superfície primeiro e então aplique a restrição à superfície @@ -2523,7 +2522,7 @@ Specify another file please. Clip region, choose implicit function - Clip region, choose implicit function + Região de recorte, escolha função implícita @@ -2531,7 +2530,7 @@ Specify another file please. Function cut, choose implicit function - Function cut, choose implicit function + Função cortar, escolha função implícita @@ -2539,7 +2538,7 @@ Specify another file please. Data along a line options - Data along a line options + Dados ao longo de uma linha de opções @@ -2553,12 +2552,12 @@ Specify another file please. Data at point options - Data at point options + Opções de dados no ponto %1 at (%2; %3; %4) is: %5 %6 - %1 at (%2; %3; %4) is: %5 %6 + %1 em (%2; %3; %4) é: %5 %6 @@ -2566,7 +2565,7 @@ Specify another file please. Result display options - Result display options + Opções de exibição de resultados @@ -2574,7 +2573,7 @@ Specify another file please. Implicit function - Implicit function + Função implícita @@ -2582,7 +2581,7 @@ Specify another file please. Scalar clip options - Scalar clip options + Opções de recorte escalar @@ -2590,7 +2589,7 @@ Specify another file please. Warp options - Warp options + Opções de dobra @@ -2628,7 +2627,7 @@ Specify another file please. FEM material - FEM material + Material FEM @@ -2645,7 +2644,7 @@ Specify another file please. Material card - Material card + Cartão de Material @@ -2655,7 +2654,7 @@ Specify another file please. Material name - Material name + Nome do material @@ -2672,17 +2671,17 @@ Specify another file please. Editing material - Editing material + Editando material use FreeCAD material editor - use FreeCAD material editor + Usar o editor de materiais do FreeCAD use this task panel - use this task panel + Usar este painel de tarefas @@ -2722,17 +2721,17 @@ Specify another file please. Fluidic Properties - Fluidic Properties + Propriedades do fluído Kinematic viscosity: - Kinematic viscosity: + Viscosidade cinemática: 0 m^2/s - 0 m^2/s + 0 m^2/s @@ -2768,23 +2767,23 @@ Specify another file please. 0 J/kg/K - 0 J/kg/K + 0 J/kg/K Vol Expansion Coeff - Vol Expansion Coeff + Coeficiente de Expansão Volumétrico Matrix Material - Matrix Material + Material da Matriz Choose - Choose + Escolha @@ -2813,7 +2812,7 @@ Specify another file please. Reinforcement Material - Reinforcement Material + Material de Reforço @@ -2826,17 +2825,17 @@ Specify another file please. Fluid Section Parameter - Fluid Section Parameter + Parâmetros da Seção de Fluídos Liquid Section Parameter - Liquid Section Parameter + Parâmetros da Seção de Líquidos Pipe Area - Pipe Area + Área do Tubo @@ -2852,39 +2851,39 @@ Specify another file please. 0 mm^2 - 0 mm^2 + 0 mm^2 Hydraulic Radius - Hydraulic Radius + Raio hidráulico Manning Coefficient - Manning Coefficient + Coeficiente de Manning Initial Area - Initial Area + Área Inicia Enlarged Area - Enlarged Area + Área Ampliada Contracted Area - Contracted Area + Área Retraída Inlet Pressure - Inlet Pressure + Pressão de Entrada @@ -2901,29 +2900,29 @@ Specify another file please. Inlet Mass Flow Rate - Inlet Mass Flow Rate + Taxa de Entrada de Massa Mass flow rate - Mass flow rate + Taxa de massa 0 kg/s - 0 kg/s + 0 kg/s Outlet Pressure - Outlet Pressure + Pressão de saída Outlet Mass Flow Rate - Outlet Mass Flow Rate + Taxa de Saída de Massa @@ -2932,77 +2931,77 @@ Specify another file please. Pipe Area - Pipe Area + Área do Tubo Entrance Area - Entrance Area + Área de Entrada Diaphragm Area - Diaphragm Area + Área do Diafragma Bend Radius/Pipe Diameter - Bend Radius/Pipe Diameter + Raio da Curva/Diâmetro do Tubo Bend Angle - Bend Angle + Ângulo de Curva Head loss coefficient - Head loss coefficient + Coeficiente de perda de cabeça Gate valve closing coefficient - Gate valve closing coefficient + Coeficiente de fechamento de válvula porta Pump Characteristic - Pump Characteristic + Características da Bomba Flow rate [mm^3/s] - Flow rate [mm^3/s] + Taxa de fluxo [mm^3/s] Head Loss[mm] - Head Loss[mm] + Perda da Cabeça [mm] Grain diameter - Grain diameter + Diâmetro do grão Cross section form factor - Cross section form factor + Fator de forma de seção transversal Gas Section Parameter - Gas Section Parameter + Parâmetros da Seção de Gás Open Channel Section Parameter - Open Channel Section Parameter + Parâmetros da Seção do Canal Aberto Tie parameter - Tie parameter + Amarrar parâmetro @@ -3023,12 +3022,12 @@ Specify another file please. Tolerance: - Tolerance: + Tolerância: Centrif parameter - Centrif parameter + Parâmetro de centrífuga @@ -3042,27 +3041,27 @@ Specify another file please. Rotation frequency f<sub>rot</sub> [rps] - Rotation frequency f<sub>rot</sub> [rps] + Frequência de rotação f<sub>rot</sub> [rps] revolutions per second - revolutions per second + rotações por segundo 0 1/s - 0 1/s + 0 1/s 1/s - 1/s + 1/s SectionPrint parameter - SectionPrint parameter + Parâmetros de impressão de seções @@ -3073,17 +3072,17 @@ Specify another file please. Constraint Properties - Constraint Properties + Propriedades de Restrição Body heat in W/kg: - Body heat in W/kg: + Calor do corpo em W/kg: Potential: - Potential: + Potencial: @@ -3114,43 +3113,43 @@ Specify another file please. unspecified - unspecified + não especificado Electric potential - Electric potential + Potencial elétrico To define a vector field - To define a vector field + Para definir um campo vetorial Vector Field - Vector Field + Campo Vetorial Imaginary part is only used for equations with a harmonic/oscillating driving force - Imaginary part is only used for equations -with a harmonic/oscillating driving force + Parte imaginária é usada apenas para equações +com forças atuantes harmônicas/oscilantes Real - Real + Real Imaginary - Imaginary + Imaginário @@ -3160,12 +3159,12 @@ with a harmonic/oscillating driving force Potential as specified above - Potential as specified above + Potencial como especificado acima Imaginary part of scalar potential - Imaginary part of scalar potential + Parte imaginária de potencial escalar @@ -3178,15 +3177,15 @@ with a harmonic/oscillating driving force Real part of potential x-component Note: has no effect if a solid was selected - Real part of potential x-component -Note: has no effect if a solid was selected + Parte real de componente-x potencial +Nota: não surge efeito se um sólido foi selecionado Imaginary part of potential x-component Note: has no effect if a solid was selected - Imaginary part of potential x-component -Note: has no effect if a solid was selected + Parte imaginária de componente-x potencial +Nota: não surge efeito se um sólido foi selecionado @@ -3199,15 +3198,15 @@ Note: has no effect if a solid was selected Real part of potential y-component Note: has no effect if a solid was selected - Real part of potential y-component -Note: has no effect if a solid was selected + Parte real de componente-y potencial +Nota: não surge efeito se um sólido foi selecionado Imaginary part of potential y-component Note: has no effect if a solid was selected - Imaginary part of potential y-component -Note: has no effect if a solid was selected + Parte imaginária de componente-y potencial +Nota: não surge efeito se um sólido foi selecionado @@ -3220,61 +3219,61 @@ Note: has no effect if a solid was selected Real part of potential z-component Note: has no effect if a solid was selected - Real part of potential z-component -Note: has no effect if a solid was selected + Parte real de componente-z potencial +Nota: não surge efeito se um sólido foi selecionado Imaginary part of potential z-component Note: has no effect if a solid was selected - Imaginary part of potential z-component -Note: has no effect if a solid was selected + Parte imaginária de componente-z potencial +Nota: não surge efeito se um sólido foi selecionado Whether the constraint defines a constant potential - Whether the constraint defines a constant potential + Se a restrição define um potencial constante Potential Constant - Potential Constant + Constante potencial Whether the constraint defines a farfield potential - Whether the constraint defines a farfield potential + Se a restrição define um potencial de Campo distante Farfield / Electric infinity - Farfield / Electric infinity + Campo distante / Infinidade Elétrica Whether the constraint is for the electric force - Whether the constraint is for the electric force + Se a restrição é para a força elétrica Calculate Electric Force - Calculate Electric Force + Calcular Força Elétrica Capacity Body: Enabled by 'Calculate Capacity Matrix' in Electrostatic equation - Capacity Body: + Capacidade do Corpo: Counter of the body (or face) with a capacitance - Counter of the body (or face) with a capacitance + Oposto do corpo (ou face) com uma capacitância Beam section parameter - Beam section parameter + Parâmetro da seção da viga @@ -3285,18 +3284,18 @@ Note: has no effect if a solid was selected Width: - Width: + Largura: Height: - Height: + Altura: Diameter: - Diameter: + Diâmetro: @@ -3306,12 +3305,12 @@ Note: has no effect if a solid was selected Shell thickness parameter - Shell thickness parameter + Parâmetro da espessura da casca Thickness: - Thickness: + Espessura: @@ -3321,12 +3320,12 @@ Note: has no effect if a solid was selected 0 degree - 0 degree + 0 graus Rotation: - Rotation: + Rotação: @@ -3336,7 +3335,7 @@ Note: has no effect if a solid was selected formula - formula + fórmula @@ -3364,7 +3363,7 @@ Note: has no effect if a solid was selected Max Layers - Max Layers + Máx. de camadas @@ -3374,17 +3373,17 @@ Note: has no effect if a solid was selected Growth ratio - Growth ratio + Taxa de crescimento Mesh group - Mesh group + Grupo de malha Identifier used for mesh export - Identifier used for mesh export + Identificador usado para exportação de malha @@ -3399,7 +3398,7 @@ Note: has no effect if a solid was selected Mesh region - Mesh region + Região de malha @@ -3409,7 +3408,7 @@ Note: has no effect if a solid was selected Pressure: - Pressure: + Pressão: @@ -3433,10 +3432,10 @@ Note: if a face was selected this will be the value Note: if a face was selected this will be the value in normal face direction settings for y and z will be ignored - Imaginary part of potential x-component -Note: if a face was selected this will be the value - in normal face direction - settings for y and z will be ignored + Parte imaginária de componente-x potencial +Nota: se uma face foi selecionada esse será o valor + em direção normal da face + ajustes para y e z serão ignorados @@ -3452,9 +3451,9 @@ Note: for 2D only setting for x is possible, Imaginary part of potential y-component Note: for 2D only setting for x is possible, setting for y will be ignored - Imaginary part of potential y-component -Note: for 2D only setting for x is possible, - setting for y will be ignored + Parte imaginária de componente-y potencial +Nota: para configuração apenas 2D para x é possível, + configuração para y será ignorada @@ -3469,7 +3468,7 @@ Note: for 2D only setting for x is possible, Imaginary part of potential x-component - Imaginary part of potential x-component + Parte imaginária de componente-x potencial @@ -3479,7 +3478,7 @@ Note: for 2D only setting for x is possible, Imaginary part of potential y-component - Imaginary part of potential y-component + Parte imaginária de componente-y potencial @@ -3491,7 +3490,7 @@ Note: for 2D only setting for x is possible, Imaginary part of potential z-component - Imaginary part of potential z-component + Parte imaginária de componente-z potencial @@ -4350,7 +4349,7 @@ For possible variables, see the description box below. Select slave face, click Add or Remove - Select slave face, click Add or Remove + Selecione uma face subordinada, clique Adicionar ou Remover @@ -5222,22 +5221,22 @@ used for the Elmer solver warp vectors - warp vectors + vetores de dobra Min warp - Min warp + Dobra mínima Warp factor - Warp factor + Fator de dobra Max warp - Max warp + Dobra máxima @@ -5381,117 +5380,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Malha - + M&esh M&esh - + Solve Resolver - + &Solve &Solve - + Results Resultados - + &Results &Results - + Filter functions Funções de filtro - + &Filter functions &Filter functions - + Utilities Utilitários @@ -5583,12 +5584,12 @@ used for the Elmer solver Constraint centrif - Constraint centrif + Restrição de centrífuga Creates a FEM constraint centrif - Creates a FEM constraint centrif + Cria uma restrição de centrífuga FEM @@ -5648,12 +5649,12 @@ used for the Elmer solver Constraint sectionprint - Constraint sectionprint + Restrições de impressão de seções Creates a FEM constraint sectionprint - Creates a FEM constraint sectionprint + Cria uma restrição de impressão de seções FEM @@ -5674,12 +5675,12 @@ used for the Elmer solver Constraint tie - Constraint tie + Restringir amarração Creates a FEM constraint tie - Creates a FEM constraint tie + Cria uma amarração restrita FEM diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pt-PT.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pt-PT.ts index 3f5b4266cd..ca1ee7c57f 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_pt-PT.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_pt-PT.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Malha - + M&esh M&esh - + Solve Resolver - + &Solve &Solve - + Results Results - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Utilitários diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ro.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ro.ts index 3f7e894b3b..cfb718f234 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ro.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ro.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Rezolvă - + &Solve &Solve - + Results Rezultate - + &Results &Results - + Filter functions Filtrează funcțiile - + &Filter functions &Filter functions - + Utilities Utilități diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts index f8e6c7ef3b..b0a59a6a1d 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts @@ -5370,117 +5370,119 @@ used for the Elmer solver &Электростатические Ограничения - + Fluid Constraints Гидравлические Ограничения - + &Fluid Constraints &Гидравлические Ограничения - + + Electromagnetic Constraints Электромагнитные граничные условия - + + &Electromagnetic Constraints &Электромагнитные граничные условия - + Geometrical Constraints Геометрические Ограничения - + &Geometrical Constraints &Геометрические Ограничения - + Mechanical Constraints Механические ограничения - + &Mechanical Constraints &Механические ограничения - + Thermal Constraints Термальные ограничения - + &Thermal Constraints &Термальные ограничения - + Constraints without solver Ограничения без решения - + &Constraints without solver &Ограничения без решения - + Overwrite Constants Перезаписать константы - + &Overwrite Constants &Перезаписать константы - + Mesh Сеть - + M&esh &Сетка - + Solve Решить - + &Solve &Расчитать - + Results Результаты - + &Results &Результаты - + Filter functions Функции фильтра - + &Filter functions &Функции фильтра - + Utilities Вспомогательные diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_sl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_sl.ts index 778032d200..1c2f816ef5 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_sl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_sl.ts @@ -2683,7 +2683,7 @@ Specify another file please. use this task panel - use this task panel + uporabi to podokno nalog @@ -3048,7 +3048,7 @@ Specify another file please. revolutions per second - revolutions per second + obratov na sekundo @@ -4238,7 +4238,7 @@ Možne spremenljivke si oglejte v spodnjem opisnem okencu. Reverse direction - Reverse direction + Nasprotna smer @@ -4559,7 +4559,7 @@ normal vector of the face is used as direction Reverse direction - Reverse direction + Nasprotna smer @@ -4654,7 +4654,7 @@ normal vector of the face is used as direction Reverse direction - Reverse direction + Nasprotna smer @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Elektromagnetna omejila - + + &Electromagnetic Constraints &Elektromagnetna omejila - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Reši - + &Solve &Solve - + Results Izid - + &Results &Results - + Filter functions Zmožnosti presejanja - + &Filter functions &Zmožnosti presejanja - + Utilities Pripomočki diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_sr-CS.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_sr-CS.ts index 45147137c8..609ed73ec9 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_sr-CS.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_sr-CS.ts @@ -5380,117 +5380,119 @@ used for the Elmer solver &Elektrostatička ograničenja - + Fluid Constraints Ograničenja fluida - + &Fluid Constraints &Ograničenja fluida - + + Electromagnetic Constraints Elektromagnetna ograničenja - + + &Electromagnetic Constraints &Elektromagnetna ograničenja - + Geometrical Constraints Geometrijska ograničenja - + &Geometrical Constraints &Geometrijska ograničenja - + Mechanical Constraints Mehanička ograničenja - + &Mechanical Constraints &Mehanička ograničenja - + Thermal Constraints Toplotna ograničenja - + &Thermal Constraints &Toplotna ograničenja - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Reši - + &Solve &Solve - + Results Rezultati - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Korisni alati @@ -6214,7 +6216,7 @@ used for the Elmer solver Solid - Puno telo + Puno diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_sr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_sr.ts index 5a0023661c..d9e7b984b1 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_sr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_sr.ts @@ -5380,117 +5380,119 @@ used for the Elmer solver &Електростатичка ограничења - + Fluid Constraints Ограничења флуида - + &Fluid Constraints &Ограничења флуида - + + Electromagnetic Constraints Електромагнетна ограничења - + + &Electromagnetic Constraints &Електромагнетна ограничења - + Geometrical Constraints Геометријска ограничења - + &Geometrical Constraints &Геометријска ограничења - + Mechanical Constraints Механичка ограничења - + &Mechanical Constraints &Механичка ограничења - + Thermal Constraints Топлотна ограничења - + &Thermal Constraints &Топлотна ограничења - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Реши - + &Solve &Solve - + Results Резултати - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Корисни алати @@ -6214,7 +6216,7 @@ used for the Elmer solver Solid - Пуно тело + Пуно diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_sv-SE.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_sv-SE.ts index 21a1f02ad4..cc4279e807 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_sv-SE.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_sv-SE.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Nät - + M&esh M&esh - + Solve Lös - + &Solve &Solve - + Results Resultat - + &Results &Resultat - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Verktyg diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_tr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_tr.ts index c440b1a937..9faeb4708c 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_tr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_tr.ts @@ -5373,117 +5373,119 @@ used for the Elmer solver &Elektrostatik Kısıtlamalar - + Fluid Constraints Akışkan Kısıtlamaları - + &Fluid Constraints &Akışkan Kısıtlamaları - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrik Kısıtlamalar - + &Geometrical Constraints &Geometrik Kısıtlamalar - + Mechanical Constraints Mekanik Kısıtlamalar - + &Mechanical Constraints &Mekanik Kısıtlamalar - + Thermal Constraints Isıl Kısıtlamalar - + &Thermal Constraints Isıl Kısı&tlamalar - + Constraints without solver Çözücüsüz kısıtlamalar - + &Constraints without solver Çözü&cüsüz kısıtlamalar - + Overwrite Constants Sabit Değerlerin Üzerine Yaz - + &Overwrite Constants &Sabit Değerlerin Üzerine Yaz - + Mesh Mesh - + M&esh M&esh - + Solve Çözmek - + &Solve &Çöz - + Results Sonuçlar - + &Results Sonuçla&r - + Filter functions Süzgeç işlevleri - + &Filter functions &Süzgeç işlevleri - + Utilities Yard. Uygulamalar diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts index a383aebe96..5fbbed6f86 100755 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts @@ -5383,117 +5383,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Електромагнітні обмеження - + + &Electromagnetic Constraints &Електромагнітні обмеження - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Сітка(Меш) - + M&esh M&esh - + Solve Розв’язати - + &Solve &Solve - + Results Results - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Утиліти diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_val-ES.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_val-ES.ts index b24857d27e..70fa94a7ab 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_val-ES.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_val-ES.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints Fluid Constraints - + &Fluid Constraints &Fluid Constraints - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints Geometrical Constraints - + &Geometrical Constraints &Geometrical Constraints - + Mechanical Constraints Mechanical Constraints - + &Mechanical Constraints &Mechanical Constraints - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh Mesh - + M&esh M&esh - + Solve Resol - + &Solve &Solve - + Results Results - + &Results &Results - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities Utilitats diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_zh-CN.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_zh-CN.ts index f759c11d71..a384fc8f25 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_zh-CN.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_zh-CN.ts @@ -5382,117 +5382,119 @@ used for the Elmer solver &Electrostatic Constraints - + Fluid Constraints 流体约束 - + &Fluid Constraints 流体约束(&F) - + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - + Geometrical Constraints 几何约束 - + &Geometrical Constraints 几何约束(&G) - + Mechanical Constraints 力学约束 - + &Mechanical Constraints 力学约束(&M) - + Thermal Constraints Thermal Constraints - + &Thermal Constraints &Thermal Constraints - + Constraints without solver Constraints without solver - + &Constraints without solver &Constraints without solver - + Overwrite Constants Overwrite Constants - + &Overwrite Constants &Overwrite Constants - + Mesh 网格 - + M&esh 网格(&M) - + Solve 求解 - + &Solve 求解(&S) - + Results Results - + &Results 结果(&R) - + Filter functions Filter functions - + &Filter functions &Filter functions - + Utilities 实用程序 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_zh-TW.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_zh-TW.ts index bf1a731f6f..56ce0b7eea 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_zh-TW.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_zh-TW.ts @@ -11,12 +11,12 @@ Constraint bearing - Constraint bearing + Constraint bearing Creates a FEM constraint for a bearing - Creates a FEM constraint for a bearing + Creates a FEM constraint for a bearing @@ -29,12 +29,12 @@ Constraint contact - Constraint contact + Constraint contact Creates a FEM constraint for contact between faces - Creates a FEM constraint for contact between faces + Creates a FEM constraint for contact between faces @@ -47,12 +47,12 @@ Constraint displacement - Constraint displacement + Constraint displacement Creates a FEM constraint for a displacement acting on a geometric entity - Creates a FEM constraint for a displacement acting on a geometric entity + Creates a FEM constraint for a displacement acting on a geometric entity @@ -65,12 +65,12 @@ Constraint fixed - Constraint fixed + Constraint fixed Creates a FEM constraint for a fixed geometric entity - Creates a FEM constraint for a fixed geometric entity + Creates a FEM constraint for a fixed geometric entity @@ -83,12 +83,12 @@ Fluid boundary condition - Fluid boundary condition + Fluid boundary condition Create fluid boundary condition on face entity for Computional Fluid Dynamics - Create fluid boundary condition on face entity for Computional Fluid Dynamics + Create fluid boundary condition on face entity for Computional Fluid Dynamics @@ -106,7 +106,7 @@ Creates a FEM constraint for a force acting on a geometric entity - Creates a FEM constraint for a force acting on a geometric entity + Creates a FEM constraint for a force acting on a geometric entity @@ -119,12 +119,12 @@ Constraint gear - Constraint gear + Constraint gear Creates a FEM constraint for a gear - Creates a FEM constraint for a gear + Creates a FEM constraint for a gear @@ -137,12 +137,12 @@ Constraint heatflux - Constraint heatflux + Constraint heatflux Creates a FEM constraint for a heatflux acting on a face - Creates a FEM constraint for a heatflux acting on a face + Creates a FEM constraint for a heatflux acting on a face @@ -155,12 +155,12 @@ Constraint initial temperature - Constraint initial temperature + Constraint initial temperature Creates a FEM constraint for initial temperature acting on a body - Creates a FEM constraint for initial temperature acting on a body + Creates a FEM constraint for initial temperature acting on a body @@ -173,12 +173,12 @@ Constraint plane rotation - Constraint plane rotation + Constraint plane rotation Creates a FEM constraint for plane rotation face - Creates a FEM constraint for plane rotation face + Creates a FEM constraint for plane rotation face @@ -191,12 +191,12 @@ Constraint pressure - Constraint pressure + Constraint pressure Creates a FEM constraint for a pressure acting on a face - Creates a FEM constraint for a pressure acting on a face + Creates a FEM constraint for a pressure acting on a face @@ -209,12 +209,12 @@ Constraint pulley - Constraint pulley + Constraint pulley Creates a FEM constraint for a pulley - Creates a FEM constraint for a pulley + Creates a FEM constraint for a pulley @@ -227,12 +227,12 @@ Constraint spring - Constraint spring + Constraint spring Creates a FEM constraint for a spring acting on a face - Creates a FEM constraint for a spring acting on a face + Creates a FEM constraint for a spring acting on a face @@ -245,12 +245,12 @@ Constraint temperature - Constraint temperature + Constraint temperature Creates a FEM constraint for a temperature/concentrated heat flux acting on a face - Creates a FEM constraint for a temperature/concentrated heat flux acting on a face + Creates a FEM constraint for a temperature/concentrated heat flux acting on a face @@ -263,12 +263,12 @@ Constraint transform - Constraint transform + Constraint transform Create FEM constraint for transforming a face - Create FEM constraint for transforming a face + Create FEM constraint for transforming a face @@ -286,17 +286,17 @@ Creates a FEM mesh nodes set - Creates a FEM mesh nodes set + Creates a FEM mesh nodes set Wrong selection - 錯誤的選擇 + 錯誤的選取 Select a single FEM mesh or nodes set, please. - 請選取一個FEM網格或節點組合. + 請選取一個FEM網格或節點組 @@ -309,7 +309,7 @@ Node set by poly - Node set by poly + Node set by poly @@ -328,12 +328,12 @@ Apply changes to pipeline - Apply changes to pipeline + Apply changes to pipeline Apply changes to parameters directly and not on recompute only... - Apply changes to parameters directly and not on recompute only... + Apply changes to parameters directly and not on recompute only... @@ -346,22 +346,22 @@ Region clip filter - Region clip filter + Region clip filter Define/create a clip filter which uses functions to define the cliped region - Define/create a clip filter which uses functions to define the cliped region + Define/create a clip filter which uses functions to define the cliped region Wrong selection - 錯誤的選擇 + 錯誤的選取 Select a pipeline, please. - Select a pipeline, please. + Select a pipeline, please. @@ -374,12 +374,12 @@ Function cut filter - Function cut filter + Function cut filter Cut the data along an implicit function - Cut the data along an implicit function + Cut the data along an implicit function @@ -392,12 +392,12 @@ Line clip filter - Line clip filter + Line clip filter Define/create a clip filter which clips a field along a line - Define/create a clip filter which clips a field along a line + Define/create a clip filter which clips a field along a line @@ -410,12 +410,12 @@ Data at point clip filter - Data at point clip filter + Data at point clip filter Define/create a clip filter which clips a field data at point - Define/create a clip filter which clips a field data at point + Define/create a clip filter which clips a field data at point @@ -428,12 +428,12 @@ Filter functions - 篩選功能 + Filter functions Functions for use in postprocessing filter... - Functions for use in postprocessing filter... + Functions for use in postprocessing filter... @@ -462,37 +462,37 @@ Thickness [mm] Plot X-Axis Label - 厚度(mm) + Thickness [mm] Stress [MPa] Plot Y-Axis Label - Stress [MPa] + Stress [MPa] Linearized Stresses Plot title - Linearized Stresses + Linearized Stresses Membrane Plot legend item label - Membrane + Membrane Membrane and Bending Plot legend item label - Membrane and Bending + Membrane and Bending Total Plot legend item label - 總計 + Total @@ -502,24 +502,24 @@ Stress linearization plot - Stress linearization plot + Stress linearization plot Define/create stress linearization plots - Define/create stress linearization plots + Define/create stress linearization plots Wrong selection - 錯誤的選擇 + 錯誤的選取 Select a Clip filter which clips a STRESS field along a line, please. - Select a Clip filter which clips a STRESS field along a line, please. + Select a Clip filter which clips a STRESS field along a line, please. @@ -532,22 +532,22 @@ Post pipeline from result - Post pipeline from result + Post pipeline from result Creates a post processing pipeline from a result object - Creates a post processing pipeline from a result object + Creates a post processing pipeline from a result object Wrong selection type - Wrong selection type + Wrong selection type Select a result object, please. - Select a result object, please. + Select a result object, please. @@ -560,12 +560,12 @@ Scalar clip filter - Scalar clip filter + Scalar clip filter Define/create a clip filter which clips a field with a scalar value - Define/create a clip filter which clips a field with a scalar value + Define/create a clip filter which clips a field with a scalar value @@ -578,12 +578,12 @@ Warp filter - Warp filter + Warp filter Warp the geometry along a vector field by a certain factor - Warp the geometry along a vector field by a certain factor + Warp the geometry along a vector field by a certain factor @@ -591,112 +591,112 @@ Make FEM constraint for bearing - Make FEM constraint for bearing + Make FEM constraint for bearing Make FEM constraint contact on face - Make FEM constraint contact on face + Make FEM constraint contact on face Make FEM constraint displacement on face - Make FEM constraint displacement on face + Make FEM constraint displacement on face Make FEM constraint fixed geometry - Make FEM constraint fixed geometry + Make FEM constraint fixed geometry Create fluid boundary condition - Create fluid boundary condition + Create fluid boundary condition Make FEM constraint force on geometry - Make FEM constraint force on geometry + Make FEM constraint force on geometry Make FEM constraint for gear - Make FEM constraint for gear + Make FEM constraint for gear Make FEM constraint heatflux on face - Make FEM constraint heatflux on face + Make FEM constraint heatflux on face Make FEM constraint initial temperature on body - Make FEM constraint initial temperature on body + Make FEM constraint initial temperature on body Make FEM constraint Plane Rotation face - Make FEM constraint Plane Rotation face + Make FEM constraint Plane Rotation face Make FEM constraint pressure on face - Make FEM constraint pressure on face + Make FEM constraint pressure on face Make FEM constraint spring on face - Make FEM constraint spring on face + Make FEM constraint spring on face Make FEM constraint for pulley - Make FEM constraint for pulley + Make FEM constraint for pulley Make FEM constraint temperature on face - Make FEM constraint temperature on face + Make FEM constraint temperature on face Make FEM constraint transform on face - Make FEM constraint transform on face + Make FEM constraint transform on face Place robot - 放置機器人 + Place robot Edit nodes set - Edit nodes set + Edit nodes set Create nodes set - Create nodes set + Create nodes set Create filter - Create filter + Create filter Create function - Create function + Create function Create pipeline from result - Create pipeline from result + Create pipeline from result Edit Mirror - Edit Mirror + 編輯鏡像 @@ -706,22 +706,22 @@ Dialog - 對話框 + 對話方塊 Mesh groups detected. Please choose values for the different groups. - Mesh groups detected. Please choose values for the different groups. + Mesh groups detected. Please choose values for the different groups. Id - ID + Id Label - 標籤 + Label @@ -741,7 +741,7 @@ Select the vertices, lines and surfaces: - Select the vertices, lines and surfaces: + Select the vertices, lines and surfaces: @@ -753,7 +753,7 @@ ºC - ºC + ºC @@ -778,12 +778,12 @@ Create a plane function, defined by its origin and normal - Create a plane function, defined by its origin and normal + Create a plane function, defined by its origin and normal Create a sphere function, defined by its center and radius - Create a sphere function, defined by its center and radius + Create a sphere function, defined by its center and radius @@ -807,17 +807,17 @@ CalculiX binary - CalculiX binary + CalculiX binary Search in known binary directories - Search in known binary directories + Search in known binary directories ccx binary path - ccx binary path + ccx binary path @@ -827,12 +827,12 @@ Input file Editor - Input file Editor + Input file Editor Use internal editor for *.inp files - Use internal editor for *.inp files + Use internal editor for *.inp files @@ -842,17 +842,17 @@ Input file splitting - Input file splitting + Input file splitting Split writing of *.inp - Split writing of *.inp + Split writing of *.inp Analysis defaults - Analysis defaults + Analysis defaults @@ -877,22 +877,22 @@ Thermomech - Thermomech + Thermomech Check Mesh - Check Mesh + Check Mesh Buckling - Buckling + Buckling Solver defaults - Solver defaults + Solver defaults @@ -902,7 +902,7 @@ Matrix solver - Matrix solver + Matrix solver @@ -912,88 +912,88 @@ Spooles - Spooles + Spooles Iterative Scaling - Iterative Scaling + Iterative Scaling Iterative Cholesky - Iterative Cholesky + Iterative Cholesky Non-linear geometry - Non-linear geometry + Non-linear geometry Use non-linear geometry - Use non-linear geometry + Use non-linear geometry Time incrementation control parameter - Time incrementation control parameter + Time incrementation control parameter Use non ccx defaults - Use non ccx defaults + Use non ccx defaults Time Initial Step - Time Initial Step + Time Initial Step s - s + s Time End - Time End + Time End Beam, shell element 3D output format - Beam, shell element 3D output format + Beam, shell element 3D output format 3D Output, unchecked for 2D - 3D Output, unchecked for 2D + 3D Output, unchecked for 2D Thermo mechanical defaults - Thermo mechanical defaults + Thermo mechanical defaults Analysis type (transient or steady state) - Analysis type (transient or steady state) + Analysis type (transient or steady state) Use steady state - Use steady state + Use steady state Maximum number of iterations - Maximum number of iterations + Maximum number of iterations Frequency defaults - Frequency defaults + Frequency defaults @@ -1038,28 +1038,28 @@ Specify another file please. Elmer - Elmer + Elmer Elmer binaries - Elmer binaries + Elmer binaries ElmerGrid: - ElmerGrid: + ElmerGrid: Search in known binary directories - Search in known binary directories + Search in known binary directories ElmerGrid binary path - ElmerGrid binary path + ElmerGrid binary path @@ -1081,17 +1081,17 @@ will be merged to make the volume boundaries invisible. Leave blank to use default ElmerGrid binary file - Leave blank to use default ElmerGrid binary file + Leave blank to use default ElmerGrid binary file ElmerSolver: - ElmerSolver: + ElmerSolver: ElmerSolver binary path - ElmerSolver binary path + ElmerSolver binary path @@ -1160,7 +1160,7 @@ Therefore an executable with the suffix '_mpi' is required. INP - INP + INP @@ -1170,7 +1170,7 @@ Therefore an executable with the suffix '_mpi' is required. Which mesh elements to export - Which mesh elements to export + Which mesh elements to export @@ -1181,7 +1181,7 @@ for means volumes for a volume mesh and faces for a shell mesh. FEM: Only FEM elements will be exported. This means only edges not belonging to faces and faces not belonging to volumes. - All: All elements will be exported. + All: All elements will be exported. Highest: Only the highest elements will be exported. This means for means volumes for a volume mesh and faces for a shell mesh. @@ -1192,7 +1192,7 @@ not belonging to faces and faces not belonging to volumes. element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) - element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) + element parameter: All: all elements, highest: highest elements only, FEM: FEM elements only (only edges not belonging to faces and faces not belonging to volumes) @@ -1202,7 +1202,7 @@ not belonging to faces and faces not belonging to volumes. Highest - Highest + Highest @@ -1212,7 +1212,7 @@ not belonging to faces and faces not belonging to volumes. Export group data - Export group data + Export group data @@ -1220,7 +1220,7 @@ not belonging to faces and faces not belonging to volumes. Every constraint and, if there are different materials, material consists of two mesh groups, faces and nodes where the constraint or material is applied. - Mesh groups are exported too. + Mesh groups are exported too. Every constraint and, if there are different materials, material consists of two mesh groups, faces and nodes where the constraint or material is applied. @@ -1236,42 +1236,42 @@ constraint or material is applied. Working directory for solving analysis and gmsh meshing - Working directory for solving analysis and gmsh meshing + Working directory for solving analysis and gmsh meshing sdfsdfsdfds - sdfsdfsdfds + sdfsdfsdfds Temporary directories - Temporary directories + Temporary directories Let the application manage (create, delete) the working directories for all solver. Use temporary directories. - Let the application manage (create, delete) the working directories for all solver. Use temporary directories. + Let the application manage (create, delete) the working directories for all solver. Use temporary directories. Beside .FCStd file - Beside .FCStd file + Beside .FCStd file Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). - Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). + Create a directory in the same folder in which the FCStd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.FCStd and a solver with the label Elmer002 use ./mydoc/Elmer002). Use custom directory - Use custom directory + Use custom directory Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. - Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. @@ -1281,7 +1281,7 @@ constraint or material is applied. Overwrite solver working directory with the directory chosen above - Overwrite solver working directory with the directory chosen above + Overwrite solver working directory with the directory chosen above @@ -1291,12 +1291,12 @@ constraint or material is applied. Create mesh groups for analysis reference shapes (highly experimental) - Create mesh groups for analysis reference shapes (highly experimental) + Create mesh groups for analysis reference shapes (highly experimental) Results - Results + 結果 @@ -1308,7 +1308,7 @@ otherwise overwritten by new solver run Keep results on calculation re-run - Keep results on calculation re-run + Keep results on calculation re-run @@ -1320,7 +1320,7 @@ with the last used dialog settings Restore result dialog settings - Restore result dialog settings + Restore result dialog settings @@ -1332,7 +1332,7 @@ when the results dialog is opened Hide constraints when open result dialog - Hide constraints when open result dialog + Hide constraints when open result dialog @@ -1362,27 +1362,27 @@ adding an analysis container Gmsh - Gmsh + Gmsh Gmsh binary - Gmsh binary + Gmsh binary Search in known binary directories - Search in known binary directories + Search in known binary directories Gmsh binary path - Gmsh binary path + Gmsh binary path Leave blank to use default gmsh binary file - Leave blank to use default gmsh binary file + Leave blank to use default gmsh binary file @@ -1406,7 +1406,7 @@ Specify another file please. VTK - VTK + VTK @@ -1416,7 +1416,7 @@ Specify another file please. Which object to import into - Which object to import into + Which object to import into @@ -1430,7 +1430,7 @@ FreeCAD result object: The imported data will be converted into a FreeCAD FEM Result object. Note: this setting needs the exact result component names and thus it only works properly with VTK files exported from FreeCAD. - VTK result object: A FreeCAD FEM VTK result object will be imported + VTK result object: A FreeCAD FEM VTK result object will be imported (equals to the object which was exported). FEM mesh object: The results in the VTK file will be omitted, only the @@ -1444,22 +1444,22 @@ exported from FreeCAD. Choose in which object to import into - Choose in which object to import into + Choose in which object to import into VTK result object - VTK result object + VTK result object FEM mesh object - FEM mesh object + FEM mesh object FreeCAD result object - FreeCAD result object + FreeCAD result object @@ -1472,12 +1472,12 @@ exported from FreeCAD. Card resources - Card resources + Card resources The cards built-in to FreeCAD will be listed as available. - The cards built-in to FreeCAD will be listed as available. + The cards built-in to FreeCAD will be listed as available. @@ -1487,18 +1487,18 @@ exported from FreeCAD. Also cards from FreeCAD's preferences directory will be listed as available. - Also cards from FreeCAD's preferences directory will be listed as available. + Also cards from FreeCAD's preferences directory will be listed as available. Use materials from Materials directory in user's FreeCAD preference directory - Use materials from Materials directory in user's FreeCAD preference directory + Use materials from Materials directory in user's FreeCAD preference directory Also material cards also from the specified directory will be listed as available. - Also material cards also from the specified directory + Also material cards also from the specified directory will be listed as available. @@ -1514,29 +1514,29 @@ will be listed as available. Card sorting and duplicates - Card sorting and duplicates + Card sorting and duplicates Duplicate cards will be deleted from the displayed material card list. - Duplicate cards will be deleted from the displayed material card list. + Duplicate cards will be deleted from the displayed material card list. Delete card duplicates - Delete card duplicates + Delete card duplicates Material cards appear sorted by their resources (locations). If unchecked, they will be sorted by their name. - Material cards appear sorted by their resources (locations). + Material cards appear sorted by their resources (locations). If unchecked, they will be sorted by their name. Sort by resources - Sort by resources + Sort by resources @@ -1544,37 +1544,37 @@ If unchecked, they will be sorted by their name. Mystran - Mystran + Mystran Mystran binary - Mystran binary + Mystran binary Search in known binary directories - Search in known binary directories + Search in known binary directories Mystran binary path - Mystran binary path + Mystran binary path Leave blank to use default Mystran binary file location - Leave blank to use default Mystran binary file location + Leave blank to use default Mystran binary file location Comments - Comments + Comments Write comments to input file - Write comments to input file + Write comments to input file @@ -1598,62 +1598,62 @@ Specify another file please. Z88 - Z88 + Z88 Z88 binary - Z88 binary + Z88 binary Search in known binary directories - Search in known binary directories + Search in known binary directories z88r binary path - z88r binary path + z88r binary path Leave blank to use default Z88 z88r binary file - Leave blank to use default Z88 z88r binary file + Leave blank to use default Z88 z88r binary file Solver settings - Solver settings + Solver settings Solver method - Solver method + Solver method Solver method to be used - Solver method to be used + Solver method to be used Iteration solver with SOR preconditioning (-sorcg) - Iteration solver with SOR preconditioning (-sorcg) + Iteration solver with SOR preconditioning (-sorcg) Iteration solver with SIC preconditioning (-siccg) - Iteration solver with SIC preconditioning (-siccg) + Iteration solver with SIC preconditioning (-siccg) Simple Cholesky solver (-choly) - Simple Cholesky solver (-choly) + Simple Cholesky solver (-choly) Max places in stiffness matrix - Max places in stiffness matrix + Max places in stiffness matrix @@ -1661,7 +1661,7 @@ Specify another file please. You might need to increase this when using the Cholesky solver and you get the error message that "MAXGS" needs to be increased. - Maximal places in stiffnes matrix. + Maximal places in stiffnes matrix. You might need to increase this when using the Cholesky solver and you get the error message that "MAXGS" needs to be increased. @@ -1669,7 +1669,7 @@ that "MAXGS" needs to be increased. Max places in coincidence vector - Max places in coincidence vector + Max places in coincidence vector @@ -1680,7 +1680,7 @@ that "MAXGS" needs to be increased. You might need to increase this when using an iterative solver and you get the error message that "MAXKOI" needs to be increased. - Maximal places in coincidence vector. + Maximal places in coincidence vector. (number of knots per element times number of finite elements) @@ -1979,13 +1979,13 @@ Specify another file please. Only one face in object! - moved to master face - Only one face in object! - moved to master face + Only one face in object! - moved to master face Only one master face and one slave face for a contact constraint! - Only one master face and one slave face for a contact constraint! + Only one master face and one slave face for a contact constraint! @@ -1999,7 +1999,7 @@ Specify another file please. Only one slave face for a contact constraint! - Only one slave face for a contact constraint! + Only one slave face for a contact constraint! @@ -2018,12 +2018,12 @@ Specify another file please. Only one master for a contact constraint! - Only one master for a contact constraint! + Only one master for a contact constraint! Only one master face for a contact constraint! - Only one master face for a contact constraint! + Only one master face for a contact constraint! @@ -2052,7 +2052,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Only one type of selection (vertex,face or edge) per constraint allowed! @@ -2081,7 +2081,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Only one type of selection (vertex,face or edge) per constraint allowed! @@ -2089,68 +2089,68 @@ Specify another file please. Basic - Basic + Basic Turbulence - Turbulence + Turbulence Thermal - Thermal + Thermal select boundary type, faces and set value - select boundary type, faces and set value + select boundary type, faces and set value Intensity [0~1] - Intensity [0~1] + Intensity [0~1] Dissipation Rate [m2/s3] - Dissipation Rate [m2/s3] + Dissipation Rate [m2/s3] Length Scale[m] - Length Scale[m] + Length Scale[m] Viscosity Ratio [1] - Viscosity Ratio [1] + Viscosity Ratio [1] Hydraulic Diameter [m] - Hydraulic Diameter [m] + Hydraulic Diameter [m] Gradient [K/m] - Gradient [K/m] + Gradient [K/m] Flux [W/m2] - Flux [W/m2] + Flux [W/m2] Empty selection - 選擇為空 + Empty selection Select an edge or a face, please. - Select an edge or a face, please. + Select an edge or a face, please. @@ -2159,32 +2159,32 @@ Specify another file please. Wrong selection - 錯誤的選擇 + 錯誤的選取 Selected object is not a part object! - Selected object is not a part object! + Selected object is not a part object! Only one planar face or edge can be selected! - Only one planar face or edge can be selected! + Only one planar face or edge can be selected! Only planar faces can be picked for 3D - Only planar faces can be picked for 3D + Only planar faces can be picked for 3D Only planar edges can be picked for 2D - Only planar edges can be picked for 2D + Only planar edges can be picked for 2D Only faces for 3D part or edges for 2D can be picked - Only faces for 3D part or edges for 2D can be picked + Only faces for 3D part or edges for 2D can be picked @@ -2210,7 +2210,7 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Only one type of selection (vertex,face or edge) per constraint allowed! @@ -2239,18 +2239,18 @@ Specify another file please. Only one type of selection (vertex,face or edge) per constraint allowed! - Only one type of selection (vertex,face or edge) per constraint allowed! + Only one type of selection (vertex,face or edge) per constraint allowed! Wrong selection - 錯誤的選擇 + 錯誤的選取 Select an edge or a face, please. - Select an edge or a face, please. + Select an edge or a face, please. @@ -2306,7 +2306,7 @@ Specify another file please. Selection must only consist of faces! - Selection must only consist of faces! + Selection must only consist of faces! @@ -2327,7 +2327,7 @@ Specify another file please. Only one face can be selected for a plane rotation constraint! - Only one face can be selected for a plane rotation constraint! + Only one face can be selected for a plane rotation constraint! @@ -2451,12 +2451,12 @@ Specify another file please. Constraint update error - Constraint update error + Constraint update error The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! - The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! + The transformable faces have changed. Please add only the transformable faces and remove non-transformable faces! @@ -2482,7 +2482,7 @@ Specify another file please. Only one face for rectangular transform constraint! - Only one face for rectangular transform constraint! + Only one face for rectangular transform constraint! @@ -2493,7 +2493,7 @@ Specify another file please. Only one face for transform constraint! - Only one face for transform constraint! + Only one face for transform constraint! @@ -2508,7 +2508,7 @@ Specify another file please. Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface - Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface + Only transformable faces can be selected! Apply displacement constraint to surface first then apply constraint to surface @@ -2524,7 +2524,7 @@ Specify another file please. Clip region, choose implicit function - Clip region, choose implicit function + Clip region, choose implicit function @@ -2532,7 +2532,7 @@ Specify another file please. Function cut, choose implicit function - Function cut, choose implicit function + Function cut, choose implicit function @@ -2540,7 +2540,7 @@ Specify another file please. Data along a line options - Data along a line options + Data along a line options @@ -2554,7 +2554,7 @@ Specify another file please. Data at point options - Data at point options + Data at point options @@ -2567,7 +2567,7 @@ Specify another file please. Result display options - Result display options + Result display options @@ -2575,7 +2575,7 @@ Specify another file please. Implicit function - Implicit function + Implicit function @@ -2583,7 +2583,7 @@ Specify another file please. Scalar clip options - Scalar clip options + Scalar clip options @@ -2591,7 +2591,7 @@ Specify another file please. Warp options - Warp options + Warp options @@ -2629,7 +2629,7 @@ Specify another file please. FEM material - FEM material + FEM material @@ -2646,7 +2646,7 @@ Specify another file please. Material card - Material card + Material card @@ -2673,37 +2673,37 @@ Specify another file please. Editing material - Editing material + Editing material use FreeCAD material editor - use FreeCAD material editor + use FreeCAD material editor use this task panel - use this task panel + use this task panel Basic Properties - Basic Properties + Basic Properties Density - Density + Density 0 kg/m^3 - 0 kg/m^3 + 0 kg/m^3 Mechanical Properties - Mechanical Properties + Mechanical Properties @@ -2713,7 +2713,7 @@ Specify another file please. 0 Pa - 0 Pa + 0 Pa @@ -2723,58 +2723,58 @@ Specify another file please. Fluidic Properties - Fluidic Properties + Fluidic Properties Kinematic viscosity: - Kinematic viscosity: + Kinematic viscosity: 0 m^2/s - 0 m^2/s + 0 m^2/s Thermal Properties - Thermal Properties + Thermal Properties Thermal Conductivity: - Thermal Conductivity: + Thermal Conductivity: 0 W/m/K - 0 W/m/K + 0 W/m/K Expansion Coefficient: - Expansion Coefficient: + Expansion Coefficient: 0 m/m/K - 0 m/m/K + 0 m/m/K Specific Heat: - Specific Heat: + Specific Heat: 0 J/kg/K - 0 J/kg/K + 0 J/kg/K Vol Expansion Coeff - Vol Expansion Coeff + Vol Expansion Coeff @@ -2785,7 +2785,7 @@ Specify another file please. Choose - 選擇 + Choose @@ -2827,17 +2827,17 @@ Specify another file please. Fluid Section Parameter - Fluid Section Parameter + Fluid Section Parameter Liquid Section Parameter - Liquid Section Parameter + Liquid Section Parameter Pipe Area - Pipe Area + Pipe Area @@ -2853,39 +2853,39 @@ Specify another file please. 0 mm^2 - 0 mm^2 + 0 mm^2 Hydraulic Radius - Hydraulic Radius + Hydraulic Radius Manning Coefficient - Manning Coefficient + Manning Coefficient Initial Area - Initial Area + Initial Area Enlarged Area - Enlarged Area + Enlarged Area Contracted Area - Contracted Area + Contracted Area Inlet Pressure - Inlet Pressure + Inlet Pressure @@ -2897,34 +2897,34 @@ Specify another file please. 0 MPa - 0 MPa + 0 MPa Inlet Mass Flow Rate - Inlet Mass Flow Rate + Inlet Mass Flow Rate Mass flow rate - Mass flow rate + Mass flow rate 0 kg/s - 0 kg/s + 0 kg/s Outlet Pressure - Outlet Pressure + Outlet Pressure Outlet Mass Flow Rate - Outlet Mass Flow Rate + Outlet Mass Flow Rate @@ -2933,12 +2933,12 @@ Specify another file please. Pipe Area - Pipe Area + Pipe Area Entrance Area - Entrance Area + Entrance Area @@ -2998,7 +2998,7 @@ Specify another file please. Open Channel Section Parameter - Open Channel Section Parameter + Open Channel Section Parameter @@ -3024,7 +3024,7 @@ Specify another file please. Tolerance: - 公差: + Tolerance: @@ -3048,12 +3048,12 @@ Specify another file please. revolutions per second - revolutions per second + revolutions per second 0 1/s - 0 1/s + 0 1/s @@ -3156,7 +3156,7 @@ with a harmonic/oscillating driving force Scalar - Scalar + Scalar @@ -3234,48 +3234,48 @@ Note: has no effect if a solid was selected Whether the constraint defines a constant potential - Whether the constraint defines a constant potential + Whether the constraint defines a constant potential Potential Constant - Potential Constant + Potential Constant Whether the constraint defines a farfield potential - Whether the constraint defines a farfield potential + Whether the constraint defines a farfield potential Farfield / Electric infinity - Farfield / Electric infinity + Farfield / Electric infinity Whether the constraint is for the electric force - Whether the constraint is for the electric force + Whether the constraint is for the electric force Calculate Electric Force - Calculate Electric Force + Calculate Electric Force Capacity Body: Enabled by 'Calculate Capacity Matrix' in Electrostatic equation - Capacity Body: + Capacity Body: Counter of the body (or face) with a capacitance - Counter of the body (or face) with a capacitance + Counter of the body (or face) with a capacitance Beam section parameter - Beam section parameter + Beam section parameter @@ -3286,18 +3286,18 @@ Note: has no effect if a solid was selected Width: - 寬度: + Width: Height: - 高度: + Height: Diameter: - 直徑: + Diameter: @@ -3317,17 +3317,17 @@ Note: has no effect if a solid was selected Beam section rotation - Beam section rotation + Beam section rotation 0 degree - 0 degree + 0 degree Rotation: - 旋轉: + Rotation: @@ -3355,37 +3355,37 @@ Note: has no effect if a solid was selected Velocity z: - Velocity z: + Velocity z: Mesh boundary layer settings - Mesh boundary layer settings + Mesh boundary layer settings Max Layers - Max Layers + Max Layers Min/1st thickness - Min/1st thickness + Min/1st thickness Growth ratio - Growth ratio + Growth ratio Mesh group - Mesh group + Mesh group Identifier used for mesh export - Identifier used for mesh export + Identifier used for mesh export @@ -3395,17 +3395,17 @@ Note: has no effect if a solid was selected Label - 標籤 + Label Mesh region - Mesh region + Mesh region Max element size: - Max element size: + Max element size: @@ -3505,12 +3505,12 @@ Note: for 2D only setting for x is possible, FEM Mesh by Gmsh - FEM Mesh by Gmsh + FEM Mesh by Gmsh FEM Mesh Parameter - FEM Mesh Parameter + FEM Mesh Parameter @@ -3520,7 +3520,7 @@ Note: for 2D only setting for x is possible, Max element size (0.0 = Auto): - Max element size (0.0 = Auto): + Max element size (0.0 = Auto): @@ -3531,17 +3531,17 @@ Note: for 2D only setting for x is possible, Min element size (0.0 = Auto): - Min element size (0.0 = Auto): + Min element size (0.0 = Auto): Element order: - Element order: + Element order: Gmsh - Gmsh + Gmsh @@ -3551,7 +3551,7 @@ Note: for 2D only setting for x is possible, Gmsh version - Gmsh 版本 + Gmsh version @@ -3668,67 +3668,67 @@ Note: for 2D only setting for x is possible, Constraint Contact - Constraint Contact + Constraint Contact Constraint displacement - Constraint displacement + Constraint displacement Constraint fixed - Constraint fixed + Constraint fixed Constraint fluid boundary - Constraint fluid boundary + Constraint fluid boundary Constraint heat flux - Constraint heat flux + Constraint heat flux Constraint initial temperature - Constraint initial temperature + Constraint initial temperature Constraint planerotation - Constraint planerotation + Constraint planerotation Constraint pressure - Constraint pressure + Constraint pressure Constraint pulley - Constraint pulley + Constraint pulley Constraint spring - Constraint spring + Constraint spring Constraint temperature - Constraint temperature + Constraint temperature Constraint transform - Constraint transform + Constraint transform Edit post processing object - Edit post processing object + Edit post processing object @@ -3738,7 +3738,7 @@ Note: for 2D only setting for x is possible, Edges - 邊緣 + Edges @@ -3748,17 +3748,17 @@ Note: for 2D only setting for x is possible, Polygons - Polygons + Polygons Volumes - 體積 + Volumes Polyhedrons - Polyhedrons + Polyhedrons @@ -3791,62 +3791,62 @@ Note: for 2D only setting for x is possible, Displacement Magnitude - Displacement Magnitude + Displacement Magnitude von Mises Stress - von Mises Stress + von Mises Stress Displacement X - 方向位移 X + Displacement X Max Principal Stress - Max Principal Stress + Max Principal Stress Displacement Y - 方向位移 Y + Displacement Y Min Principal Stress - Min Principal Stress + Min Principal Stress Displacement Z - 方向位移 Z + Displacement Z Max Shear Stress (Tresca) - Max Shear Stress (Tresca) + Max Shear Stress (Tresca) Equivalent Plastic Strain - Equivalent Plastic Strain + Equivalent Plastic Strain Mass Flow Rate - Mass Flow Rate + Mass Flow Rate Temperature - 溫度 + Temperature Network Pressure - Network Pressure + Network Pressure @@ -3861,7 +3861,7 @@ Note: for 2D only setting for x is possible, Histogram - Histogram + Histogram @@ -3886,128 +3886,128 @@ Note: for 2D only setting for x is possible, User defined equation - User defined equation + User defined equation Runs the equation given in the field below, outputs the results to the Min and Max fields and colors the result mesh accordingly - Runs the equation given in the field below, + Runs the equation given in the field below, outputs the results to the Min and Max fields and colors the result mesh accordingly Calculate - 計算 + Calculate Enter here an equation to be calculated. For possible variables, see the description box below. - Enter here an equation to be calculated. + Enter here an equation to be calculated. For possible variables, see the description box below. P1 - P3 # Max - Min Principal Stress - P1 - P3 # Max - Min Principal Stress + P1 - P3 # Max - Min Principal Stress Hints user defined equations - Hints user defined equations + Hints user defined equations Available result types: - Available result types: + Available result types: displacement: x, y, z - 方向位移 x, y, z + displacement: x, y, z temperature: T - 溫度: T + temperature: T stress: sxx, syy, szz, sxy, sxz, syz - stress: sxx, syy, szz, sxy, sxz, syz + stress: sxx, syy, szz, sxy, sxz, syz network pressure: NP - network pressure: NP + network pressure: NP strain: exx, eyy, ezz, exy, exz, eyz - strain: exx, eyy, ezz, exy, exz, eyz + strain: exx, eyy, ezz, exy, exz, eyz mass flow rate: MF - mass flow rate: MF + mass flow rate: MF von Mises stress: vM - von Mises stress: vM + von Mises stress: vM max shear stress: MS - max shear stress: MS + max shear stress: MS max princ. stress vector: s3x, s3y, s3z - max princ. stress vector: s3x, s3y, s3z + max princ. stress vector: s3x, s3y, s3z max principal stress: P1 - max principal stress: P1 + max principal stress: P1 med princ. stress vector: s2x, s2y, s2z - med princ. stress vector: s2x, s2y, s2z + med princ. stress vector: s2x, s2y, s2z med principal stress: P2 - med principal stress: P2 + med principal stress: P2 min princ. stress vector: s1x, s1y, s1z - min princ. stress vector: s1x, s1y, s1z + min princ. stress vector: s1x, s1y, s1z min principal stress: P3 - min principal stress: P3 + min principal stress: P3 reinforcement ratio: rx, ry, rz - reinforcement ratio: rx, ry, rz + reinforcement ratio: rx, ry, rz Mohr Coulomb: mc - Mohr Coulomb: mc + Mohr Coulomb: mc equivalent plastic strain: Peeq - equivalent plastic strain: Peeq + equivalent plastic strain: Peeq @@ -4040,17 +4040,17 @@ For possible variables, see the description box below. Thermo mechanical - Thermo mechanical + Thermo mechanical Check Mesh - Check Mesh + Check Mesh Buckling - Buckling + Buckling @@ -4065,7 +4065,7 @@ For possible variables, see the description box below. Run CalculiX - Run CalculiX + Run CalculiX @@ -4111,7 +4111,7 @@ For possible variables, see the description box below. Object dependencies - 物體相依 + 物件相依 @@ -4182,7 +4182,7 @@ For possible variables, see the description box below. Collect adjacent nodes - Collect adjacent nodes + Collect adjacent nodes @@ -4238,7 +4238,7 @@ For possible variables, see the description box below. Reverse direction - Reverse direction + 反轉方向 @@ -4271,7 +4271,7 @@ For possible variables, see the description box below. Other pulley diameter - Other pulley diameter + Other pulley diameter @@ -4334,7 +4334,7 @@ For possible variables, see the description box below. Select master face, click Add or Remove - Select master face, click Add or Remove + Select master face, click Add or Remove @@ -4351,17 +4351,17 @@ For possible variables, see the description box below. Select slave face, click Add or Remove - Select slave face, click Add or Remove + Select slave face, click Add or Remove Contact Stiffness - Contact Stiffness + Contact Stiffness Friction coefficient - Friction coefficient + Friction coefficient @@ -4389,7 +4389,7 @@ For possible variables, see the description box below. Displacement x - 方向位移 x + x方向位移 @@ -4420,12 +4420,12 @@ for the Elmer solver Displacement y - 方向位移 y + y方向位移 Displacement z - 方向位移 z + z方向位移 @@ -4451,7 +4451,7 @@ generated by the flow Rotations are only valid for Beam and Shell elements. - 只有樑柱和板殼元素可以使用旋轉. + 僅有樑和板殼元素可以使用旋轉 @@ -4502,12 +4502,12 @@ generated by the flow Boundary - Boundary + Boundary Subtype - Subtype + Subtype @@ -4527,39 +4527,39 @@ generated by the flow Help text - Help text + Help text Tab 1 - 分頁 1 + Tab 1 Value [Unit] - Value [Unit] + Value [Unit] Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + Select a planar edge or face, then press this button Direction - 方向 + Direction The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the + The direction of the edge or the direction of the normal vector of the face is used as direction Reverse direction - Reverse direction + 反轉方向 @@ -4569,42 +4569,42 @@ normal vector of the face is used as direction Turbulence specification - Turbulence specification + Turbulence specification Intensity - Intensity + Intensity Length [m] - Length [m] + Length [m] Tab 2 - 分頁 2 + Tab 2 Type - 類型 + Type Temperature[K] - 溫度[K] + Temperature[K] Heat flux [W/m2] - Heat flux [W/m2] + Heat flux [W/m2] HT coeff - HT coeff + HT coeff @@ -4612,7 +4612,7 @@ normal vector of the face is used as direction Prescribed Force - Prescribed Force + Prescribed Force @@ -4637,7 +4637,7 @@ normal vector of the face is used as direction Select a planar edge or face, then press this button - Select a planar edge or face, then press this button + Select a planar edge or face, then press this button @@ -4648,13 +4648,13 @@ normal vector of the face is used as direction The direction of the edge or the direction of the normal vector of the face is used as direction - The direction of the edge or the direction of the + The direction of the edge or the direction of the normal vector of the face is used as direction Reverse direction - Reverse direction + 反轉方向 @@ -4662,12 +4662,12 @@ normal vector of the face is used as direction TaskFemConstraintHeatflux - TaskFemConstraintHeatflux + TaskFemConstraintHeatflux Select multiple face(s), click Add or Remove: - Select multiple face(s), click Add or Remove: + Select multiple face(s), click Add or Remove: @@ -4682,38 +4682,38 @@ normal vector of the face is used as direction Surface Convection - Surface Convection + Surface Convection Surface heat flux - Surface heat flux + Surface heat flux Film coefficient - Film coefficient + Film coefficient 1 W/m^2/K - 1 W/m^2/K + 1 W/m^2/K Ambient Temperature - Ambient Temperature + Ambient Temperature 300 K - 300 K + 300 K 1 W/m^2 - 1 W/m^2 + 1 W/m^2 @@ -4721,12 +4721,12 @@ normal vector of the face is used as direction Dialog - 對話框 + 對話方塊 Insert component's initial temperature: - Insert component's initial temperature: + Insert component's initial temperature: @@ -4739,7 +4739,7 @@ normal vector of the face is used as direction Select a single face, click Add or Remove - Select a single face, click Add or Remove + Select a single face, click Add or Remove @@ -4782,12 +4782,12 @@ normal vector of the face is used as direction 0 MPa - 0 MPa + 0 MPa Reverse Direction - 反轉方向 + Reverse Direction @@ -4815,7 +4815,7 @@ normal vector of the face is used as direction Normal Stiffness - Normal Stiffness + Normal Stiffness @@ -4832,7 +4832,7 @@ used for the Elmer solver Tangential Stiffness - Tangential Stiffness + Tangential Stiffness @@ -4861,12 +4861,12 @@ used for the Elmer solver Temperature - 溫度 + Temperature Concentrated heat flux - Concentrated heat flux + Concentrated heat flux @@ -4879,17 +4879,17 @@ used for the Elmer solver Rectangular transform - Rectangular transform + Rectangular transform Cylindrical transform - Cylindrical transform + Cylindrical transform Select a face, click Add or Remove - Select a face, click Add or Remove + Select a face, click Add or Remove @@ -4904,23 +4904,23 @@ used for the Elmer solver Rotation about X-Axis - Rotation about X-Axis + Rotation about X-Axis Rotation about Y-Axis - Rotation about Y-Axis + Rotation about Y-Axis Rotation about Z-Axis - Rotation about Z-Axis + Rotation about Z-Axis Transformable surfaces - Transformable surfaces + Transformable surfaces @@ -4946,12 +4946,12 @@ used for the Elmer solver Inside Out - Inside Out + Inside Out Cut Cells - Cut Cells + Cut Cells @@ -5007,12 +5007,12 @@ used for the Elmer solver Select Points - 選取點 + Select Points Resolution - Resolution + Resolution @@ -5022,7 +5022,7 @@ used for the Elmer solver Field - Field + Field @@ -5032,7 +5032,7 @@ used for the Elmer solver Create Plot - Create Plot + Create Plot @@ -5060,17 +5060,17 @@ used for the Elmer solver Select Point - Select Point + Select Point Value: - 值: + 值: Field - Field + Field @@ -5089,7 +5089,7 @@ used for the Elmer solver Outline - Outline + Outline @@ -5101,7 +5101,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Surface with Edges @@ -5112,12 +5112,12 @@ used for the Elmer solver Coloring - Coloring + Coloring Field - Field + Field @@ -5127,7 +5127,7 @@ used for the Elmer solver Magnitute - Magnitute + Magnitute @@ -5147,7 +5147,7 @@ used for the Elmer solver Styling - Styling + Styling @@ -5165,12 +5165,12 @@ used for the Elmer solver Scalar - Scalar + Scalar Outline - Outline + Outline @@ -5180,7 +5180,7 @@ used for the Elmer solver Surface with Edges - Surface with Edges + Surface with Edges @@ -5190,22 +5190,22 @@ used for the Elmer solver Min scalar - Min scalar + Min scalar Clip scalar - Clip scalar + Clip scalar Max scalar - Max scalar + Max scalar Clip inside out - Clip inside out + Clip inside out @@ -5223,22 +5223,22 @@ used for the Elmer solver warp vectors - warp vectors + warp vectors Min warp - Min warp + Min warp Warp factor - Warp factor + Warp factor Max warp - Max warp + Max warp @@ -5326,7 +5326,7 @@ used for the Elmer solver Tetrahedron count: - Tetrahedron count: + Tetrahedron count: @@ -5349,7 +5349,7 @@ used for the Elmer solver M&odel - 模型(&M) + M&odel @@ -5359,142 +5359,144 @@ used for the Elmer solver &Materials - 材質(&M) + &Materials Element Geometry - Element Geometry + Element Geometry &Element Geometry - &Element Geometry + &Element Geometry Electrostatic Constraints - Electrostatic Constraints + Electrostatic Constraints &Electrostatic Constraints - &Electrostatic Constraints - - - - Fluid Constraints - Fluid Constraints - - - - &Fluid Constraints - &Fluid Constraints + &Electrostatic Constraints + Fluid Constraints + Fluid Constraints + + + + &Fluid Constraints + &Fluid Constraints + + + + Electromagnetic Constraints Electromagnetic Constraints - + + &Electromagnetic Constraints &Electromagnetic Constraints - - - Geometrical Constraints - Geometrical Constraints - - - - &Geometrical Constraints - &Geometrical Constraints - - Mechanical Constraints - Mechanical Constraints + Geometrical Constraints + Geometrical Constraints - &Mechanical Constraints - &Mechanical Constraints + &Geometrical Constraints + &Geometrical Constraints - Thermal Constraints - Thermal Constraints + Mechanical Constraints + Mechanical Constraints - &Thermal Constraints - &Thermal Constraints + &Mechanical Constraints + &Mechanical Constraints - Constraints without solver - Constraints without solver + Thermal Constraints + Thermal Constraints - &Constraints without solver - &Constraints without solver + &Thermal Constraints + &Thermal Constraints - Overwrite Constants - Overwrite Constants + Constraints without solver + Constraints without solver - &Overwrite Constants - &Overwrite Constants + &Constraints without solver + &Constraints without solver + + + + Overwrite Constants + Overwrite Constants + &Overwrite Constants + &Overwrite Constants + + + Mesh Mesh - + M&esh - 網格(&E) + M&esh - + Solve 求解 - - - &Solve - 求解(&S) - - Results - Results - - - - &Results - 結果(&R) + &Solve + &Solve - Filter functions - 篩選功能 + Results + 結果 - &Filter functions - 篩選功能(&F) + &Results + &Results + + + + Filter functions + Filter functions + &Filter functions + &Filter functions + + + Utilities - 實用工具 + 功能 @@ -5502,20 +5504,20 @@ used for the Elmer solver Error: A filter can only be applied to a single object. - Error: A filter can only be applied to a single object. + Error: A filter can only be applied to a single object. The filter could not be set up. - The filter could not be set up. + The filter could not be set up. Error: no post processing object selected. - Error: no post processing object selected. + Error: no post processing object selected. @@ -5523,7 +5525,7 @@ used for the Elmer solver Analysis container - 分析容器 + Analysis container @@ -5536,12 +5538,12 @@ used for the Elmer solver Clipping plane on face - Clipping plane on face + Clipping plane on face Add a clipping plane on a selected face - Add a clipping plane on a selected face + Add a clipping plane on a selected face @@ -5550,7 +5552,7 @@ used for the Elmer solver Remove all clipping planes - Remove all clipping planes + Remove all clipping planes @@ -5563,7 +5565,7 @@ used for the Elmer solver Creates a FEM constant vacuum permittivity to overwrite standard value - Creates a FEM constant vacuum permittivity to overwrite standard value + Creates a FEM constant vacuum permittivity to overwrite standard value @@ -5571,12 +5573,12 @@ used for the Elmer solver Constraint body heat source - Constraint body heat source + Constraint body heat source Creates a FEM constraint body heat source - Creates a FEM constraint body heat source + Creates a FEM constraint body heat source @@ -5584,12 +5586,12 @@ used for the Elmer solver Constraint centrif - Constraint centrif + Constraint centrif Creates a FEM constraint centrif - Creates a FEM constraint centrif + Creates a FEM constraint centrif @@ -5597,12 +5599,12 @@ used for the Elmer solver Constraint electrostatic potential - Constraint electrostatic potential + Constraint electrostatic potential Creates a FEM constraint electrostatic potential - Creates a FEM constraint electrostatic potential + Creates a FEM constraint electrostatic potential @@ -5610,12 +5612,12 @@ used for the Elmer solver Constraint flow velocity - Constraint flow velocity + Constraint flow velocity Creates a FEM constraint flow velocity - Creates a FEM constraint flow velocity + Creates a FEM constraint flow velocity @@ -5623,12 +5625,12 @@ used for the Elmer solver Constraint initial flow velocity - Constraint initial flow velocity + Constraint initial flow velocity Creates a FEM constraint initial flow velocity - Creates a FEM constraint initial flow velocity + Creates a FEM constraint initial flow velocity @@ -5649,12 +5651,12 @@ used for the Elmer solver Constraint sectionprint - Constraint sectionprint + Constraint sectionprint Creates a FEM constraint sectionprint - Creates a FEM constraint sectionprint + Creates a FEM constraint sectionprint @@ -5662,12 +5664,12 @@ used for the Elmer solver Constraint self weight - Constraint self weight + Constraint self weight Creates a FEM constraint self weight - Creates a FEM constraint self weight + Creates a FEM constraint self weight @@ -5675,12 +5677,12 @@ used for the Elmer solver Constraint tie - Constraint tie + Constraint tie Creates a FEM constraint tie - Creates a FEM constraint tie + Creates a FEM constraint tie @@ -5688,12 +5690,12 @@ used for the Elmer solver Fluid section for 1D flow - Fluid section for 1D flow + Fluid section for 1D flow Creates a FEM fluid section for 1D flow - Creates a FEM fluid section for 1D flow + Creates a FEM fluid section for 1D flow @@ -5701,12 +5703,12 @@ used for the Elmer solver Beam cross section - Beam cross section + Beam cross section Creates a FEM beam cross section - Creates a FEM beam cross section + Creates a FEM beam cross section @@ -5714,12 +5716,12 @@ used for the Elmer solver Shell plate thickness - Shell plate thickness + Shell plate thickness Creates a FEM shell plate thickness - Creates a FEM shell plate thickness + Creates a FEM shell plate thickness @@ -5727,12 +5729,12 @@ used for the Elmer solver Beam rotation - Beam rotation + Beam rotation Creates a FEM beam rotation - Creates a FEM beam rotation + Creates a FEM beam rotation @@ -5740,12 +5742,12 @@ used for the Elmer solver Electrostatic equation - Electrostatic equation + Electrostatic equation Creates a FEM equation for electrostatic - Creates a FEM equation for electrostatic + Creates a FEM equation for electrostatic @@ -5753,7 +5755,7 @@ used for the Elmer solver Elasticity equation - Elasticity equation + Elasticity equation @@ -5768,12 +5770,12 @@ used for the Elmer solver Flow equation - Flow equation + Flow equation Creates a FEM equation for flow - Creates a FEM equation for flow + Creates a FEM equation for flow @@ -5781,12 +5783,12 @@ used for the Elmer solver Flux equation - Flux equation + Flux equation Creates a FEM equation for flux - Creates a FEM equation for flux + Creates a FEM equation for flux @@ -5799,7 +5801,7 @@ used for the Elmer solver Creates a FEM equation for electric forces - Creates a FEM equation for electric forces + Creates a FEM equation for electric forces @@ -5807,12 +5809,12 @@ used for the Elmer solver Heat equation - Heat equation + Heat equation Creates a FEM equation for heat - Creates a FEM equation for heat + Creates a FEM equation for heat @@ -5821,7 +5823,7 @@ used for the Elmer solver Open FEM examples - 開啟 FEM範例 + Open FEM examples @@ -5829,12 +5831,12 @@ used for the Elmer solver Material editor - 材質編輯器 + Material editor Opens the FreeCAD material editor - Opens the FreeCAD material editor + Opens the FreeCAD material editor @@ -5842,12 +5844,12 @@ used for the Elmer solver Material for fluid - Material for fluid + Material for fluid Creates a FEM material for fluid - Creates a FEM material for fluid + Creates a FEM material for fluid @@ -5855,12 +5857,12 @@ used for the Elmer solver Nonlinear mechanical material - Nonlinear mechanical material + Nonlinear mechanical material Creates a nonlinear mechanical material - Creates a nonlinear mechanical material + Creates a nonlinear mechanical material @@ -5868,12 +5870,12 @@ used for the Elmer solver Reinforced material (concrete) - Reinforced material (concrete) + Reinforced material (concrete) Creates a material for reinforced matrix material such as concrete - Creates a material for reinforced matrix material such as concrete + Creates a material for reinforced matrix material such as concrete @@ -5881,12 +5883,12 @@ used for the Elmer solver Material for solid - Material for solid + Material for solid Creates a FEM material for solid - Creates a FEM material for solid + Creates a FEM material for solid @@ -5894,12 +5896,12 @@ used for the Elmer solver FEM mesh to mesh - FEM mesh to mesh + FEM mesh to mesh Convert the surface of a FEM mesh to a mesh - Convert the surface of a FEM mesh to a mesh + Convert the surface of a FEM mesh to a mesh @@ -5907,12 +5909,12 @@ used for the Elmer solver FEM mesh boundary layer - FEM mesh boundary layer + FEM mesh boundary layer Creates a FEM mesh boundary layer - Creates a FEM mesh boundary layer + Creates a FEM mesh boundary layer @@ -5920,12 +5922,12 @@ used for the Elmer solver Clear FEM mesh - 清除FEM網格 + Clear FEM mesh Clear the Mesh of a FEM mesh object - 清除FEM網格物件之網格 + Clear the Mesh of a FEM mesh object @@ -5934,7 +5936,7 @@ used for the Elmer solver Display FEM mesh info - Display FEM mesh info + Display FEM mesh info @@ -5942,12 +5944,12 @@ used for the Elmer solver FEM mesh from shape by Gmsh - FEM mesh from shape by Gmsh + FEM mesh from shape by Gmsh Create a FEM mesh from a shape by Gmsh mesher - Create a FEM mesh from a shape by Gmsh mesher + Create a FEM mesh from a shape by Gmsh mesher @@ -5955,12 +5957,12 @@ used for the Elmer solver FEM mesh group - FEM mesh group + FEM mesh group Creates a FEM mesh group - Creates a FEM mesh group + Creates a FEM mesh group @@ -5968,12 +5970,12 @@ used for the Elmer solver FEM mesh from shape by Netgen - FEM mesh from shape by Netgen + FEM mesh from shape by Netgen Create a FEM mesh from a solid or face shape by Netgen internal mesher - Create a FEM mesh from a solid or face shape by Netgen internal mesher + Create a FEM mesh from a solid or face shape by Netgen internal mesher @@ -5981,12 +5983,12 @@ used for the Elmer solver FEM mesh region - FEM mesh region + FEM mesh region Creates a FEM mesh region - Creates a FEM mesh region + Creates a FEM mesh region @@ -5999,7 +6001,7 @@ used for the Elmer solver Shows and visualizes selected result data - Shows and visualizes selected result data + Shows and visualizes selected result data @@ -6007,12 +6009,12 @@ used for the Elmer solver Purge results - Purge results + Purge results Purges all results from active analysis - Purges all results from active analysis + Purges all results from active analysis @@ -6020,12 +6022,12 @@ used for the Elmer solver Solver CalculiX Standard - Solver CalculiX Standard + Solver CalculiX Standard Creates a standard FEM solver CalculiX with ccx tools - Creates a standard FEM solver CalculiX with ccx tools + Creates a standard FEM solver CalculiX with ccx tools @@ -6033,12 +6035,12 @@ used for the Elmer solver Solver job control - Solver job control + Solver job control Changes solver attributes and runs the calculations for the selected solver - Changes solver attributes and runs the calculations for the selected solver + Changes solver attributes and runs the calculations for the selected solver @@ -6046,12 +6048,12 @@ used for the Elmer solver Solver Elmer - Solver Elmer + Solver Elmer Creates a FEM solver Elmer - Creates a FEM solver Elmer + Creates a FEM solver Elmer @@ -6059,12 +6061,12 @@ used for the Elmer solver Solver Mystran - Solver Mystran + Solver Mystran Creates a FEM solver Mystran - Creates a FEM solver Mystran + Creates a FEM solver Mystran @@ -6072,12 +6074,12 @@ used for the Elmer solver Run solver calculations - Run solver calculations + Run solver calculations Runs the calculations for the selected solver - Runs the calculations for the selected solver + Runs the calculations for the selected solver @@ -6085,12 +6087,12 @@ used for the Elmer solver Solver Z88 - Solver Z88 + Solver Z88 Creates a FEM solver Z88 - Creates a FEM solver Z88 + Creates a FEM solver Z88 @@ -6098,18 +6100,18 @@ used for the Elmer solver Solver Control - 求解控制 + Solver Control Working Directory - 工作目錄 + Working Directory Write - 寫入 + Write @@ -6122,7 +6124,7 @@ used for the Elmer solver Elapsed Time: - 經過時間: + Elapsed Time: @@ -6134,17 +6136,17 @@ used for the Elmer solver Re-write - 重新寫入 + Re-write Re-run - 重新運行 + Re-run Abort - 關於 + Abort @@ -6165,12 +6167,12 @@ used for the Elmer solver Select Faces/Edges/Vertexes - 選擇點/線/面 + Select Faces/Edges/Vertexes To add references: select them in the 3D view and click "Add". - To add references: select them in the 3D view and click "Add". + To add references: select them in the 3D view and click "Add". @@ -6178,12 +6180,12 @@ used for the Elmer solver Select Solids - 選擇實體 + Select Solids Select elements part of the solid that shall be added to the list. To add the solid click "Add". - Select elements part of the solid that shall be added to the list. To add the solid click "Add". + Select elements part of the solid that shall be added to the list. To add the solid click "Add". @@ -6206,12 +6208,12 @@ used for the Elmer solver {}If no geometry is added to the list, all remaining ones are used. - {}If no geometry is added to the list, all remaining ones are used. + {}If no geometry is added to the list, all remaining ones are used. Selection mode - Selection mode + Selection mode @@ -6224,62 +6226,62 @@ used for the Elmer solver Displacement Magnitude - Displacement Magnitude + Displacement Magnitude Displacement X - 方向位移 X + Displacement X Displacement Y - 方向位移 Y + Displacement Y Displacement Z - 方向位移 Z + Displacement Z von Mises Stress - von Mises Stress + von Mises Stress Max Shear Stress - Max Shear Stress + Max Shear Stress Max Principal Stress - Max Principal Stress + Max Principal Stress Temperature - 溫度 + Temperature Mass Flow Rate - Mass Flow Rate + Mass Flow Rate Network Pressure - Network Pressure + Network Pressure Min Principal Stress - Min Principal Stress + Min Principal Stress Equivalent Plastic Strain - Equivalent Plastic Strain + Equivalent Plastic Strain @@ -6290,13 +6292,13 @@ used for the Elmer solver No histogram available. Please select a result type first. - No histogram available. + No histogram available. Please select a result type first. Histogram of {} - Histogram of {} + Histogram of {} @@ -6306,13 +6308,13 @@ Please select a result type first. Empty result mesh - Empty result mesh + Empty result mesh No result object - No result object + No result object @@ -6545,7 +6547,7 @@ Please select a result type first. Axis - 軸座標 + @@ -6576,12 +6578,12 @@ Please select a result type first. Solver CalculiX (new framework) - Solver CalculiX (new framework) + Solver CalculiX (new framework) Creates a FEM solver CalculiX new framework (less result error handling) - Creates a FEM solver CalculiX new framework (less result error handling) + Creates a FEM solver CalculiX new framework (less result error handling) diff --git a/src/Mod/Fem/Gui/TaskFemConstraintFluidBoundary.cpp b/src/Mod/Fem/Gui/TaskFemConstraintFluidBoundary.cpp index fce826cd97..893eb178e1 100644 --- a/src/Mod/Fem/Gui/TaskFemConstraintFluidBoundary.cpp +++ b/src/Mod/Fem/Gui/TaskFemConstraintFluidBoundary.cpp @@ -342,7 +342,7 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary( updateUI(); } -const Fem::FemSolverObject* TaskFemConstraintFluidBoundary::getFemSolver(void) const +const Fem::FemSolverObject* TaskFemConstraintFluidBoundary::getFemSolver() const { return pcSolver; } @@ -535,7 +535,7 @@ void TaskFemConstraintFluidBoundary::updateThermalBoundaryUI() } } -void TaskFemConstraintFluidBoundary::onBoundaryTypeChanged(void) +void TaskFemConstraintFluidBoundary::onBoundaryTypeChanged() { Fem::ConstraintFluidBoundary* pcConstraint = static_cast(ConstraintView->getObject()); @@ -556,7 +556,7 @@ void TaskFemConstraintFluidBoundary::onBoundaryTypeChanged(void) } } -void TaskFemConstraintFluidBoundary::onSubtypeChanged(void) +void TaskFemConstraintFluidBoundary::onSubtypeChanged() { updateSubtypeUI();// todo: change color for different kind of subtype, // Fem::ConstraintFluidBoundary::onChanged() and viewProvider @@ -566,7 +566,7 @@ void TaskFemConstraintFluidBoundary::onBoundaryValueChanged(double) { //left empty for future extension } -void TaskFemConstraintFluidBoundary::onTurbulenceSpecificationChanged(void) +void TaskFemConstraintFluidBoundary::onTurbulenceSpecificationChanged() { Fem::ConstraintFluidBoundary* pcConstraint = static_cast(ConstraintView->getObject()); @@ -575,7 +575,7 @@ void TaskFemConstraintFluidBoundary::onTurbulenceSpecificationChanged(void) updateTurbulenceUI(); } -void TaskFemConstraintFluidBoundary::onThermalBoundaryTypeChanged(void) +void TaskFemConstraintFluidBoundary::onThermalBoundaryTypeChanged() { Fem::ConstraintFluidBoundary* pcConstraint = static_cast(ConstraintView->getObject()); @@ -668,23 +668,23 @@ void TaskFemConstraintFluidBoundary::onCheckReverse(const bool pressed) pcConstraint->Reversed.setValue(pressed); } -std::string TaskFemConstraintFluidBoundary::getBoundaryType(void) const +std::string TaskFemConstraintFluidBoundary::getBoundaryType() const { return Base::Tools::toStdString(ui->comboBoundaryType->currentText()); } -std::string TaskFemConstraintFluidBoundary::getSubtype(void) const +std::string TaskFemConstraintFluidBoundary::getSubtype() const { return Base::Tools::toStdString(ui->comboSubtype->currentText()); } -double TaskFemConstraintFluidBoundary::getBoundaryValue(void) const +double TaskFemConstraintFluidBoundary::getBoundaryValue() const { return ui->spinBoundaryValue->value(); } -std::string TaskFemConstraintFluidBoundary::getTurbulenceModel(void) const +std::string TaskFemConstraintFluidBoundary::getTurbulenceModel() const { if (pTurbulenceModel) { return pTurbulenceModel->getValueAsString(); @@ -694,22 +694,22 @@ std::string TaskFemConstraintFluidBoundary::getTurbulenceModel(void) const } } -std::string TaskFemConstraintFluidBoundary::getTurbulenceSpecification(void) const +std::string TaskFemConstraintFluidBoundary::getTurbulenceSpecification() const { return Base::Tools::toStdString(ui->comboTurbulenceSpecification->currentText()); } -double TaskFemConstraintFluidBoundary::getTurbulentIntensityValue(void) const +double TaskFemConstraintFluidBoundary::getTurbulentIntensityValue() const { return ui->spinTurbulentIntensityValue->value(); } -double TaskFemConstraintFluidBoundary::getTurbulentLengthValue(void) const +double TaskFemConstraintFluidBoundary::getTurbulentLengthValue() const { return ui->spinTurbulentLengthValue->value(); } -bool TaskFemConstraintFluidBoundary::getHeatTransferring(void) const +bool TaskFemConstraintFluidBoundary::getHeatTransferring() const { if (pHeatTransferring) { return pHeatTransferring->getValue(); @@ -719,22 +719,22 @@ bool TaskFemConstraintFluidBoundary::getHeatTransferring(void) const } } -std::string TaskFemConstraintFluidBoundary::getThermalBoundaryType(void) const +std::string TaskFemConstraintFluidBoundary::getThermalBoundaryType() const { return Base::Tools::toStdString(ui->comboThermalBoundaryType->currentText()); } -double TaskFemConstraintFluidBoundary::getTemperatureValue(void) const +double TaskFemConstraintFluidBoundary::getTemperatureValue() const { return ui->spinTemperatureValue->value(); } -double TaskFemConstraintFluidBoundary::getHeatFluxValue(void) const +double TaskFemConstraintFluidBoundary::getHeatFluxValue() const { return ui->spinHeatFluxValue->value(); } -double TaskFemConstraintFluidBoundary::getHTCoeffValue(void) const +double TaskFemConstraintFluidBoundary::getHTCoeffValue() const { return ui->spinHTCoeffValue->value(); } @@ -749,7 +749,7 @@ const std::string TaskFemConstraintFluidBoundary::getReferences() const return TaskFemConstraint::getReferences(items); } -const std::string TaskFemConstraintFluidBoundary::getDirectionName(void) const +const std::string TaskFemConstraintFluidBoundary::getDirectionName() const { std::string dir = ui->lineDirection->text().toStdString(); if (dir.empty()) @@ -759,7 +759,7 @@ const std::string TaskFemConstraintFluidBoundary::getDirectionName(void) const return dir.substr(0, pos).c_str(); } -const std::string TaskFemConstraintFluidBoundary::getDirectionObject(void) const +const std::string TaskFemConstraintFluidBoundary::getDirectionObject() const { std::string dir = ui->lineDirection->text().toStdString(); if (dir.empty()) diff --git a/src/Mod/Fem/Gui/TaskFemConstraintHeatflux.cpp b/src/Mod/Fem/Gui/TaskFemConstraintHeatflux.cpp index edb13ea0ce..f8938004d2 100644 --- a/src/Mod/Fem/Gui/TaskFemConstraintHeatflux.cpp +++ b/src/Mod/Fem/Gui/TaskFemConstraintHeatflux.cpp @@ -97,7 +97,7 @@ TaskFemConstraintHeatflux::TaskFemConstraintHeatflux( std::string constraint_type = pcConstraint->ConstraintType.getValueAsString(); if (constraint_type == "Convection") { - ui->rb_convection->setChecked(1); + ui->rb_convection->setChecked(true); ui->sw_heatflux->setCurrentIndex(0); Base::Quantity t = Base::Quantity(pcConstraint->AmbientTemp.getValue(), Base::Unit::Temperature); @@ -107,7 +107,7 @@ TaskFemConstraintHeatflux::TaskFemConstraintHeatflux( ui->if_filmcoef->setValue(f); } else if (constraint_type == "DFlux") { - ui->rb_dflux->setChecked(1); + ui->rb_dflux->setChecked(true); ui->sw_heatflux->setCurrentIndex(1); Base::Quantity c = Base::Quantity(pcConstraint->DFlux.getValue(), Base::Unit::HeatFlux); ui->if_heatflux->setValue(c); diff --git a/src/Mod/Fem/Gui/TaskFemConstraintTemperature.cpp b/src/Mod/Fem/Gui/TaskFemConstraintTemperature.cpp index e071eb5da8..ac5c9a9c05 100644 --- a/src/Mod/Fem/Gui/TaskFemConstraintTemperature.cpp +++ b/src/Mod/Fem/Gui/TaskFemConstraintTemperature.cpp @@ -70,14 +70,14 @@ TaskFemConstraintTemperature::TaskFemConstraintTemperature( std::string constraint_type = pcConstraint->ConstraintType.getValueAsString(); if (constraint_type == "Temperature") { - ui->rb_temperature->setChecked(1); + ui->rb_temperature->setChecked(true); ui->if_temperature->setValue(pcConstraint->Temperature.getQuantityValue()); ui->if_temperature->bind(pcConstraint->Temperature); ui->if_temperature->setUnit(pcConstraint->Temperature.getUnit()); } else if (constraint_type == "CFlux") { - ui->rb_cflux->setChecked(1); + ui->rb_cflux->setChecked(true); std::string str = "Concentrated heat flux"; ui->if_temperature->setValue(pcConstraint->CFlux.getQuantityValue()); ui->if_temperature->bind(pcConstraint->CFlux); diff --git a/src/Mod/Fem/Gui/TaskFemConstraintTransform.cpp b/src/Mod/Fem/Gui/TaskFemConstraintTransform.cpp index 0fefb1a81b..7a07e7f30d 100644 --- a/src/Mod/Fem/Gui/TaskFemConstraintTransform.cpp +++ b/src/Mod/Fem/Gui/TaskFemConstraintTransform.cpp @@ -98,13 +98,13 @@ TaskFemConstraintTransform::TaskFemConstraintTransform( std::string transform_type = pcConstraint->TransformType.getValueAsString(); if (transform_type == "Rectangular") { ui->sw_transform->setCurrentIndex(0); - ui->rb_rect->setChecked(1); - ui->rb_cylin->setChecked(0); + ui->rb_rect->setChecked(true); + ui->rb_cylin->setChecked(false); } else if (transform_type == "Cylindrical") { ui->sw_transform->setCurrentIndex(1); - ui->rb_rect->setChecked(0); - ui->rb_cylin->setChecked(1); + ui->rb_rect->setChecked(false); + ui->rb_cylin->setChecked(true); } ui->lw_Rect->clear(); diff --git a/src/Mod/Fem/Gui/TaskPostBoxes.cpp b/src/Mod/Fem/Gui/TaskPostBoxes.cpp index 28145623ff..2db8d5ac52 100644 --- a/src/Mod/Fem/Gui/TaskPostBoxes.cpp +++ b/src/Mod/Fem/Gui/TaskPostBoxes.cpp @@ -413,7 +413,7 @@ TaskPostDisplay::TaskPostDisplay(Gui::ViewProviderDocumentObject* view, QWidget* updateEnumerationList(getTypedView()->Field, ui->Field); updateEnumerationList(getTypedView()->VectorMode, ui->VectorMode); - // get Tranparency from ViewProvider + // get Transparency from ViewProvider int trans = getTypedView()->Transparency.getValue(); Base::Console().Log("Transparency %i: \n", trans); // sync the trancparency slider diff --git a/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp b/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp index 7e734774db..59c73ea838 100644 --- a/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp +++ b/src/Mod/Fem/Gui/ViewProviderAnalysis.cpp @@ -117,7 +117,7 @@ void ViewProviderFemAnalysis::highlightView(Gui::ViewProviderDocumentObject *vie extension.highlightView(view); } -bool ViewProviderFemAnalysis::doubleClicked(void) +bool ViewProviderFemAnalysis::doubleClicked() { Gui::Command::assureWorkbench("FemWorkbench"); Gui::Command::addModule(Gui::Command::Gui, "FemGui"); @@ -137,22 +137,22 @@ bool ViewProviderFemAnalysis::doubleClicked(void) return true; } -std::vector ViewProviderFemAnalysis::claimChildren(void) const +std::vector ViewProviderFemAnalysis::claimChildren() const { return Gui::ViewProviderDocumentObjectGroup::claimChildren(); } -std::vector ViewProviderFemAnalysis::getDisplayModes(void) const +std::vector ViewProviderFemAnalysis::getDisplayModes() const { return {"Analysis"}; } -void ViewProviderFemAnalysis::hide(void) +void ViewProviderFemAnalysis::hide() { Gui::ViewProviderDocumentObjectGroup::hide(); } -void ViewProviderFemAnalysis::show(void) +void ViewProviderFemAnalysis::show() { Gui::ViewProviderDocumentObjectGroup::show(); } @@ -161,7 +161,9 @@ void ViewProviderFemAnalysis::setupContextMenu(QMenu *menu, QObject *, const cha { Gui::ActionFunction *func = new Gui::ActionFunction(menu); QAction *act = menu->addAction(tr("Activate analysis")); - func->trigger(act, std::bind(&ViewProviderFemAnalysis::doubleClicked, this)); + func->trigger(act, [this](){ + this->doubleClicked(); + }); } bool ViewProviderFemAnalysis::setEdit(int ModNum) diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostFunction.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostFunction.cpp index 2bf60b8a70..4a19663fc5 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostFunction.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostFunction.cpp @@ -65,14 +65,16 @@ using namespace FemGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; void FunctionWidget::setViewProvider(ViewProviderFemPostFunction* view) { + //NOLINTBEGIN m_view = view; m_object = static_cast(view->getObject()); m_connection = m_object->getDocument()->signalChangedObject.connect( - boost::bind(&FunctionWidget::onObjectsChanged, this, bp::_1, bp::_2)); + std::bind(&FunctionWidget::onObjectsChanged, this, sp::_1, sp::_2)); + //NOLINTEND } void FunctionWidget::onObjectsChanged(const App::DocumentObject& obj, const App::Property& p) { diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp index 4fcb4b171a..bd26610a81 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp @@ -111,8 +111,10 @@ public: private: FemPostObjectSelectionObserver() { + //NOLINTBEGIN this->connectSelection = Gui::Selection().signalSelectionChanged.connect( std::bind(&FemPostObjectSelectionObserver::selectionChanged, this, sp::_1)); + //NOLINTEND } ~FemPostObjectSelectionObserver() = default; @@ -734,7 +736,7 @@ bool ViewProviderFemPostObject::setupPipeline() // Therefore the only way is the hack to filter only if the used Elmer CPU cores are > 1. auto hGrp = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/Mod/Fem/Elmer"); - bool FilterMultiCPUResults = hGrp->GetBool("FilterMultiCPUResults", 1); + bool FilterMultiCPUResults = hGrp->GetBool("FilterMultiCPUResults", true); int UseNumberOfCores = hGrp->GetInt("UseNumberOfCores", 1); // filtering is only necessary for pipelines and warp filters if (FilterMultiCPUResults && (UseNumberOfCores > 1) diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp index 770f7a4fd4..340e5fd638 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp @@ -206,7 +206,7 @@ void ViewProviderFemPostPipeline::scaleField(vtkDataSet* dset, vtkDataArray* pda } } -PyObject *ViewProviderFemPostPipeline::getPyObject(void) +PyObject *ViewProviderFemPostPipeline::getPyObject() { if (PythonObject.is(Py::_None())) { // ref counter is set to 1 diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostPipelinePyImp.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostPipelinePyImp.cpp index 55fa595100..070c671442 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostPipelinePyImp.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostPipelinePyImp.cpp @@ -31,7 +31,7 @@ using namespace FemGui; // returns a string which represents the object e.g. when printed in python -std::string ViewProviderFemPostPipelinePy::representation(void) const +std::string ViewProviderFemPostPipelinePy::representation() const { return std::string(""); } diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp index c7ae79ad6f..232d69d5b3 100755 --- a/src/Mod/Fem/Gui/Workbench.cpp +++ b/src/Mod/Fem/Gui/Workbench.cpp @@ -48,6 +48,8 @@ using namespace FemGui; qApp->translate("Workbench", "&Element Geometry"); qApp->translate("Workbench", "Electrostatic Constraints"); qApp->translate("Workbench", "&Electrostatic Constraints"); + qApp->translate("Workbench", "Electromagnetic Constraints"); + qApp->translate("Workbench", "&Electromagnetic Constraints"); qApp->translate("Workbench", "Fluid Constraints"); qApp->translate("Workbench", "&Fluid Constraints"); qApp->translate("Workbench", "Electromagnetic Constraints"); diff --git a/src/Mod/Fem/femcommands/manager.py b/src/Mod/Fem/femcommands/manager.py index f0c919f09b..eb01cabfe8 100644 --- a/src/Mod/Fem/femcommands/manager.py +++ b/src/Mod/Fem/femcommands/manager.py @@ -346,7 +346,7 @@ class CommandManager(object): def add_obj_on_gui_expand_noset_edit(self, objtype): # like add_obj_on_gui_noset_edit but the parent object # is expanded in the tree to see the added obj - # the added obj is also selected to enable direct additons to it + # the added obj is also selected to enable direct additions to it FreeCAD.ActiveDocument.openTransaction( "Create Fem{}" .format(objtype) diff --git a/src/Mod/Fem/femmesh/gmshtools.py b/src/Mod/Fem/femmesh/gmshtools.py index a8de810248..cfdc4edcf4 100644 --- a/src/Mod/Fem/femmesh/gmshtools.py +++ b/src/Mod/Fem/femmesh/gmshtools.py @@ -720,6 +720,7 @@ class GmshTools(): self.part_obj.Shape.exportBrep(self.temp_file_geometry) def write_geo(self): + temp_dir = os.path.dirname(self.temp_file_geo) geo = open(self.temp_file_geo, "w") geo.write("// geo file for meshing with Gmsh meshing software created by FreeCAD\n") geo.write("\n") @@ -732,7 +733,7 @@ class GmshTools(): geo.write("// open brep geometry\n") # explicit use double quotes in geo file - geo.write('Merge "{}";\n'.format(self.temp_file_geometry)) + geo.write('Merge "{}";\n'.format(os.path.relpath(self.temp_file_geometry, temp_dir))) geo.write("\n") # groups @@ -879,7 +880,7 @@ class GmshTools(): geo.write("// Ignore Physical definitions and save all elements;\n") geo.write("Mesh.SaveAll = 1;\n") # explicit use double quotes in geo file - geo.write('Save "{}";\n'.format(self.temp_file_mesh)) + geo.write('Save "{}";\n'.format(os.path.relpath(self.temp_file_mesh, temp_dir))) geo.write("\n\n") # some useful information diff --git a/src/Mod/Fem/femtest/app/test_open.py b/src/Mod/Fem/femtest/app/test_open.py index 48a4c3f06b..362a5b4bf5 100644 --- a/src/Mod/Fem/femtest/app/test_open.py +++ b/src/Mod/Fem/femtest/app/test_open.py @@ -25,6 +25,7 @@ __title__ = "Open files FEM App unit tests" __author__ = "Bernd Hahnebach" __url__ = "https://www.freecad.org" +import platform import tempfile import unittest from os.path import join @@ -128,6 +129,12 @@ class TestObjectOpen(unittest.TestCase): def test_femobjects_open_de9b3fb438( self ): + # migration modules fail on s390x (big endian) and trigger OOMs, + # https://bugs.debian.org/984952 and + # https://bugs.launchpad.net/ubuntu/+source/freecad/+bug/1918474. + if platform.machine() == "s390x": + return + # the number in method name is the FreeCAD commit the document was created with # https://github.com/FreeCAD/FreeCAD/commit/de9b3fb438 # the document was created by running the object create unit test diff --git a/src/Mod/Fem/femtest/data/elmer/group_mesh.geo b/src/Mod/Fem/femtest/data/elmer/group_mesh.geo index f379e9e6ff..c20ca320ae 100644 --- a/src/Mod/Fem/femtest/data/elmer/group_mesh.geo +++ b/src/Mod/Fem/femtest/data/elmer/group_mesh.geo @@ -4,7 +4,7 @@ General.NumThreads = X; // open brep geometry -Merge "/tmp/tmp0TVZbM.brep"; +Merge "tmp0TVZbM.brep"; // group data Physical Surface("Face1") = {1}; @@ -43,7 +43,7 @@ Coherence Mesh; // Remove duplicate vertices // save // Ignore Physical definitions and save all elements; Mesh.SaveAll = 1; -Save "/tmp/tmpjVhNNb.unv"; +Save "tmpjVhNNb.unv"; // ********************************************************************** diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index 86694e5700..6a2951c266 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -155,7 +155,7 @@ private: Handle(TDocStd_Document) hDoc; hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { try { STEPCAFControl_Reader aReader; aReader.SetColorMode(true); @@ -184,7 +184,7 @@ private: pcDoc->recompute(); } } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { Base::Reference hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part")->GetGroup("IGES"); @@ -332,7 +332,7 @@ private: } Base::FileInfo file(Utf8Name.c_str()); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { STEPCAFControl_Writer writer; Part::Interface::writeStepAssembly(Part::Interface::Assembly::On); writer.Transfer(hDoc, STEPControl_AsIs); @@ -353,7 +353,7 @@ private: throw Py::Exception(); } } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { IGESControl_Controller::Init(); IGESCAFControl_Writer writer; IGESData_GlobalSection header = writer.Model()->GlobalSection(); @@ -368,7 +368,7 @@ private: throw Py::Exception(); } } - else if (file.hasExtension("glb") || file.hasExtension("gltf")) { + else if (file.hasExtension({"glb", "gltf"})) { #if OCC_VERSION_HEX >= 0x070500 TColStd_IndexedDataMapOfStringString aMetadata; RWGltf_CafWriter aWriter (name8bit.c_str(), file.hasExtension("glb")); diff --git a/src/Mod/Import/App/ExportOCAF.cpp b/src/Mod/Import/App/ExportOCAF.cpp index f9f436a409..ea7777495c 100644 --- a/src/Mod/Import/App/ExportOCAF.cpp +++ b/src/Mod/Import/App/ExportOCAF.cpp @@ -184,7 +184,7 @@ void ExportOCAF::createNode(App::Part* part, int& root_id, { TDF_Label shapeLabel = aShapeTool->NewShape(); Handle(TDataStd_Name) N; - TDataStd_Name::Set(shapeLabel, TCollection_ExtendedString(part->Label.getValue(), 1)); + TDataStd_Name::Set(shapeLabel, TCollection_ExtendedString(part->Label.getValue(), true)); Base::Placement pl = part->Placement.getValue(); Base::Rotation rot(pl.getRotation()); @@ -241,7 +241,7 @@ int ExportOCAF::saveShape(Part::Feature* part, const std::vector& co TDF_Label shapeLabel = aShapeTool->NewShape(); aShapeTool->SetShape(shapeLabel, baseShape); - TDataStd_Name::Set(shapeLabel, TCollection_ExtendedString(part->Label.getValue(), 1)); + TDataStd_Name::Set(shapeLabel, TCollection_ExtendedString(part->Label.getValue(), true)); /* diff --git a/src/Mod/Import/App/ImportOCAF2.cpp b/src/Mod/Import/App/ImportOCAF2.cpp index 61611b0107..42c0ffd8a4 100644 --- a/src/Mod/Import/App/ImportOCAF2.cpp +++ b/src/Mod/Import/App/ImportOCAF2.cpp @@ -346,7 +346,7 @@ App::DocumentObject *ImportOCAF2::expandShape( std::vector objs; if(shape.ShapeType() == TopAbs_COMPOUND) { - for(TopoDS_Iterator it(shape,0,0);it.More();it.Next()) { + for(TopoDS_Iterator it(shape,Standard_False,Standard_False);it.More();it.Next()) { TDF_Label childLabel; if(!label.IsNull()) aShapeTool->FindSubShape(label,it.Value(),childLabel); @@ -671,7 +671,7 @@ void ImportOCAF2::getSHUOColors(TDF_Label label, // appendFirst tells us whether we shall append the object name of the first label bool skipFirst = !appendFirst; ss.str(""); - while(1) { + while(true) { if(skipFirst) skipFirst = false; else { @@ -798,7 +798,7 @@ bool ImportOCAF2::createAssembly(App::Document *_doc, if(newDoc) doc = getDocument(_doc,label); - for(TopoDS_Iterator it(shape,0,0);it.More();it.Next()) { + for(TopoDS_Iterator it(shape,Standard_False,Standard_False);it.More();it.Next()) { TopoDS_Shape childShape = it.Value(); if(childShape.IsNull()) continue; @@ -940,7 +940,7 @@ void ExportOCAF2::setName(TDF_Label label, App::DocumentObject *obj, const char return; name = obj->Label.getValue(); } - TDataStd_Name::Set(label, TCollection_ExtendedString(name, 1)); + TDataStd_Name::Set(label, TCollection_ExtendedString(name, true)); } // Similar to XCAFDoc_ShapeTool::FindSHUO but return only main SHUO, i.e. SHUO @@ -1219,7 +1219,7 @@ TDF_Label ExportOCAF2::exportObject(App::DocumentObject* parentObj, int depth = 0; auto linked = obj; auto linkedShape = shape; - while(1) { + while(true) { auto s = Part::Feature::getTopoShape(linked); if(s.isNull() || !s.getShape().IsPartner(shape.getShape())) break; diff --git a/src/Mod/Import/App/StepShapePyImp.cpp b/src/Mod/Import/App/StepShapePyImp.cpp index 94b93de982..a2a2686313 100644 --- a/src/Mod/Import/App/StepShapePyImp.cpp +++ b/src/Mod/Import/App/StepShapePyImp.cpp @@ -29,7 +29,7 @@ using namespace Import; // returns a string which represents the object e.g. when printed in python -std::string StepShapePy::representation(void) const +std::string StepShapePy::representation() const { return std::string(""); } diff --git a/src/Mod/Import/App/dxf/dxf.cpp b/src/Mod/Import/App/dxf/dxf.cpp index 51ad48bec4..e25c40c1ab 100644 --- a/src/Mod/Import/App/dxf/dxf.cpp +++ b/src/Mod/Import/App/dxf/dxf.cpp @@ -74,7 +74,7 @@ CDxfWrite::~CDxfWrite() delete m_ssLayer; } -void CDxfWrite::init(void) +void CDxfWrite::init() { writeHeaderSection(); makeBlockRecordTableHead(); @@ -82,7 +82,7 @@ void CDxfWrite::init(void) } //! assemble pieces into output file -void CDxfWrite::endRun(void) +void CDxfWrite::endRun() { makeLayerTable(); makeBlockRecordTableBody(); @@ -100,7 +100,7 @@ void CDxfWrite::endRun(void) //*************************** //writeHeaderSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeHeaderSection(void) +void CDxfWrite::writeHeaderSection() { std::stringstream ss; ss << "FreeCAD v" @@ -125,7 +125,7 @@ void CDxfWrite::writeHeaderSection(void) //*************************** //writeClassesSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeClassesSection(void) +void CDxfWrite::writeClassesSection() { if (m_version < 14) { return; @@ -141,7 +141,7 @@ void CDxfWrite::writeClassesSection(void) //*************************** //writeTablesSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeTablesSection(void) +void CDxfWrite::writeTablesSection() { //static tables section head end content std::stringstream ss; @@ -170,7 +170,7 @@ void CDxfWrite::writeTablesSection(void) //*************************** //makeLayerTable //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::makeLayerTable(void) +void CDxfWrite::makeLayerTable() { std::string tablehash = getLayerHandle(); (*m_ssLayer) << " 0" << endl; @@ -238,7 +238,7 @@ void CDxfWrite::makeLayerTable(void) //*************************** //makeBlockRecordTableHead //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::makeBlockRecordTableHead(void) +void CDxfWrite::makeBlockRecordTableHead() { if (m_version < 14) { return; @@ -294,7 +294,7 @@ void CDxfWrite::makeBlockRecordTableHead(void) //*************************** //makeBlockRecordTableBody //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::makeBlockRecordTableBody(void) +void CDxfWrite::makeBlockRecordTableBody() { if (m_version < 14) { return; @@ -323,7 +323,7 @@ void CDxfWrite::makeBlockRecordTableBody(void) //*************************** //makeBlockSectionHead //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::makeBlockSectionHead(void) +void CDxfWrite::makeBlockSectionHead() { (*m_ssBlock) << " 0" << endl; (*m_ssBlock) << "SECTION" << endl; @@ -451,7 +451,7 @@ std::string CDxfWrite::getPlateFile(std::string fileSpec) return outString.str(); } -std::string CDxfWrite::getHandle(void) +std::string CDxfWrite::getHandle() { m_handle++; std::stringstream ss; @@ -460,7 +460,7 @@ std::string CDxfWrite::getHandle(void) return ss.str(); } -std::string CDxfWrite::getEntityHandle(void) +std::string CDxfWrite::getEntityHandle() { return getHandle(); // m_entityHandle++; @@ -470,7 +470,7 @@ std::string CDxfWrite::getEntityHandle(void) // return ss.str(); } -std::string CDxfWrite::getLayerHandle(void) +std::string CDxfWrite::getLayerHandle() { return getHandle(); // m_layerHandle++; @@ -480,7 +480,7 @@ std::string CDxfWrite::getLayerHandle(void) // return ss.str(); } -std::string CDxfWrite::getBlockHandle(void) +std::string CDxfWrite::getBlockHandle() { return getHandle(); // m_blockHandle++; @@ -490,7 +490,7 @@ std::string CDxfWrite::getBlockHandle(void) // return ss.str(); } -std::string CDxfWrite::getBlkRecordHandle(void) +std::string CDxfWrite::getBlkRecordHandle() { return getHandle(); // m_blkRecordHandle++; @@ -1378,7 +1378,7 @@ void CDxfWrite::writeDiametricDim(const double* textMidPoint, //*************************** //writeDimBlockPreamble //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeDimBlockPreamble(void) +void CDxfWrite::writeDimBlockPreamble() { if (m_version > 12) { std::string blockName("*"); @@ -1423,7 +1423,7 @@ void CDxfWrite::writeDimBlockPreamble(void) //*************************** //writeBlockTrailer //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeBlockTrailer(void) +void CDxfWrite::writeBlockTrailer() { (*m_ssBlock) << " 0" << endl; (*m_ssBlock) << "ENDBLK" << endl; @@ -1696,7 +1696,7 @@ void CDxfWrite::writeDiametricDimBlock(const double* textMidPoint, //*************************** //writeBlocksSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeBlocksSection(void) +void CDxfWrite::writeBlocksSection() { if (m_version < 14) { std::stringstream ss; @@ -1715,7 +1715,7 @@ void CDxfWrite::writeBlocksSection(void) //*************************** //writeEntitiesSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeEntitiesSection(void) +void CDxfWrite::writeEntitiesSection() { std::stringstream ss; ss << "entities" << m_version << ".rub"; @@ -1733,7 +1733,7 @@ void CDxfWrite::writeEntitiesSection(void) //*************************** //writeObjectsSection //added by Wandererfan 2018 (wandererfan@gmail.com) for FreeCAD project -void CDxfWrite::writeObjectsSection(void) +void CDxfWrite::writeObjectsSection() { if (m_version < 14) { return; @@ -1767,8 +1767,8 @@ CDxfRead::CDxfRead(const char* filepath) m_ifs->imbue(std::locale("C")); m_version = RUnknown; - m_CodePage = NULL; - m_encoding = NULL; + m_CodePage = nullptr; + m_encoding = nullptr; stringToUTF8 = &CDxfRead::UTF8ToUTF8; } @@ -2431,7 +2431,9 @@ bool CDxfRead::ReadText() { const char* utfStr = (this->*stringToUTF8)(textPrefix.c_str()); OnReadText(c, height * 25.4 / 72.0, utfStr); - delete utfStr; + if (utfStr == m_str) { + delete utfStr; + } } return(true); @@ -3321,7 +3323,7 @@ bool CDxfRead::ReadDWGCodePage() { get_line(); get_line(); - assert(m_CodePage == NULL); // If not, we have found two DWGCODEPAGE variables or DoRead was called twice on the same CDxfRead object. + assert(m_CodePage == nullptr); // If not, we have found two DWGCODEPAGE variables or DoRead was called twice on the same CDxfRead object. m_CodePage = new std::string(m_str); return ResolveEncoding(); @@ -3329,15 +3331,15 @@ bool CDxfRead::ReadDWGCodePage() bool CDxfRead::ResolveEncoding() { - if (m_encoding != NULL) { + if (m_encoding != nullptr) { delete m_encoding; - m_encoding = NULL; + m_encoding = nullptr; } if (m_version >= R2007) { // Note this does not include RUnknown, but does include RLater m_encoding = new std::string("utf_8"); stringToUTF8 = &CDxfRead::UTF8ToUTF8; } - else if (m_CodePage == NULL) { + else if (m_CodePage == nullptr) { // cp1252 m_encoding = new std::string("cp1252"); stringToUTF8 = &CDxfRead::GeneralToUTF8; @@ -3360,10 +3362,10 @@ bool CDxfRead::ResolveEncoding() // and is just a direct c++ callable. Base::PyGILStateLocker lock; PyObject* pyDecoder = PyCodec_Decoder(m_encoding->c_str()); - if (pyDecoder == NULL) + if (pyDecoder == nullptr) return false; // A key error exception will have been placed. PyObject* pyUTF8Decoder = PyCodec_Decoder("utf_8"); - assert(pyUTF8Decoder != NULL); + assert(pyUTF8Decoder != nullptr); if (pyDecoder == pyUTF8Decoder) stringToUTF8 = &CDxfRead::UTF8ToUTF8; else @@ -3371,7 +3373,7 @@ bool CDxfRead::ResolveEncoding() Py_DECREF(pyDecoder); Py_DECREF(pyUTF8Decoder); } - return m_encoding != NULL; + return m_encoding != nullptr; } const char* CDxfRead::UTF8ToUTF8(const char* encoded) const @@ -3383,15 +3385,15 @@ const char* CDxfRead::GeneralToUTF8(const char* encoded) const { Base::PyGILStateLocker lock; PyObject* decoded = PyUnicode_Decode(encoded, strlen(encoded), m_encoding->c_str(), "strict"); - if (decoded == NULL) - return NULL; + if (decoded == nullptr) + return nullptr; Py_ssize_t len; const char* converted = PyUnicode_AsUTF8AndSize(decoded, &len); - char* result = NULL; - if (converted != NULL) { + char* result = nullptr; + if (converted != nullptr) { // converted only has lifetime of decoded so we must save a copy. result = (char *)malloc(len + 1); - if (result == NULL) + if (result == nullptr) PyErr_SetString(PyExc_MemoryError, "Out of memory"); else memcpy(result, converted, len + 1); diff --git a/src/Mod/Import/App/dxf/dxf.h b/src/Mod/Import/App/dxf/dxf.h index 8ab4d3b6d4..b7bf67c69d 100644 --- a/src/Mod/Import/App/dxf/dxf.h +++ b/src/Mod/Import/App/dxf/dxf.h @@ -21,10 +21,6 @@ #include -//Following is required to be defined on Ubuntu with OCC 6.3.1 -#ifndef HAVE_IOSTREAM -#define HAVE_IOSTREAM -#endif typedef int ColorIndex_t; // DXF color index @@ -160,11 +156,11 @@ protected: //! copy boiler plate file std::string getPlateFile(std::string fileSpec); void setDataDir(std::string s) { m_dataDir = s; } - std::string getHandle(void); - std::string getEntityHandle(void); - std::string getLayerHandle(void); - std::string getBlockHandle(void); - std::string getBlkRecordHandle(void); + std::string getHandle(); + std::string getEntityHandle(); + std::string getLayerHandle(); + std::string getBlockHandle(); + std::string getBlkRecordHandle(); std::string m_optionSource; int m_version; @@ -190,8 +186,8 @@ public: ImportExport CDxfWrite(const char* filepath); ImportExport ~CDxfWrite(); - ImportExport void init(void); - ImportExport void endRun(void); + ImportExport void init(); + ImportExport void endRun(); ImportExport bool Failed(){return m_fail;} // void setOptions(void); @@ -241,19 +237,19 @@ public: const char* dimText); ImportExport void writeDimBlockPreamble(); - ImportExport void writeBlockTrailer(void); + ImportExport void writeBlockTrailer(); - ImportExport void writeHeaderSection(void); - ImportExport void writeTablesSection(void); - ImportExport void writeBlocksSection(void); - ImportExport void writeEntitiesSection(void); - ImportExport void writeObjectsSection(void); - ImportExport void writeClassesSection(void); + ImportExport void writeHeaderSection(); + ImportExport void writeTablesSection(); + ImportExport void writeBlocksSection(); + ImportExport void writeEntitiesSection(); + ImportExport void writeObjectsSection(); + ImportExport void writeClassesSection(); - ImportExport void makeLayerTable(void); - ImportExport void makeBlockRecordTableHead(void); - ImportExport void makeBlockRecordTableBody(void); - ImportExport void makeBlockSectionHead(void); + ImportExport void makeLayerTable(); + ImportExport void makeBlockRecordTableHead(); + ImportExport void makeBlockRecordTableBody(); + ImportExport void makeBlockSectionHead(); }; // derive a class from this and implement it's virtual functions diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index 5ec0d34427..49974d365f 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -412,7 +412,7 @@ private: FC_TIME_INIT(t); FC_DURATION_DECL_INIT2(d1,d2); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { if(mode<0) mode = ocaf.getMode(); @@ -451,7 +451,7 @@ private: pcDoc->recompute(); } } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { Base::Reference hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part")->GetGroup("IGES"); @@ -550,7 +550,7 @@ private: Py::Dict options; Base::FileInfo file(name8bit.c_str()); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { PartGui::TaskExportStep dlg(Gui::getMainWindow()); if (!dlg.showDialog() || dlg.exec()) { auto stepSettings = dlg.getSettings(); @@ -652,7 +652,7 @@ private: } Base::FileInfo file(Utf8Name.c_str()); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { ParameterGrp::handle hGrp_stp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Part/STEP"); std::string scheme = hGrp_stp->GetASCII("Scheme", Part::Interface::writeStepScheme()); std::list supported = Part::supportedSTEPSchemes(); @@ -681,7 +681,7 @@ private: throw Py::Exception(); } } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { IGESControl_Controller::Init(); IGESCAFControl_Writer writer; IGESData_GlobalSection header = writer.Model()->GlobalSection(); @@ -696,7 +696,7 @@ private: throw Py::Exception(); } } - else if (file.hasExtension("glb") || file.hasExtension("gltf")) { + else if (file.hasExtension({"glb", "gltf"})) { #if OCC_VERSION_HEX >= 0x070500 TColStd_IndexedDataMapOfStringString aMetadata; RWGltf_CafWriter aWriter (name8bit.c_str(), file.hasExtension("glb")); @@ -742,7 +742,7 @@ private: Handle(TDocStd_Document) hDoc; hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { STEPCAFControl_Reader aReader; aReader.SetColorMode(true); aReader.SetNameMode(true); @@ -763,7 +763,7 @@ private: pi->EndScope(); #endif } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { Base::Reference hGrp = App::GetApplication().GetUserParameter() .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part")->GetGroup("IGES"); IGESControl_Controller::Init(); diff --git a/src/Mod/Inspection/App/InspectionFeature.cpp b/src/Mod/Inspection/App/InspectionFeature.cpp index 44384a8575..8ef9e87f89 100644 --- a/src/Mod/Inspection/App/InspectionFeature.cpp +++ b/src/Mod/Inspection/App/InspectionFeature.cpp @@ -57,7 +57,7 @@ using namespace Inspection; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; InspectActualMesh::InspectActualMesh(const Mesh::MeshObject& rMesh) : _mesh(rMesh.getKernel()) { @@ -160,7 +160,7 @@ namespace Inspection { // do nothing } - void Validate (void) + void Validate () { // do nothing } @@ -182,7 +182,7 @@ namespace Inspection { // do nothing } - unsigned long HasElements (void) const override + unsigned long HasElements () const override { return _pclMesh->CountFacets(); } @@ -224,7 +224,7 @@ namespace Inspection { _aulGrid[ulX1][ulY1][ulZ1].insert(ulFacetIndex); } - void InitGrid (void) override + void InitGrid () override { unsigned long i, j; @@ -252,7 +252,7 @@ namespace Inspection { } } - void RebuildGrid (void) override + void RebuildGrid () override { _ulCtElements = _pclMesh->CountFacets(); InitGrid(); @@ -552,7 +552,7 @@ void PropertyDistanceList::setSize(int newSize) _lValueList.resize(newSize); } -int PropertyDistanceList::getSize(void) const +int PropertyDistanceList::getSize() const { return static_cast(_lValueList.size()); } @@ -572,7 +572,7 @@ void PropertyDistanceList::setValues(const std::vector& values) hasSetValue(); } -PyObject *PropertyDistanceList::getPyObject(void) +PyObject *PropertyDistanceList::getPyObject() { PyObject* list = PyList_New(getSize()); for (int i = 0;i_lValueList = _lValueList; @@ -673,7 +673,7 @@ void PropertyDistanceList::Paste(const App::Property &from) hasSetValue(); } -unsigned int PropertyDistanceList::getMemSize (void) const +unsigned int PropertyDistanceList::getMemSize () const { return static_cast(_lValueList.size() * sizeof(float)); } @@ -763,7 +763,7 @@ short Feature::mustExecute() const return 0; } -App::DocumentObjectExecReturn* Feature::execute(void) +App::DocumentObjectExecReturn* Feature::execute() { bool useMultithreading = true; @@ -818,7 +818,7 @@ App::DocumentObjectExecReturn* Feature::execute(void) std::generate(index.begin(), index.end(), Base::iotaGen(0)); DistanceInspection check(this->SearchRadius.getValue(), actual, inspectNominal); QFuture future = QtConcurrent::mapped - (index, boost::bind(&DistanceInspection::mapped, &check, bp::_1)); + (index, std::bind(&DistanceInspection::mapped, &check, sp::_1)); //future.waitForFinished(); // blocks the GUI Base::FutureWatcherProgress progress("Inspecting...", actual->countPoints()); QFutureWatcher watcher; diff --git a/src/Mod/Inspection/Gui/AppInspectionGui.cpp b/src/Mod/Inspection/Gui/AppInspectionGui.cpp index 405d4c788a..2038d46923 100644 --- a/src/Mod/Inspection/Gui/AppInspectionGui.cpp +++ b/src/Mod/Inspection/Gui/AppInspectionGui.cpp @@ -32,7 +32,7 @@ // use a different name to CreateCommand() -void CreateInspectionCommands(void); +void CreateInspectionCommands(); namespace InspectionGui { diff --git a/src/Mod/Inspection/Gui/Command.cpp b/src/Mod/Inspection/Gui/Command.cpp index 4767190cf5..659d8a63cf 100644 --- a/src/Mod/Inspection/Gui/Command.cpp +++ b/src/Mod/Inspection/Gui/Command.cpp @@ -58,7 +58,7 @@ void CmdVisualInspection::activated(int) dlg.exec(); } -bool CmdVisualInspection::isActive(void) +bool CmdVisualInspection::isActive() { return App::GetApplication().getActiveDocument(); } @@ -95,7 +95,7 @@ void CmdInspectElement::activated(int) } } -bool CmdInspectElement::isActive(void) +bool CmdInspectElement::isActive() { App::Document* doc = App::GetApplication().getActiveDocument(); if (!doc || doc->countObjectsOfType(Inspection::Feature::getClassTypeId()) == 0) @@ -110,7 +110,7 @@ bool CmdInspectElement::isActive(void) return false; } -void CreateInspectionCommands(void) +void CreateInspectionCommands() { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); rcCmdMgr.addCommand(new CmdVisualInspection()); diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.qm index a0437220cf..c7b5e11f46 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.ts index 948916bce1..5f85df56eb 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ca.ts @@ -11,12 +11,12 @@ Inspection... - Inspection... + Inspecció... Get distance information - Get distance information + Aconsegueix la informació de la distància @@ -29,13 +29,13 @@ Visual inspection... - Visual inspection... + Inspecció visual... Visual inspection - Visual inspection + Inspecció visual @@ -43,7 +43,7 @@ Visual Inspection - Visual Inspection + Inspecció Visual @@ -51,7 +51,7 @@ Visual Inspection - Visual Inspection + Inspecció Visual @@ -67,7 +67,7 @@ Nominal - Nominal + Nominal @@ -77,7 +77,7 @@ Search distance - Search distance + Cerca la distància @@ -96,12 +96,12 @@ Remove annotations - Remove annotations + Elimina les anotacions Do you want to remove all annotations? - Do you want to remove all annotations? + Vols eliminar totes les anotacions? @@ -111,23 +111,23 @@ Leave info mode - Ix del mode info + Surt del mode d'informació Distance: > %1 - Distance: > %1 + Distància: > %1 Distance: < %1 - Distance: < %1 + Distància: < %1 Distance: %1 - Distance: %1 + Distància: %1 diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.qm index cd66c082f3..72f75b98da 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.ts index d29db990d4..50a9615039 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_hr.ts @@ -11,12 +11,12 @@ Inspection... - Inspection... + Inspekcija... Get distance information - Get distance information + Dobiti podatke o udaljenosti @@ -29,13 +29,13 @@ Visual inspection... - Visual inspection... + Vizualni pregled... Visual inspection - Visual inspection + Vizualni pregled @@ -43,7 +43,7 @@ Visual Inspection - Visual Inspection + Vizualni Pregled @@ -51,12 +51,12 @@ Visual Inspection - Visual Inspection + Vizualni Pregled Actual - Actual + Važeći @@ -67,7 +67,7 @@ Nominal - Nominal + Nominalni @@ -77,7 +77,7 @@ Search distance - Search distance + Udaljenost pretraživanja @@ -96,12 +96,13 @@ Remove annotations - Remove annotations + +Ukloni napomene Do you want to remove all annotations? - Do you want to remove all annotations? + Želite li ukloniti sve napomene? @@ -116,18 +117,18 @@ Distance: > %1 - Distance: > %1 + Udaljenost: > %1 Distance: < %1 - Distance: < %1 + Udaljenost: < %1 Distance: %1 - Distance: %1 + Udaljenost: %1 diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.qm index fed0935b43..b404689fa9 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.ts index f3baf7d5c0..71548c6599 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_ja.ts @@ -11,12 +11,12 @@ Inspection... - Inspection... + 検査... Get distance information - Get distance information + 距離情報を取得 @@ -29,13 +29,13 @@ Visual inspection... - Visual inspection... + 外観検査... Visual inspection - Visual inspection + 外観検査 @@ -43,7 +43,7 @@ Visual Inspection - Visual Inspection + 外観検査 @@ -51,7 +51,7 @@ Visual Inspection - Visual Inspection + 外観検査 @@ -96,12 +96,12 @@ Remove annotations - Remove annotations + 注釈を削除 Do you want to remove all annotations? - Do you want to remove all annotations? + すべての注釈を削除しますか? @@ -116,18 +116,18 @@ Distance: > %1 - Distance: > %1 + 距離: > %1 Distance: < %1 - Distance: < %1 + 距離: < %1 Distance: %1 - Distance: %1 + 距離: %1 diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.qm index e14674e21d..6a74404e4d 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.ts index 6dc218d967..73e5ab12d2 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_nl.ts @@ -77,7 +77,7 @@ Search distance - Search distance + Zoekafstand @@ -116,18 +116,18 @@ Distance: > %1 - Distance: > %1 + Afstand: > %1 Distance: < %1 - Distance: < %1 + Afstand: < %1 Distance: %1 - Distance: %1 + Afstand: %1 diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.qm index b147961676..fafdc86478 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.ts index ca9e60eac3..58ebff8e22 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_tr.ts @@ -11,12 +11,12 @@ Inspection... - Inspection... + İnceleme... Get distance information - Get distance information + Mesafe bilgisini al @@ -29,13 +29,13 @@ Visual inspection... - Visual inspection... + Görsel inceleme... Visual inspection - Visual inspection + Görsel inceleme @@ -43,7 +43,7 @@ Visual Inspection - Visual Inspection + Görsel inceleme @@ -51,12 +51,12 @@ Visual Inspection - Visual Inspection + Görsel inceleme Actual - Actual + Güncel @@ -67,7 +67,7 @@ Nominal - Nominal + Nominal @@ -77,7 +77,7 @@ Search distance - Search distance + Arama mesafesi @@ -96,12 +96,12 @@ Remove annotations - Remove annotations + Açıklamaları kaldır Do you want to remove all annotations? - Do you want to remove all annotations? + Tüm açıklamaları kaldırmak istiyor musunuz? @@ -116,18 +116,18 @@ Distance: > %1 - Distance: > %1 + Mesafe: > %1 Distance: < %1 - Distance: < %1 + Mesafe: < %1 Distance: %1 - Distance: %1 + Mesafe: %1 diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.qm b/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.qm index 47786e5b61..16df3fcb7c 100644 Binary files a/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.qm and b/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.qm differ diff --git a/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.ts b/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.ts index ef6d073b07..69fcaba0bb 100644 --- a/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.ts +++ b/src/Mod/Inspection/Gui/Resources/translations/Inspection_zh-TW.ts @@ -96,7 +96,7 @@ Remove annotations - Remove annotations + 刪除註解 diff --git a/src/Mod/Mesh/App/AppMeshPy.cpp b/src/Mod/Mesh/App/AppMeshPy.cpp index 92c5129280..26b9c52314 100644 --- a/src/Mod/Mesh/App/AppMeshPy.cpp +++ b/src/Mod/Mesh/App/AppMeshPy.cpp @@ -257,14 +257,14 @@ private: meta[App::Application::Config()["ExeName"] + "-buildRevisionHash"] = App::Application::Config()["BuildRevisionHash"]; - exporter.reset( new ExporterAMF(outputFileName, meta, exportAmfCompressed) ); + exporter = std::make_unique(outputFileName, meta, exportAmfCompressed); } else if (exportFormat == MeshIO::ThreeMF) { Extension3MFFactory::initialize(); - exporter.reset( new Exporter3MF(outputFileName, Extension3MFFactory::createExtensions()) ); + exporter = std::make_unique(outputFileName, Extension3MFFactory::createExtensions()); } else if (exportFormat != MeshIO::Undefined) { - exporter.reset( new MergeExporter(outputFileName, exportFormat) ); + exporter = std::make_unique(outputFileName, exportFormat); } else { std::string exStr("Can't determine mesh format from file name.\nPlease specify mesh format file extension: '"); diff --git a/src/Mod/Mesh/App/Core/Builder.cpp b/src/Mod/Mesh/App/Core/Builder.cpp index 898cd4d95b..b61111f6af 100644 --- a/src/Mod/Mesh/App/Core/Builder.cpp +++ b/src/Mod/Mesh/App/Core/Builder.cpp @@ -337,7 +337,7 @@ void MeshFastBuilder::Finish () //std::sort(verts.begin(), verts.end()); int threads = QThread::idealThreadCount(); - MeshCore::parallel_sort(verts.begin(), verts.end(), std::less(), threads); + MeshCore::parallel_sort(verts.begin(), verts.end(), std::less<>(), threads); QVector indices(ulCtPts); diff --git a/src/Mod/Mesh/App/Core/Curvature.cpp b/src/Mod/Mesh/App/Core/Curvature.cpp index 558dee633e..084d9d3ce5 100644 --- a/src/Mod/Mesh/App/Core/Curvature.cpp +++ b/src/Mod/Mesh/App/Core/Curvature.cpp @@ -79,8 +79,10 @@ void MeshCurvature::ComputePerFace(bool parallel) } } else { + //NOLINTBEGIN QFuture future = QtConcurrent::mapped (mySegment, std::bind(&FacetCurvature::Compute, &face, sp::_1)); + //NOLINTEND QFutureWatcher watcher; watcher.setFuture(future); watcher.waitForFinished(); diff --git a/src/Mod/Mesh/App/Core/CylinderFit.cpp b/src/Mod/Mesh/App/Core/CylinderFit.cpp index 620afc73aa..0b77c78516 100644 --- a/src/Mod/Mesh/App/Core/CylinderFit.cpp +++ b/src/Mod/Mesh/App/Core/CylinderFit.cpp @@ -291,7 +291,7 @@ float CylinderFit::Fit() { ++_numIter; - // Set up the quasi parameteric normal equations + // Set up the quasi parametric normal equations setupNormalEquationMatrices(solDir, residuals, atpa, atpl); // Solve the equations for the unknown corrections @@ -448,7 +448,7 @@ void CylinderFit::setupNormalEquationMatrices(SolutionD solDir, const std::vecto setLowerPart(atpa); } -// Sets up contributions of given observation to the quasi parameteric +// Sets up contributions of given observation to the quasi parametric // normal equation matrices. Assumes uncorrelated coordinates. // point ... point // residual ... residual for this point computed from previous iteration (zero for first iteration) diff --git a/src/Mod/Mesh/App/Core/Degeneration.cpp b/src/Mod/Mesh/App/Core/Degeneration.cpp index 54e5a4b107..d2d960c6ee 100644 --- a/src/Mod/Mesh/App/Core/Degeneration.cpp +++ b/src/Mod/Mesh/App/Core/Degeneration.cpp @@ -517,7 +517,7 @@ bool MeshRemoveNeedles::Fixup() std::priority_queue, - std::greater > todo; + std::greater<> > todo; for (std::size_t index = 0; index < facetCount; index++) { const MeshFacet& facet = rclFAry[index]; MeshGeomFacet tria(_rclMesh.GetFacet(facet)); @@ -615,7 +615,7 @@ bool MeshFixCaps::Fixup() std::priority_queue, - std::greater > todo; + std::greater<> > todo; for (std::size_t index = 0; index < facetCount; index++) { for (int i=0; i<3; i++) { const MeshFacet& facet = rclFAry[index]; diff --git a/src/Mod/Mesh/App/Core/IO/ReaderOBJ.cpp b/src/Mod/Mesh/App/Core/IO/ReaderOBJ.cpp index ed60f41e22..4c01424e80 100644 --- a/src/Mod/Mesh/App/Core/IO/ReaderOBJ.cpp +++ b/src/Mod/Mesh/App/Core/IO/ReaderOBJ.cpp @@ -46,8 +46,8 @@ ReaderOBJ::ReaderOBJ(MeshKernel& kernel, Material* material) bool ReaderOBJ::Load(std::istream &str) { boost::regex rx_m("^mtllib\\s+(.+)\\s*$"); - boost::regex rx_u("^usemtl\\s+([\\x21-\\x7E]+)\\s*$"); - boost::regex rx_g("^g\\s+([\\x21-\\x7E]+)\\s*$"); + boost::regex rx_u(R"(^usemtl\s+([\x21-\x7E]+)\s*$)"); + boost::regex rx_g(R"(^g\s+([\x21-\x7E]+)\s*$)"); boost::regex rx_p("^v\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)" "\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)" "\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)\\s*$"); diff --git a/src/Mod/Mesh/App/Core/MeshIO.cpp b/src/Mod/Mesh/App/Core/MeshIO.cpp index 5002714af9..d85c5c743e 100644 --- a/src/Mod/Mesh/App/Core/MeshIO.cpp +++ b/src/Mod/Mesh/App/Core/MeshIO.cpp @@ -188,7 +188,7 @@ bool MeshInput::LoadAny(const char* FileName) else { // read file bool ok = false; - if (fi.hasExtension("stl") || fi.hasExtension("ast")) { + if (fi.hasExtension({"stl", "ast"})) { ok = LoadSTL(str); } else if (fi.hasExtension("iv")) { @@ -196,7 +196,7 @@ bool MeshInput::LoadAny(const char* FileName) if (ok && _rclMesh.CountFacets() == 0) Base::Console().Warning("No usable mesh found in file '%s'", FileName); } - else if (fi.hasExtension("nas") || fi.hasExtension("bdf")) { + else if (fi.hasExtension({"nas", "bdf"})) { ok = LoadNastran( str ); } else if (fi.hasExtension("obj")) { @@ -412,7 +412,7 @@ bool MeshInput::LoadSMF (std::istream &rstrIn) bool MeshInput::LoadOFF (std::istream &rstrIn) { // http://edutechwiki.unige.ch/en/3D_file_format - boost::regex rx_n("^\\s*([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s*$"); + boost::regex rx_n(R"(^\s*([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*$)"); boost::cmatch what; bool colorPerVertex = false; @@ -842,7 +842,7 @@ bool MeshInput::LoadPLY (std::istream &inp) boost::regex rx_d("(([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?))\\s*"); boost::regex rx_s("\\b([-+]?[0-9]+)\\s*"); boost::regex rx_u("\\b([0-9]+)\\s*"); - boost::regex rx_f("^\\s*3\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s*"); + boost::regex rx_f(R"(^\s*3\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*)"); boost::smatch what; for (std::size_t i = 0; i < v_count && std::getline(inp, line); i++) { @@ -1066,7 +1066,7 @@ bool MeshInput::LoadMeshNode (std::istream &rstrIn) boost::regex rx_p("^v\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)" "\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)" "\\s+([-+]?[0-9]*)\\.?([0-9]+([eE][-+]?[0-9]+)?)\\s*$"); - boost::regex rx_f("^f\\s+([0-9]+)\\s+([0-9]+)\\s+([0-9]+)\\s*$"); + boost::regex rx_f(R"(^f\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*$)"); boost::regex rx_e("\\s*]\\s*"); boost::cmatch what; @@ -1711,13 +1711,13 @@ MeshIO::Format MeshOutput::GetFormat(const char* FileName) else if (file.hasExtension("py")) { return MeshIO::PY; } - else if (file.hasExtension("wrl") || file.hasExtension("vrml")) { + else if (file.hasExtension({"wrl", "vrml"})) { return MeshIO::VRML; } else if (file.hasExtension("wrz")) { return MeshIO::WRZ; } - else if (file.hasExtension("nas") || file.hasExtension("bdf")) { + else if (file.hasExtension({"nas", "bdf"})) { return MeshIO::NAS; } else if (file.hasExtension("amf")) { @@ -2716,7 +2716,7 @@ bool MeshOutput::SaveX3DContent (std::ostream &out, bool exportViewpoints) const out.setf(std::ios::fixed | std::ios::showpoint); // Header info - out << "\n"; out << " \n" @@ -2735,7 +2735,7 @@ bool MeshOutput::SaveX3DContent (std::ostream &out, bool exportViewpoints) const << "\" centerOfRotation=\"" << cnt.x << " " << cnt.y << " " << cnt.z << "\" position=\"" << pos.x << " " << pos.y << " " << pos.z << "\" orientation=\"" << axis.x << " " << axis.y << " " << axis.z << " " << angle - << "\" description=\"camera\" fieldOfView=\"0.9\">" + << R"(" description="camera" fieldOfView="0.9">)" << "\n"; }; diff --git a/src/Mod/Mesh/App/Core/SphereFit.cpp b/src/Mod/Mesh/App/Core/SphereFit.cpp index 6e0cf04f80..da7875d844 100644 --- a/src/Mod/Mesh/App/Core/SphereFit.cpp +++ b/src/Mod/Mesh/App/Core/SphereFit.cpp @@ -207,7 +207,7 @@ float SphereFit::Fit() { ++_numIter; - // Set up the quasi parameteric normal equations + // Set up the quasi parametric normal equations setupNormalEquationMatrices(residuals, atpa, atpl); // Solve the equations for the unknown corrections @@ -271,7 +271,7 @@ void SphereFit::setupNormalEquationMatrices(const std::vector< Base::Vector3d > setLowerPart(atpa); } -// Sets up contributions of given observation to the quasi parameteric +// Sets up contributions of given observation to the quasi parametric // normal equation matrices. Assumes uncorrelated coordinates. // point ... point // residual ... residual for this point computed from previous iteration (zero for first iteration) diff --git a/src/Mod/Mesh/App/Core/Visitor.h b/src/Mod/Mesh/App/Core/Visitor.h index 2a9596f2e5..61a5d3911b 100644 --- a/src/Mod/Mesh/App/Core/Visitor.h +++ b/src/Mod/Mesh/App/Core/Visitor.h @@ -24,7 +24,7 @@ #define VISITOR_H #include -#include +#include "MeshKernel.h" namespace MeshCore { @@ -123,10 +123,10 @@ class MeshExport MeshTopFacetVisitor : public MeshFacetVisitor { public: MeshTopFacetVisitor (std::vector &raulNB) : _raulNeighbours(raulNB) {} - ~MeshTopFacetVisitor () override {} + ~MeshTopFacetVisitor () override = default; /** Collects the facet indices. */ - virtual bool Visit (const MeshFacet &rclFacet, const MeshFacet &rclFrom, - FacetIndex ulFInd, unsigned long) override + bool Visit (const MeshFacet &rclFacet, const MeshFacet &rclFrom, + FacetIndex ulFInd, unsigned long) override { (void)rclFacet; (void)rclFrom; diff --git a/src/Mod/Mesh/App/Exporter.cpp b/src/Mod/Mesh/App/Exporter.cpp index 4d0cbabe9c..8f8980d50f 100644 --- a/src/Mod/Mesh/App/Exporter.cpp +++ b/src/Mod/Mesh/App/Exporter.cpp @@ -280,7 +280,7 @@ public: Exporter3MF::Exporter3MF(std::string fileName, const std::vector& ext) { throwIfNoPermission(fileName); - d.reset(new Private(fileName, ext)); + d = std::make_unique(fileName, ext); } Exporter3MF::~Exporter3MF() diff --git a/src/Mod/Mesh/App/FacetPyImp.cpp b/src/Mod/Mesh/App/FacetPyImp.cpp index eca20abc27..46e4906a42 100644 --- a/src/Mod/Mesh/App/FacetPyImp.cpp +++ b/src/Mod/Mesh/App/FacetPyImp.cpp @@ -34,6 +34,28 @@ using namespace Mesh; +namespace { +class Index { + FacetIndex index; + +public: + Index(FacetIndex index) + : index{index} + {} + + friend std::ostream& operator<<(std::ostream& os, Index idx) + { + if (idx.index < MeshCore::FACET_INDEX_MAX) { + os << idx.index; + } + else { + os << -1; + } + return os; + } +}; +} + // returns a string which represent the object e.g. when printed in python std::string FacetPy::representation() const { @@ -41,15 +63,33 @@ std::string FacetPy::representation() const std::stringstream str; str << "Facet ("; if (ptr->isBound()) { - str << "(" << ptr->_aclPoints[0].x << ", " << ptr->_aclPoints[0].y << ", " << ptr->_aclPoints[0].z << ", Idx=" << ptr->PIndex[0] << "), "; - str << "(" << ptr->_aclPoints[1].x << ", " << ptr->_aclPoints[1].y << ", " << ptr->_aclPoints[1].z << ", Idx=" << ptr->PIndex[1] << "), "; - str << "(" << ptr->_aclPoints[2].x << ", " << ptr->_aclPoints[2].y << ", " << ptr->_aclPoints[2].z << ", Idx=" << ptr->PIndex[2] << "), "; - str << "Idx=" << ptr->Index << ", (" << ptr->NIndex[0] << ", " << ptr->NIndex[1] << ", " << ptr->NIndex[2] << ")"; + str << "(" << ptr->_aclPoints[0].x << ", " + << ptr->_aclPoints[0].y << ", " + << ptr->_aclPoints[0].z << ", Idx=" + << ptr->PIndex[0] << "), "; + str << "(" << ptr->_aclPoints[1].x << ", " + << ptr->_aclPoints[1].y << ", " + << ptr->_aclPoints[1].z << ", Idx=" + << ptr->PIndex[1] << "), "; + str << "(" << ptr->_aclPoints[2].x << ", " + << ptr->_aclPoints[2].y << ", " + << ptr->_aclPoints[2].z << ", Idx=" + << ptr->PIndex[2] << "), "; + str << "Idx=" << Index(ptr->Index) << ", (" + << Index(ptr->NIndex[0]) << ", " + << Index(ptr->NIndex[1]) << ", " + << Index(ptr->NIndex[2]) << ")"; } else { - str << "(" << ptr->_aclPoints[0].x << ", " << ptr->_aclPoints[0].y << ", " << ptr->_aclPoints[0].z << "), "; - str << "(" << ptr->_aclPoints[1].x << ", " << ptr->_aclPoints[1].y << ", " << ptr->_aclPoints[1].z << "), "; - str << "(" << ptr->_aclPoints[2].x << ", " << ptr->_aclPoints[2].y << ", " << ptr->_aclPoints[2].z << ")"; + str << "(" << ptr->_aclPoints[0].x << ", " + << ptr->_aclPoints[0].y << ", " + << ptr->_aclPoints[0].z << "), "; + str << "(" << ptr->_aclPoints[1].x << ", " + << ptr->_aclPoints[1].y << ", " + << ptr->_aclPoints[1].z << "), "; + str << "(" << ptr->_aclPoints[2].x << ", " + << ptr->_aclPoints[2].y << ", " + << ptr->_aclPoints[2].z << ")"; } str << ")"; @@ -81,7 +121,7 @@ PyObject* FacetPy::unbound(PyObject *args) PyObject* FacetPy::getEdge(PyObject *args) { - int index; + int index{}; if (!PyArg_ParseTuple(args, "i", &index)) return nullptr; @@ -108,7 +148,7 @@ Py::Object FacetPy::getNormal() const PyObject* FacetPy::intersect(PyObject *args) { - PyObject* object; + PyObject* object{}; if (!PyArg_ParseTuple(args, "O!", &FacetPy::Type, &object)) return nullptr; FacetPy *face = static_cast(object); @@ -160,8 +200,8 @@ PyObject* FacetPy::isDegenerated(PyObject *args) PyObject* FacetPy::isDeformed(PyObject *args) { - float fMinAngle; - float fMaxAngle; + float fMinAngle{}; + float fMaxAngle{}; if (!PyArg_ParseTuple(args, "ff", &fMinAngle, &fMaxAngle)) return nullptr; @@ -182,11 +222,11 @@ Py::List FacetPy::getPoints() const FacetPy::PointerType face = this->getFacetPtr(); Py::List pts; - for (int i=0; i<3; i++) { + for (const auto& vec : face->_aclPoints) { Py::Tuple pt(3); - pt.setItem(0, Py::Float(face->_aclPoints[i].x)); - pt.setItem(1, Py::Float(face->_aclPoints[i].y)); - pt.setItem(2, Py::Float(face->_aclPoints[i].z)); + pt.setItem(0, Py::Float(vec.x)); + pt.setItem(1, Py::Float(vec.y)); + pt.setItem(2, Py::Float(vec.z)); pts.append(pt); } @@ -215,7 +255,13 @@ Py::Tuple FacetPy::getNeighbourIndices() const Py::Tuple idxTuple(3); for (int i=0; i<3; i++) { - idxTuple.setItem(i, Py::Long(face->NIndex[i])); + auto index = face->NIndex[i]; + if (index < MeshCore::FACET_INDEX_MAX) { + idxTuple.setItem(i, Py::Long(index)); + } + else { + idxTuple.setItem(i, Py::Long(-1L)); + } } return idxTuple; } diff --git a/src/Mod/Mesh/App/Mesh.cpp b/src/Mod/Mesh/App/Mesh.cpp index 5015925d23..13c597f33c 100644 --- a/src/Mod/Mesh/App/Mesh.cpp +++ b/src/Mod/Mesh/App/Mesh.cpp @@ -119,7 +119,7 @@ Data::Segment* MeshObject::getSubElement(const char* Type, unsigned long n) cons MeshSegment* segm = new MeshSegment(); segm->mesh = new MeshObject(*this); const Segment& faces = getSegment(n); - segm->segment.reset(new Segment(static_cast(segm->mesh), faces.getIndices(), false)); + segm->segment = std::make_unique(static_cast(segm->mesh), faces.getIndices(), false); return segm; } diff --git a/src/Mod/Mesh/App/MeshPyImp.cpp b/src/Mod/Mesh/App/MeshPyImp.cpp index 0335243bf3..91de9781ef 100644 --- a/src/Mod/Mesh/App/MeshPyImp.cpp +++ b/src/Mod/Mesh/App/MeshPyImp.cpp @@ -267,7 +267,7 @@ PyObject* MeshPy::write(PyObject *args, PyObject *kwds) std::unique_ptr mat; if (List) { - mat.reset(new MeshCore::Material); + mat = std::make_unique(); Py::Sequence list(List); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { Py::Tuple t(*it); diff --git a/src/Mod/Mesh/App/MeshTestsApp.py b/src/Mod/Mesh/App/MeshTestsApp.py index 2dd450a489..ba34ba2574 100644 --- a/src/Mod/Mesh/App/MeshTestsApp.py +++ b/src/Mod/Mesh/App/MeshTestsApp.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (c) 2007 Jürgen Riegel @@ -228,7 +228,7 @@ class MeshSplitTestCases(unittest.TestCase): results = self.mesh.foraminate((0.0, 0.0, 0.0), (0,1,1)) filtered_result = list(filter(FilterAngle(self.mesh, FreeCAD.Vector(0,1,1), math.pi/2).check_angle, results.keys())) - self.assertEqual(filtered_result, list(self.mesh.foraminate((0.0, 0.0, 0.0), (0,1,1), math.pi/2).keys())) + self.assertEqual(filtered_result, list(self.mesh.foraminate((0.0, 0.0, 0.0), (0,1,1), math.pi/2))) def testForaminatePlacement(self): pnt = Base.Vector(0.0, 0.0, 0.0) @@ -246,7 +246,7 @@ class MeshSplitTestCases(unittest.TestCase): vec = plm.Rotation.multVec(vec) results2 = self.mesh.foraminate(pnt, vec) self.assertEqual(len(results2), 4) - self.assertEqual(list(results.keys()), list(results2.keys())) + self.assertEqual(list(results), list(results2)) class MeshGeoTestCases(unittest.TestCase): def setUp(self): diff --git a/src/Mod/Mesh/App/MeshTexture.cpp b/src/Mod/Mesh/App/MeshTexture.cpp index a799ad4db7..f0cfd6c338 100644 --- a/src/Mod/Mesh/App/MeshTexture.cpp +++ b/src/Mod/Mesh/App/MeshTexture.cpp @@ -35,12 +35,12 @@ MeshTexture::MeshTexture(const Mesh::MeshObject& mesh, const MeshCore::Material if (material.binding == MeshCore::MeshIO::PER_VERTEX && material.diffuseColor.size() == countPointsRefMesh) { binding = MeshCore::MeshIO::PER_VERTEX; - kdTree.reset(new MeshCore::MeshKDTree(mesh.getKernel().GetPoints())); + kdTree = std::make_unique(mesh.getKernel().GetPoints()); } else if (material.binding == MeshCore::MeshIO::PER_FACE && material.diffuseColor.size() == countFacets) { binding = MeshCore::MeshIO::PER_FACE; - kdTree.reset(new MeshCore::MeshKDTree(mesh.getKernel().GetPoints())); - refPnt2Fac.reset(new MeshCore::MeshRefPointToFacets(mesh.getKernel())); + kdTree = std::make_unique(mesh.getKernel().GetPoints()); + refPnt2Fac = std::make_unique(mesh.getKernel()); } } diff --git a/src/Mod/Mesh/Gui/Command.cpp b/src/Mod/Mesh/Gui/Command.cpp index 726750bfdf..bb7d759935 100644 --- a/src/Mod/Mesh/Gui/Command.cpp +++ b/src/Mod/Mesh/Gui/Command.cpp @@ -833,7 +833,7 @@ void CmdMeshTrimByPlane::activated(int) doCommand(Doc,"import MeshPartGui, FreeCADGui\nFreeCADGui.runCommand('MeshPart_TrimByPlane')\n"); } -bool CmdMeshTrimByPlane::isActive(void) +bool CmdMeshTrimByPlane::isActive() { // Check for the selected mesh feature (all Mesh types) if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) != 1) @@ -891,7 +891,7 @@ void CmdMeshCrossSections::activated(int) doCommand(Doc,"import MeshPartGui, FreeCADGui\nFreeCADGui.runCommand('MeshPart_CrossSections')\n"); } -bool CmdMeshCrossSections::isActive(void) +bool CmdMeshCrossSections::isActive() { return (Gui::Selection().countObjectsOfType(Mesh::Feature::getClassTypeId()) > 0 && !Gui::Control().activeDialog()); diff --git a/src/Mod/Mesh/Gui/Doxygen.cpp b/src/Mod/Mesh/Gui/Doxygen.cpp index 8d9d4f7f0c..7b5bb388ef 100644 --- a/src/Mod/Mesh/Gui/Doxygen.cpp +++ b/src/Mod/Mesh/Gui/Doxygen.cpp @@ -25,7 +25,7 @@ /*! \namespace MeshGui \brief The namespace of the Mesh Graphical interface layer library - This namespace includes the grafical interface of FreeCAD like: + This namespace includes the graphical interface of FreeCAD such as: - The main window - 3D View - Tree diff --git a/src/Mod/Mesh/Gui/MeshEditor.cpp b/src/Mod/Mesh/Gui/MeshEditor.cpp index 4d71ab2b1a..b0f34bb7d8 100644 --- a/src/Mod/Mesh/Gui/MeshEditor.cpp +++ b/src/Mod/Mesh/Gui/MeshEditor.cpp @@ -476,8 +476,10 @@ void MeshFillHole::startEditing(MeshGui::ViewProviderMesh* vp) //viewer->setRedirectToSceneGraph(true); viewer->addEventCallback(SoEvent::getClassTypeId(), MeshFillHole::fileHoleCallback, this); + //NOLINTBEGIN myConnection = App::GetApplication().signalChangedObject.connect( std::bind(&MeshFillHole::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND Gui::coinRemoveAllChildren(myBoundariesRoot); myBoundariesRoot->addChild(viewer->getHeadlight()); diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ca.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ca.ts index fbd136b47f..05bf53598d 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ca.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ca.ts @@ -30,13 +30,13 @@ Boundings info... - Informació de límits... + Informació dels vincles... Shows the boundings of the selected mesh - Mostra els límits de la malla seleccionada + Mostra els vincles de la malla seleccionada @@ -1541,7 +1541,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Adaptive - Adaptable + Adaptatiu @@ -1567,7 +1567,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Running gmsh... - S'està executant gmsh... + S'està executant el Gmsh... @@ -1664,7 +1664,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Remesh by Gmsh - Remesh by Gmsh + Remalla per Gmsh @@ -1756,7 +1756,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Pick triangle - Seleccioneu un triangle + Trieu un triangle @@ -1781,7 +1781,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Region options - Opcions de regió + Opcions de la regió @@ -1791,7 +1791,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Respect only triangles with normals facing screen - Respecta només els triangles amb les normals enfront de la pantalla + Respecta només els triangles amb les normals mirant la pantalla @@ -1799,12 +1799,12 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Mesh segmentation - Segmentació de malla + Segmentació de la malla Smooth mesh - Suavitza de la malla + Suavitza la malla @@ -1836,7 +1836,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Curvature - Corbat + Curvatura @@ -1861,12 +1861,12 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Max. Curvature - Màxim corbat + Curvatura màxima Min. Curvature - Mínim corbat + Curvatura mínima @@ -1874,7 +1874,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Mesh segmentation - Segmentació de malla + Segmentació de la malla @@ -1966,7 +1966,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Respect only triangles with normals facing screen - Respecta només els triangles amb les normals enfront de la pantalla + Respecta només els triangles amb les normals mirant la pantalla @@ -2024,7 +2024,7 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau Mesh info - Mesh info + Info de la malla @@ -2066,7 +2066,8 @@ Si angle de la cara < l'angle de plec, s'utilitza un ombrejat suau OpenSCAD cannot be found on your system. Please visit http://www.openscad.org/index.html to install it. - L'OpenSCAD no s'ha pogut trobar al vostre sistema. Visiteu http://www.openscad.org/index.html per a instal·lar-lo. + No s'ha trobat l'OpenSCAD al sistema. +Visiteu http://www.openscad.org/index.html per a instal·lar-lo. @@ -2139,7 +2140,7 @@ Please visit http://www.openscad.org/index.html to install it. NASTRAN - NASTRAN + NASTRAN @@ -2200,12 +2201,12 @@ Please visit http://www.openscad.org/index.html to install it. Asymptote Format - Format Asymptote + Format de l'asímptota 3D Manufacturing Format - 3D Manufacturing Format + Format de fabricació 3D @@ -2215,22 +2216,22 @@ Please visit http://www.openscad.org/index.html to install it. Meshing Tolerance - Tolerància de mallat + Tolerància del mallat Enter tolerance for meshing geometry: - Introdueix la tolerància per a la goemetria de mallat: + Introdueix la tolerància per a la geometria de mallat: The mesh '%1' is not a solid. - La malla '%1' no és un sòlid. + La malla «%1» no és un sòlid. The mesh '%1' is a solid. - La malla '%1' és un sòlid. + La malla «%1» és un sòlid. @@ -2240,22 +2241,22 @@ Please visit http://www.openscad.org/index.html to install it. Boundings - Límits envoltants + Vincles Fill holes - Ompli els forats + Emplena els forats Fill holes with maximum number of edges: - Ompli els forats amb un nombre màxim de vores: + Emplena els forats amb un nombre màxim d'arestes: Scaling - Escalant + Escalat @@ -2280,13 +2281,13 @@ Please visit http://www.openscad.org/index.html to install it. Display colors - Display colors + Mostra els colors Leave info mode - Ix del mode info + Surt del mode d'informació @@ -2296,12 +2297,12 @@ Please visit http://www.openscad.org/index.html to install it. Leave hole-filling mode - Ix del mode d'emplenament de forats + Surt del mode d'emplenament de forats Leave removal mode - Ix del mode de supressió + Surt del mode de supressió @@ -2349,7 +2350,7 @@ Please visit http://www.openscad.org/index.html to install it. Mesh modify - Mesh modify + Modifica la malla @@ -2359,12 +2360,12 @@ Please visit http://www.openscad.org/index.html to install it. Mesh cutting - Mesh cutting + Tall de la malla Mesh segmentation - Segmentació de malla + Segmentació de la malla diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts index 08d8b2cf00..c51ace4b59 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts @@ -2352,22 +2352,22 @@ Merci de visiter http://www.openscad.org/index.html pour l'installer. Mesh tools - Outils de maillage + Outils de Mesh Mesh modify - Modifier le maillage + Modifier de Mesh Mesh boolean - Opération booléenne sur le maillage + Opérations booléennes de Mesh Mesh cutting - Couper le maillage + Couper de Mesh @@ -2377,7 +2377,7 @@ Merci de visiter http://www.openscad.org/index.html pour l'installer. Mesh analyze - Analyser le maillage + Analyser de Mesh diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts index 922945bd7f..fc74698b88 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts @@ -2012,7 +2012,7 @@ tot een gladder uiterlijk leidt. Number of facets: - Number of facets: + Aantal facetten: @@ -2289,7 +2289,7 @@ Gelieve naar http://www.openscad.org/index.html te gaan om het te installeren. Display colors - Display colors + Kleuren weergeven diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh-TW.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh-TW.ts index 2d25713af2..f6d69cfc61 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh-TW.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh-TW.ts @@ -328,7 +328,7 @@ Intersection - 交錯 + 交集 @@ -591,7 +591,7 @@ Split selected mesh into its components - 將選定的網格拆分為其組件 + Split selected mesh into its components @@ -689,47 +689,47 @@ Mesh VertexCurvature - Mesh VertexCurvature + Mesh VertexCurvature Mesh Smoothing - Mesh Smoothing + Mesh Smoothing Harmonize mesh normals - Harmonize mesh normals + Harmonize mesh normals Flip mesh normals - Flip mesh normals + Flip mesh normals Fill up holes - Fill up holes + Fill up holes Mesh merge - 合併網格 + Mesh merge Mesh split - 分割網格 + Mesh split Mesh scale - 縮放網格 + Mesh scale Mesh Decimating - Mesh Decimating + Mesh Decimating @@ -739,47 +739,47 @@ Remove non-manifolds - Remove non-manifolds + Remove non-manifolds Fix indices - Fix indices + Fix indices Remove degenerated faces - Remove degenerated faces + Remove degenerated faces Remove duplicated faces - Remove duplicated faces + Remove duplicated faces Remove duplicated points - Remove duplicated points + Remove duplicated points Fix self-intersections - Fix self-intersections + Fix self-intersections Remove folds - Remove folds + Remove folds Repair mesh - Repair mesh + Repair mesh Delete selection - Delete selection + Delete selection @@ -796,12 +796,12 @@ Split - 分割 + Split Segment - Segment + Segment @@ -811,7 +811,7 @@ Fill hole - Fill hole + Fill hole @@ -819,12 +819,12 @@ Decimating - Decimating + Decimating Reduction - Reduction + Reduction @@ -834,7 +834,7 @@ Full - Full + Full @@ -1159,17 +1159,17 @@ Check for non-manifold points - Check for non-manifold points + Check for non-manifold points Enable check for folds on surface - Enable check for folds on surface + Enable check for folds on surface Only consider zero area faces as degenerated - Only consider zero area faces as degenerated + Only consider zero area faces as degenerated @@ -1300,7 +1300,7 @@ No active document - 未選擇文件 + 無可用文件 @@ -1318,7 +1318,7 @@ Deviation of tessellation to the actual surface - Deviation of tessellation to the actual surface + Deviation of tessellation to the actual surface @@ -1333,17 +1333,17 @@ Maximal deviation between mesh and object - Maximal deviation between mesh and object + Maximal deviation between mesh and object ZIP compression is used when writing a mesh file in AMF format - ZIP compression is used when writing a mesh file in AMF format + ZIP compression is used when writing a mesh file in AMF format Export AMF files using compression - Export AMF files using compression + Export AMF files using compression @@ -1359,7 +1359,7 @@ This parameter indicates whether ZIP compression is used when writing a file in AMF format - This parameter indicates whether ZIP compression + This parameter indicates whether ZIP compression is used when writing a file in AMF format @@ -1383,7 +1383,7 @@ is used when writing a file in AMF format Default color for new meshes - Default color for new meshes + Default color for new meshes @@ -1398,7 +1398,7 @@ is used when writing a file in AMF format Default line color for new meshes - Default line color for new meshes + Default line color for new meshes @@ -1416,7 +1416,7 @@ is used when writing a file in AMF format If not checked, it depends on the option "Enable backlight color" (preferences section Display -> 3D View). Either the backlight color will be used or black. - The bottom side of surface will be rendered the same way than top side. + The bottom side of surface will be rendered the same way than top side. If not checked, it depends on the option "Enable backlight color" (preferences section Display -> 3D View). Either the backlight color will be used or black. @@ -1429,7 +1429,7 @@ will be used or black. A bounding box will be displayed - A bounding box will be displayed + A bounding box will be displayed @@ -1450,7 +1450,7 @@ With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. - If this option is set Phong shading is used, otherwise flat shading. + If this option is set Phong shading is used, otherwise flat shading. Shading defines the appearance of surfaces. With flat shading the surface normals are not defined per vertex that leads @@ -1484,7 +1484,7 @@ to a smoother appearance. If face angle ≥ crease angle, facet shading is used If face angle < crease angle, smooth shading is used - Crease angle is a threshold angle between two faces. + Crease angle is a threshold angle between two faces. If face angle ≥ crease angle, facet shading is used If face angle < crease angle, smooth shading is used @@ -1548,22 +1548,22 @@ to a smoother appearance. Adaptive - Adaptive + Adaptive Frontal - Frontal + Frontal Frontal Quad - Frontal Quad + Frontal Quad Parallelograms - Parallelograms + Parallelograms @@ -1574,12 +1574,12 @@ to a smoother appearance. Running gmsh... - Running gmsh... + Running gmsh... Failed to start - Failed to start + Failed to start @@ -1623,7 +1623,7 @@ to a smoother appearance. Surface fit - Surface fit + Surface fit @@ -1653,7 +1653,7 @@ to a smoother appearance. Compute - 計算 + Compute @@ -1663,7 +1663,7 @@ to a smoother appearance. Before fitting the surface select an area. - Before fitting the surface select an area. + Before fitting the surface select an area. @@ -1671,37 +1671,37 @@ to a smoother appearance. Remesh by Gmsh - Remesh by Gmsh + Remesh by Gmsh Remeshing Parameter - Remeshing Parameter + Remeshing Parameter Meshing: - Meshing: + Meshing: Max element size (0.0 = Auto): - Max element size (0.0 = Auto): + Max element size (0.0 = Auto): Min element size (0.0 = Auto): - Min element size (0.0 = Auto): + Min element size (0.0 = Auto): Angle: - 角度: + 角度: Gmsh - Gmsh + Gmsh @@ -1711,7 +1711,7 @@ to a smoother appearance. Kill - Kill + Kill @@ -1843,7 +1843,7 @@ to a smoother appearance. Curvature - Curvature + Curvature @@ -1863,17 +1863,17 @@ to a smoother appearance. Freeform - Freeform + Freeform Max. Curvature - Max. Curvature + Max. Curvature Min. Curvature - Min. Curvature + Min. Curvature @@ -1893,7 +1893,7 @@ to a smoother appearance. Parameters... - 參數... + Parameters... @@ -1933,7 +1933,7 @@ to a smoother appearance. Axis - 軸座標 + @@ -2011,33 +2011,33 @@ to a smoother appearance. Number of facets: - Number of facets: + Number of facets: Minimum bound: - Minimum bound: + Minimum bound: Maximum bound: - Maximum bound: + Maximum bound: Mesh info box - 網格資訊框 + Mesh info box Mesh info - 網格資訊 + Mesh info X: %1 Y: %2 Z: %3 - X: %1 Y: %2 Z: %3 + X: %1 Y: %2 Z: %3 @@ -2045,7 +2045,7 @@ to a smoother appearance. Boundings of %1: - Boundings of %1: + Boundings of %1: @@ -2065,7 +2065,7 @@ to a smoother appearance. Unknown error occurred while running OpenSCAD. - Unknown error occurred while running OpenSCAD. + Unknown error occurred while running OpenSCAD. @@ -2074,7 +2074,7 @@ to a smoother appearance. OpenSCAD cannot be found on your system. Please visit http://www.openscad.org/index.html to install it. 於您的系統上未發現OpenSCAD -請至http://www.openscad.org/index.html來安裝. +請至http://www.openscad.org/index.html來安裝 @@ -2136,7 +2136,7 @@ Please visit http://www.openscad.org/index.html to install it. Inventor V2.1 ASCII - Inventor V2.1 ASCII + Inventor V2.1 ASCII @@ -2147,7 +2147,7 @@ Please visit http://www.openscad.org/index.html to install it. NASTRAN - NASTRAN + NASTRAN @@ -2163,7 +2163,7 @@ Please visit http://www.openscad.org/index.html to install it. Simple Model Format - Simple Model Format + Simple Model Format @@ -2178,12 +2178,12 @@ Please visit http://www.openscad.org/index.html to install it. Compressed X3D - Compressed X3D + Compressed X3D WebGL/X3D - WebGL/X3D + WebGL/X3D @@ -2208,12 +2208,12 @@ Please visit http://www.openscad.org/index.html to install it. Asymptote Format - Asymptote Format + Asymptote Format 3D Manufacturing Format - 3D Manufacturing Format + 3D Manufacturing Format @@ -2233,12 +2233,12 @@ Please visit http://www.openscad.org/index.html to install it. The mesh '%1' is not a solid. - 網格'%1'不為實體. + 網格'%1'不為實體 The mesh '%1' is a solid. - 網格'%1'為實體. + 網格'%1'為實體 @@ -2263,12 +2263,12 @@ Please visit http://www.openscad.org/index.html to install it. Scaling - 縮放 + Scaling Enter scaling factor: - 輸入縮放係數: + Enter scaling factor: @@ -2283,7 +2283,7 @@ Please visit http://www.openscad.org/index.html to install it. Display segments - 顯示片段 + Display segments diff --git a/src/Mod/Mesh/Gui/ViewProvider.cpp b/src/Mod/Mesh/Gui/ViewProvider.cpp index 3144dcc58f..e7943a2c6f 100644 --- a/src/Mod/Mesh/Gui/ViewProvider.cpp +++ b/src/Mod/Mesh/Gui/ViewProvider.cpp @@ -777,19 +777,25 @@ void ViewProviderMesh::setupContextMenu(QMenu* menu, QObject* receiver, const ch act->setCheckable(true); act->setChecked(pcMatBinding->value.getValue() == SoMaterialBinding::PER_FACE && highlightMode == HighlighMode::Component); - func->toggle(act, std::bind(&ViewProviderMesh::setHighlightedComponents, this, sp::_1)); + func->toggle(act, [this](bool on){ + this->setHighlightedComponents(on); + }); QAction* seg = menu->addAction(QObject::tr("Display segments")); seg->setCheckable(true); seg->setChecked(pcMatBinding->value.getValue() == SoMaterialBinding::PER_FACE && highlightMode == HighlighMode::Segment); - func->toggle(seg, std::bind(&ViewProviderMesh::setHighlightedSegments, this, sp::_1)); + func->toggle(seg, [this](bool on){ + this->setHighlightedSegments(on); + }); QAction* col = menu->addAction(QObject::tr("Display colors")); col->setVisible(canHighlightColors()); col->setCheckable(true); col->setChecked(highlightMode == HighlighMode::Color); - func->toggle(col, std::bind(&ViewProviderMesh::setHighlightedColors, this, sp::_1)); + func->toggle(col, [this](bool on){ + this->setHighlightedColors(on); + }); } bool ViewProviderMesh::setEdit(int ModNum) @@ -994,7 +1000,9 @@ void ViewProviderMesh::clipMeshCallback(void * ud, SoEventCallback * n) Gui::TimerFunction* func = new Gui::TimerFunction(); func->setAutoDelete(true); MeshSplit* split = new MeshSplit(self, clPoly, proj); - func->setFunction(std::bind(&MeshSplit::cutMesh, split)); + func->setFunction([split](){ + split->cutMesh(); + }); func->singleShot(0); } } @@ -1055,7 +1063,9 @@ void ViewProviderMesh::trimMeshCallback(void * ud, SoEventCallback * n) Gui::TimerFunction* func = new Gui::TimerFunction(); func->setAutoDelete(true); MeshSplit* split = new MeshSplit(self, clPoly, proj); - func->setFunction(std::bind(&MeshSplit::trimMesh, split)); + func->setFunction([split](){ + split->trimMesh(); + }); func->singleShot(0); } } diff --git a/src/Mod/Mesh/Gui/Workbench.cpp b/src/Mod/Mesh/Gui/Workbench.cpp index 694fe048de..b0fe076f45 100644 --- a/src/Mod/Mesh/Gui/Workbench.cpp +++ b/src/Mod/Mesh/Gui/Workbench.cpp @@ -105,7 +105,7 @@ public: taskbox->groupLayout()->addWidget(box); Content.push_back(taskbox); } - bool shouldShow(void) override + bool shouldShow() override { return true; } diff --git a/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp b/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp index 98ee6a6dc2..e462d76e9a 100644 --- a/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp +++ b/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp @@ -198,10 +198,10 @@ void LscmRelax::relax(double weight) for (int k=0; k < 3; k++) { col_pos = this->triangles(k, i); - K_g_triplets.push_back(trip(row_pos * 2, col_pos * 2, K_m(j * 2, k * 2))); - K_g_triplets.push_back(trip(row_pos * 2 + 1, col_pos * 2, K_m(j * 2 + 1, k * 2))); - K_g_triplets.push_back(trip(row_pos * 2 + 1, col_pos * 2 + 1, K_m(j * 2 + 1, k * 2 + 1))); - K_g_triplets.push_back(trip(row_pos * 2, col_pos * 2 + 1, K_m(j * 2, k * 2 + 1))); + K_g_triplets.emplace_back(trip(row_pos * 2, col_pos * 2, K_m(j * 2, k * 2))); + K_g_triplets.emplace_back(trip(row_pos * 2 + 1, col_pos * 2, K_m(j * 2 + 1, k * 2))); + K_g_triplets.emplace_back(trip(row_pos * 2 + 1, col_pos * 2 + 1, K_m(j * 2 + 1, k * 2 + 1))); + K_g_triplets.emplace_back(trip(row_pos * 2, col_pos * 2 + 1, K_m(j * 2, k * 2 + 1))); // we don't have to fill all because the matrix is symmetric. } } @@ -253,16 +253,16 @@ void LscmRelax::relax(double weight) for (long i=0; i < this->flat_vertices.cols() ; i++) { // fixing total ux - K_g_triplets.push_back(trip(i * 2, this->flat_vertices.cols() * 2, 1)); - K_g_triplets.push_back(trip(this->flat_vertices.cols() * 2, i * 2, 1)); + K_g_triplets.emplace_back(trip(i * 2, this->flat_vertices.cols() * 2, 1)); + K_g_triplets.emplace_back(trip(this->flat_vertices.cols() * 2, i * 2, 1)); // fixing total uy - K_g_triplets.push_back(trip(i * 2 + 1, this->flat_vertices.cols() * 2 + 1, 1)); - K_g_triplets.push_back(trip(this->flat_vertices.cols() * 2 + 1, i * 2 + 1, 1)); + K_g_triplets.emplace_back(trip(i * 2 + 1, this->flat_vertices.cols() * 2 + 1, 1)); + K_g_triplets.emplace_back(trip(this->flat_vertices.cols() * 2 + 1, i * 2 + 1, 1)); // fixing ux*y-uy*x - K_g_triplets.push_back(trip(i * 2, this->flat_vertices.cols() * 2 + 2, - this->flat_vertices(1, i))); - K_g_triplets.push_back(trip(this->flat_vertices.cols() * 2 + 2, i * 2, - this->flat_vertices(1, i))); - K_g_triplets.push_back(trip(i * 2 + 1, this->flat_vertices.cols() * 2 + 2, this->flat_vertices(0, i))); - K_g_triplets.push_back(trip(this->flat_vertices.cols() * 2 + 2, i * 2 + 1, this->flat_vertices(0, i))); + K_g_triplets.emplace_back(trip(i * 2, this->flat_vertices.cols() * 2 + 2, - this->flat_vertices(1, i))); + K_g_triplets.emplace_back(trip(this->flat_vertices.cols() * 2 + 2, i * 2, - this->flat_vertices(1, i))); + K_g_triplets.emplace_back(trip(i * 2 + 1, this->flat_vertices.cols() * 2 + 2, this->flat_vertices(0, i))); + K_g_triplets.emplace_back(trip(this->flat_vertices.cols() * 2 + 2, i * 2 + 1, this->flat_vertices(0, i))); } // project out the nullspace solution: @@ -334,7 +334,7 @@ void LscmRelax::area_relax(double weight) for(auto col: range_6) { - K_g_triplets.push_back(trip(i, indices[col], (double) B[col])); + K_g_triplets.emplace_back(trip(i, indices[col], (double) B[col])); } } K_g_lsq.setFromTriplets(K_g_triplets.begin(), K_g_triplets.end()); @@ -403,7 +403,7 @@ void LscmRelax::edge_relax(double weight) { for (auto col: range_4) { - K_g_triplets.push_back(trip(indices[row], indices[col], (double) K(row, col))); + K_g_triplets.emplace_back(trip(indices[row], indices[col], (double) K(row, col))); } rhs(indices[row]) += rhs_m[row]; } @@ -436,17 +436,17 @@ void LscmRelax::lscm() y31 = this->q_l_g(i, 2); x32 = x31 - x21; - triple_list.push_back(trip(2 * i, this->new_order[this->triangles(0, i)] * 2, x32)); - triple_list.push_back(trip(2 * i, this->new_order[this->triangles(0, i)] * 2 + 1, -y31)); - triple_list.push_back(trip(2 * i, this->new_order[this->triangles(1, i)] * 2, -x31)); - triple_list.push_back(trip(2 * i, this->new_order[this->triangles(1, i)] * 2 + 1, y31)); - triple_list.push_back(trip(2 * i, this->new_order[this->triangles(2, i)] * 2, x21)); + triple_list.emplace_back(trip(2 * i, this->new_order[this->triangles(0, i)] * 2, x32)); + triple_list.emplace_back(trip(2 * i, this->new_order[this->triangles(0, i)] * 2 + 1, -y31)); + triple_list.emplace_back(trip(2 * i, this->new_order[this->triangles(1, i)] * 2, -x31)); + triple_list.emplace_back(trip(2 * i, this->new_order[this->triangles(1, i)] * 2 + 1, y31)); + triple_list.emplace_back(trip(2 * i, this->new_order[this->triangles(2, i)] * 2, x21)); - triple_list.push_back(trip(2 * i + 1, this->new_order[this->triangles(0, i)] * 2, y31)); - triple_list.push_back(trip(2 * i + 1, this->new_order[this->triangles(0, i)] * 2 + 1, x32)); - triple_list.push_back(trip(2 * i + 1, this->new_order[this->triangles(1, i)] * 2, -y31)); - triple_list.push_back(trip(2 * i + 1, this->new_order[this->triangles(1, i)] * 2 + 1, -x31)); - triple_list.push_back(trip(2 * i + 1, this->new_order[this->triangles(2, i)] * 2 + 1, x21)); + triple_list.emplace_back(trip(2 * i + 1, this->new_order[this->triangles(0, i)] * 2, y31)); + triple_list.emplace_back(trip(2 * i + 1, this->new_order[this->triangles(0, i)] * 2 + 1, x32)); + triple_list.emplace_back(trip(2 * i + 1, this->new_order[this->triangles(1, i)] * 2, -y31)); + triple_list.emplace_back(trip(2 * i + 1, this->new_order[this->triangles(1, i)] * 2 + 1, -x31)); + triple_list.emplace_back(trip(2 * i + 1, this->new_order[this->triangles(2, i)] * 2 + 1, x21)); } // 2. divide the triplets in matrix(unknown part) and rhs(known part) and reset the position @@ -644,7 +644,7 @@ void LscmRelax::rotate_by_min_bound_area() double phi; double min_phi = 0; double min_area = 0; - bool x_dominant = 0; + bool x_dominant = false; // rotate vector by 90 degree and find min area for (int i = 0; i < n + 1; i++ ) { diff --git a/src/Mod/MeshPart/App/MeshFlatteningNurbs.cpp b/src/Mod/MeshPart/App/MeshFlatteningNurbs.cpp index 602837af1b..db35df9087 100644 --- a/src/Mod/MeshPart/App/MeshFlatteningNurbs.cpp +++ b/src/Mod/MeshPart/App/MeshFlatteningNurbs.cpp @@ -200,8 +200,9 @@ void add_triplets(Eigen::VectorXd values, double row, std::vector &triplet { for (unsigned int i=0; i < values.size(); i++) { - if (values(i) != 0.) - triplets.push_back(trip(row, i, values(i))); + if (values(i) != 0.) { + triplets.emplace_back(trip(row, i, values(i))); + } } } diff --git a/src/Mod/MeshPart/Gui/CrossSections.cpp b/src/Mod/MeshPart/Gui/CrossSections.cpp index 4fdc946351..32fae8cb93 100644 --- a/src/Mod/MeshPart/Gui/CrossSections.cpp +++ b/src/Mod/MeshPart/Gui/CrossSections.cpp @@ -61,7 +61,7 @@ using namespace MeshPartGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace MeshPartGui { class ViewProviderCrossSections : public Gui::ViewProvider @@ -94,7 +94,7 @@ public: { return ""; } - std::vector getDisplayModes(void) const override + std::vector getDisplayModes() const override { return std::vector(); } @@ -294,10 +294,12 @@ void CrossSections::apply() MeshCore::MeshFacetGrid grid(kernel); + //NOLINTBEGIN MeshCrossSection cs(kernel, grid, a, b, c, connectEdges, eps); QFuture< std::list > future = QtConcurrent::mapped - (d, boost::bind(&MeshCrossSection::section, &cs, bp::_1)); + (d, std::bind(&MeshCrossSection::section, &cs, sp::_1)); future.waitForFinished(); + //NOLINTEND TopoDS_Compound comp; BRep_Builder builder; diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es-AR.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es-AR.ts index db40cc5b59..f3d28367ef 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es-AR.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es-AR.ts @@ -267,7 +267,7 @@ Este comando solo funciona con un objeto de 'malla', no con una cara o superfici Start - Iniciar + Inicio diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts index 4ab758d13c..2306d1a227 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts @@ -500,15 +500,15 @@ Een waarde tussen 0,2 en 10. You have selected a body without tip. Either set the tip of the body or select a different shape, please. - You have selected a body without tip. -Either set the tip of the body or select a different shape, please. + Je hebt een vast lichaam geselecteerd zonder tip. +Stel de punt van het vaste lichaam in of selecteer een andere vorm, alstublieft. You have selected a shape without faces. Select a different shape, please. - You have selected a shape without faces. -Select a different shape, please. + Je hebt een vorm zonder vlakken geselecteerd. +Selecteer een andere vorm alstublieft. @@ -580,12 +580,12 @@ Select a different shape, please. Unwrap Mesh - Unwrap Mesh + Mesh uitrollen Find a flat representation of a mesh. - Find a flat representation of a mesh. + Zoek een platte representatie van een mesh. @@ -593,12 +593,12 @@ Select a different shape, please. Unwrap Face - Unwrap Face + Vlak uitrollen Find a flat representation of a face. - Find a flat representation of a face. + Zoek een platte representatie van een vlak. diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_sl.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_sl.ts index 8b7ccd04c2..5bf7b32095 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_sl.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_sl.ts @@ -482,7 +482,7 @@ Razpon vrednosti je 0.2-10. Leave panel open - Pusti ploščo odprto + Ohrani odprto podokno diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh-TW.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh-TW.ts index a73cf0920d..8beda186d6 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh-TW.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh-TW.ts @@ -29,13 +29,13 @@ Curve on mesh... - Curve on mesh... + Curve on mesh... Creates an approximated curve on top of a mesh. This command only works with a 'mesh' object. - Creates an approximated curve on top of a mesh. + Creates an approximated curve on top of a mesh. This command only works with a 'mesh' object. @@ -99,12 +99,12 @@ This command only works with a 'mesh' object. Trim with plane - Trim with plane + Trim with plane Section with plane - Section with plane + Section with plane @@ -167,12 +167,12 @@ This command only works with a 'mesh' object. Connect edges if distance less than - Connect edges if distance less than + Connect edges if distance less than Failure - Failure + Failure @@ -185,7 +185,7 @@ This command only works with a 'mesh' object. Close wire - Close wire + Close wire @@ -200,7 +200,7 @@ This command only works with a 'mesh' object. Wrong mesh picked - Wrong mesh picked + Wrong mesh picked @@ -213,14 +213,14 @@ This command only works with a 'mesh' object. Curve on mesh - Curve on mesh + Curve on mesh Press 'Start', then pick points on the mesh; when enough points have been set, right-click and choose 'Create'. Repeat this process to create more splines. Close this task panel to complete the operation. This command only works with a 'mesh' object, not a regular face or surface. To convert an object to a mesh use the tools of the Mesh Workbench. - Press 'Start', then pick points on the mesh; when enough points have been set, right-click and choose 'Create'. Repeat this process to create more splines. Close this task panel to complete the operation. + Press 'Start', then pick points on the mesh; when enough points have been set, right-click and choose 'Create'. Repeat this process to create more splines. Close this task panel to complete the operation. This command only works with a 'mesh' object, not a regular face or surface. To convert an object to a mesh use the tools of the Mesh Workbench. @@ -232,27 +232,27 @@ This command only works with a 'mesh' object, not a regular face or surface. To Snap tolerance to vertices - Snap tolerance to vertices + Snap tolerance to vertices px - px + px Split threshold - Split threshold + Split threshold Spline Approximation - Spline Approximation + Spline Approximation Tolerance to mesh - Tolerance to mesh + Tolerance to mesh @@ -262,12 +262,12 @@ This command only works with a 'mesh' object, not a regular face or surface. To Maximum curve degree - Maximum curve degree + Maximum curve degree Start - 起點 + Start @@ -290,7 +290,7 @@ This command only works with a 'mesh' object, not a regular face or surface. To Use the standard mesher - Use the standard mesher + Use the standard mesher @@ -300,53 +300,53 @@ This command only works with a 'mesh' object, not a regular face or surface. To Maximal linear deflection of a mesh section from the surface of the object - Maximal linear deflection of a mesh section from the surface of the object + Maximal linear deflection of a mesh section from the surface of the object Angular deviation: - Angular deviation: + Angular deviation: Maximal angular deflection of a mesh section to the next section - Maximal angular deflection of a mesh section to the next section + Maximal angular deflection of a mesh section to the next section The maximal linear deviation of a mesh segment will be the specified Surface deviation multiplied by the length of the current mesh segment (edge) - The maximal linear deviation of a mesh segment will be the specified + The maximal linear deviation of a mesh segment will be the specified Surface deviation multiplied by the length of the current mesh segment (edge) Relative surface deviation - Relative surface deviation + Relative surface deviation Mesh will get face colors of the object - Mesh will get face colors of the object + Mesh will get face colors of the object Apply face colors to mesh - Apply face colors to mesh + Apply face colors to mesh Mesh segments will be grouped according to the color of the object faces. These groups will be exported for mesh output formats supporting this feature (e.g. the format OBJ). - Mesh segments will be grouped according to the color of the object faces. + Mesh segments will be grouped according to the color of the object faces. These groups will be exported for mesh output formats supporting this feature (e.g. the format OBJ). Define segments by face colors - Define segments by face colors + Define segments by face colors @@ -356,7 +356,7 @@ this feature (e.g. the format OBJ). Use the Mefisto mesher - Use the Mefisto mesher + Use the Mefisto mesher @@ -367,13 +367,13 @@ this feature (e.g. the format OBJ). If this number is smaller the mesh becomes finer. The smallest value is 0. - If this number is smaller the mesh becomes finer. + If this number is smaller the mesh becomes finer. The smallest value is 0. Estimate - Estimate + Estimate @@ -383,7 +383,7 @@ The smallest value is 0. Use the Netgen mesher - Use the Netgen mesher + Use the Netgen mesher @@ -429,7 +429,7 @@ The smallest value is 0. If this parameter is smaller, the mesh becomes finer. A value in the range of 0.1-1. - If this parameter is smaller, the mesh becomes finer. + If this parameter is smaller, the mesh becomes finer. A value in the range of 0.1-1. @@ -442,7 +442,7 @@ A value in the range of 0.1-1. If this parameter is larger, the mesh becomes finer. A value in the range of 0.2-10. - If this parameter is larger, the mesh becomes finer. + If this parameter is larger, the mesh becomes finer. A value in the range of 0.2-10. @@ -453,7 +453,7 @@ A value in the range of 0.2-10. Whether optimization of surface shape will be done - Whether optimization of surface shape will be done + Whether optimization of surface shape will be done @@ -463,7 +463,7 @@ A value in the range of 0.2-10. Whether second order elements will be generated - Whether second order elements will be generated + Whether second order elements will be generated @@ -473,7 +473,7 @@ A value in the range of 0.2-10. Whether meshes will be arranged preferably using quadrilateral faces - Whether meshes will be arranged preferably using quadrilateral faces + Whether meshes will be arranged preferably using quadrilateral faces @@ -483,37 +483,37 @@ A value in the range of 0.2-10. Leave panel open - Leave panel open + Leave panel open Gmsh - Gmsh + Gmsh No active document - 未選擇文件 + 無可用文件 You have selected a body without tip. Either set the tip of the body or select a different shape, please. - You have selected a body without tip. + You have selected a body without tip. Either set the tip of the body or select a different shape, please. You have selected a shape without faces. Select a different shape, please. - You have selected a shape without faces. + You have selected a shape without faces. Select a different shape, please. Select a shape for meshing, first. - 請先選擇造型來產生網格. + 請先選擇造型來產生網格 @@ -526,7 +526,7 @@ Select a different shape, please. Please select a plane at which you section the mesh. - Please select a plane at which you section the mesh. + Please select a plane at which you section the mesh. @@ -539,32 +539,32 @@ Select a different shape, please. Please select a plane at which you trim the mesh. - 請選取一個您修剪網格的平面. + 請選取一個您修剪網格的平面 Trim by plane - Trim by plane + Trim by plane Select the side you want to keep. - Select the side you want to keep. + Select the side you want to keep. Below - Below + Below Above - Above + Above Split - 分割 + Split @@ -580,12 +580,12 @@ Select a different shape, please. Unwrap Mesh - Unwrap Mesh + Unwrap Mesh Find a flat representation of a mesh. - Find a flat representation of a mesh. + Find a flat representation of a mesh. @@ -593,7 +593,7 @@ Select a different shape, please. Unwrap Face - Unwrap Face + Unwrap Face diff --git a/src/Mod/OpenSCAD/InitGui.py b/src/Mod/OpenSCAD/InitGui.py index 0be1364ea9..8f15392f4d 100644 --- a/src/Mod/OpenSCAD/InitGui.py +++ b/src/Mod/OpenSCAD/InitGui.py @@ -92,7 +92,7 @@ class OpenSCADWorkbench(Workbench): import OpenSCADUtils openscadfilename = OpenSCADUtils.searchforopenscadexe() - if openscadfilename: # automatic search was succsessful + if openscadfilename: # automatic search was successful FreeCAD.addImportType("OpenSCAD Format (*.scad)", "importCSG") param.SetString( "openscadexecutable", openscadfilename diff --git a/src/Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py b/src/Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py index ffe197c8e9..3c8bfec049 100644 --- a/src/Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py +++ b/src/Mod/OpenSCAD/OpenSCADTest/app/test_importCSG.py @@ -121,6 +121,10 @@ class TestImportCSG(unittest.TestCase): FreeCAD.closeDocument(doc.Name) def test_import_text(self): + # This uses the DXF importer that may pop-up modal dialogs + # if not all 3rd party libraries are installed + if FreeCAD.GuiUp: + return try: doc = self.utility_create_scad("text(\"X\");","text") # Keep it short to keep the test fast-ish text = doc.getObject("text") diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.qm index 6244ea0ec6..60fad0dc79 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.ts index e8b577eb21..24baff7d8e 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_ca.ts @@ -231,7 +231,7 @@ Open... - Obrir... + Obre... diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.qm index 722f500041..5e7ff06f98 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.ts index ec55e98108..2d77e7b672 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_hr.ts @@ -112,7 +112,7 @@ angle (fa) - angle (fa) + kut (fa) diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.qm index 2f4356c617..3fe556505f 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.ts index 1d06de160e..40ec3c077d 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_nl.ts @@ -77,7 +77,7 @@ Standard temp directory - Standard temp directory + Standaard tijdelijke map @@ -107,7 +107,7 @@ Maximum fragment size - Maximum fragment size + Maximale fragment grootte @@ -117,7 +117,7 @@ Convexity - Convexity + Convexiteit @@ -179,7 +179,7 @@ It looks like you may be using a sandboxed version of FreeCAD. - It looks like you may be using a sandboxed version of FreeCAD. + Het lijkt erop dat u een sandboxed versie van FreeCAD gebruikt. @@ -297,7 +297,7 @@ Unsupported Function - Unsupported Function + Niet-ondersteunde functie diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.qm index e745cdc236..7ed325c33c 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.ts index d05951fb1d..8910a75914 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pl.ts @@ -345,12 +345,12 @@ Refine Shape Feature - Udoskonalenie cechy kształtu + Udoskonal kształt cechy Create Refine Shape Feature - Stwórz udoskonaloną cechę kształtu + Tworzy udoskonaloną cechę kształtu diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.qm index 2b351d1d5c..089734a0ad 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.ts index 0dc2ef8abb..459963912b 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_pt-BR.ts @@ -67,37 +67,37 @@ Send to OpenSCAD via: - Send to OpenSCAD via: + Envie ao OpenScad via: The transfer mechanism for getting data to and from OpenSCAD - The transfer mechanism for getting data to and from OpenSCAD + O mecanismo de transferência para obter dados do OpenSCAD Standard temp directory - Standard temp directory + Diretório temporário padrão User-specified directory - User-specified directory + Diretório especificado pelo usuário stdout pipe (requires OpenSCAD >= 2021.1) - stdout pipe (requires OpenSCAD >= 2021.1) + tubo stdout (requer OpenSCAD >= 2021.1) Transfer directory - Transfer directory + Diretório de transferência The path to the directory for transferring files to and from OpenSCAD - The path to the directory for transferring files to and from OpenSCAD + O caminho para o diretório para transferir arquivos de e para o OpenSCAD @@ -107,17 +107,17 @@ Maximum fragment size - Maximum fragment size + Tamanho máximo de um fragmento angle (fa) - angle (fa) + ângulo (graus) Convexity - Convexity + Convexidade @@ -168,33 +168,33 @@ It looks like you may be using a Snap version of OpenSCAD. - It looks like you may be using a Snap version of OpenSCAD. + Parece que você pode estar usando uma versão Snap do OpenSCAD. If OpenSCAD execution fails to load the temporary file, use FreeCAD's OpenSCAD Workbench Preferences to change the transfer mechanism. - If OpenSCAD execution fails to load the temporary file, use FreeCAD's OpenSCAD Workbench Preferences to change the transfer mechanism. + Se a execução do OpenSCAD falhar ao carregar o arquivo temporário, use as preferências do OpenSCAD OpenSCAD Workbench para alterar o mecanismo de transferência. It looks like you may be using a sandboxed version of FreeCAD. - It looks like you may be using a sandboxed version of FreeCAD. + Parece que você pode estar usando uma versão Snap do OpenSCAD. Unable to explode %s - Unable to explode %s + Não é possível explodir %s Convert Edges to Faces - Convert Edges to Faces + Converter arestas em faces Please select 3 objects first - Please select 3 objects first + Por favor, selecione 3 objetos @@ -226,7 +226,7 @@ Clear code - Clear code + Limpar código @@ -236,68 +236,68 @@ Save... - Save... + Salve... as Mesh - as Mesh + como malha Add OpenSCAD Element - Add OpenSCAD Element + Adicionar elemento OpenSCAD Open file - Open file + Abrir arquivo OpenSCAD Files - OpenSCAD Files + Arquivos OpenSCAD Save file - Save file + Salvar arquivo Perform - Perform + Executar Mesh Boolean - Mesh Boolean + Booleano de malha Minkowski sum - Minkowski sum + Sumário Minkowski OpenSCAD file contains both 2D and 3D shapes. That is not supported in this importer, all shapes must have the same dimensionality. - OpenSCAD file contains both 2D and 3D shapes. That is not supported in this importer, all shapes must have the same dimensionality. + O arquivo OpenSCAD contém formas 2D e 3D. Isso não é suportado neste importador, todas as formas devem ter a mesma dimensão. Error: either all shapes must be 2D or all shapes must be 3D - Error: either all shapes must be 2D or all shapes must be 3D + Erro: ou todas as formas devem ser 2D ou todas as formas devem ser 3D Unsupported Function - Unsupported Function + Função não suportada @@ -311,12 +311,12 @@ Explode Group - Explode Group + Explodir grupo Remove fusion, apply placement to children, and color randomly - Remove fusion, apply placement to children, and color randomly + Remover a fusão, aplicar localizador aos descendentes e cor aleatoriamente @@ -324,12 +324,12 @@ Color Shapes - Color Shapes + Colorir formas Color Shapes by validity and type - Color Shapes by validity and type + Colorir as formas pelo tipo e validade @@ -337,7 +337,7 @@ Convert Edges To Faces - Convert Edges To Faces + Converter arestas em faces @@ -345,12 +345,12 @@ Refine Shape Feature - Refine Shape Feature + Refinamento de forma Create Refine Shape Feature - Create Refine Shape Feature + Criar um objeto de refinamento de forma @@ -358,12 +358,12 @@ Mirror Mesh Feature... - Mirror Mesh Feature... + Criar Espelhamento de Malha... Create Mirror Mesh Feature - Create Mirror Mesh Feature + Criar Espelhamento de Malha @@ -371,12 +371,12 @@ Scale Mesh Feature... - Scale Mesh Feature... + Redimensionar malha... Create Scale Mesh Feature - Create Scale Mesh Feature + Criar redimensionamento de malha @@ -384,12 +384,12 @@ Resize Mesh Feature... - Resize Mesh Feature... + Redimensionar malha... Create Resize Mesh Feature - Create Resize Mesh Feature + Criar redimensionamento de malha @@ -397,12 +397,12 @@ Increase Tolerance Feature - Increase Tolerance Feature + Aumentar característica de Tolerância Create Feature that allows increasing the tolerance - Create Feature that allows increasing the tolerance + Crie um objeto que permite aumentar a tolerância @@ -410,12 +410,12 @@ Expand Placements - Expand Placements + Expandir Colocações Expand all placements downwards in the Tree view - Expand all placements downwards in the Tree view + Expandir todos os posicionamentos para baixo na exibição em árvore @@ -423,12 +423,12 @@ Replace Object - Replace Object + Substituir objeto Replace an object in the Tree view. Please select old, new, and parent object - Replace an object in the Tree view. Please select old, new, and parent object + Substituir um objeto na exibição em árvore. Por favor, selecione o objeto novo, antigo e objeto de origem @@ -436,12 +436,12 @@ Remove Objects and their Children - Remove Objects and their Children + Remover objetos e seus descendentes Removes the selected objects and all children that are not referenced from other objects - Removes the selected objects and all children that are not referenced from other objects + Remove os objetos selecionados e todos os seus descendentes que não são referenciados por outros objetos @@ -449,12 +449,12 @@ Add OpenSCAD Element... - Add OpenSCAD Element... + Adicionar um elemento OpenSCAD... Add an OpenSCAD element by entering OpenSCAD code and executing the OpenSCAD binary - Add an OpenSCAD element by entering OpenSCAD code and executing the OpenSCAD binary + Adicionar um elemento OpenSCAD inserindo código OpenSCAD e executando o binário de OpenSCAD @@ -501,7 +501,7 @@ Minkowski sum - Minkowski sum + Sumário Minkowski diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.qm b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.qm index 4b9e57c12d..7f95891a67 100644 Binary files a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.qm and b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.qm differ diff --git a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.ts b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.ts index 9d72ee1295..ab50384f3d 100644 --- a/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.ts +++ b/src/Mod/OpenSCAD/Resources/translations/OpenSCAD_zh-TW.ts @@ -41,7 +41,7 @@ Use ViewProvider in Tree View - 於樹狀圖使用檢視提供者功能 + 於樹枝圖使用檢視提供者功能 @@ -57,7 +57,7 @@ The maximum number of faces of a polygon, prism or frustum. If fn is greater than this value the object is considered to be a circular. Set to 0 for no limit - 如果fn大於多邊形、 棱形或錐形面之最大數目,物件將認為是一圓形。設定0表示沒有限制 + 如果fn大於多邊形、 棱形或錐形面之最大數目,物件將認為是一圓形。設定0表示沒有限制。 @@ -67,37 +67,37 @@ Send to OpenSCAD via: - 通過以下方式發送到 OpenSCAD: + Send to OpenSCAD via: The transfer mechanism for getting data to and from OpenSCAD - 與 OpenSCAD 之間獲取資料的傳輸機制 + The transfer mechanism for getting data to and from OpenSCAD Standard temp directory - 標準暫存目錄 + Standard temp directory User-specified directory - 使用者特定目錄 + User-specified directory stdout pipe (requires OpenSCAD >= 2021.1) - 標準輸出管道 (需要 OpenSCAD >= 2021.1) + stdout pipe (requires OpenSCAD >= 2021.1) Transfer directory - 傳輸目錄 + Transfer directory The path to the directory for transferring files to and from OpenSCAD - 與 OpenSCAD 之間傳輸文件的目錄路徑 + The path to the directory for transferring files to and from OpenSCAD @@ -107,7 +107,7 @@ Maximum fragment size - 片段之最大尺寸 + Maximum fragment size @@ -117,7 +117,7 @@ Convexity - 凸度 + Convexity @@ -168,33 +168,33 @@ It looks like you may be using a Snap version of OpenSCAD. - 看起來您可能正在使用 OpenSCAD 的 Snap 版本. + It looks like you may be using a Snap version of OpenSCAD. If OpenSCAD execution fails to load the temporary file, use FreeCAD's OpenSCAD Workbench Preferences to change the transfer mechanism. - 如果 OpenSCAD 執行載入臨時文件失敗,使用 FreeCAD 的 OpenSCAD 工作台預設屬性更改傳輸機制. + If OpenSCAD execution fails to load the temporary file, use FreeCAD's OpenSCAD Workbench Preferences to change the transfer mechanism. It looks like you may be using a sandboxed version of FreeCAD. - 看起來您可能正在使用 OpenSCAD 的沙箱版本. + It looks like you may be using a sandboxed version of FreeCAD. Unable to explode %s - 無法拆解 %s + Unable to explode %s Convert Edges to Faces - 轉換邊為面 + Convert Edges to Faces Please select 3 objects first - 請先選擇3個物件 + Please select 3 objects first @@ -242,13 +242,13 @@ as Mesh - 當作網格 + as Mesh Add OpenSCAD Element - 加入OpenSCAD元素 + Add OpenSCAD Element @@ -270,13 +270,13 @@ Perform - 執行 + Perform Mesh Boolean - 網格布林運算 + Mesh Boolean @@ -286,7 +286,7 @@ OpenSCAD file contains both 2D and 3D shapes. That is not supported in this importer, all shapes must have the same dimensionality. - OpenSCAD 檔案同時包含 2D 與 3D 形狀。目前不支援匯入這樣的格式,所有形狀必須為相同維度。 + OpenSCAD file contains both 2D and 3D shapes. That is not supported in this importer, all shapes must have the same dimensionality. @@ -297,7 +297,7 @@ Unsupported Function - 此功能尚未支援 + Unsupported Function @@ -311,12 +311,12 @@ Explode Group - 拆解群組 + Explode Group Remove fusion, apply placement to children, and color randomly - 移除合併,套用至子項目位置並隨機著色 + Remove fusion, apply placement to children, and color randomly @@ -324,12 +324,12 @@ Color Shapes - 對造型上色 + Color Shapes Color Shapes by validity and type - 依有效性及類型對造型上色 + Color Shapes by validity and type @@ -337,7 +337,7 @@ Convert Edges To Faces - 轉換邊為面 + Convert Edges To Faces @@ -345,12 +345,12 @@ Refine Shape Feature - 調整造型功能 + Refine Shape Feature Create Refine Shape Feature - 建立調整造型功能 + Create Refine Shape Feature @@ -358,12 +358,12 @@ Mirror Mesh Feature... - 網格特徵的鏡像副本... + Mirror Mesh Feature... Create Mirror Mesh Feature - 建立鏡像網格特徵 + Create Mirror Mesh Feature @@ -371,12 +371,12 @@ Scale Mesh Feature... - 網格縮放特徵... + Scale Mesh Feature... Create Scale Mesh Feature - 建立網格縮放特徵 + Create Scale Mesh Feature @@ -384,12 +384,12 @@ Resize Mesh Feature... - 網格尺寸特徵... + Resize Mesh Feature... Create Resize Mesh Feature - 建立網格尺寸特徵 + Create Resize Mesh Feature @@ -397,7 +397,7 @@ Increase Tolerance Feature - 提升容忍度特徵 + Increase Tolerance Feature @@ -410,7 +410,7 @@ Expand Placements - 延伸位置 + Expand Placements @@ -423,7 +423,7 @@ Replace Object - 取代物件 + Replace Object @@ -436,12 +436,12 @@ Remove Objects and their Children - 移除物件及其子物件 + Remove Objects and their Children Removes the selected objects and all children that are not referenced from other objects - 移除所選物件及其所有未被其他物件所參考之子物件 + Removes the selected objects and all children that are not referenced from other objects @@ -449,12 +449,12 @@ Add OpenSCAD Element... - 加入OpenSCAD元素... + Add OpenSCAD Element... Add an OpenSCAD element by entering OpenSCAD code and executing the OpenSCAD binary - 藉由輸入OpenSCAD語言並執行OpenSCAD程式加入OpenSCAD元素 + Add an OpenSCAD element by entering OpenSCAD code and executing the OpenSCAD binary @@ -462,12 +462,12 @@ Mesh Boolean... - 網格布林運算... + Mesh Boolean... Export objects as meshes and use OpenSCAD to perform a boolean operation - 將物件匯出為網格,並使用 OpenSCAD 執行布林運算 + Export objects as meshes and use OpenSCAD to perform a boolean operation diff --git a/src/Mod/Part/App/AppPartPy.cpp b/src/Mod/Part/App/AppPartPy.cpp index 98960575fe..2276ba7c10 100644 --- a/src/Mod/Part/App/AppPartPy.cpp +++ b/src/Mod/Part/App/AppPartPy.cpp @@ -598,9 +598,10 @@ public: "The sorted list can be used to create a Wire." ); add_varargs_method("sortEdges",&Module::sortEdges2, - "sortEdges(list of edges) -- list of lists of edges\n" + "sortEdges(list of edges, [tol3d]) -- list of lists of edges\n" "It does basically the same as __sortEdges__ but sorts all input edges and thus returns\n" - "a list of lists of edges" + "a list of lists of edges\n" + "optional 3D tolerance defaults to Precision::Confusion" ); add_varargs_method("__toPythonOCC__",&Module::toPythonOCC, "__toPythonOCC__(shape) -- Helper method to convert an internal shape to pythonocc shape" @@ -733,14 +734,14 @@ private: if (file.extension().empty()) throw Py::RuntimeError("No file extension"); - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { // create new document and add Import feature App::Document *pcDoc = App::GetApplication().newDocument(); ImportStepParts(pcDoc,EncodedName.c_str()); pcDoc->recompute(); } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { App::Document *pcDoc = App::GetApplication().newDocument(); ImportIgesParts(pcDoc,EncodedName.c_str()); pcDoc->recompute(); @@ -781,12 +782,12 @@ private: pcDoc = App::GetApplication().newDocument(DocName); } - if (file.hasExtension("stp") || file.hasExtension("step")) { + if (file.hasExtension({"stp", "step"})) { ImportStepParts(pcDoc,EncodedName.c_str()); pcDoc->recompute(); } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { + else if (file.hasExtension({"igs", "iges"})) { ImportIgesParts(pcDoc,EncodedName.c_str()); pcDoc->recompute(); } @@ -2168,7 +2169,8 @@ private: Py::Object sortEdges2(const Py::Tuple& args) { PyObject *obj; - if (!PyArg_ParseTuple(args.ptr(), "O", &obj)) { + double tol3d = Precision::Confusion(); + if (!PyArg_ParseTuple(args.ptr(), "O|d", &obj, &tol3d)) { throw Py::Exception(PartExceptionOCCError, "list of edges expected"); } @@ -2191,7 +2193,7 @@ private: Py::List root_list; while(!edges.empty()) { - std::list sorted = sort_Edges(Precision::Confusion(), edges); + std::list sorted = sort_Edges(tol3d, edges); Py::List sorted_list; for (std::list::iterator it = sorted.begin(); it != sorted.end(); ++it) { sorted_list.append(Py::Object(new TopoShapeEdgePy(new TopoShape(*it)),true)); diff --git a/src/Mod/Part/App/AttachExtension.h b/src/Mod/Part/App/AttachExtension.h index 0764bd68e8..626de2b5fa 100644 --- a/src/Mod/Part/App/AttachExtension.h +++ b/src/Mod/Part/App/AttachExtension.h @@ -49,7 +49,7 @@ public: explicit AttachEngineException(const char * sMessage); explicit AttachEngineException(const std::string& sMessage); /// Destruction - ~AttachEngineException() throw() override {} + ~AttachEngineException() noexcept override {} }; /** diff --git a/src/Mod/Part/App/Attacher.h b/src/Mod/Part/App/Attacher.h index bd5cd3898e..8322f1a259 100644 --- a/src/Mod/Part/App/Attacher.h +++ b/src/Mod/Part/App/Attacher.h @@ -465,7 +465,7 @@ class ExceptionCancel : public Base::Exception public: ExceptionCancel(){} explicit ExceptionCancel(char* msg){this->setMessage(msg);} - ~ExceptionCancel() throw() override {} + ~ExceptionCancel() noexcept override {} }; } // namespace Attacher diff --git a/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPy.xml b/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPy.xml index e2dd1fd641..046cbc7bc2 100644 --- a/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPy.xml +++ b/src/Mod/Part/App/BRepOffsetAPI_MakePipeShellPy.xml @@ -63,10 +63,6 @@ For each Point of the Spine P, an Point Q is evalued on AuxiliarySpine. If CurvilinearEquivalence=True Q split AuxiliarySpine with the same length ratio than P split Spine. - * OCC before 6.7 - TypeOfContact = bool - True = keep Contact - * OCC >= 6.7 TypeOfContact = long 0: No contact diff --git a/src/Mod/Part/App/BSplineCurvePyImp.cpp b/src/Mod/Part/App/BSplineCurvePyImp.cpp index b0078d48df..7ce054ab39 100644 --- a/src/Mod/Part/App/BSplineCurvePyImp.cpp +++ b/src/Mod/Part/App/BSplineCurvePyImp.cpp @@ -1043,12 +1043,12 @@ PyObject* BSplineCurvePy::interpolate(PyObject *args, PyObject *kwds) std::unique_ptr aBSplineInterpolation; if (parameters.IsNull()) { - aBSplineInterpolation.reset(new GeomAPI_Interpolate(interpolationPoints, - Base::asBoolean(periodic), tol3d)); + aBSplineInterpolation = std::make_unique(interpolationPoints, + Base::asBoolean(periodic), tol3d); } else { - aBSplineInterpolation.reset(new GeomAPI_Interpolate(interpolationPoints, parameters, - Base::asBoolean(periodic), tol3d)); + aBSplineInterpolation = std::make_unique(interpolationPoints, parameters, + Base::asBoolean(periodic), tol3d); } if (t1 && t2) { diff --git a/src/Mod/Part/App/BSplineSurfacePyImp.cpp b/src/Mod/Part/App/BSplineSurfacePyImp.cpp index ef02c34028..4be55ad7c6 100644 --- a/src/Mod/Part/App/BSplineSurfacePyImp.cpp +++ b/src/Mod/Part/App/BSplineSurfacePyImp.cpp @@ -46,7 +46,7 @@ using namespace Part; // returns a string which represents the object e.g. when printed in python -std::string BSplineSurfacePy::representation(void) const +std::string BSplineSurfacePy::representation() const { return ""; } @@ -1553,7 +1553,7 @@ PyObject* BSplineSurfacePy::buildFromNSections(PyObject *args) } } -Py::Long BSplineSurfacePy::getUDegree(void) const +Py::Long BSplineSurfacePy::getUDegree() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1561,7 +1561,7 @@ Py::Long BSplineSurfacePy::getUDegree(void) const return Py::Long(deg); } -Py::Long BSplineSurfacePy::getVDegree(void) const +Py::Long BSplineSurfacePy::getVDegree() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1569,42 +1569,42 @@ Py::Long BSplineSurfacePy::getVDegree(void) const return Py::Long(deg); } -Py::Long BSplineSurfacePy::getMaxDegree(void) const +Py::Long BSplineSurfacePy::getMaxDegree() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); return Py::Long(surf->MaxDegree()); } -Py::Long BSplineSurfacePy::getNbUPoles(void) const +Py::Long BSplineSurfacePy::getNbUPoles() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); return Py::Long(surf->NbUPoles()); } -Py::Long BSplineSurfacePy::getNbVPoles(void) const +Py::Long BSplineSurfacePy::getNbVPoles() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); return Py::Long(surf->NbVPoles()); } -Py::Long BSplineSurfacePy::getNbUKnots(void) const +Py::Long BSplineSurfacePy::getNbUKnots() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); return Py::Long(surf->NbUKnots()); } -Py::Long BSplineSurfacePy::getNbVKnots(void) const +Py::Long BSplineSurfacePy::getNbVKnots() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); return Py::Long(surf->NbVKnots()); } -Py::Object BSplineSurfacePy::getFirstUKnotIndex(void) const +Py::Object BSplineSurfacePy::getFirstUKnotIndex() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1612,7 +1612,7 @@ Py::Object BSplineSurfacePy::getFirstUKnotIndex(void) const return Py::Long(index); } -Py::Object BSplineSurfacePy::getLastUKnotIndex(void) const +Py::Object BSplineSurfacePy::getLastUKnotIndex() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1620,7 +1620,7 @@ Py::Object BSplineSurfacePy::getLastUKnotIndex(void) const return Py::Long(index); } -Py::Object BSplineSurfacePy::getFirstVKnotIndex(void) const +Py::Object BSplineSurfacePy::getFirstVKnotIndex() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1628,7 +1628,7 @@ Py::Object BSplineSurfacePy::getFirstVKnotIndex(void) const return Py::Long(index); } -Py::Object BSplineSurfacePy::getLastVKnotIndex(void) const +Py::Object BSplineSurfacePy::getLastVKnotIndex() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1636,7 +1636,7 @@ Py::Object BSplineSurfacePy::getLastVKnotIndex(void) const return Py::Long(index); } -Py::List BSplineSurfacePy::getUKnotSequence(void) const +Py::List BSplineSurfacePy::getUKnotSequence() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); @@ -1658,7 +1658,7 @@ Py::List BSplineSurfacePy::getUKnotSequence(void) const return list; } -Py::List BSplineSurfacePy::getVKnotSequence(void) const +Py::List BSplineSurfacePy::getVKnotSequence() const { Handle(Geom_BSplineSurface) surf = Handle(Geom_BSplineSurface)::DownCast (getGeometryPtr()->handle()); diff --git a/src/Mod/Part/App/DatumFeature.h b/src/Mod/Part/App/DatumFeature.h index ef9b1f7fa4..c7fd739948 100644 --- a/src/Mod/Part/App/DatumFeature.h +++ b/src/Mod/Part/App/DatumFeature.h @@ -43,7 +43,7 @@ public: //short mustExecute(); /// returns the type name of the view provider - const char* getViewProviderName(void) const override = 0; + const char* getViewProviderName() const override = 0; /// Return a shape including Placement representing the datum feature virtual TopoDS_Shape getShape() const; diff --git a/src/Mod/Part/App/FaceMakerBullseye.cpp b/src/Mod/Part/App/FaceMakerBullseye.cpp index d73ebd35b9..1708c0229d 100644 --- a/src/Mod/Part/App/FaceMakerBullseye.cpp +++ b/src/Mod/Part/App/FaceMakerBullseye.cpp @@ -121,8 +121,8 @@ void FaceMakerBullseye::Build_Essence() } else { //wire is not on a face. Start a new face. - faces.push_back(std::unique_ptr( - new FaceDriller(plane, w) + faces.push_back(std::make_unique( + plane, w )); } } diff --git a/src/Mod/Part/App/FeatureChamfer.cpp b/src/Mod/Part/App/FeatureChamfer.cpp index 39cc04aeee..e6bb6f52e4 100644 --- a/src/Mod/Part/App/FeatureChamfer.cpp +++ b/src/Mod/Part/App/FeatureChamfer.cpp @@ -42,7 +42,7 @@ Chamfer::Chamfer() { } -App::DocumentObjectExecReturn *Chamfer::execute(void) +App::DocumentObjectExecReturn *Chamfer::execute() { App::DocumentObject* link = Base.getValue(); if (!link) diff --git a/src/Mod/Part/App/FeatureExtrusion.h b/src/Mod/Part/App/FeatureExtrusion.h index 69158aae6a..726213ff3a 100644 --- a/src/Mod/Part/App/FeatureExtrusion.h +++ b/src/Mod/Part/App/FeatureExtrusion.h @@ -73,10 +73,10 @@ public: /** @name methods override feature */ //@{ /// recalculate the feature - App::DocumentObjectExecReturn *execute(void) override; + App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; /// returns the type name of the view provider - const char* getViewProviderName(void) const override { + const char* getViewProviderName() const override { return "PartGui::ViewProviderExtrusion"; } //@} diff --git a/src/Mod/Part/App/FeatureGeometrySet.h b/src/Mod/Part/App/FeatureGeometrySet.h index 7522e023ea..27343bccb5 100644 --- a/src/Mod/Part/App/FeatureGeometrySet.h +++ b/src/Mod/Part/App/FeatureGeometrySet.h @@ -42,9 +42,9 @@ public: /** @name methods override Feature */ //@{ /// recalculate the Feature - App::DocumentObjectExecReturn *execute(void) override; + App::DocumentObjectExecReturn *execute() override; /// returns the type name of the ViewProvider - const char* getViewProviderName(void) const override { + const char* getViewProviderName() const override { return "PartGui::ViewProviderGeometrySet"; } //@} diff --git a/src/Mod/Part/App/FeatureOffset.cpp b/src/Mod/Part/App/FeatureOffset.cpp index 9c265c9a78..f8ab7fad9a 100644 --- a/src/Mod/Part/App/FeatureOffset.cpp +++ b/src/Mod/Part/App/FeatureOffset.cpp @@ -76,7 +76,7 @@ short Offset::mustExecute() const return 0; } -App::DocumentObjectExecReturn *Offset::execute(void) +App::DocumentObjectExecReturn *Offset::execute() { App::DocumentObject* source = Source.getValue(); if (!source) @@ -130,7 +130,7 @@ short Offset2D::mustExecute() const return 0; } -App::DocumentObjectExecReturn *Offset2D::execute(void) +App::DocumentObjectExecReturn *Offset2D::execute() { App::DocumentObject* source = Source.getValue(); diff --git a/src/Mod/Part/App/FeaturePartCircle.cpp b/src/Mod/Part/App/FeaturePartCircle.cpp index c1d62f5282..4b0373c6ab 100644 --- a/src/Mod/Part/App/FeaturePartCircle.cpp +++ b/src/Mod/Part/App/FeaturePartCircle.cpp @@ -61,7 +61,7 @@ short Circle::mustExecute() const return Part::Primitive::mustExecute(); } -App::DocumentObjectExecReturn *Circle::execute(void) +App::DocumentObjectExecReturn *Circle::execute() { gp_Circ circle; circle.SetRadius(this->Radius.getValue()); diff --git a/src/Mod/Part/App/FeaturePartImportIges.h b/src/Mod/Part/App/FeaturePartImportIges.h index 695663104c..db0b3fff92 100644 --- a/src/Mod/Part/App/FeaturePartImportIges.h +++ b/src/Mod/Part/App/FeaturePartImportIges.h @@ -41,10 +41,10 @@ public: /** @name methods override Feature */ //@{ /// recalculate the Feature - App::DocumentObjectExecReturn *execute(void) override; + App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; /// returns the type name of the ViewProvider - const char* getViewProviderName(void) const override { + const char* getViewProviderName() const override { return "PartGui::ViewProviderImport"; } //@} diff --git a/src/Mod/Part/App/FeaturePartSection.cpp b/src/Mod/Part/App/FeaturePartSection.cpp index 9ae4fc7ef8..04fd6c7431 100644 --- a/src/Mod/Part/App/FeaturePartSection.cpp +++ b/src/Mod/Part/App/FeaturePartSection.cpp @@ -34,7 +34,7 @@ using namespace Part; PROPERTY_SOURCE(Part::Section, Part::Boolean) -Section::Section(void) +Section::Section() { ADD_PROPERTY_TYPE(Approximation,(false),"Section",App::Prop_None,"Approximate the output edges"); } diff --git a/src/Mod/Part/App/Geom2d/ArcOfHyperbola2dPyImp.cpp b/src/Mod/Part/App/Geom2d/ArcOfHyperbola2dPyImp.cpp index 793f27e1fe..c4807ecde9 100644 --- a/src/Mod/Part/App/Geom2d/ArcOfHyperbola2dPyImp.cpp +++ b/src/Mod/Part/App/Geom2d/ArcOfHyperbola2dPyImp.cpp @@ -39,7 +39,7 @@ using namespace Part; extern const char* gce_ErrorStatusText(gce_ErrorType et); // returns a string which represents the object e.g. when printed in python -std::string ArcOfHyperbola2dPy::representation(void) const +std::string ArcOfHyperbola2dPy::representation() const { return ""; } @@ -86,7 +86,7 @@ int ArcOfHyperbola2dPy::PyInit(PyObject* args, PyObject* /*kwds*/) return -1; } -Py::Float ArcOfHyperbola2dPy::getMajorRadius(void) const +Py::Float ArcOfHyperbola2dPy::getMajorRadius() const { return Py::Float(getGeom2dArcOfHyperbolaPtr()->getMajorRadius()); } @@ -96,7 +96,7 @@ void ArcOfHyperbola2dPy::setMajorRadius(Py::Float arg) getGeom2dArcOfHyperbolaPtr()->setMajorRadius((double)arg); } -Py::Float ArcOfHyperbola2dPy::getMinorRadius(void) const +Py::Float ArcOfHyperbola2dPy::getMinorRadius() const { return Py::Float(getGeom2dArcOfHyperbolaPtr()->getMinorRadius()); } @@ -106,7 +106,7 @@ void ArcOfHyperbola2dPy::setMinorRadius(Py::Float arg) getGeom2dArcOfHyperbolaPtr()->setMinorRadius((double)arg); } -Py::Object ArcOfHyperbola2dPy::getHyperbola(void) const +Py::Object ArcOfHyperbola2dPy::getHyperbola() const { Handle(Geom2d_TrimmedCurve) trim = Handle(Geom2d_TrimmedCurve)::DownCast (getGeom2dArcOfHyperbolaPtr()->handle()); diff --git a/src/Mod/Part/App/Geom2d/BSplineCurve2dPyImp.cpp b/src/Mod/Part/App/Geom2d/BSplineCurve2dPyImp.cpp index d7103e7610..3a3c56fe65 100644 --- a/src/Mod/Part/App/Geom2d/BSplineCurve2dPyImp.cpp +++ b/src/Mod/Part/App/Geom2d/BSplineCurve2dPyImp.cpp @@ -949,12 +949,16 @@ PyObject* BSplineCurve2dPy::interpolate(PyObject *args, PyObject *kwds) std::unique_ptr aBSplineInterpolation; if (parameters.IsNull()) { - aBSplineInterpolation.reset(new Geom2dAPI_Interpolate(interpolationPoints, - Base::asBoolean(periodic), tol3d)); + aBSplineInterpolation = std::make_unique( + interpolationPoints, + Base::asBoolean(periodic), tol3d + ); } else { - aBSplineInterpolation.reset(new Geom2dAPI_Interpolate(interpolationPoints, parameters, - Base::asBoolean(periodic), tol3d)); + aBSplineInterpolation = std::make_unique( + interpolationPoints, parameters, + Base::asBoolean(periodic), tol3d + ); } if (t1 && t2) { diff --git a/src/Mod/Part/App/GeomPlate/CurveConstraintPyImp.cpp b/src/Mod/Part/App/GeomPlate/CurveConstraintPyImp.cpp index aca3233ddb..5ab02e40e7 100644 --- a/src/Mod/Part/App/GeomPlate/CurveConstraintPyImp.cpp +++ b/src/Mod/Part/App/GeomPlate/CurveConstraintPyImp.cpp @@ -99,10 +99,10 @@ int CurveConstraintPy::PyInit(PyObject* args, PyObject* kwds) } #endif - ptr.reset(new GeomPlate_CurveConstraint(hCurve, order, nbPts, tolDist, tolAng, tolCurv)); + ptr = std::make_unique(hCurve, order, nbPts, tolDist, tolAng, tolCurv); } else { - ptr.reset(new GeomPlate_CurveConstraint); + ptr = std::make_unique(); } setTwinPointer(ptr.release()); diff --git a/src/Mod/Part/App/GeomPlate/PointConstraintPyImp.cpp b/src/Mod/Part/App/GeomPlate/PointConstraintPyImp.cpp index 89713c5717..4c05b7222c 100644 --- a/src/Mod/Part/App/GeomPlate/PointConstraintPyImp.cpp +++ b/src/Mod/Part/App/GeomPlate/PointConstraintPyImp.cpp @@ -56,7 +56,7 @@ int PointConstraintPy::PyInit(PyObject* args, PyObject* kwds) std::unique_ptr ptr; Base::Vector3d v = static_cast(pt)->value(); - ptr.reset(new GeomPlate_PointConstraint(gp_Pnt(v.x, v.y, v.z), order, tolDist)); + ptr = std::make_unique(gp_Pnt(v.x, v.y, v.z), order, tolDist); setTwinPointer(ptr.release()); return 0; diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index bb468e0d2e..571d8157b1 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -2598,7 +2598,7 @@ void GeomArcOfCircle::Restore(Base::XMLReader &reader) GC_MakeCircle mc(xdir, Radius); if (!mc.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(mc.Status())) - GC_MakeArcOfCircle ma(mc.Value()->Circ(), StartAngle, EndAngle, 1); + GC_MakeArcOfCircle ma(mc.Value()->Circ(), StartAngle, EndAngle, Standard_True); if (!ma.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(ma.Status())) @@ -3123,7 +3123,7 @@ void GeomArcOfEllipse::Restore(Base::XMLReader &reader) if (!mc.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(mc.Status())) - GC_MakeArcOfEllipse ma(mc.Value()->Elips(), StartAngle, EndAngle, 1); + GC_MakeArcOfEllipse ma(mc.Value()->Elips(), StartAngle, EndAngle, Standard_True); if (!ma.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(ma.Status())) @@ -3549,7 +3549,7 @@ void GeomArcOfHyperbola::Restore(Base::XMLReader &reader) if (!mc.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(mc.Status())) - GC_MakeArcOfHyperbola ma(mc.Value()->Hypr(), StartAngle, EndAngle, 1); + GC_MakeArcOfHyperbola ma(mc.Value()->Hypr(), StartAngle, EndAngle, Standard_True); if (!ma.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(ma.Status())) @@ -3901,7 +3901,7 @@ void GeomArcOfParabola::Restore(Base::XMLReader &reader) if (!mc.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(mc.Status())) - GC_MakeArcOfParabola ma(mc.Value(), StartAngle, EndAngle, 1); + GC_MakeArcOfParabola ma(mc.Value(), StartAngle, EndAngle, Standard_True); if (!ma.IsDone()) THROWM(Base::CADKernelError,gce_ErrorStatusText(ma.Status())) @@ -5365,51 +5365,51 @@ std::unique_ptr makeFromSurface(const Handle(Geom_Surface)& s) std::unique_ptr geoSurf; if (s->IsKind(STANDARD_TYPE(Geom_ToroidalSurface))) { Handle(Geom_ToroidalSurface) hSurf = Handle(Geom_ToroidalSurface)::DownCast(s); - geoSurf.reset(new GeomToroid(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_BezierSurface))) { Handle(Geom_BezierSurface) hSurf = Handle(Geom_BezierSurface)::DownCast(s); - geoSurf.reset(new GeomBezierSurface(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_BSplineSurface))) { Handle(Geom_BSplineSurface) hSurf = Handle(Geom_BSplineSurface)::DownCast(s); - geoSurf.reset(new GeomBSplineSurface(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_CylindricalSurface))) { Handle(Geom_CylindricalSurface) hSurf = Handle(Geom_CylindricalSurface)::DownCast(s); - geoSurf.reset(new GeomCylinder(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_ConicalSurface))) { Handle(Geom_ConicalSurface) hSurf = Handle(Geom_ConicalSurface)::DownCast(s); - geoSurf.reset(new GeomCone(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_SphericalSurface))) { Handle(Geom_SphericalSurface) hSurf = Handle(Geom_SphericalSurface)::DownCast(s); - geoSurf.reset(new GeomSphere(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_Plane))) { Handle(Geom_Plane) hSurf = Handle(Geom_Plane)::DownCast(s); - geoSurf.reset(new GeomPlane(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_OffsetSurface))) { Handle(Geom_OffsetSurface) hSurf = Handle(Geom_OffsetSurface)::DownCast(s); - geoSurf.reset(new GeomOffsetSurface(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(GeomPlate_Surface))) { Handle(GeomPlate_Surface) hSurf = Handle(GeomPlate_Surface)::DownCast(s); - geoSurf.reset(new GeomPlateSurface(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) { Handle(Geom_RectangularTrimmedSurface) hSurf = Handle(Geom_RectangularTrimmedSurface)::DownCast(s); - geoSurf.reset(new GeomTrimmedSurface(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_SurfaceOfRevolution))) { Handle(Geom_SurfaceOfRevolution) hSurf = Handle(Geom_SurfaceOfRevolution)::DownCast(s); - geoSurf.reset(new GeomSurfaceOfRevolution(hSurf)); + geoSurf = std::make_unique(hSurf); } else if (s->IsKind(STANDARD_TYPE(Geom_SurfaceOfLinearExtrusion))) { Handle(Geom_SurfaceOfLinearExtrusion) hSurf = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast(s); - geoSurf.reset(new GeomSurfaceOfExtrusion(hSurf)); + geoSurf = std::make_unique(hSurf); } else { std::string err = "Unhandled surface type "; @@ -5425,27 +5425,27 @@ std::unique_ptr makeFromCurve(const Handle(Geom_Curve)& c) std::unique_ptr geoCurve; if (c->IsKind(STANDARD_TYPE(Geom_Circle))) { Handle(Geom_Circle) circ = Handle(Geom_Circle)::DownCast(c); - geoCurve.reset(new GeomCircle(circ)); + geoCurve = std::make_unique(circ); } else if (c->IsKind(STANDARD_TYPE(Geom_Ellipse))) { Handle(Geom_Ellipse) ell = Handle(Geom_Ellipse)::DownCast(c); - geoCurve.reset(new GeomEllipse(ell)); + geoCurve = std::make_unique(ell); } else if (c->IsKind(STANDARD_TYPE(Geom_Hyperbola))) { Handle(Geom_Hyperbola) hyp = Handle(Geom_Hyperbola)::DownCast(c); - geoCurve.reset(new GeomHyperbola(hyp)); + geoCurve = std::make_unique(hyp); } else if (c->IsKind(STANDARD_TYPE(Geom_Line))) { Handle(Geom_Line) lin = Handle(Geom_Line)::DownCast(c); - geoCurve.reset(new GeomLine(lin)); + geoCurve = std::make_unique(lin); } else if (c->IsKind(STANDARD_TYPE(Geom_OffsetCurve))) { Handle(Geom_OffsetCurve) oc = Handle(Geom_OffsetCurve)::DownCast(c); - geoCurve.reset(new GeomOffsetCurve(oc)); + geoCurve = std::make_unique(oc); } else if (c->IsKind(STANDARD_TYPE(Geom_Parabola))) { Handle(Geom_Parabola) par = Handle(Geom_Parabola)::DownCast(c); - geoCurve.reset(new GeomParabola(par)); + geoCurve = std::make_unique(par); } else if (c->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { return makeFromTrimmedCurve(c, c->FirstParameter(), c->LastParameter()); @@ -5456,11 +5456,11 @@ std::unique_ptr makeFromCurve(const Handle(Geom_Curve)& c) }*/ else if (c->IsKind(STANDARD_TYPE(Geom_BezierCurve))) { Handle(Geom_BezierCurve) bezier = Handle(Geom_BezierCurve)::DownCast(c); - geoCurve.reset(new GeomBezierCurve(bezier)); + geoCurve = std::make_unique(bezier); } else if (c->IsKind(STANDARD_TYPE(Geom_BSplineCurve))) { Handle(Geom_BSplineCurve) bspline = Handle(Geom_BSplineCurve)::DownCast(c); - geoCurve.reset(new GeomBSplineCurve(bspline)); + geoCurve = std::make_unique(bspline); } else { std::string err = "Unhandled curve type "; @@ -5567,7 +5567,7 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) { case GeomAbs_Line: { - geoCurve.reset(new GeomLine()); + geoCurve = std::make_unique(); Handle(Geom_Line) this_curv = Handle(Geom_Line)::DownCast (geoCurve->handle()); this_curv->SetLin(adapt.Line()); @@ -5575,7 +5575,7 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) } case GeomAbs_Circle: { - geoCurve.reset(new GeomCircle()); + geoCurve = std::make_unique(); Handle(Geom_Circle) this_curv = Handle(Geom_Circle)::DownCast (geoCurve->handle()); this_curv->SetCirc(adapt.Circle()); @@ -5583,7 +5583,7 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) } case GeomAbs_Ellipse: { - geoCurve.reset(new GeomEllipse()); + geoCurve = std::make_unique(); Handle(Geom_Ellipse) this_curv = Handle(Geom_Ellipse)::DownCast (geoCurve->handle()); this_curv->SetElips(adapt.Ellipse()); @@ -5591,7 +5591,7 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) } case GeomAbs_Hyperbola: { - geoCurve.reset(new GeomHyperbola()); + geoCurve = std::make_unique(); Handle(Geom_Hyperbola) this_curv = Handle(Geom_Hyperbola)::DownCast (geoCurve->handle()); this_curv->SetHypr(adapt.Hyperbola()); @@ -5599,7 +5599,7 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) } case GeomAbs_Parabola: { - geoCurve.reset(new GeomParabola()); + geoCurve = std::make_unique(); Handle(Geom_Parabola) this_curv = Handle(Geom_Parabola)::DownCast (geoCurve->handle()); this_curv->SetParab(adapt.Parabola()); @@ -5607,17 +5607,17 @@ std::unique_ptr makeFromCurveAdaptor(const Adaptor3d_Curve& adapt) } case GeomAbs_BezierCurve: { - geoCurve.reset(new GeomBezierCurve(adapt.Bezier())); + geoCurve = std::make_unique(adapt.Bezier()); break; } case GeomAbs_BSplineCurve: { - geoCurve.reset(new GeomBSplineCurve(adapt.BSpline())); + geoCurve = std::make_unique(adapt.BSpline()); break; } case GeomAbs_OffsetCurve: { - geoCurve.reset(new GeomOffsetCurve(adapt.OffsetCurve())); + geoCurve = std::make_unique(adapt.OffsetCurve()); break; } case GeomAbs_OtherCurve: diff --git a/src/Mod/Part/App/Geometry2d.cpp b/src/Mod/Part/App/Geometry2d.cpp index ae8d67422f..d7d69c6419 100644 --- a/src/Mod/Part/App/Geometry2d.cpp +++ b/src/Mod/Part/App/Geometry2d.cpp @@ -2304,28 +2304,28 @@ std::unique_ptr makeFromCurve2d(Handle(Geom2d_Curve) curve) if (curve.IsNull()) return geo2d; if (curve->IsKind(STANDARD_TYPE (Geom2d_Parabola))) { - geo2d.reset(new Geom2dParabola(Handle(Geom2d_Parabola)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_Parabola)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_Hyperbola))) { - geo2d.reset(new Geom2dHyperbola(Handle(Geom2d_Hyperbola)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_Hyperbola)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_Ellipse))) { - geo2d.reset(new Geom2dEllipse(Handle(Geom2d_Ellipse)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_Ellipse)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_Circle))) { - geo2d.reset(new Geom2dCircle(Handle(Geom2d_Circle)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_Circle)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_Line))) { - geo2d.reset(new Geom2dLine(Handle(Geom2d_Line)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_Line)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_BSplineCurve))) { - geo2d.reset(new Geom2dBSplineCurve(Handle(Geom2d_BSplineCurve)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_BSplineCurve)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_BezierCurve))) { - geo2d.reset(new Geom2dBezierCurve(Handle(Geom2d_BezierCurve)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_BezierCurve)::DownCast(curve)); } else if (curve->IsKind(STANDARD_TYPE (Geom2d_TrimmedCurve))) { - geo2d.reset(new Geom2dTrimmedCurve(Handle(Geom2d_TrimmedCurve)::DownCast(curve))); + geo2d = std::make_unique(Handle(Geom2d_TrimmedCurve)::DownCast(curve)); } return geo2d; @@ -2426,7 +2426,7 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada { case GeomAbs_Line: { - geoCurve.reset(new Geom2dLine()); + geoCurve = std::make_unique(); Handle(Geom2d_Line) this_curv = Handle(Geom2d_Line)::DownCast (geoCurve->handle()); this_curv->SetLin2d(adapt.Line()); @@ -2434,7 +2434,7 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada } case GeomAbs_Circle: { - geoCurve.reset(new Geom2dCircle()); + geoCurve = std::make_unique(); Handle(Geom2d_Circle) this_curv = Handle(Geom2d_Circle)::DownCast (geoCurve->handle()); this_curv->SetCirc2d(adapt.Circle()); @@ -2442,7 +2442,7 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada } case GeomAbs_Ellipse: { - geoCurve.reset(new Geom2dEllipse()); + geoCurve = std::make_unique(); Handle(Geom2d_Ellipse) this_curv = Handle(Geom2d_Ellipse)::DownCast (geoCurve->handle()); this_curv->SetElips2d(adapt.Ellipse()); @@ -2450,7 +2450,7 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada } case GeomAbs_Hyperbola: { - geoCurve.reset(new Geom2dHyperbola()); + geoCurve = std::make_unique(); Handle(Geom2d_Hyperbola) this_curv = Handle(Geom2d_Hyperbola)::DownCast (geoCurve->handle()); this_curv->SetHypr2d(adapt.Hyperbola()); @@ -2458,7 +2458,7 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada } case GeomAbs_Parabola: { - geoCurve.reset(new Geom2dParabola()); + geoCurve = std::make_unique(); Handle(Geom2d_Parabola) this_curv = Handle(Geom2d_Parabola)::DownCast (geoCurve->handle()); this_curv->SetParab2d(adapt.Parabola()); @@ -2466,12 +2466,12 @@ std::unique_ptr makeFromCurveAdaptor2d(const Adaptor2d_Curve2d& ada } case GeomAbs_BezierCurve: { - geoCurve.reset(new Geom2dBezierCurve(adapt.Bezier())); + geoCurve = std::make_unique(adapt.Bezier()); break; } case GeomAbs_BSplineCurve: { - geoCurve.reset(new Geom2dBSplineCurve(adapt.BSpline())); + geoCurve = std::make_unique(adapt.BSpline()); break; } case GeomAbs_OtherCurve: diff --git a/src/Mod/Part/App/LineSegmentPyImp.cpp b/src/Mod/Part/App/LineSegmentPyImp.cpp index 42e7d18444..073b3fb7f0 100644 --- a/src/Mod/Part/App/LineSegmentPyImp.cpp +++ b/src/Mod/Part/App/LineSegmentPyImp.cpp @@ -41,7 +41,7 @@ using namespace Part; extern const char* gce_ErrorStatusText(gce_ErrorType et); // returns a string which represents the object e.g. when printed in python -std::string LineSegmentPy::representation(void) const +std::string LineSegmentPy::representation() const { std::stringstream str; Base::Vector3d start = getGeomLineSegmentPtr()->getStartPoint(); @@ -198,7 +198,7 @@ PyObject* LineSegmentPy::setParameterRange(PyObject *args) Py_Return; } -Py::Object LineSegmentPy::getStartPoint(void) const +Py::Object LineSegmentPy::getStartPoint() const { Handle(Geom_TrimmedCurve) this_curve = Handle(Geom_TrimmedCurve)::DownCast (this->getGeomLineSegmentPtr()->handle()); @@ -254,7 +254,7 @@ void LineSegmentPy::setStartPoint(Py::Object arg) } } -Py::Object LineSegmentPy::getEndPoint(void) const +Py::Object LineSegmentPy::getEndPoint() const { Handle(Geom_TrimmedCurve) this_curve = Handle(Geom_TrimmedCurve)::DownCast (this->getGeomLineSegmentPtr()->handle()); diff --git a/src/Mod/Part/App/Part2DObject.cpp b/src/Mod/Part/App/Part2DObject.cpp index d3ae46145f..97a60bee80 100644 --- a/src/Mod/Part/App/Part2DObject.cpp +++ b/src/Mod/Part/App/Part2DObject.cpp @@ -68,7 +68,7 @@ Part2DObject::Part2DObject() } -App::DocumentObjectExecReturn *Part2DObject::execute(void) +App::DocumentObjectExecReturn *Part2DObject::execute() { return Feature::execute(); } @@ -83,7 +83,7 @@ void Part2DObject::transformPlacement(const Base::Placement &transform) } } -int Part2DObject::getAxisCount(void) const +int Part2DObject::getAxisCount() const { return 0; } @@ -286,10 +286,10 @@ void Part2DObject::handleChangedPropertyName(Base::XMLReader &reader, namespace App { /// @cond DOXERR PROPERTY_SOURCE_TEMPLATE(Part::Part2DObjectPython, Part::Part2DObject) - template<> const char* Part::Part2DObjectPython::getViewProviderName(void) const { + template<> const char* Part::Part2DObjectPython::getViewProviderName() const { return "PartGui::ViewProvider2DObjectPython"; } - template<> PyObject* Part::Part2DObjectPython::getPyObject(void) { + template<> PyObject* Part::Part2DObjectPython::getPyObject() { if (PythonObject.is(Py::_None())) { // ref counter is set to 1 PythonObject = Py::Object(new FeaturePythonPyT(this),true); diff --git a/src/Mod/Part/App/PartFeature.cpp b/src/Mod/Part/App/PartFeature.cpp index fffa371a18..77f8a73f67 100644 --- a/src/Mod/Part/App/PartFeature.cpp +++ b/src/Mod/Part/App/PartFeature.cpp @@ -67,7 +67,7 @@ #include "TopoShapePy.h" using namespace Part; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; FC_LOG_LEVEL_INIT("Part",true,true) @@ -207,12 +207,14 @@ struct ShapeCache { if(inited) return; inited = true; + //NOLINTBEGIN App::GetApplication().signalDeleteDocument.connect( - boost::bind(&ShapeCache::slotDeleteDocument, this, bp::_1)); + std::bind(&ShapeCache::slotDeleteDocument, this, sp::_1)); App::GetApplication().signalDeletedObject.connect( - boost::bind(&ShapeCache::slotClear, this, bp::_1)); + std::bind(&ShapeCache::slotClear, this, sp::_1)); App::GetApplication().signalChangedObject.connect( - boost::bind(&ShapeCache::slotChanged, this, bp::_1,bp::_2)); + std::bind(&ShapeCache::slotChanged, this, sp::_1,sp::_2)); + //NOLINTEND } void slotDeleteDocument(const App::Document &doc) { diff --git a/src/Mod/Part/App/PropertyTopoShape.cpp b/src/Mod/Part/App/PropertyTopoShape.cpp index fc473a1b74..fc12ddd744 100644 --- a/src/Mod/Part/App/PropertyTopoShape.cpp +++ b/src/Mod/Part/App/PropertyTopoShape.cpp @@ -75,7 +75,7 @@ void PropertyPartShape::setValue(const TopoDS_Shape& sh) hasSetValue(); } -const TopoDS_Shape& PropertyPartShape::getValue(void)const +const TopoDS_Shape& PropertyPartShape::getValue() const { return _Shape.getShape(); } @@ -133,7 +133,7 @@ void PropertyPartShape::transformGeometry(const Base::Matrix4D &rclTrf) hasSetValue(); } -PyObject *PropertyPartShape::getPyObject(void) +PyObject *PropertyPartShape::getPyObject() { Base::PyObjectBase* prop = static_cast(_Shape.getPyObject()); if (prop) @@ -154,7 +154,7 @@ void PropertyPartShape::setPyObject(PyObject *value) } } -App::Property *PropertyPartShape::Copy(void) const +App::Property *PropertyPartShape::Copy() const { PropertyPartShape *prop = new PropertyPartShape(); prop->_Shape = this->_Shape; @@ -173,7 +173,7 @@ void PropertyPartShape::Paste(const App::Property &from) hasSetValue(); } -unsigned int PropertyPartShape::getMemSize (void) const +unsigned int PropertyPartShape::getMemSize () const { return _Shape.getMemSize(); } @@ -435,7 +435,7 @@ void PropertyShapeHistory::setValues(const std::vector& values) hasSetValue(); } -PyObject *PropertyShapeHistory::getPyObject(void) +PyObject *PropertyShapeHistory::getPyObject() { return Py::new_reference_to(Py::None()); } @@ -460,7 +460,7 @@ void PropertyShapeHistory::RestoreDocFile(Base::Reader &) { } -App::Property *PropertyShapeHistory::Copy(void) const +App::Property *PropertyShapeHistory::Copy() const { PropertyShapeHistory *p= new PropertyShapeHistory(); p->_lValueList = _lValueList; @@ -503,7 +503,7 @@ void PropertyFilletEdges::setValues(const std::vector& values) hasSetValue(); } -PyObject *PropertyFilletEdges::getPyObject(void) +PyObject *PropertyFilletEdges::getPyObject() { Py::List list(getSize()); std::vector::const_iterator it; @@ -576,7 +576,7 @@ void PropertyFilletEdges::RestoreDocFile(Base::Reader &reader) setValues(values); } -App::Property *PropertyFilletEdges::Copy(void) const +App::Property *PropertyFilletEdges::Copy() const { PropertyFilletEdges *p= new PropertyFilletEdges(); p->_lValueList = _lValueList; diff --git a/src/Mod/Part/App/PropertyTopoShapeList.cpp b/src/Mod/Part/App/PropertyTopoShapeList.cpp index eb7bf6adb8..e12a62a4eb 100644 --- a/src/Mod/Part/App/PropertyTopoShapeList.cpp +++ b/src/Mod/Part/App/PropertyTopoShapeList.cpp @@ -189,7 +189,7 @@ App::Property *PropertyTopoShapeList::Copy() const for (auto& shape : _lValueList) { BRepBuilderAPI_Copy copy(shape.getShape()); TopoDS_Shape* newShape = new TopoDS_Shape(copy.Shape()); - copiedShapes.push_back(*newShape); + copiedShapes.emplace_back(*newShape); } p->setValues(copiedShapes); return p; diff --git a/src/Mod/Part/App/TopoShape.cpp b/src/Mod/Part/App/TopoShape.cpp index 36ce36688a..f509d0ae92 100644 --- a/src/Mod/Part/App/TopoShape.cpp +++ b/src/Mod/Part/App/TopoShape.cpp @@ -693,14 +693,14 @@ void TopoShape::read(const char *FileName) if (!File.isReadable()) throw Base::FileException("File to load not existing or not readable", FileName); - if (File.hasExtension("igs") || File.hasExtension("iges")) { + if (File.hasExtension({"igs", "iges"})) { // read iges file importIges(File.filePath().c_str()); } - else if (File.hasExtension("stp") || File.hasExtension("step")) { + else if (File.hasExtension({"stp", "step"})) { importStep(File.filePath().c_str()); } - else if (File.hasExtension("brp") || File.hasExtension("brep")) { + else if (File.hasExtension({"brp", "brep"})) { // read brep-file importBrep(File.filePath().c_str()); } @@ -883,14 +883,14 @@ void TopoShape::write(const char *FileName) const { Base::FileInfo File(FileName); - if (File.hasExtension("igs") || File.hasExtension("iges")) { + if (File.hasExtension({"igs", "iges"})) { // write iges file exportIges(File.filePath().c_str()); } - else if (File.hasExtension("stp") || File.hasExtension("step")) { + else if (File.hasExtension({"stp", "step"})) { exportStep(File.filePath().c_str()); } - else if (File.hasExtension("brp") || File.hasExtension("brep")) { + else if (File.hasExtension({"brp", "brep"})) { // read brep-file exportBrep(File.filePath().c_str()); } diff --git a/src/Mod/Part/App/TopoShape.h b/src/Mod/Part/App/TopoShape.h index 1d86fba488..1ca3bca8ee 100644 --- a/src/Mod/Part/App/TopoShape.h +++ b/src/Mod/Part/App/TopoShape.h @@ -57,7 +57,7 @@ public: explicit NullShapeException(const char * sMessage); explicit NullShapeException(const std::string& sMessage); /// Destruction - ~NullShapeException() throw() override {} + ~NullShapeException() noexcept override {} }; /* A special sub-class to indicate boolean failures @@ -70,7 +70,7 @@ public: explicit BooleanException(const char * sMessage); explicit BooleanException(const std::string& sMessage); /// Destruction - ~BooleanException() throw() override {} + ~BooleanException() noexcept override {} }; class PartExport ShapeSegment : public Data::Segment diff --git a/src/Mod/Part/BOPTools/BOPFeatures.py b/src/Mod/Part/BOPTools/BOPFeatures.py new file mode 100644 index 0000000000..55d6dd424a --- /dev/null +++ b/src/Mod/Part/BOPTools/BOPFeatures.py @@ -0,0 +1,107 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +# *************************************************************************** +# * Copyright (c) 2023 Werner Mayer * +# * * +# * This file is part of FreeCAD. * +# * * +# * FreeCAD is free software: you can redistribute it and/or modify it * +# * under the terms of the GNU Lesser General Public License as * +# * published by the Free Software Foundation, either version 2.1 of the * +# * License, or (at your option) any later version. * +# * * +# * FreeCAD is distributed in the hope that it will be useful, but * +# * WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +# * Lesser General Public License for more details. * +# * * +# * You should have received a copy of the GNU Lesser General Public * +# * License along with FreeCAD. If not, see * +# * . * +# * * +# *************************************************************************** + +__title__ = "BOPTools.BOPFeatures module" +__author__ = "Werner Mayer" +__url__ = "http://www.freecad.org" +__doc__ = "Helper class to create the features for Boolean operations." + +import FreeCAD +import Part + +class BOPFeatures: + def __init__(self, doc): + self.doc = doc + + def make_section(self, inputNames): + obj = self.doc.addObject("Part::Section", "Section") + obj.Base = self.doc.getObject(inputNames[0]) + obj.Tool = self.doc.getObject(inputNames[1]) + self.copy_visual_attributes(obj, obj.Base) + target = self.move_input_objects([obj.Base, obj.Tool]) + if target: + target.addObject(obj) + return obj + + def make_cut(self, inputNames): + obj = self.doc.addObject("Part::Cut", "Cut") + obj.Base = self.doc.getObject(inputNames[0]) + obj.Tool = self.doc.getObject(inputNames[1]) + self.copy_visual_attributes(obj, obj.Base) + target = self.move_input_objects([obj.Base, obj.Tool]) + if target: + target.addObject(obj) + return obj + + def make_common(self, inputNames): + obj = self.doc.addObject("Part::Common", "Common") + obj.Base = self.doc.getObject(inputNames[0]) + obj.Tool = self.doc.getObject(inputNames[1]) + self.copy_visual_attributes(obj, obj.Base) + target = self.move_input_objects([obj.Base, obj.Tool]) + if target: + target.addObject(obj) + return obj + + def make_multi_common(self, inputNames): + obj = self.doc.addObject("Part::MultiCommon", "Common") + obj.Shapes = [self.doc.getObject(name) for name in inputNames] + self.copy_visual_attributes(obj, obj.Shapes[0]) + target = self.move_input_objects(obj.Shapes) + if target: + target.addObject(obj) + return obj + + def make_fuse(self, inputNames): + obj = self.doc.addObject("Part::Fuse", "Fusion") + obj.Base = self.doc.getObject(inputNames[0]) + obj.Tool = self.doc.getObject(inputNames[1]) + self.copy_visual_attributes(obj, obj.Base) + target = self.move_input_objects([obj.Base, obj.Tool]) + if target: + target.addObject(obj) + return obj + + def make_multi_fuse(self, inputNames): + obj = self.doc.addObject("Part::MultiFuse", "Fusion") + obj.Shapes = [self.doc.getObject(name) for name in inputNames] + self.copy_visual_attributes(obj, obj.Shapes[0]) + target = self.move_input_objects(obj.Shapes) + if target: + target.addObject(obj) + return obj + + def move_input_objects(self, objects): + targetGroup = None + for obj in objects: + obj.Visibility = False + parent = obj.getParent() + if parent: + parent.removeObject(obj) + targetGroup = parent + return targetGroup + + def copy_visual_attributes(self, target, source): + if target.ViewObject: + target.ViewObject.ShapeColor = source.ViewObject.ShapeColor + target.ViewObject.DisplayMode = source.ViewObject.DisplayMode diff --git a/src/Mod/Part/BOPTools/JoinAPI.py b/src/Mod/Part/BOPTools/JoinAPI.py index b4a77cbf0c..2fb8bb151a 100644 --- a/src/Mod/Part/BOPTools/JoinAPI.py +++ b/src/Mod/Part/BOPTools/JoinAPI.py @@ -27,7 +27,6 @@ __doc__ = "JoinFeatures functions that operate on shapes." import Part from . import ShapeMerge -from . import generalFuseIsAvailable from .GeneralFuseResult import GeneralFuseResult from .Utils import compoundLeaves @@ -76,12 +75,6 @@ def connect(list_of_shapes, tolerance = 0.0): if len(list_of_shapes) < 2: return Part.makeCompound(list_of_shapes) - if not generalFuseIsAvailable(): #fallback to legacy - result = list_of_shapes[0] - for i in range(1, len(list_of_shapes)): - result = connect_legacy(result, list_of_shapes[i], tolerance) - return result - pieces, map = list_of_shapes[0].generalFuse(list_of_shapes[1:], tolerance) ao = GeneralFuseResult(list_of_shapes, (pieces, map)) ao.splitAggregates() diff --git a/src/Mod/Part/BOPTools/__init__.py b/src/Mod/Part/BOPTools/__init__.py index bd66daa95a..2eb2dd23f6 100644 --- a/src/Mod/Part/BOPTools/__init__.py +++ b/src/Mod/Part/BOPTools/__init__.py @@ -62,16 +62,3 @@ def addCommands(): JoinFeatures.addCommands() SplitFeatures.addCommands() -def generalFuseIsAvailable(): - """generalFuseIsAvailable(): returns True if FreeCAD's Part.Shape.generalFuse is functional. - True if Part.OCC_VERSION >= 7.0.0.""" - import Part - if not hasattr(Part, "OCC_VERSION"): - return False - else: - ver_string = Part.OCC_VERSION - import re - match = re.match(r"([0-9]+)\.([0-9]+)\.([0-9]+)",ver_string) - major,minor,rev = match.groups() - major = int(major); minor = int(minor); rev = int(rev) - return (major,minor,rev)>=(7,0,0) diff --git a/src/Mod/Part/CMakeLists.txt b/src/Mod/Part/CMakeLists.txt index 96fafdeca9..bc28469487 100644 --- a/src/Mod/Part/CMakeLists.txt +++ b/src/Mod/Part/CMakeLists.txt @@ -44,6 +44,7 @@ endif(BUILD_GUI) set(BOPTools_Scripts BOPTools/__init__.py + BOPTools/BOPFeatures.py BOPTools/GeneralFuseResult.py BOPTools/JoinAPI.py BOPTools/JoinFeatures.py @@ -66,6 +67,7 @@ set(Part_tests parttests/part_test_objects.py parttests/regression_tests.py parttests/TopoShapeListTest.py + parttests/ColorPerFaceTest.py ) add_custom_target(PartScripts ALL SOURCES diff --git a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp index fdf24e9161..b6497236fe 100644 --- a/src/Mod/Part/Gui/Command.cpp +++ b/src/Mod/Part/Gui/Command.cpp @@ -316,6 +316,7 @@ void CmdPartCut::activated(int iMsg) } bool askUser = false; + std::vector names; for (std::vector::iterator it = Sel.begin(); it != Sel.end(); ++it) { App::DocumentObject* obj = it->getObject(); const TopoDS_Shape& shape = Part::Feature::getShape(obj); @@ -327,34 +328,14 @@ void CmdPartCut::activated(int iMsg) return; askUser = true; } - } - std::string FeatName = getUniqueObjectName("Cut"); + names.push_back(Base::Tools::quoted(it->getFeatName())); + } openCommand(QT_TRANSLATE_NOOP("Command", "Part Cut")); - doCommand(Doc,"App.activeDocument().addObject(\"Part::Cut\",\"%s\")",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.Base = App.activeDocument().%s",FeatName.c_str(),Sel[0].getFeatName()); - doCommand(Doc,"App.activeDocument().%s.Tool = App.activeDocument().%s",FeatName.c_str(),Sel[1].getFeatName()); - - // hide the input objects and remove them from the parent group - App::DocumentObjectGroup* targetGroup = nullptr; - for (std::vector::iterator it = Sel.begin(); it != Sel.end(); ++it) { - doCommand(Gui,"Gui.activeDocument().%s.Visibility=False",it->getFeatName()); - App::DocumentObjectGroup* group = it->getObject()->getGroup(); - if (group) { - targetGroup = group; - doCommand(Doc, "App.activeDocument().%s.removeObject(App.activeDocument().%s)", - group->getNameInDocument(), it->getFeatName()); - } - } - - if (targetGroup) { - doCommand(Doc, "App.activeDocument().%s.addObject(App.activeDocument().%s)", - targetGroup->getNameInDocument(), FeatName.c_str()); - } - - copyVisual(FeatName.c_str(), "ShapeColor", Sel[0].getFeatName()); - copyVisual(FeatName.c_str(), "DisplayMode", Sel[0].getFeatName()); + doCommand(Doc, "from BOPTools import BOPFeatures"); + doCommand(Doc, "bp = BOPFeatures.BOPFeatures(App.activeDocument())"); + doCommand(Doc, "bp.make_cut([%s])", Base::Tools::joinList(names).c_str()); updateActive(); commitCommand(); } @@ -411,11 +392,7 @@ void CmdPartCommon::activated(int iMsg) } bool askUser = false; - std::string FeatName = getUniqueObjectName("Common"); - std::stringstream str; - std::vector partObjects; - - str << "App.activeDocument()." << FeatName << ".Shapes = ["; + std::vector names; for (std::vector::iterator it = Sel.begin(); it != Sel.end(); ++it) { App::DocumentObject* obj = it->getObject(); const TopoDS_Shape& shape = Part::Feature::getShape(obj); @@ -427,34 +404,14 @@ void CmdPartCommon::activated(int iMsg) return; askUser = true; } - str << "App.activeDocument()." << it->getFeatName() << ","; - partObjects.push_back(*it); + + names.push_back(Base::Tools::quoted(it->getFeatName())); } - str << "]"; openCommand(QT_TRANSLATE_NOOP("Command", "Common")); - doCommand(Doc,"App.activeDocument().addObject(\"Part::MultiCommon\",\"%s\")",FeatName.c_str()); - runCommand(Doc,str.str().c_str()); - - // hide the input objects and remove them from the parent group - App::DocumentObjectGroup* targetGroup = nullptr; - for (std::vector::iterator it = partObjects.begin(); it != partObjects.end(); ++it) { - doCommand(Gui,"Gui.activeDocument().%s.Visibility=False",it->getFeatName()); - App::DocumentObjectGroup* group = it->getObject()->getGroup(); - if (group) { - targetGroup = group; - doCommand(Doc, "App.activeDocument().%s.removeObject(App.activeDocument().%s)", - group->getNameInDocument(), it->getFeatName()); - } - } - - if (targetGroup) { - doCommand(Doc, "App.activeDocument().%s.addObject(App.activeDocument().%s)", - targetGroup->getNameInDocument(), FeatName.c_str()); - } - - copyVisual(FeatName.c_str(), "ShapeColor", partObjects.front().getFeatName()); - copyVisual(FeatName.c_str(), "DisplayMode", partObjects.front().getFeatName()); + doCommand(Doc, "from BOPTools import BOPFeatures"); + doCommand(Doc, "bp = BOPFeatures.BOPFeatures(App.activeDocument())"); + doCommand(Doc, "bp.make_multi_common([%s])", Base::Tools::joinList(names).c_str()); updateActive(); commitCommand(); } @@ -511,11 +468,7 @@ void CmdPartFuse::activated(int iMsg) } bool askUser = false; - std::string FeatName = getUniqueObjectName("Fusion"); - std::stringstream str; - std::vector partObjects; - - str << "App.activeDocument()." << FeatName << ".Shapes = ["; + std::vector names; for (std::vector::iterator it = Sel.begin(); it != Sel.end(); ++it) { App::DocumentObject* obj = it->getObject(); const TopoDS_Shape& shape = Part::Feature::getShape(obj); @@ -527,34 +480,14 @@ void CmdPartFuse::activated(int iMsg) return; askUser = true; } - str << "App.activeDocument()." << it->getFeatName() << ","; - partObjects.push_back(*it); + + names.push_back(Base::Tools::quoted(it->getFeatName())); } - str << "]"; openCommand(QT_TRANSLATE_NOOP("Command", "Fusion")); - doCommand(Doc,"App.activeDocument().addObject(\"Part::MultiFuse\",\"%s\")",FeatName.c_str()); - runCommand(Doc,str.str().c_str()); - - // hide the input objects and remove them from the parent group - App::DocumentObjectGroup* targetGroup = nullptr; - for (std::vector::iterator it = partObjects.begin(); it != partObjects.end(); ++it) { - doCommand(Gui,"Gui.activeDocument().%s.Visibility=False",it->getFeatName()); - App::DocumentObjectGroup* group = it->getObject()->getGroup(); - if (group) { - targetGroup = group; - doCommand(Doc, "App.activeDocument().%s.removeObject(App.activeDocument().%s)", - group->getNameInDocument(), it->getFeatName()); - } - } - - if (targetGroup) { - doCommand(Doc, "App.activeDocument().%s.addObject(App.activeDocument().%s)", - targetGroup->getNameInDocument(), FeatName.c_str()); - } - - copyVisual(FeatName.c_str(), "ShapeColor", partObjects.front().getFeatName()); - copyVisual(FeatName.c_str(), "DisplayMode", partObjects.front().getFeatName()); + doCommand(Doc, "from BOPTools import BOPFeatures"); + doCommand(Doc, "bp = BOPFeatures.BOPFeatures(App.activeDocument())"); + doCommand(Doc, "bp.make_multi_fuse([%s])", Base::Tools::joinList(names).c_str()); updateActive(); commitCommand(); } @@ -1390,7 +1323,7 @@ void CmdPartMakeFace::activated(int iMsg) App::DocumentT doc(sketches.front()->getDocument()); std::stringstream str; str << doc.getDocumentPython() - << ".addObject(\"Part::Face\", \"Face\").Sources = ("; + << R"(.addObject("Part::Face", "Face").Sources = ()"; for (auto &obj : sketches) { str << App::DocumentObjectT(obj).getObjectPython() << ", "; } diff --git a/src/Mod/Part/Gui/CommandParametric.cpp b/src/Mod/Part/Gui/CommandParametric.cpp index 660bec3b6e..815b69617e 100644 --- a/src/Mod/Part/Gui/CommandParametric.cpp +++ b/src/Mod/Part/Gui/CommandParametric.cpp @@ -86,7 +86,7 @@ void CmdPartCylinder::activated(int iMsg) runCommand(Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); } -bool CmdPartCylinder::isActive(void) +bool CmdPartCylinder::isActive() { if (getActiveGuiDocument()) return true; @@ -128,7 +128,7 @@ void CmdPartBox::activated(int iMsg) runCommand(Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); } -bool CmdPartBox::isActive(void) +bool CmdPartBox::isActive() { if (getActiveGuiDocument()) return true; @@ -170,7 +170,7 @@ void CmdPartSphere::activated(int iMsg) runCommand(Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); } -bool CmdPartSphere::isActive(void) +bool CmdPartSphere::isActive() { if (getActiveGuiDocument()) return true; @@ -212,7 +212,7 @@ void CmdPartCone::activated(int iMsg) runCommand(Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); } -bool CmdPartCone::isActive(void) +bool CmdPartCone::isActive() { if (getActiveGuiDocument()) return true; @@ -254,7 +254,7 @@ void CmdPartTorus::activated(int iMsg) runCommand(Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); } -bool CmdPartTorus::isActive(void) +bool CmdPartTorus::isActive() { if (getActiveGuiDocument()) return true; @@ -265,7 +265,7 @@ bool CmdPartTorus::isActive(void) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -void CreateParamPartCommands(void) +void CreateParamPartCommands() { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); rcCmdMgr.addCommand(new CmdPartCylinder()); diff --git a/src/Mod/Part/Gui/CrossSections.cpp b/src/Mod/Part/Gui/CrossSections.cpp index 1f42410aaf..2e7430b057 100644 --- a/src/Mod/Part/Gui/CrossSections.cpp +++ b/src/Mod/Part/Gui/CrossSections.cpp @@ -57,7 +57,7 @@ using namespace PartGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; #undef CS_FUTURE // multi-threading causes some problems namespace PartGui { @@ -91,7 +91,7 @@ public: { return ""; } - std::vector getDisplayModes(void) const override + std::vector getDisplayModes() const override { return std::vector(); } @@ -243,7 +243,7 @@ void CrossSections::apply() for (std::vector::iterator it = obj.begin(); it != obj.end(); ++it) { Part::CrossSection cs(a,b,c,static_cast(*it)->Shape.getValue()); QFuture< std::list > future = QtConcurrent::mapped - (d, boost::bind(&Part::CrossSection::section, &cs, bp::_1)); + (d, std::bind(&Part::CrossSection::section, &cs, sp::_1)); future.waitForFinished(); QFuture< std::list >::const_iterator ft; TopoDS_Compound comp; diff --git a/src/Mod/Part/Gui/DlgBooleanOperation.cpp b/src/Mod/Part/Gui/DlgBooleanOperation.cpp index d84e08bf7c..981909c222 100644 --- a/src/Mod/Part/Gui/DlgBooleanOperation.cpp +++ b/src/Mod/Part/Gui/DlgBooleanOperation.cpp @@ -29,6 +29,7 @@ #endif #include +#include #include #include #include @@ -47,7 +48,7 @@ using namespace PartGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace PartGui { class BooleanOperationItem : public QTreeWidgetItem @@ -92,10 +93,12 @@ DlgBooleanOperation::DlgBooleanOperation(QWidget* parent) this, &DlgBooleanOperation::currentItemChanged); connect(ui->secondShape, &QTreeWidget::currentItemChanged, this, &DlgBooleanOperation::currentItemChanged); - this->connectNewObject = App::GetApplication().signalNewObject.connect(boost::bind - (&DlgBooleanOperation::slotCreatedObject, this, bp::_1)); - this->connectModObject = App::GetApplication().signalChangedObject.connect(boost::bind - (&DlgBooleanOperation::slotChangedObject, this, bp::_1, bp::_2)); + //NOLINTBEGIN + this->connectNewObject = App::GetApplication().signalNewObject.connect(std::bind + (&DlgBooleanOperation::slotCreatedObject, this, sp::_1)); + this->connectModObject = App::GetApplication().signalChangedObject.connect(std::bind + (&DlgBooleanOperation::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND findShapes(); } @@ -405,7 +408,7 @@ void DlgBooleanOperation::accept() return; } - std::string type, objName; + std::string method; App::DocumentObject* obj1 = activeDoc->getObject(shapeOne.c_str()); App::DocumentObject* obj2 = activeDoc->getObject(shapeTwo.c_str()); if (!obj1 || !obj2) { @@ -421,8 +424,7 @@ void DlgBooleanOperation::accept() tr("Performing union on non-solids is not possible")); return; } - type = "Part::Fuse"; - objName = activeDoc->getUniqueObjectName("Fusion"); + method = "make_fuse"; } else if (ui->interButton->isChecked()) { if (!hasSolids(obj1) || !hasSolids(obj2)) { @@ -430,8 +432,7 @@ void DlgBooleanOperation::accept() tr("Performing intersection on non-solids is not possible")); return; } - type = "Part::Common"; - objName = activeDoc->getUniqueObjectName("Common"); + method = "make_common"; } else if (ui->diffButton->isChecked()) { if (!hasSolids(obj1) || !hasSolids(obj2)) { @@ -439,55 +440,24 @@ void DlgBooleanOperation::accept() tr("Performing difference on non-solids is not possible")); return; } - type = "Part::Cut"; - objName = activeDoc->getUniqueObjectName("Cut"); + method = "make_cut"; } else if (ui->sectionButton->isChecked()) { - type = "Part::Section"; - objName = activeDoc->getUniqueObjectName("Section"); + method = "make_section"; } try { Gui::WaitCursor wc; activeDoc->openTransaction("Boolean operation"); + std::vector names; + names.push_back(Base::Tools::quoted(shapeOne.c_str())); + names.push_back(Base::Tools::quoted(shapeTwo.c_str())); Gui::Command::doCommand(Gui::Command::Doc, - "App.activeDocument().addObject(\"%s\",\"%s\")", - type.c_str(), objName.c_str()); + "from BOPTools import BOPFeatures"); Gui::Command::doCommand(Gui::Command::Doc, - "App.activeDocument().%s.Base = App.activeDocument().%s", - objName.c_str(),shapeOne.c_str()); + "bp = BOPFeatures.BOPFeatures(App.activeDocument())"); Gui::Command::doCommand(Gui::Command::Doc, - "App.activeDocument().%s.Tool = App.activeDocument().%s", - objName.c_str(),shapeTwo.c_str()); - Gui::Command::doCommand(Gui::Command::Gui, - "Gui.activeDocument().hide(\"%s\")",shapeOne.c_str()); - Gui::Command::doCommand(Gui::Command::Gui, - "Gui.activeDocument().hide(\"%s\")",shapeTwo.c_str()); - - // add/remove fromgroup if needed - App::DocumentObjectGroup* targetGroup = nullptr; - - App::DocumentObjectGroup* group1 = obj1->getGroup(); - if (group1) { - targetGroup = group1; - Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.removeObject(App.activeDocument().%s)", - group1->getNameInDocument(), obj1->getNameInDocument()); - } - - App::DocumentObjectGroup* group2 = obj2->getGroup(); - if (group2) { - targetGroup = group2; - Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.removeObject(App.activeDocument().%s)", - group2->getNameInDocument(), obj2->getNameInDocument()); - } - - if (targetGroup) { - Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.addObject(App.activeDocument().%s)", - targetGroup->getNameInDocument(), objName.c_str()); - } - - Gui::Command::copyVisual(objName.c_str(), "ShapeColor", shapeOne.c_str()); - Gui::Command::copyVisual(objName.c_str(), "DisplayMode", shapeOne.c_str()); + "bp.%s([%s])", method.c_str(), Base::Tools::joinList(names).c_str()); activeDoc->commitTransaction(); activeDoc->recompute(); } diff --git a/src/Mod/Part/Gui/DlgFilletEdges.cpp b/src/Mod/Part/Gui/DlgFilletEdges.cpp index 6ddf486d9e..c3302fd956 100644 --- a/src/Mod/Part/Gui/DlgFilletEdges.cpp +++ b/src/Mod/Part/Gui/DlgFilletEdges.cpp @@ -72,7 +72,7 @@ using namespace PartGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; FilletRadiusDelegate::FilletRadiusDelegate(QObject *parent) : QItemDelegate(parent) { @@ -244,10 +244,12 @@ DlgFilletEdges::DlgFilletEdges(FilletType type, Part::FilletBase* fillet, QWidge Gui::Selection().addSelectionGate(d->selection); d->fillet = fillet; + //NOLINTBEGIN d->connectApplicationDeletedObject = App::GetApplication().signalDeletedObject - .connect(boost::bind(&DlgFilletEdges::onDeleteObject, this, bp::_1)); + .connect(std::bind(&DlgFilletEdges::onDeleteObject, this, sp::_1)); d->connectApplicationDeletedDocument = App::GetApplication().signalDeleteDocument - .connect(boost::bind(&DlgFilletEdges::onDeleteDocument, this, bp::_1)); + .connect(std::bind(&DlgFilletEdges::onDeleteDocument, this, sp::_1)); + //NOLINTEND // set tree view with three columns FilletRadiusModel* model = new FilletRadiusModel(this); connect(model, &FilletRadiusModel::toggleCheckState, diff --git a/src/Mod/Part/Gui/DlgImportStep.ui b/src/Mod/Part/Gui/DlgImportStep.ui index e079dd2960..e5204385a7 100644 --- a/src/Mod/Part/Gui/DlgImportStep.ui +++ b/src/Mod/Part/Gui/DlgImportStep.ui @@ -56,7 +56,7 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. + Select this to import invisible objects. Import invisible objects diff --git a/src/Mod/Part/Gui/DlgPrimitives.h b/src/Mod/Part/Gui/DlgPrimitives.h index 9d2062eeb2..5b8779447d 100644 --- a/src/Mod/Part/Gui/DlgPrimitives.h +++ b/src/Mod/Part/Gui/DlgPrimitives.h @@ -85,7 +85,7 @@ class AbstractPrimitive : public QObject public: AbstractPrimitive(Part::Primitive* feature = nullptr); - virtual ~AbstractPrimitive() = default; + ~AbstractPrimitive() override = default; bool hasValidPrimitive() const; virtual const char* getDefaultName() const = 0; diff --git a/src/Mod/Part/Gui/Mirroring.cpp b/src/Mod/Part/Gui/Mirroring.cpp index 1841f678df..335df72fc5 100644 --- a/src/Mod/Part/Gui/Mirroring.cpp +++ b/src/Mod/Part/Gui/Mirroring.cpp @@ -142,7 +142,7 @@ bool Mirroring::accept() activeDoc->openTransaction("Mirroring"); QString shape, label; - QRegularExpression rx(QString::fromLatin1(" \\(Mirror #\\d+\\)$")); + QRegularExpression rx(QString::fromLatin1(R"( \(Mirror #\d+\)$)")); QList items = ui->shapes->selectedItems(); float normx=0, normy=0, normz=0; int index = ui->comboBox->currentIndex(); diff --git a/src/Mod/Part/Gui/Resources/translations/Part.ts b/src/Mod/Part/Gui/Resources/translations/Part.ts index f31d743541..bfaa2e42fd 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part - - - + + + Box selection @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part - + Check Geometry - + Analyzes Geometry For Errors @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part - + Color per face - + Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part - + Measure Angular - + Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part - + Clear All - + Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part - + Measure Linear - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1257,17 +1257,17 @@ between two vertices of them. CmdMeasureRefresh - + Part - + Refresh - + Recalculate the dimensions if the measured points have moved. @@ -1276,17 +1276,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part - + Toggle 3D - + Toggle on and off all direct dimensions, including angular. @@ -1295,17 +1295,17 @@ including angular. CmdMeasureToggleAll - + Part - + Toggle All - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. @@ -1314,17 +1314,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part - + Toggle Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1334,17 +1334,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part - + Boolean... - + Run a boolean operation with two shapes selected @@ -1408,17 +1408,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part - + Shape builder... - + Advanced utility to create shapes @@ -1426,17 +1426,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part - + Chamfer... - + Chamfer the selected edges of a shape @@ -1444,17 +1444,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part - + Intersection - + Make an intersection of two shapes @@ -1462,17 +1462,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part - + Compound tools - + Compound tools: working with lists of shapes. @@ -1480,17 +1480,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part - + Join objects... - + Join walled objects @@ -1498,17 +1498,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part - + Offset: - + Tools to offset shapes (construct parallel shapes) @@ -1516,17 +1516,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part - + Split objects... - + Shape splitting and Compsolid creation tools. @@ -1534,17 +1534,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part - + Make compound - + Make a compound of several shapes @@ -1572,17 +1572,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part - + Cross-sections... - + Cross-sections @@ -1664,17 +1664,17 @@ into its X, Y, and Z components. CmdPartExport - + Part - + Export CAD... - + Exports to a CAD file @@ -1682,17 +1682,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part - + Extrude... - + Extrude a selected sketch @@ -1700,17 +1700,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part - + Fillet... - + Fillet the selected edges of a shape @@ -1718,17 +1718,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part - + Union - + Make a union of several shapes @@ -1736,17 +1736,17 @@ into its X, Y, and Z components. CmdPartImport - + Part - + Import CAD... - + Imports a CAD file @@ -1754,17 +1754,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part - + Import curve network... - + Import a curve network @@ -1772,17 +1772,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part - + Loft... - + Utility to loft @@ -1790,17 +1790,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part - + Make face from wires - + Make face from set of wires (e.g. from a sketch) @@ -1808,17 +1808,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part - + Convert to solid - + Create solid from a shell or compound @@ -1826,17 +1826,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part - + Mirroring... - + Mirroring a selected shape @@ -1844,17 +1844,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part - + 3D Offset... - + Utility to offset in 3D @@ -1862,17 +1862,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part - + 2D Offset... - + Utility to offset planar shapes @@ -1934,17 +1934,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part - + Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1973,17 +1973,17 @@ of projection. CmdPartReverseShape - + Part - + Reverse shapes - + Reverse orientation of shapes @@ -1991,17 +1991,17 @@ of projection. CmdPartRevolve - + Part - + Revolve... - + Revolve a selected shape @@ -2009,17 +2009,17 @@ of projection. CmdPartRuledSurface - + Part - + Create ruled surface - + Create a ruled surface from either two Edges or two wires @@ -2027,17 +2027,17 @@ of projection. CmdPartSection - + Part - + Section - + Make a section of two shapes @@ -2045,12 +2045,12 @@ of projection. CmdPartSectionCut - + Persistent section cut - + Creates a persistent section cut of visible part objects @@ -2132,17 +2132,17 @@ of projection. CmdPartSweep - + Part - + Sweep... - + Utility to sweep @@ -2150,27 +2150,27 @@ of projection. CmdPartThickness - + Part - + Thickness... - + Utility to apply a thickness - + Wrong selection - + Selected shape is not a solid @@ -2222,67 +2222,67 @@ of projection. - + Part Cut - + Common - + Fusion - + Compound - + Section - + Import Part - + Part Import Curve Net - + Reverse - + Make face - + Make Offset - + Make 2D Offset - + Make Thickness - + Create ruled surface @@ -2591,32 +2591,32 @@ Note: The placement is expressed in local space of object being attached. - + Select a shape on the left side, first - + Select a shape on the right side, first - + Cannot perform a boolean operation with the same shape - + No active document available - + One of the selected objects doesn't exist anymore - + Performing union on non-solids is not possible @@ -2626,7 +2626,7 @@ Note: The placement is expressed in local space of object being attached. - + Performing difference on non-solids is not possible @@ -3285,7 +3285,7 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. + Select this to import invisible objects. @@ -5679,62 +5679,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection - + Select two shapes please. - - - + + + Non-solids selected - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. - + Select one shape or more, please. - + All CAD Files - + All Files - + You have to select either two edges or two wires. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_be.ts b/src/Mod/Part/Gui/Resources/translations/Part_be.ts index adce2d3d3b..b8536031c8 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_be.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_be.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Дэталь - - - + + + Box selection Вылучыць вобласць @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Дэталь - + Check Geometry Праверыць Геаметрыю - + Analyzes Geometry For Errors Даследуе геаметрыю на памылкі @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Дэталь - + Color per face Колер грані - + Set the color of each individual face of the selected object. Задаць колер кожнай асобнай грані абранага аб'екту. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Дэталь - + Measure Angular Вымярэнне вугла - + Measure the angle between two edges. Вымераць вугал паміж дзвюма рэбрамі. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Дэталь - + Clear All Ачысціць усё - + Clear all dimensions from the screen. Ачысціць усе вымярэнні з экрану. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Дэталь - + Measure Linear Вымярэнне лініі - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Дэталь - + Refresh Абнавіць - + Recalculate the dimensions if the measured points have moved. Пералічыце вымярэнні, @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Дэталь - + Toggle 3D Пераключыць трохмернае прадстаўленне - + Toggle on and off all direct dimensions, including angular. Уключае і выключае ўсе прамыя вымярэнні, у тым ліку вуглавыя. @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Дэталь - + Toggle All Пераключыць усё - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Уключае і выключае ўсе бачныя ў дадзены момант вымярэнні: @@ -1318,17 +1318,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Дэталь - + Toggle Delta Пераключыць рэжым дэльты - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1339,17 +1339,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Дэталь - + Boolean... Лагічная аперацыя... - + Run a boolean operation with two shapes selected Запусціць лагічную аперацыю з дзвюма абранымі фігурамі @@ -1413,17 +1413,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Дэталь - + Shape builder... Будаўнік фігур... - + Advanced utility to create shapes Пашыраныя службовыя інструменты для стварэння фігур @@ -1431,17 +1431,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Дэталь - + Chamfer... Фаска... - + Chamfer the selected edges of a shape Фаска на абраных рэбрах фігуры @@ -1449,17 +1449,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Дэталь - + Intersection Перасячэнне - + Make an intersection of two shapes Зрабіць скрыжаванне дзвюх фігур @@ -1467,17 +1467,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Дэталь - + Compound tools Інструмент злучэння - + Compound tools: working with lists of shapes. Інструмент злучэння: праца з спісам фігур. @@ -1485,17 +1485,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Дэталь - + Join objects... Аб'яднаць аб'екты... - + Join walled objects Злучыць аб'екты сцяны @@ -1503,17 +1503,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Дэталь - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Інструменты для зрушэння фігур (пабудовы паралельных фігур) @@ -1521,17 +1521,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Дэталь - + Split objects... Падзяліць аб'екты... - + Shape splitting and Compsolid creation tools. Інструменты для падзелу фігур і стварэння складаных цел. @@ -1539,17 +1539,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Дэталь - + Make compound Зрабіць злучэнне - + Make a compound of several shapes Зрабіць злучэнне з некалькіх фігур @@ -1577,17 +1577,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Дэталь - + Cross-sections... Папярочныя перасекі... - + Cross-sections Папярочныя перасекі @@ -1669,17 +1669,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Дэталь - + Export CAD... Экспартаваць у CAD... - + Exports to a CAD file Экспартаваць у файл CAD @@ -1687,17 +1687,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Дэталь - + Extrude... Выдушыць... - + Extrude a selected sketch Выдушыць абраны эскіз @@ -1705,17 +1705,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Дэталь - + Fillet... Акругленне... - + Fillet the selected edges of a shape Акругліць абраныя рэбры ў фігуры @@ -1723,17 +1723,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Дэталь - + Union Аб'яднанне - + Make a union of several shapes Зрабіць аб'яднанне некалькі фігур @@ -1741,17 +1741,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Дэталь - + Import CAD... Імпартаваць з CAD... - + Imports a CAD file Імпартаваць файл CAD @@ -1759,17 +1759,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Дэталь - + Import curve network... Імпартаваць сетку крывых... - + Import a curve network Імпартаваць сетку крывых @@ -1777,17 +1777,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Дэталь - + Loft... Профіль... - + Utility to loft Службовыя інструменты для профілю @@ -1795,17 +1795,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Дэталь - + Make face from wires Зрабіць грань з ломаных ліній - + Make face from set of wires (e.g. from a sketch) Зрабіць грань з набору ломаных ліній (напрыклад з эскізу) @@ -1813,17 +1813,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Дэталь - + Convert to solid Пераўтварыць у суцэльнае цела - + Create solid from a shell or compound Стварыць суцэльнае цела з абалонкі ці злучэння @@ -1831,17 +1831,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Дэталь - + Mirroring... Сіметрыя... - + Mirroring a selected shape Сіметрычнае пераўтварэнне абранай фігуры @@ -1849,17 +1849,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Дэталь - + 3D Offset... Трохмернае зрушэнне... - + Utility to offset in 3D Службовыя інструменты зрушэння ў трохмернай прасторы @@ -1867,17 +1867,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Дэталь - + 2D Offset... Дзвюхмернае зрушэнне... - + Utility to offset planar shapes Службовыя інструменты зрушэння плоскіх фігур @@ -1939,17 +1939,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Дэталь - + Create projection on surface... Стварыць праекцыю на паверхні... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1981,17 +1981,17 @@ of projection. CmdPartReverseShape - + Part Дэталь - + Reverse shapes Перавярнуць фігуры - + Reverse orientation of shapes Адваротная арыентацыя фігур @@ -1999,17 +1999,17 @@ of projection. CmdPartRevolve - + Part Дэталь - + Revolve... Вярчэнне... - + Revolve a selected shape Вярчэнне абранай фігуры @@ -2017,17 +2017,17 @@ of projection. CmdPartRuledSurface - + Part Дэталь - + Create ruled surface Стварыць лінейную паверхню - + Create a ruled surface from either two Edges or two wires Стварыць лінейную паверхню з дзвюх рэбраў ці з дзвюх ломаных ліній @@ -2035,17 +2035,17 @@ of projection. CmdPartSection - + Part Дэталь - + Section Перасек - + Make a section of two shapes Зрабіць перасек з дзвюх фігур @@ -2053,12 +2053,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Сталы разрэз перасеку - + Creates a persistent section cut of visible part objects Стварыць сталы разрэз перасеку з аб'ектаў бачнай дэталі @@ -2140,17 +2140,17 @@ of projection. CmdPartSweep - + Part Дэталь - + Sweep... Выцягнуць... - + Utility to sweep Службовыя інструменты выцягвання па траекторыі @@ -2158,27 +2158,27 @@ of projection. CmdPartThickness - + Part Дэталь - + Thickness... Таўшчыня... - + Utility to apply a thickness Службовыя інструменты для надання таўшчыні - + Wrong selection Няправільны выбар - + Selected shape is not a solid Абраная фігура не суцэльная @@ -2230,67 +2230,67 @@ of projection. Стварэнне Дэталі навакольнага куба - + Part Cut Разрэзаць дэталь - + Common Перасек - + Fusion Зліццё - + Compound Злучэнне - + Section Перасек - + Import Part Імпартаваць дэталь - + Part Import Curve Net Імпартаваць у дэталь сетку крывых - + Reverse Перавярнуць - + Make face Зрабіць грань - + Make Offset Зрабіць зрушэнне - + Make 2D Offset Зрабіць дзвюхмернае зрушэнне - + Make Thickness Зрабіць таўшчыню - + Create ruled surface Стварыць лінейную паверхню @@ -2602,32 +2602,32 @@ Note: The placement is expressed in local space of object being attached.Інвертаваць выбар - + Select a shape on the left side, first Спачатку абярыце фігуру з левага боку - + Select a shape on the right side, first Спачатку абярыце фігуру з правага боку - + Cannot perform a boolean operation with the same shape Не атрымалася выканаць лагічную аперацыю з той жа фігурай - + No active document available Бягучы дакумент недаступны - + One of the selected objects doesn't exist anymore Адзін з выбраных аб'ектаў больш не існуе - + Performing union on non-solids is not possible Выкананне злучэння на несуцэльных целах немагчыма @@ -2637,7 +2637,7 @@ Note: The placement is expressed in local space of object being attached.Выкананне скрыжавання на несуцэльных целах немагчыма - + Performing difference on non-solids is not possible Выкананне аднімання на несуцэльных целах немагчыма @@ -3308,8 +3308,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Абраць наладу, каб не імпартаваць аніякіх нябачных аб'ектаў. + Select this to import invisible objects. + Абраць наладу, каб імпартаваць нябачныя аб'екты. @@ -5728,63 +5728,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Няправільны выбар - + Select two shapes please. Абярыце, калі ласка, дзве фігуры. - - - + + + Non-solids selected Абраны несуцэльныя целы - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Выкарыстанне несуцэльных цел для лагічных аперацый можа прывесці да нечаканых вынікаў. Ці хочаце вы працягнуць? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Абярыце, калі ласка, дзве фігуры ці болей. Альбо абярыце адно злучэнне, якое змяшчае дзве ці болей фігуры, каб вылічыць агульнае паміж імі. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Абярыце, калі ласка, дзве фігуры ці болей. Альбо абярыце адно злучэнне, якое змяшчае дзве ці болей фігуры, каб аб'яднаць іх. - + Select one shape or more, please. Абярыце, калі ласка, адну фігуру ці болей. - + All CAD Files Усе файлы CAD - + All Files Усе файлы - + You have to select either two edges or two wires. Вы павінны абраць два рабра альбо дзве ломаныя лініі. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ca.ts b/src/Mod/Part/Gui/Resources/translations/Part_ca.ts index 5157b4e775..27d6a20d9d 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ca.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ca.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Peça - - - + + + Box selection Quadre de selecció @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Peça - + Check Geometry Comprovar la geometria - + Analyzes Geometry For Errors Busca errors de geometria @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Peça - + Color per face Color per cara - + Set the color of each individual face of the selected object. Estableix el color de cada cara individual de l'objecte seleccionat. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Peça - + Measure Angular Mesura Angular - + Measure the angle between two edges. Mesura l'angle entre dues vores. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Peça - + Clear All Neteja Tot - + Clear all dimensions from the screen. Esborra totes les dimensions de la pantalla. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Peça - + Measure Linear Mesura Lineal - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ entre dos vèrtexs d'ells. CmdMeasureRefresh - + Part Peça - + Refresh Actualitza - + Recalculate the dimensions if the measured points have moved. Torna a calcular les dimensions @@ -1279,17 +1279,17 @@ si els punts mesurats s'han mogut. CmdMeasureToggle3d - + Part Peça - + Toggle 3D Alterna 3D - + Toggle on and off all direct dimensions, including angular. Activa i desactiva totes les dimensions directes, @@ -1299,17 +1299,17 @@ inclòs angular. CmdMeasureToggleAll - + Part Peça - + Toggle All Canviar tot - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Activa i desactiva totes les dimensions visibles actualment, @@ -1319,17 +1319,17 @@ directe, ortogonal i angular. CmdMeasureToggleDelta - + Part Peça - + Toggle Delta Cambia a Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ en els seus components X, Y i Z. CmdPartBoolean - + Part Peça - + Boolean... Booleà... - + Run a boolean operation with two shapes selected Fer operació booleana amb dues formes seleccionats @@ -1415,17 +1415,17 @@ en els seus components X, Y i Z. CmdPartBuilder - + Part Peça - + Shape builder... Construïr forma... - + Advanced utility to create shapes Utilitat avançada per crear formes @@ -1433,17 +1433,17 @@ en els seus components X, Y i Z. CmdPartChamfer - + Part Peça - + Chamfer... Xamfrà... - + Chamfer the selected edges of a shape Crea un xamfrà a les vores seleccionades @@ -1451,17 +1451,17 @@ en els seus components X, Y i Z. CmdPartCommon - + Part Peça - + Intersection Intersecció - + Make an intersection of two shapes Fer una intersecció de dues formes @@ -1469,17 +1469,17 @@ en els seus components X, Y i Z. CmdPartCompCompoundTools - + Part Peça - + Compound tools Eïnes compostes - + Compound tools: working with lists of shapes. Eines compostes: treballant amb llistes de formes. @@ -1487,17 +1487,17 @@ en els seus components X, Y i Z. CmdPartCompJoinFeatures - + Part Peça - + Join objects... Unir objectes... - + Join walled objects Unir-se als objectes @@ -1505,17 +1505,17 @@ en els seus components X, Y i Z. CmdPartCompOffset - + Part Peça - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Eines per compensar les formes (construir formes paral·leles) @@ -1523,35 +1523,35 @@ en els seus components X, Y i Z. CmdPartCompSplitFeatures - + Part Peça - + Split objects... Divisió d'objectes... - + Shape splitting and Compsolid creation tools. - Shape splitting and Compsolid creation tools. + Eines de separació de formes i de creació de Compsolid. CmdPartCompound - + Part Peça - + Make compound Fer composicio - + Make a compound of several shapes Unir diverses formes @@ -1579,17 +1579,17 @@ en els seus components X, Y i Z. CmdPartCrossSections - + Part Peça - + Cross-sections... Interseccions... - + Cross-sections Interseccions @@ -1671,17 +1671,17 @@ en els seus components X, Y i Z. CmdPartExport - + Part Peça - + Export CAD... Exportar CAD... - + Exports to a CAD file Exporta a fitxer CAD @@ -1689,17 +1689,17 @@ en els seus components X, Y i Z. CmdPartExtrude - + Part Peça - + Extrude... Extrusió... - + Extrude a selected sketch Extrudeix el croquis seleccionat @@ -1707,17 +1707,17 @@ en els seus components X, Y i Z. CmdPartFillet - + Part Peça - + Fillet... Arrodoniment... - + Fillet the selected edges of a shape Arrodonir les arestes seleccionades @@ -1725,17 +1725,17 @@ en els seus components X, Y i Z. CmdPartFuse - + Part Peça - + Union Unió - + Make a union of several shapes Unir diverses formes @@ -1743,17 +1743,17 @@ en els seus components X, Y i Z. CmdPartImport - + Part Peça - + Import CAD... Importar CAD... - + Imports a CAD file Importa un fitxer CAD @@ -1761,17 +1761,17 @@ en els seus components X, Y i Z. CmdPartImportCurveNet - + Part Peça - + Import curve network... Importar xarxa de corbes... - + Import a curve network Importar una xarxa de corbes @@ -1779,17 +1779,17 @@ en els seus components X, Y i Z. CmdPartLoft - + Part Peça - + Loft... Loft. Recobriment... - + Utility to loft Utilitats de projecció @@ -1797,17 +1797,17 @@ en els seus components X, Y i Z. CmdPartMakeFace - + Part Peça - + Make face from wires Fer cara de malla - + Make face from set of wires (e.g. from a sketch) Crea una cara a partir d'un conjunt de filferro (p ex. d'un esbós) @@ -1815,17 +1815,17 @@ en els seus components X, Y i Z. CmdPartMakeSolid - + Part Peça - + Convert to solid Convertir a sòlid - + Create solid from a shell or compound Crea un sòlid a partir d'un entorn o compost @@ -1833,17 +1833,17 @@ en els seus components X, Y i Z. CmdPartMirror - + Part Peça - + Mirroring... Duplicant... - + Mirroring a selected shape Duplica Forma seleccionada @@ -1851,17 +1851,17 @@ en els seus components X, Y i Z. CmdPartOffset - + Part Peça - + 3D Offset... Offset 3D... - + Utility to offset in 3D Utilitat per a Offset ò separar en 3D @@ -1869,17 +1869,17 @@ en els seus components X, Y i Z. CmdPartOffset2D - + Part Peça - + 2D Offset... 2D Offset... ( Compensació)... - + Utility to offset planar shapes Utilitat per a separar les formes d'un pla @@ -1912,12 +1912,12 @@ en els seus components X, Y i Z. Create points object from geometry - Create points object from geometry + Crea objecte de punts a partir des de la geometria Create selectable points object from selected geometric object - Create selectable points object from selected geometric object + Creeu un objecte de punts seleccionables a partir de l'objecte geomètric @@ -1941,17 +1941,17 @@ en els seus components X, Y i Z. CmdPartProjectionOnSurface - + Part Peça - + Create projection on surface... Crea projecció a la superfície... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ de projecció. CmdPartReverseShape - + Part Peça - + Reverse shapes Formes inverses - + Reverse orientation of shapes Invertir Orientació formes @@ -2001,17 +2001,17 @@ de projecció. CmdPartRevolve - + Part Peça - + Revolve... Revolucionar... - + Revolve a selected shape Girar forma seleccionada @@ -2019,17 +2019,17 @@ de projecció. CmdPartRuledSurface - + Part Peça - + Create ruled surface Crea una superfície reglada - + Create a ruled surface from either two Edges or two wires Crear una superfície reglada ja sigui de dos vores o dos filferros @@ -2037,17 +2037,17 @@ de projecció. CmdPartSection - + Part Peça - + Section Secció - + Make a section of two shapes Fer una secció de dues formes @@ -2055,12 +2055,12 @@ de projecció. CmdPartSectionCut - + Persistent section cut Tall de secció persistent - + Creates a persistent section cut of visible part objects Crea un tall de secció persistent d'objectes de part visibles @@ -2142,17 +2142,17 @@ de projecció. CmdPartSweep - + Part Peça - + Sweep... Escombrat... - + Utility to sweep Utilitat per escombrar @@ -2160,27 +2160,27 @@ de projecció. CmdPartThickness - + Part Peça - + Thickness... Espessor... - + Utility to apply a thickness Utilitat per aplicar un gruix - + Wrong selection Selecció incorrecta - + Selected shape is not a solid La forma seleccionada no és un sòlid @@ -2232,67 +2232,67 @@ de projecció. Creació peça de caixa - + Part Cut Part de tall - + Common Comú - + Fusion Fusion - + Compound Composició - + Section Secció - + Import Part Importar Part - + Part Import Curve Net Importar Curva Net de Peça - + Reverse Revers - + Make face Fer cara - + Make Offset Desplassar, Ofsset - + Make 2D Offset Desplassar 2D - + Make Thickness Donar Gruix - + Create ruled surface Crea una superfície reglada @@ -2304,7 +2304,7 @@ de projecció. Points from geometry - Points from geometry + Punts des de la geometria @@ -2604,32 +2604,32 @@ Nota: La ubicació s'expressa en l'espai local de l'objecte que s'adjunta.Intercanvia selecció - + Select a shape on the left side, first Seleccioneu forma de l'esquerra primer - + Select a shape on the right side, first Seleccioneu forma de la dreta primer - + Cannot perform a boolean operation with the same shape No es pot realitzar una operació booleana amb la mateixa forma - + No active document available Document actiu no disponible - + One of the selected objects doesn't exist anymore Un dels objectes seleccionats no existeix - + Performing union on non-solids is not possible La unió dels no sòlids no és possible de fer @@ -2639,7 +2639,7 @@ Nota: La ubicació s'expressa en l'espai local de l'objecte que s'adjunta.Realització d'intersecció dels no sòlids no és possible - + Performing difference on non-solids is not possible Realització de diferència sobre els no sòlids no és possible @@ -2753,7 +2753,7 @@ dins de la propietat Placement Use legacy export function - Use legacy export function + Useu la funció d'exportació heretada @@ -2957,7 +2957,7 @@ Si les dues longituds són zero, s'utilitza la magnitud de la direcció. Unknown error - Unknown error + Error desconegut @@ -3311,8 +3311,8 @@ durant la lectura del fitxer (detalls més lents però més alts). - Select this to not import any invisible objects. - Seleccioneu-ho per no importar cap objecte invisible. + Select this to import invisible objects. + Select this to import invisible objects. @@ -4097,7 +4097,7 @@ durant la lectura del fitxer (detalls més lents però més alts). Unknown error - Unknown error + Error desconegut @@ -4669,10 +4669,8 @@ s'utilitzarà el vector normal del pla d'esbós will be taken from the cut objects. Works only properly if all objects have the same values. - If checked, the color and transparency -will be taken from the cut objects. -Works only properly if all objects -have the same values. + Si està marcat, el color i la transparència s'agafaran dels objectes tallats. +Només funcionarà correctament si tots els objectes tenen els mateixos valors. @@ -4697,9 +4695,7 @@ have the same values. Allows to cut objects intersecting each other for the price that all cut objects will get the same color - Allows to cut objects intersecting each other -for the price that all cut objects -will get the same color + Permet tallar objectes que interaccionin entre ells. Pel preu que tots els objectes tallats pendran el mateix color @@ -4749,7 +4745,7 @@ només seran visibles els talls creats Box selection for shells is not supported - Box selection for shells is not supported + No se suporta la caixa de selecció de carcasses (shell) @@ -5134,38 +5130,35 @@ de l'objecte que s'adjunta. Skip this settings page and run the geometry check automatically. - Skip this settings page and run the geometry check automatically. + Ometeu aquesta pàgina de configuració i executeu la comprovació de geometria automàticament. Default: false - Default: false + Per defecte: fals Run boolean operation check - Run boolean operation check + Feu córrer la comprovació d'operació booleana Extra boolean operations check that can sometimes find errors that the standard BRep geometry check misses. These errors do not always mean the checked object is unusable. Default: false - Extra boolean operations check that can sometimes find errors that -the standard BRep geometry check misses. These errors do not always -mean the checked object is unusable. Default: false + La comprovació extra d'operacions booleanes fa que a cops es trobin errors que la comprovació estàndard geometria Brep no troba. Aquests errors no sempre significa que l'objecte comprovat és inservible. Per defecte: fals Single-threaded - Single-threaded + Un sol fil Run the geometry check in a single thread. This is slower, but more stable. Default: false - Run the geometry check in a single thread. This is slower, -but more stable. Default: false + Fa córrer la comprovació de geometria en un sol fil. Això és més lent però més estable. Per defecte: fals @@ -5175,7 +5168,7 @@ but more stable. Default: false Log errors to report view. Default: true - Log errors to report view. Default: true + Registrar errors a la vista d'informes. Per defecte: veritat @@ -5186,8 +5179,7 @@ but more stable. Default: false Expand shape content. Changes will take effect next time you use the check geometry tool. Default: false - Expand shape content. Changes will take effect next time you use -the check geometry tool. Default: false + Expandeix el contingut de formes. Els canvis tindran efecte el següent cop que useu l'eina de comprovació de geometria. Per defecte: fals @@ -5198,35 +5190,34 @@ the check geometry tool. Default: false Show advanced shape content. Changes will take effect next time you use the check geometry tool. Default: false - Show advanced shape content. Changes will take effect next time you use -the check geometry tool. Default: false + Mostra el contingut avançat de formes. Els canvis tindran efecte el següent cop que useu l'eina de comprovació de geometria. Per defecte: fals Individual boolean operation checks: - -Individual boolean operation checks: + +Comprovacions d'operació booleana individual: Bad type - Bad type + Tipus dolent Self-intersect - Self-intersect + Auto intersecció Too small edge - Too small edge + Vora massa petita Nonrecoverable face - Nonrecoverable face + Cara irrecuperable @@ -5236,77 +5227,77 @@ Individual boolean operation checks: Incompatibility of face - Incompatibility of face + Incompatibilitat de cara Incompatibility of vertex - Incompatibility of vertex + Incompatibilitat de vèrtex Incompatibility of edge - Incompatibility of edge + Incompatibilitat de vora Invalid curve on surface - Invalid curve on surface + Corba invàlida a la superfície Check for bad argument types. Default: true - Check for bad argument types. Default: true + Comprova tipus d'argument dolents. Per defecte: veritat Check for self-intersections. Default: true - Check for self-intersections. Default: true + Comprova auto interaccions. Per defecte: veritat Check for edges that are too small. Default: true - Check for edges that are too small. Default: true + Comproveu vores que són massa petites, Per defecte: veritat Check for nonrecoverable faces. Default: true - Check for nonrecoverable faces. Default: true + Comprovar cares irrecuperables. Per defecte: veritat Check for continuity. Default: true - Check for continuity. Default: true + Comprovar continuïtat. Per defecte: veritat Check for incompatible faces. Default: true - Check for incompatible faces. Default: true + Comprovar cares incompatibles. Per defecte: veritat Check for incompatible vertices. Default: true - Check for incompatible vertices. Default: true + Comprovar vèrtex incompatibles. Per defecte: veritat Check for incompatible edges. Default: true - Check for incompatible edges. Default: true + Comprovar vores incompatibles. Per defecte: veritat Check for invalid curves on surfaces. Default: true - Check for invalid curves on surfaces. Default: true + Comprovar corbes invàlides a superfícies. Per defecte: veritat Run check - Run check + Fer córrer comprovació Results - Results + Resultats @@ -5314,7 +5305,7 @@ Individual boolean operation checks: Check Geometry Results - Check Geometry Results + Comprovar resultats geometria @@ -5324,7 +5315,7 @@ Individual boolean operation checks: Boolean operation check... - Boolean operation check... + Comprovar operacions booleanes... @@ -5340,25 +5331,25 @@ Individual boolean operation checks: Checking - Checking + Comprovant %1 processed out of %2 selected - %1 processed out of %2 selected + %1 processats de %2 seleccionats %n invalid shapes. - %n invalid shapes. + %n forma invàlida. %n invalid shapes. Checked object - Checked object + Objectes comprovats @@ -5387,7 +5378,7 @@ Individual boolean operation checks: Click on the faces in the 3D view to select them - Click on the faces in the 3D view to select them + Clica les cares en la vista 3D per a seleccionar-les @@ -5565,7 +5556,7 @@ by dragging a selection rectangle in the 3D view Box selection... - Box selection... + Caixa de selecció... @@ -5607,7 +5598,7 @@ in the 3D view for the sweep path. Tube - Tube + Tub @@ -5617,12 +5608,12 @@ in the 3D view for the sweep path. Outer radius - Outer radius + Radi extern Inner radius - Inner radius + Radi intern @@ -5711,7 +5702,7 @@ in the 3D view for the sweep path. Part and Part Design workbench - Part and Part Design workbench + Banc de treball Peça i disseny de peces (Part i Part design) @@ -5719,7 +5710,7 @@ in the 3D view for the sweep path. Part/Part Design - Part/Part Design + Peça/Disseny de peces @@ -5729,63 +5720,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Selecció incorrecta - + Select two shapes please. Seleccioneu dos formes si vos plau. - - - + + + Non-solids selected S' han seleccionat objectes no sòlids - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Usar objectes no sòlids per operacions booleanes pot causar resultats inesperats. ¿Vols continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Seleccionar dues formes o més, si us plau. O bé, seleccioneu un compost que conté dues o més formes de calcular comú entre. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Seleccionar dues formes o més, si us plau. O bé, seleccioneu un compost que conté dues o més formes per ser fusionats. - + Select one shape or more, please. Seleccioneu una forma o més, si us plau. - + All CAD Files Tots els arxius de CAD - + All Files Tots els fitxers - + You have to select either two edges or two wires. Heu de seleccionar dues vores o dos fils. @@ -6026,62 +6017,62 @@ Do you want to continue? Boolean operation: Unknown check - Boolean operation: Unknown check + Operació booleana: comprovació desconeguda Boolean operation: Bad type - Boolean operation: Bad type + Operació booleana: tipus dolent Boolean operation: Self-intersection found - Boolean operation: Self-intersection found + Operació booleana: auto intersecció trobada Boolean operation: Edge too small - Boolean operation: Edge too small + Operació booleana: vora massa petita Boolean operation: Non-recoverable face - Boolean operation: Non-recoverable face + Operació booleana: cara irrecuperable Boolean operation: Incompatibility of vertex - Boolean operation: Incompatibility of vertex + Operació booleana: incompatibilitat de vèrtex Boolean operation: Incompatibility of edge - Boolean operation: Incompatibility of edge + Operació booleana: incompatibilat de vora Boolean operation: Incompatibility of face - Boolean operation: Incompatibility of face + Operació booleana: incompatibilitat de cara Boolean operation: Aborted - Boolean operation: Aborted + Operació booleana: avortada Boolean operation: GeomAbs_C0 - Boolean operation: GeomAbs_C0 + Operació booleana: GeomAbs_C0 Boolean operation: Invalid curve on surface - Boolean operation: Invalid curve on surface + Operació booleana: corba invàlida a la superfície Boolean operation: Not valid - Boolean operation: Not valid + Operació booleana: no vàlida @@ -6168,17 +6159,17 @@ Do you want to continue? Create tube - Create tube + Crea tub Distance in parameter space - Distance in parameter space + Distància a l'espai de paràmetres Enter distance: - Enter distance: + Entra distància: @@ -6249,12 +6240,12 @@ Do you want to continue? Create tube - Create tube + Crea tub Creates a tube - Creates a tube + Crea un tub @@ -6262,12 +6253,12 @@ Do you want to continue? Computing the result failed with an error: - Computing the result failed with an error: + El càlcul del resultat ha fallat amb un error: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + Clica 'Continuar' per crear igualment la característica o 'Avortar' per cancel·lar. @@ -6275,7 +6266,7 @@ Do you want to continue? Bad selection - Bad selection + Mala selecció @@ -6285,17 +6276,17 @@ Do you want to continue? Select at least two objects, or one or more compounds - Select at least two objects, or one or more compounds + Selecciona almenys dos objectes, o un o més compostos Select base object, then the object to embed, and then invoke this tool. - Select base object, then the object to embed, and then invoke this tool. + Selecciona l'objecte base, després l'objecte a incrustar, i després invoca aquesta eina. Select the object to make a cutout in, then the object that should fit into the cutout, and then invoke this tool. - Select the object to make a cutout in, then the object that should fit into the cutout, and then invoke this tool. + Seleccioneu l'objecte per fer un retall, després l'objecte que hauria d'encaixar al retall i després invoqueu aquesta eina. @@ -6303,12 +6294,12 @@ Do you want to continue? Connect objects - Connect objects + Connecta objectes Fuses objects, taking care to preserve voids. - Fuses objects, taking care to preserve voids. + Fusiona objectes, tenint cura de preservar els buits. @@ -6316,12 +6307,12 @@ Do you want to continue? Embed object - Embed object + Incrusta objectes Fuses one object into another, taking care to preserve voids. - Fuses one object into another, taking care to preserve voids. + Fusiona un objecte amb un altre, tenint cura de preservar els buits. @@ -6329,12 +6320,12 @@ Do you want to continue? Cutout for object - Cutout for object + Retall per a objecte Makes a cutout in one object to fit another object. - Makes a cutout in one object to fit another object. + Fa un retall en un objecte per adaptar-se a un altre objecte. @@ -6344,14 +6335,14 @@ Do you want to continue? Computing the result failed with an error: - Computing the result failed with an error: + El càlcul del resultat ha fallat amb un error: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + Clica 'Continuar' per crear igualment la característica o 'Avortar' per cancel·lar. @@ -6362,7 +6353,7 @@ Do you want to continue? Bad selection - Bad selection + Mala selecció @@ -6376,7 +6367,7 @@ Do you want to continue? Select at least two objects, or one or more compounds. If only one compound is selected, the compounded shapes will be intersected between each other (otherwise, compounds with self-intersections are invalid). - Select at least two objects, or one or more compounds. If only one compound is selected, the compounded shapes will be intersected between each other (otherwise, compounds with self-intersections are invalid). + Selecciona almenys dos objectes o un o més compostos. Si només se selecciona un compost, les formes compostes es tallaran entre si (en cas contrari, els compostos amb autointerseccions no són vàlids). @@ -6398,31 +6389,31 @@ Do you want to continue? area, or length, or by choosing specific items. If a second object is selected, it will be used as reference, for example, for collision or distance filtering. - Filter out objects from a selected compound by characteristics like volume, -area, or length, or by choosing specific items. -If a second object is selected, it will be used as reference, for example, -for collision or distance filtering. + Filtra els objectes d'un compost seleccionat per característiques com el volum, +àrea, o longitud, o escollint elements específics. +Si se selecciona un segon objecte, s'utilitzarà com a referència, per exemple, +per al filtratge de col·lisions o distància. First select a shape that is a compound. If a second object is selected (optional) it will be treated as a stencil. - First select a shape that is a compound. If a second object is selected (optional) it will be treated as a stencil. + Primer seleccioneu una forma que sigui composta. Si se selecciona un segon objecte (opcional), es tractarà com una plantilla. Bad selection - Bad selection + Mala selecció Computing the result failed with an error: - Computing the result failed with an error: + El càlcul del resultat ha fallat amb un error: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + Clica 'Continuar' per crear igualment la característica o 'Avortar' per cancel·lar. @@ -6430,24 +6421,24 @@ for collision or distance filtering. Explode compound - Explode compound + Esclata el compost Split up a compound of shapes into separate objects. It will create a 'Compound Filter' for each shape. - Split up a compound of shapes into separate objects. -It will create a 'Compound Filter' for each shape. + Divideix un compost de formes en objectes separats. +Crearà un "Filtre compost" per a cada forma. First select a shape that is a compound. - First select a shape that is a compound. + Primer selecciona una forma que sigui un compost. Bad selection - Bad selection + Mala selecció @@ -6455,22 +6446,22 @@ It will create a 'Compound Filter' for each shape. No object named {} - No object named {} + Cap objecte anomenat {} Failed to parse link (more than one colon encountered) - Failed to parse link (more than one colon encountered) + No s'ha pogut analitzar l'enllaç (s'ha trobat més d'un símbol de dos punts) Object {} is neither movable nor attachable, can't edit attachment - Object {} is neither movable nor attachable, can't edit attachment + L'objecte {} no es pot moure ni es pot adjuntar, no es pot editar el fitxer adjunt {} is not attachable. You can still use attachment editor dialog to align the object, but the attachment won't be parametric. - {} is not attachable. You can still use attachment editor dialog to align the object, but the attachment won't be parametric. + {} no es pot adjuntar. Encara podeu utilitzar el diàleg de l'editor de fitxers adjunts per alinear l'objecte, però el fitxer adjunt no serà paramètric. @@ -6487,27 +6478,27 @@ It will create a 'Compound Filter' for each shape. Edit attachment of {} - Edit attachment of {} + Edita arxiu adjunt Ignored. Can't attach object to itself! - Ignored. Can't attach object to itself! + Ignorat. No podeu adjuntar un objecte a si mateix! {} depends on object being attached, can't use it for attachment - {} depends on object being attached, can't use it for attachment + {} depén de l'objecte adjuntat, no es pot utilitzar per a adjuntar {} (add {}) - {} (add {}) + {} (afegeix {}) {} (add more references) - {} (add more references) + {} (afegeix més referències) @@ -6517,7 +6508,7 @@ It will create a 'Compound Filter' for each shape. Reference{} - Reference{} + Referència{} @@ -6527,7 +6518,7 @@ It will create a 'Compound Filter' for each shape. Failed to resolve links. {} - Failed to resolve links. {} + No s'ha pogut solucionar els enllaços. {} @@ -6537,12 +6528,12 @@ It will create a 'Compound Filter' for each shape. Attached with mode {} - Attached with mode {} + S'adjunta amb mode {} Error: {} - Error: {} + Error: {} @@ -6560,12 +6551,12 @@ It will create a 'Compound Filter' for each shape. Attachment... - Attachment... + Adjunt... Edit attachment of selected object. - Edit attachment of selected object. + Edita l'adjunt de l'objecte seleccionat. @@ -6573,7 +6564,7 @@ It will create a 'Compound Filter' for each shape. Shape type - Shape type + Tipus de forma @@ -6608,7 +6599,7 @@ It will create a 'Compound Filter' for each shape. CompSolids - CompSolids + Sòlid compost @@ -6648,7 +6639,7 @@ It will create a 'Compound Filter' for each shape. Curve center - Curve center + Centre de la corba @@ -6663,7 +6654,7 @@ It will create a 'Compound Filter' for each shape. Is closed - Is closed + És tancat @@ -6673,12 +6664,12 @@ It will create a 'Compound Filter' for each shape. Global center of mass - Global center of mass + Centre de masses global Global placement - Global placement + Posició global @@ -6691,7 +6682,7 @@ It will create a 'Compound Filter' for each shape. Boolean fragments - Boolean fragments + Fragments booleans @@ -6711,16 +6702,16 @@ Es pot utilitzar un "Filtre compost" per extreure els talls individuals. Slice to compound - Slice to compound + Llesca a la composició Slice a selected object by using other objects as cutting tools. The resulting pieces will be stored in a compound. A 'Compound Filter' can be used to extract the individual slices. - Slice a selected object by using other objects as cutting tools. -The resulting pieces will be stored in a compound. -A 'Compound Filter' can be used to extract the individual slices. + Talla un objecte seleccionat utilitzant altres objectes com a eines de tall. +Les peces resultants s'emmagatzemaran en un compost. +Es pot utilitzar un "Filtre compost" per extreure les rodanxes individuals. @@ -6743,7 +6734,7 @@ Crearà un «Filtre compost» per a cada tall. Boolean XOR - Boolean XOR + XOR booleà @@ -6751,10 +6742,10 @@ Crearà un «Filtre compost» per a cada tall. or with the shapes inside a compound. This means the overlapping volumes of the shapes will be removed. A 'Compound Filter' can be used to extract the remaining pieces. - Perform an 'exclusive OR' boolean operation with two or more selected objects, -or with the shapes inside a compound. -This means the overlapping volumes of the shapes will be removed. -A 'Compound Filter' can be used to extract the remaining pieces. + Fes una operació booleana "O exclusiu" amb dos o més objectes seleccionats, +o amb les formes dins d'un compost. +Això significa que s'eliminaran els volums superposats de les formes. +Es pot utilitzar un "Filtre compost" per extreure les peces restants. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_cs.ts b/src/Mod/Part/Gui/Resources/translations/Part_cs.ts index 4c41745133..1e32f14fe7 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_cs.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_cs.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Díl - - - + + + Box selection Okno výběru @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Díl - + Check Geometry Zkontrolovat geometrii - + Analyzes Geometry For Errors Analyzuje chyby geometrie @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Díl - + Color per face Barva podle povrchu - + Set the color of each individual face of the selected object. Nastavte barvu každé jednotlivé plochy vybraného objektu. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Díl - + Measure Angular Měření úhlu - + Measure the angle between two edges. Změřte úhel mezi dvěma hranami. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Díl - + Clear All Vyčistit vše - + Clear all dimensions from the screen. Vymažte všechny rozměry z obrazovky. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Díl - + Measure Linear Měření vzdálenosti - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ mezi jejich dvěma vrcholy. CmdMeasureRefresh - + Part Díl - + Refresh Aktualizovat - + Recalculate the dimensions if the measured points have moved. Přepočítejte rozměry @@ -1279,17 +1279,17 @@ jestli se měřené body posunuly. CmdMeasureToggle3d - + Part Díl - + Toggle 3D Přepnout 3D - + Toggle on and off all direct dimensions, including angular. Zapnout a vypnout všechny přímé dimenze, @@ -1299,17 +1299,17 @@ včetně úhlových. CmdMeasureToggleAll - + Part Díl - + Toggle All Přepnout vše - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Zapnout a vypnout všechny aktuálně viditelné rozměry, @@ -1319,17 +1319,17 @@ přímé, ortogonální a úhlové. CmdMeasureToggleDelta - + Part Díl - + Toggle Delta Přepnout rozdíl - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ na jeho složky X, Y a Z. CmdPartBoolean - + Part Díl - + Boolean... Booleovský... - + Run a boolean operation with two shapes selected Provede booleovskou operaci se dvěmi vybranými obrazci @@ -1415,17 +1415,17 @@ na jeho složky X, Y a Z. CmdPartBuilder - + Part Díl - + Shape builder... Tvůrce útvarů... - + Advanced utility to create shapes Rozšířené nástroje pro tvorbu útvarů @@ -1433,17 +1433,17 @@ na jeho složky X, Y a Z. CmdPartChamfer - + Part Díl - + Chamfer... Sražení... - + Chamfer the selected edges of a shape Srazí vybrané hrany útvaru @@ -1451,17 +1451,17 @@ na jeho složky X, Y a Z. CmdPartCommon - + Part Díl - + Intersection Průnik - + Make an intersection of two shapes Vytvoří průnik dvou útvarů @@ -1469,17 +1469,17 @@ na jeho složky X, Y a Z. CmdPartCompCompoundTools - + Part Díl - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Nástroje složeniny: práce se seznamem tvarů. @@ -1487,17 +1487,17 @@ na jeho složky X, Y a Z. CmdPartCompJoinFeatures - + Part Díl - + Join objects... Spojit objekty... - + Join walled objects Spojit stěnové objekty @@ -1505,17 +1505,17 @@ na jeho složky X, Y a Z. CmdPartCompOffset - + Part Díl - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Nástroje pro odsazení tvarů (vytvoří rovnobětné tvary) @@ -1523,17 +1523,17 @@ na jeho složky X, Y a Z. CmdPartCompSplitFeatures - + Part Díl - + Split objects... Rozdělit objekty... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ na jeho složky X, Y a Z. CmdPartCompound - + Part Díl - + Make compound Vytvoří celek - + Make a compound of several shapes Vytvoří celek několika tvarů @@ -1579,17 +1579,17 @@ na jeho složky X, Y a Z. CmdPartCrossSections - + Part Díl - + Cross-sections... Řezy... - + Cross-sections Řezy @@ -1671,17 +1671,17 @@ na jeho složky X, Y a Z. CmdPartExport - + Part Díl - + Export CAD... Export CAD... - + Exports to a CAD file Exporty do CAD souboru @@ -1689,17 +1689,17 @@ na jeho složky X, Y a Z. CmdPartExtrude - + Part Díl - + Extrude... Vysunutí... - + Extrude a selected sketch Vysune vybraný náčrt @@ -1707,17 +1707,17 @@ na jeho složky X, Y a Z. CmdPartFillet - + Part Díl - + Fillet... Zaoblení... - + Fillet the selected edges of a shape Zaoblí vybrané hrany tvaru @@ -1725,17 +1725,17 @@ na jeho složky X, Y a Z. CmdPartFuse - + Part Díl - + Union Sjednocení - + Make a union of several shapes Provede sjednocení několika útvarů @@ -1743,17 +1743,17 @@ na jeho složky X, Y a Z. CmdPartImport - + Part Díl - + Import CAD... Import CAD... - + Imports a CAD file Import CAD souboru @@ -1761,17 +1761,17 @@ na jeho složky X, Y a Z. CmdPartImportCurveNet - + Part Díl - + Import curve network... Imort křivkové sítě... - + Import a curve network Imort křivkové sítě @@ -1779,17 +1779,17 @@ na jeho složky X, Y a Z. CmdPartLoft - + Part Díl - + Loft... Profilování... - + Utility to loft Nástroj profilování @@ -1797,17 +1797,17 @@ na jeho složky X, Y a Z. CmdPartMakeFace - + Part Díl - + Make face from wires Vytvořit plochu z drátů - + Make face from set of wires (e.g. from a sketch) Vytvořit plochu z množiny drátů (např. z náčrtu) @@ -1815,17 +1815,17 @@ na jeho složky X, Y a Z. CmdPartMakeSolid - + Part Díl - + Convert to solid Převede na těleso - + Create solid from a shell or compound Vytvoří těleso ze skořepiny nebo ze složeniny @@ -1833,17 +1833,17 @@ na jeho složky X, Y a Z. CmdPartMirror - + Part Díl - + Mirroring... Zrcadlení... - + Mirroring a selected shape Zrcadlení vybraného útvaru @@ -1851,17 +1851,17 @@ na jeho složky X, Y a Z. CmdPartOffset - + Part Díl - + 3D Offset... 3D odsazení... - + Utility to offset in 3D Nástroj odsazení ve 3D @@ -1869,17 +1869,17 @@ na jeho složky X, Y a Z. CmdPartOffset2D - + Part Díl - + 2D Offset... 2D odsazení... - + Utility to offset planar shapes Nástroj pro odsazení rovinných tvarů @@ -1941,17 +1941,17 @@ na jeho složky X, Y a Z. CmdPartProjectionOnSurface - + Part Díl - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Díl - + Reverse shapes Obrátí útvary - + Reverse orientation of shapes Obrátí orientaci útvaů @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Díl - + Revolve... Orotování... - + Revolve a selected shape Orotuje vybraný útvar @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Díl - + Create ruled surface Vytvoří přímkovou plochu - + Create a ruled surface from either two Edges or two wires Vytvoří plochu ze dvou okrajů nebo drátů @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Díl - + Section Výběr - + Make a section of two shapes Vyber dva obrazce @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Díl - + Sweep... Tažení... - + Utility to sweep Nástroj tažení @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Díl - + Thickness... Tloušťka... - + Utility to apply a thickness Nástroj vytvoření skořepiny - + Wrong selection Neplatný výběr - + Selected shape is not a solid Vybraný tvar není těleso @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Průnik - + Fusion Fusion - + Compound Směs - + Section Výběr - + Import Part Importovat část - + Part Import Curve Net Part Import Curve Net - + Reverse Obrátit - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Vytvoří přímkovou plochu @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Převrátit výběr - + Select a shape on the left side, first Nejprve vyber útvar na levé straně - + Select a shape on the right side, first Nejprve vyber útvar na pravé straně - + Cannot perform a boolean operation with the same shape Nelze provést booleovskou operaci se stejným útvarem - + No active document available Není dostupný aktivní dokument - + One of the selected objects doesn't exist anymore Jeden z vybraných objektů neexistuje - + Performing union on non-solids is not possible Nelze provést sjednocení neobjemových útvarů @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Nelze provést průnik neobjemových útvarů - + Performing difference on non-solids is not possible Nelze provést rozdíl neobjemových útvarů @@ -3310,8 +3310,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5735,63 +5735,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Neplatný výběr - + Select two shapes please. Vyber dva útvary prosím. - - - + + + Non-solids selected Vybraný útvar není oběmový - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Neobjemové útvary při boolovských operacích mohou vést k neočekávaným výsledkům. Chcete pokračovat? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Vyberte prosím dva tvary nebo více. Nebo vyberte jednu složeninu složenou ze dvou nebo více tvarů pro výpočet společného mezi nimi. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Vyberte prosím dva tvary nebo více. Nebo vyberte jednu složeninu složenou ze dvou nebo více tvarů ke sloučení. - + Select one shape or more, please. Vyberte prosím jeden nebo více tvarů. - + All CAD Files Všechny CAD soubory - + All Files Všechny soubory - + You have to select either two edges or two wires. Nejsou vybrané ani dvě hrany nebo dva dráty. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_de.ts b/src/Mod/Part/Gui/Resources/translations/Part_de.ts index b8a022393b..65859e91bf 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_de.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_de.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Formteil - - - + + + Box selection Rechteckauswahl @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Formteil - + Check Geometry Geometrie überprüfen - + Analyzes Geometry For Errors Untersuche Geometrie auf Fehler @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Formteil - + Color per face Farbe pro Fläche - + Set the color of each individual face of the selected object. Die Farbe jeder einzelnen Fläche des ausgewählten Objekts festlegen. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Formteil - + Measure Angular Winkel messen - + Measure the angle between two edges. Den Winkel zwischen zwei Kanten messen. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Formteil - + Clear All Alles löschen - + Clear all dimensions from the screen. Alle Maße vom Bildschirm entfernen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Formteil - + Measure Linear Linear messen - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ zwischen zwei ihrer Knotenpunkte gemessen. CmdMeasureRefresh - + Part Formteil - + Refresh Aktualisieren - + Recalculate the dimensions if the measured points have moved. Die Maße neu berechnen, wenn sich die gemessenen Punkte bewegt haben. @@ -1278,17 +1278,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Formteil - + Toggle 3D 3D umschalten - + Toggle on and off all direct dimensions, including angular. Schaltet alle direkten Maße ein bzw. aus, @@ -1298,17 +1298,17 @@ Winkelmaße eingeschlossen. CmdMeasureToggleAll - + Part Formteil - + Toggle All Alle umschalten - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Alle derzeit sichtbaren Maße ein- bzw. ausschalten, @@ -1318,17 +1318,17 @@ direkte, rechtwinklige und Winkelmaße. CmdMeasureToggleDelta - + Part Formteil - + Toggle Delta Delta umschalten - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1340,17 +1340,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartBoolean - + Part Formteil - + Boolean... Boolesche Operation... - + Run a boolean operation with two shapes selected Eine boolesche Operation mit zwei ausgewählten Formen durchführen @@ -1414,17 +1414,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartBuilder - + Part Formteil - + Shape builder... Form-Generator... - + Advanced utility to create shapes Erweitertes Dienstprogramm um Formen zu erstellen @@ -1432,17 +1432,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartChamfer - + Part Formteil - + Chamfer... - Abschrägung ... + Anfasen ... - + Chamfer the selected edges of a shape Die gewählten Kanten einer Form anfasen @@ -1450,17 +1450,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCommon - + Part Formteil - + Intersection Schnitt - + Make an intersection of two shapes Schnitt aus zwei Formen @@ -1468,17 +1468,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCompCompoundTools - + Part Formteil - + Compound tools Verbundwerkzeuge - + Compound tools: working with lists of shapes. Verbund Werkzeuge: Arbeiten mit Listen von Formen. @@ -1486,17 +1486,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCompJoinFeatures - + Part Formteil - + Join objects... Objekte verbinden... - + Join walled objects Verbinden von Wandungen @@ -1504,17 +1504,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCompOffset - + Part Formteil - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Werkzeuge für Versatz von Formen (parallele Formen konstruieren) @@ -1522,17 +1522,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCompSplitFeatures - + Part Formteil - + Split objects... Objekte aufteilen... - + Shape splitting and Compsolid creation tools. Werkzeuge zum Teilen von Formen und zur Erstellung von Verbundkörpern. @@ -1540,17 +1540,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCompound - + Part Formteil - + Make compound Erzeuge Verbund - + Make a compound of several shapes Erzeuge einen Verbund aus mehreren Formen @@ -1578,17 +1578,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartCrossSections - + Part Formteil - + Cross-sections... Schnitte... - + Cross-sections Schnitte @@ -1654,7 +1654,7 @@ X-, Y- und Z-Komponenten zerlegt wird. Part - Part + Formteil @@ -1670,17 +1670,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartExport - + Part - Formteil + Part - + Export CAD... CAD exportieren... - + Exports to a CAD file In CAD-Datei exportieren @@ -1688,17 +1688,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartExtrude - + Part Formteil - + Extrude... Extrudieren... - + Extrude a selected sketch Extrudieren einer ausgewählten Skizze @@ -1706,17 +1706,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartFillet - + Part Formteil - + Fillet... Abrunden... - + Fillet the selected edges of a shape Die ausgewählten Kanten einer Form abrunden @@ -1724,17 +1724,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartFuse - + Part Formteil - + Union Vereinigung - + Make a union of several shapes Vereinigt mehrere Formen @@ -1742,17 +1742,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartImport - + Part Formteil - + Import CAD... CAD importieren ... - + Imports a CAD file Importiert eine CAD-Datei @@ -1760,17 +1760,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartImportCurveNet - + Part Formteil - + Import curve network... Kurvennetzwerk importieren... - + Import a curve network Ein Kurvennetzwerk importieren @@ -1778,17 +1778,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartLoft - + Part Formteil - + Loft... Ausformung... - + Utility to loft Ausformungs-Werkzeug @@ -1796,35 +1796,35 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartMakeFace - + Part Formteil - + Make face from wires - Fläche aus Linienzug erstellen + Fläche aus Kantenzug erstellen - + Make face from set of wires (e.g. from a sketch) - Erstellt eine Fläche aus einem Linienzug (z.B. aus einer Skizze) + Erstellt eine Fläche aus einem Kantenzug (z.B. aus einer Skizze) CmdPartMakeSolid - + Part Formteil - + Convert to solid In Festkörper umwandeln - + Create solid from a shell or compound Festkörper aus Hülle oder Flächenverbund erzeugen @@ -1832,17 +1832,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartMirror - + Part Formteil - + Mirroring... Spiegelung... - + Mirroring a selected shape Spiegelung einer ausgewählten Form @@ -1850,17 +1850,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartOffset - + Part Formteil - + 3D Offset... 3D-Versatz... - + Utility to offset in 3D Werkzeug für Versatz @@ -1868,17 +1868,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartOffset2D - + Part Formteil - + 2D Offset... 2D-Versatz... - + Utility to offset planar shapes Werkzeug zum Versetzen von ebenen Formen @@ -1940,17 +1940,17 @@ X-, Y- und Z-Komponenten zerlegt wird. CmdPartProjectionOnSurface - + Part Formteil - + Create projection on surface... Projektion auf Oberfläche erstellen... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1982,17 +1982,17 @@ der Projektion. CmdPartReverseShape - + Part Formteil - + Reverse shapes Formen umkehren - + Reverse orientation of shapes Orientierung von Formen umkehren @@ -2000,17 +2000,17 @@ der Projektion. CmdPartRevolve - + Part Formteil - + Revolve... Drehen... - + Revolve a selected shape Drehen einer ausgewählten Form @@ -2018,17 +2018,17 @@ der Projektion. CmdPartRuledSurface - + Part Formteil - + Create ruled surface Regelfläche erzeugen - + Create a ruled surface from either two Edges or two wires Erstelle eine Regelfläche aus zwei Kanten oder zwei Kantenzügen @@ -2036,17 +2036,17 @@ der Projektion. CmdPartSection - + Part Formteil - + Section Schnittkurve - + Make a section of two shapes Schnitt von zwei Formen erzeugen @@ -2054,12 +2054,12 @@ der Projektion. CmdPartSectionCut - + Persistent section cut Dauerhafte Schnittdarstellung - + Creates a persistent section cut of visible part objects Erstellt eine dauerhafte Schnittdarstellung von sichtbaren Bauteilobjekten @@ -2141,17 +2141,17 @@ der Projektion. CmdPartSweep - + Part Formteil - + Sweep... Sweep... - + Utility to sweep Sweep-Werkzeug @@ -2159,27 +2159,27 @@ der Projektion. CmdPartThickness - + Part Formteil - + Thickness... Dicke... - + Utility to apply a thickness Werkzeug zum Aufdicken - + Wrong selection Falsche Auswahl - + Selected shape is not a solid Gewählte Form ist kein Volumenkörper @@ -2231,67 +2231,67 @@ der Projektion. Teilbox erstellen - + Part Cut Teilschnitt - + Common Schnitt - + Fusion Vereinigung - + Compound Verbund - + Section Schnittkurve - + Import Part Teil importieren - + Part Import Curve Net Teile-Import als Netz-Kurven - + Reverse Umkehren - + Make face Fläche erstellen - + Make Offset Versatzflächen erstellen - + Make 2D Offset 2D-Versatzkonturen erstellen - + Make Thickness Wandstärke anwenden - + Create ruled surface Regelfläche erzeugen @@ -2603,32 +2603,32 @@ Hinweis: Die Positionierung wird im lokalen Raum des angehängten Objekts darges Auswahl umkehren - + Select a shape on the left side, first Zuerst Form auf der linken Seite auswählen - + Select a shape on the right side, first Zuerst Form auf der rechten Seite auswählen - + Cannot perform a boolean operation with the same shape Kann eine boolesche Operation mit der gleichen Form nicht ausführen - + No active document available Kein aktives Dokument verfügbar - + One of the selected objects doesn't exist anymore Eines der ausgewählten Objekte existiert nicht mehr - + Performing union on non-solids is not possible Vereinigung von Nicht-Volumenkörpern nicht möglich @@ -2638,7 +2638,7 @@ Hinweis: Die Positionierung wird im lokalen Raum des angehängten Objekts darges Schnittmenge von Nicht-Volumenkörpern nicht möglich - + Performing difference on non-solids is not possible Differenz von Nicht-Volumenkörpern nicht möglich @@ -3310,8 +3310,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Wählen Sie dies, um keine unsichtbaren Objekte zu importieren. + Select this to import invisible objects. + Wählen Sie dies, um unsichtbare Objekte zu importieren. @@ -4857,7 +4857,7 @@ nur die beschnittenen Objeke sichtbar At least one edge or wire is required. - Mindestens eine Kante oder Kantenzug ist erforderlich. + Mindestens eine Kante oder ein Kantenzug ist erforderlich. @@ -5439,7 +5439,7 @@ indem Sie ein Auswahlrechteck in der 3D-Ansicht aufziehen Offset - Versetzen + Versatz @@ -5593,7 +5593,8 @@ indem Sie ein Auswahlrechteck in der 3D-Ansicht aufziehen Select one or more profiles and select an edge or wire in the 3D view for the sweep path. - Fügen Sie ein oder mehrere Profile zum Sweep hinzu. Markieren Sie dann eine Kante oder einen Kantenzug in der 3D Ansicht als Sweep Pfad. + Ein oder mehrere Profile und dann eine Kante oder einen Kantenzug +für den Austragungspfad in der 3D-Ansicht auswählen. @@ -5723,62 +5724,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Falsche Auswahl - + Select two shapes please. Wählen Sie bitte zwei Formen. - - - + + + Non-solids selected Kein Festkörper ausgewählt - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Die Verwendung von Nicht-Festkörpern für boolesche Operationen kann zu unerwarteten Ergebnissen führen. Möchten Sie fortfahren? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Bitte zwei oder mehr Formen selektieren. Alternativ einen Verbund von zwei oder mehr Formen selektieren um Schnitt zu berechnen. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Bitte zwei oder mehr Formen auswählen. Oder einen Verbund auswählen, der zwei oder mehr Formen enthält, die verbunden werden sollen. - + Select one shape or more, please. Bitte wählen Sie mindestens eine Form. - + All CAD Files Alle CAD-Dateien - + All Files Alle Dateien - + You have to select either two edges or two wires. Wählen Sie entweder zwei Kanten oder zwei Kantenzüge aus. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_el.ts b/src/Mod/Part/Gui/Resources/translations/Part_el.ts index f0c8decd88..9ac7e3ee49 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_el.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_el.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Εξάρτημα - - - + + + Box selection Επιλογή με τη χρήση πλαισίου @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Εξάρτημα - + Check Geometry Έλεγχος Γεωμετρίας - + Analyzes Geometry For Errors Αναλύει την Γεωμετρία Για τον Εντοπισμό Σφαλμάτων @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Εξάρτημα - + Color per face Χρώμα ανά όψη - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Εξάρτημα - + Measure Angular Μέτρηση Γωνίας - + Measure the angle between two edges. Μετρήστε τη γωνία μεταξύ δύο ακμών. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Εξάρτημα - + Clear All Εκκαθάριση όλων - + Clear all dimensions from the screen. Καθαρισμός όλων των διαστάσεων από την οθόνη. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Εξάρτημα - + Measure Linear Μέτρηση απόστασης - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Εξάρτημα - + Refresh Ανανέωση - + Recalculate the dimensions if the measured points have moved. Επανυπολογισμός των διαστάσεων @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Εξάρτημα - + Toggle 3D Εναλλαγή 3D - + Toggle on and off all direct dimensions, including angular. Ενεργοποιήστε και απενεργοποιήστε όλες τις άμεσες διαστάσεις, συμπεριλαμβανομένων και των γωνιακών. @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Εξάρτημα - + Toggle All Εναλλαγή Όλων - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Ενεργοποιήστε και απενεργοποιήστε όλες τις ορατές προς το παρόν διαστάσεις, άμεσες, ορθογώνιες και γωνιακές. @@ -1317,17 +1317,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Εξάρτημα - + Toggle Delta Εναλλαγή εμφάνισης/απόκρυψης μετρήσεων Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1338,17 +1338,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Εξάρτημα - + Boolean... Χρήση Λειτουργιών Boole... - + Run a boolean operation with two shapes selected Εκτέλεση μιας πράξης Άλγεβρας Boole με δύο επιλεγμένα σχήματα @@ -1412,17 +1412,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Εξάρτημα - + Shape builder... Πρόγραμμα Κατασκευής Σχημάτων... - + Advanced utility to create shapes Προχωρημένη βοηθητική εφαρμογή για τη δημιουργία σχημάτων @@ -1430,17 +1430,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Εξάρτημα - + Chamfer... Λοξότμηση... - + Chamfer the selected edges of a shape Λοξότμηση των επιλεγμένων ακμών ενός σχήματος @@ -1448,17 +1448,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Εξάρτημα - + Intersection Σημείο τομής - + Make an intersection of two shapes Δημιουργήστε μια τομή δύο σχημάτων @@ -1466,17 +1466,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Εξάρτημα - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Compound tools: working with lists of shapes. @@ -1484,17 +1484,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Εξάρτημα - + Join objects... Ένωση αντικειμένων... - + Join walled objects Ένωση περιτειχισμένων αντικειμένων @@ -1502,17 +1502,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Εξάρτημα - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Εργαλεία μετατόπισης σχημάτων (κατασκευή παράλληλων σχημάτων) @@ -1520,17 +1520,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Εξάρτημα - + Split objects... Διαίρεση αντικειμένων... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1538,17 +1538,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Εξάρτημα - + Make compound Δημιουργία σύνθετου σχήματος - + Make a compound of several shapes Δημιουργία ενός σύνθετου σχήματος από διάφορα σχήματα @@ -1576,17 +1576,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Εξάρτημα - + Cross-sections... Ορθογώνιες διατομές... - + Cross-sections Ορθογώνιες διατομές @@ -1668,17 +1668,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Εξάρτημα - + Export CAD... Εξαγωγή Αρχείου CAD... - + Exports to a CAD file Πραγματοποιεί εξαγωγή σε ένα αρχείο CAD @@ -1686,17 +1686,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Εξάρτημα - + Extrude... Επέκταση... - + Extrude a selected sketch Επέκταση ενός επιλεγμένου σκαριφήματος @@ -1704,17 +1704,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Εξάρτημα - + Fillet... Στρογγύλεμα... - + Fillet the selected edges of a shape Στρογγύλεμα των επιλεγμένων ακμών ενός σχήματος @@ -1722,17 +1722,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Εξάρτημα - + Union Ένωση - + Make a union of several shapes Δημιουργήστε μια ένωση διαφόρων σχημάτων @@ -1740,17 +1740,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Εξάρτημα - + Import CAD... Εισαγωγή CAD... - + Imports a CAD file Πραγματοποιεί εισαγωγή ενός αρχείου CAD @@ -1758,17 +1758,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Εξάρτημα - + Import curve network... Εισαγωγή δικτύου καμπύλων... - + Import a curve network Εισαγωγή ενός δικτύου καμπύλων @@ -1776,17 +1776,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Εξάρτημα - + Loft... Παρεμβολή ορθογώνιων διατομών... - + Utility to loft Βοηθητική εφαρμογή για την παρεμβολή ορθογώνιων διατομών @@ -1794,17 +1794,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Εξάρτημα - + Make face from wires Δημιουργία όψης από σύρματα - + Make face from set of wires (e.g. from a sketch) Make face from set of wires (e.g. from a sketch) @@ -1812,17 +1812,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Εξάρτημα - + Convert to solid Μετατροπή σε στέρεο - + Create solid from a shell or compound Δημιουργία στέρεου από ένα κέλυφος ή σύνθετο σχήμα @@ -1830,17 +1830,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Εξάρτημα - + Mirroring... Κατοπτρισμός... - + Mirroring a selected shape Κατοπτρισμός ενός επιλεγμένου σχήματος @@ -1848,17 +1848,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Εξάρτημα - + 3D Offset... Μετατόπιση στον Τρισδιάστατο Χώρο... - + Utility to offset in 3D Utility to offset in 3D @@ -1866,17 +1866,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Εξάρτημα - + 2D Offset... Μετατόπιση στον Δισδιάστατο Χώρο... - + Utility to offset planar shapes Utility to offset planar shapes @@ -1938,17 +1938,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Εξάρτημα - + Create projection on surface... Δημιουργία προβολής στην επιφάνεια... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1980,17 +1980,17 @@ of projection. CmdPartReverseShape - + Part Εξάρτημα - + Reverse shapes Αντιστροφή σχημάτων - + Reverse orientation of shapes Αντίστροφη προσανατολισμού των σχημάτων @@ -1998,17 +1998,17 @@ of projection. CmdPartRevolve - + Part Εξάρτημα - + Revolve... Περιφορά... - + Revolve a selected shape Περιφορά ενός επιλεγμένου σχήματος @@ -2016,17 +2016,17 @@ of projection. CmdPartRuledSurface - + Part Εξάρτημα - + Create ruled surface Δημιουργήστε ευθειογενή επιφάνεια - + Create a ruled surface from either two Edges or two wires Δημιουργήσετε μια ευθειογενή επιφάνεια από δύο Ακμές ή από δύο σύρματα @@ -2034,17 +2034,17 @@ of projection. CmdPartSection - + Part Εξάρτημα - + Section Τομή - + Make a section of two shapes Δημιουργία μιας τομής δύο σχημάτων @@ -2052,12 +2052,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Μόνιμη κοπή τομής - + Creates a persistent section cut of visible part objects Δημιουργεί μια μόνιμη τομή αντικειμένων ορατών τμημάτων @@ -2139,17 +2139,17 @@ of projection. CmdPartSweep - + Part Εξάρτημα - + Sweep... Σάρωση... - + Utility to sweep Βοηθητική εφαρμογή για την σάρωση @@ -2157,27 +2157,27 @@ of projection. CmdPartThickness - + Part Εξάρτημα - + Thickness... Πάχος... - + Utility to apply a thickness Βοηθητική εφαρμογή για την πρόσδοση πάχους - + Wrong selection Λάθος επιλογή - + Selected shape is not a solid Το επιλεγμένο σχήμα δεν είναι στερεό @@ -2229,67 +2229,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Τομή - + Fusion Fusion - + Compound Σύνθετο - + Section Τομή - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse Αντιστροφή - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Δημιουργήστε ευθειογενή επιφάνεια @@ -2601,32 +2601,32 @@ Note: The placement is expressed in local space of object being attached.Αλλαγή επιλογής - + Select a shape on the left side, first Επιλέξτε πρώτα ένα σχήμα στην αριστερή πλευρά - + Select a shape on the right side, first Επιλέξτε πρώτα ένα σχήμα στην δεξιά πλευρά - + Cannot perform a boolean operation with the same shape Αδυναμία εκτέλεσης πράξης άλγεβρας Boole με το ίδιο σχήμα - + No active document available Δεν υπάρχει διαθέσιμο ενεργό έγγραφο - + One of the selected objects doesn't exist anymore Ένα από τα επιλεγμένα αντικείμενα δεν υπάρχει πια - + Performing union on non-solids is not possible Δεν είναι δυνατή η ένωση μη στερεών @@ -2636,7 +2636,7 @@ Note: The placement is expressed in local space of object being attached.Δεν είναι δυνατή η τομή μη στερεών - + Performing difference on non-solids is not possible Δεν είναι η δυνατή η αφαίρεση μη στερεών @@ -3309,8 +3309,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5731,31 +5731,31 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Λάθος επιλογή - + Select two shapes please. Επιλέξτε δύο σχήματα παρακαλώ. - - - + + + Non-solids selected Επιλέχτηκαν μη στερεά - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Η χρήση μη στερεών για πράξεις άλγεβρας Boole ενδέχεται να οδηγήσει σε απρόσμενα αποτελέσματα. @@ -5763,32 +5763,32 @@ Do you want to continue? Θέλετε να συνεχίσετε; - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Επιλέξτε δύο ή περισσότερα σχήματα, παρακαλώ. Ή επιλέξτε ένα σύνθετο σχήμα που να περιέχει δύο ή περισσότερα σχήματα για να υπολογίσετε την τομή τους. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Επιλέξτε δύο ή περισσότερα σχήματα, παρακαλώ. Ή επιλέξτε ένα σύνθετο σχήμα που να περιέχει δύο ή περισσότερα σχήματα προς συγχώνευση. - + Select one shape or more, please. Επιλέξτε ένα ή περισσότερα σχήματα, παρακαλώ. - + All CAD Files Όλα τα Αρχεία CAD - + All Files Όλα τα Αρχεία - + You have to select either two edges or two wires. Θα πρέπει να επιλέξετε είτε δύο ακμές είτε δύο σύρματα. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_es-AR.ts b/src/Mod/Part/Gui/Resources/translations/Part_es-AR.ts index d838aa19b8..9605e2c30f 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_es-AR.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_es-AR.ts @@ -1151,14 +1151,14 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdBoxSelection - + Part Pieza - - - + + + Box selection Cuadro de selección @@ -1166,17 +1166,17 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdCheckGeometry - + Part Pieza - + Check Geometry Comprobar geometría - + Analyzes Geometry For Errors Analiza la Geometría en busca de Errores @@ -1184,17 +1184,17 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdColorPerFace - + Part Pieza - + Color per face Color por cara - + Set the color of each individual face of the selected object. Establece el color de cada cara individual del objeto seleccionado. @@ -1202,17 +1202,17 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdMeasureAngular - + Part Pieza - + Measure Angular Medida Angular - + Measure the angle between two edges. Mide el ángulo entre dos bordes. @@ -1220,17 +1220,17 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdMeasureClearAll - + Part Pieza - + Clear All Limpiar todo - + Clear all dimensions from the screen. Borra todas las cotas de la pantalla. @@ -1238,17 +1238,17 @@ Posición. Funciona en objetos con ubicaciones y aristas de elipse/parábola/hip CmdMeasureLinear - + Part Pieza - + Measure Linear Medida lineal - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1260,17 +1260,17 @@ entre dos vértices de ellos. CmdMeasureRefresh - + Part Pieza - + Refresh Actualizar - + Recalculate the dimensions if the measured points have moved. Recalcula las cotas @@ -1280,17 +1280,17 @@ si los puntos medidos se han movido. CmdMeasureToggle3d - + Part Pieza - + Toggle 3D Mostrar/Ocultar Medidas 3D - + Toggle on and off all direct dimensions, including angular. Activa y desactiva todas las cotas directas, @@ -1300,17 +1300,17 @@ incluso las angulares. CmdMeasureToggleAll - + Part Pieza - + Toggle All Mostrar/Ocultar Todo - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Activa y desactiva todas las cotas visibles actualmente, @@ -1320,17 +1320,17 @@ directas, ortogonales y angulares. CmdMeasureToggleDelta - + Part Pieza - + Toggle Delta Mostrar/Ocultar Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1342,17 +1342,17 @@ en sus componentes X, Y y Z. CmdPartBoolean - + Part Pieza - + Boolean... Booleana... - + Run a boolean operation with two shapes selected Ejecuta una operación booleana con dos formas seleccionadas @@ -1416,17 +1416,17 @@ en sus componentes X, Y y Z. CmdPartBuilder - + Part Pieza - + Shape builder... Constructor de formas... - + Advanced utility to create shapes Utilidad avanzada para crear formas @@ -1434,17 +1434,17 @@ en sus componentes X, Y y Z. CmdPartChamfer - + Part Pieza - + Chamfer... Biselar... - + Chamfer the selected edges of a shape Bisela las aristas seleccionadas de una forma @@ -1452,17 +1452,17 @@ en sus componentes X, Y y Z. CmdPartCommon - + Part Pieza - + Intersection Intersección - + Make an intersection of two shapes Hacer una intersección de dos formas @@ -1470,17 +1470,17 @@ en sus componentes X, Y y Z. CmdPartCompCompoundTools - + Part Pieza - + Compound tools Herramientas compuestas - + Compound tools: working with lists of shapes. Herramientas de compuestos: trabajando con listas de formas. @@ -1488,17 +1488,17 @@ en sus componentes X, Y y Z. CmdPartCompJoinFeatures - + Part Pieza - + Join objects... Juntar objetos... - + Join walled objects Juntar objetos amurallados @@ -1506,17 +1506,17 @@ en sus componentes X, Y y Z. CmdPartCompOffset - + Part Pieza - + Offset: Desplazamiento: - + Tools to offset shapes (construct parallel shapes) Herramientas para desfasar formas (construir formas paralelas) @@ -1524,17 +1524,17 @@ en sus componentes X, Y y Z. CmdPartCompSplitFeatures - + Part Pieza - + Split objects... Separa objetos... - + Shape splitting and Compsolid creation tools. Herramientas de división de formas y creación Compsolid. @@ -1542,17 +1542,17 @@ en sus componentes X, Y y Z. CmdPartCompound - + Part Pieza - + Make compound Crear compuesto - + Make a compound of several shapes Crear compuesto de varias formas @@ -1580,17 +1580,17 @@ en sus componentes X, Y y Z. CmdPartCrossSections - + Part Pieza - + Cross-sections... Cortes transversales... - + Cross-sections Cortes transversales @@ -1672,17 +1672,17 @@ en sus componentes X, Y y Z. CmdPartExport - + Part Pieza - + Export CAD... Exportar CAD... - + Exports to a CAD file Exporta a un archivo CAD @@ -1690,17 +1690,17 @@ en sus componentes X, Y y Z. CmdPartExtrude - + Part Pieza - + Extrude... Extruir... - + Extrude a selected sketch Extruye el croquis seleccionado @@ -1708,17 +1708,17 @@ en sus componentes X, Y y Z. CmdPartFillet - + Part Pieza - + Fillet... Redondear... - + Fillet the selected edges of a shape Redondea las aristas seleccionadas de una forma @@ -1726,17 +1726,17 @@ en sus componentes X, Y y Z. CmdPartFuse - + Part Pieza - + Union Unión - + Make a union of several shapes Unión de varias formas @@ -1744,17 +1744,17 @@ en sus componentes X, Y y Z. CmdPartImport - + Part Pieza - + Import CAD... Importar CAD... - + Imports a CAD file Importa un archivo de CAD @@ -1762,17 +1762,17 @@ en sus componentes X, Y y Z. CmdPartImportCurveNet - + Part Pieza - + Import curve network... Importa red de curvas... - + Import a curve network Importa una red de curvas @@ -1780,17 +1780,17 @@ en sus componentes X, Y y Z. CmdPartLoft - + Part Pieza - + Loft... Puente... - + Utility to loft Crear puente @@ -1798,17 +1798,17 @@ en sus componentes X, Y y Z. CmdPartMakeFace - + Part Pieza - + Make face from wires Crear cara a partir de alambres - + Make face from set of wires (e.g. from a sketch) Hacer la cara del conjunto de cables (por ejemplo, desde un croquis) @@ -1816,17 +1816,17 @@ en sus componentes X, Y y Z. CmdPartMakeSolid - + Part Pieza - + Convert to solid Convertir a sólido - + Create solid from a shell or compound Crear sólido a partir de una carcasa o compuesto @@ -1834,17 +1834,17 @@ en sus componentes X, Y y Z. CmdPartMirror - + Part Pieza - + Mirroring... Simetrizar... - + Mirroring a selected shape Simetría de una forma seleccionada @@ -1852,17 +1852,17 @@ en sus componentes X, Y y Z. CmdPartOffset - + Part Pieza - + 3D Offset... Desfase 3D... - + Utility to offset in 3D Utilidad para desfasar en 3D @@ -1870,17 +1870,17 @@ en sus componentes X, Y y Z. CmdPartOffset2D - + Part Pieza - + 2D Offset... Desfase 2D... - + Utility to offset planar shapes Utilidad para desfasar formas planas @@ -1942,17 +1942,17 @@ en sus componentes X, Y y Z. CmdPartProjectionOnSurface - + Part Pieza - + Create projection on surface... Crea proyección en superficie... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1984,17 +1984,17 @@ de proyección. CmdPartReverseShape - + Part Pieza - + Reverse shapes Invertir formas - + Reverse orientation of shapes Invierte las normales de todas las caras de los objetos seleccionados @@ -2002,17 +2002,17 @@ de proyección. CmdPartRevolve - + Part Pieza - + Revolve... Revolución... - + Revolve a selected shape Revoluciona una forma seleccionada @@ -2020,17 +2020,17 @@ de proyección. CmdPartRuledSurface - + Part Pieza - + Create ruled surface Crear superficie reglada - + Create a ruled surface from either two Edges or two wires Crear superficie reglada a partir de dos aristas o dos alambres @@ -2038,17 +2038,17 @@ de proyección. CmdPartSection - + Part Pieza - + Section Corte - + Make a section of two shapes Hacer un corte de dos formas @@ -2056,12 +2056,12 @@ de proyección. CmdPartSectionCut - + Persistent section cut Corte de sección persistente - + Creates a persistent section cut of visible part objects Crea un corte de sección persistente de objetos de piezas visibles @@ -2143,17 +2143,17 @@ de proyección. CmdPartSweep - + Part Pieza - + Sweep... Barrido... - + Utility to sweep Crear barrido @@ -2161,27 +2161,27 @@ de proyección. CmdPartThickness - + Part Pieza - + Thickness... Espesor... - + Utility to apply a thickness Aplicar un espesor - + Wrong selection Selección Incorrecta - + Selected shape is not a solid La forma seleccionada no es sólida @@ -2233,67 +2233,67 @@ de proyección. Crear Caja - + Part Cut Corte - + Common Intersección - + Fusion Fusión - + Compound Compuesto - + Section Corte - + Import Part Importar Parte - + Part Import Curve Net Importar Curva Net de Pieza - + Reverse Invertir - + Make face Hacer cara - + Make Offset Desplazar - + Make 2D Offset Desplazar 2D - + Make Thickness Dar espesor - + Create ruled surface Crear superficie reglada @@ -2605,32 +2605,32 @@ Nota: La ubicación se expresa en el espacio local del objeto que se adjunta.Cambiar selección - + Select a shape on the left side, first Selecciona una forma en el lado izquierdo, primero - + Select a shape on the right side, first Selecciona una forma en el lado derecho, primero - + Cannot perform a boolean operation with the same shape No se puede realizar una operación booleana con la misma forma - + No active document available Ningún documento activo disponible - + One of the selected objects doesn't exist anymore Uno de los objetos seleccionados ya no existe - + Performing union on non-solids is not possible No es posible llevar a cabo la unión sobre no-sólidos @@ -2640,7 +2640,7 @@ Nota: La ubicación se expresa en el espacio local del objeto que se adjunta.No es posible realizar la intersección sobre no-sólidos - + Performing difference on non-solids is not possible No es posible realizar la diferencia en los no-sólidos @@ -3311,8 +3311,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Seleccione esto para no importar ningún objeto invisible. + Select this to import invisible objects. + Seleccionar para importar objetos no visibles. @@ -5732,63 +5732,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Selección Incorrecta - + Select two shapes please. Por favor, seleccione dos formas. - - - + + + Non-solids selected Se han seleccionado objetos no sólidos - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Usar objetos no sólidos para operaciones booleanas puede causar resultados inesperados. ¿Quieres continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Seleccione dos o más formas, por favor. O bien, seleccione un compuesto que contiene dos o más formas para calcular el común entre ellas. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Seleccione dos formas o más, por favor. O bien, seleccione un compuesto que contiene dos o más formas para ser fusionado. - + Select one shape or more, please. Seleccione una o más formas, por favor. - + All CAD Files Todos los archivos CAD - + All Files Todos los Archivos - + You have to select either two edges or two wires. Debe seleccionar dos aristas o dos alambres. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_es-ES.ts b/src/Mod/Part/Gui/Resources/translations/Part_es-ES.ts index 5d19e45fb8..cfb142f13c 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_es-ES.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_es-ES.ts @@ -559,7 +559,7 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / Object's YZ AttachmentPlane mode caption - Objetos YZ + Objetos de YZ @@ -1151,14 +1151,14 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdBoxSelection - + Part Pieza - - - + + + Box selection Cuadro de selección @@ -1166,17 +1166,17 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdCheckGeometry - + Part Pieza - + Check Geometry Verificar geometría - + Analyzes Geometry For Errors Analiza la Geometría en busca de Errores @@ -1184,17 +1184,17 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdColorPerFace - + Part Pieza - + Color per face Color por cara - + Set the color of each individual face of the selected object. Establece el color de cada cara individual del objeto seleccionado. @@ -1202,17 +1202,17 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdMeasureAngular - + Part Pieza - + Measure Angular Medida Angular - + Measure the angle between two edges. Mide el ángulo entre dos bordes. @@ -1220,17 +1220,17 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdMeasureClearAll - + Part Pieza - + Clear All Borrar todo - + Clear all dimensions from the screen. Borra todas las cotas de la pantalla. @@ -1238,17 +1238,17 @@ Posición. Funciona en objetos con ubicaciones y bordes de elipse / parábola / CmdMeasureLinear - + Part Pieza - + Measure Linear Medida lineal - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1260,17 +1260,17 @@ entre dos vértices de ellos. CmdMeasureRefresh - + Part Pieza - + Refresh Actualizar pantalla - + Recalculate the dimensions if the measured points have moved. Recalcula las cotas @@ -1280,17 +1280,17 @@ si los puntos medidos se han movido. CmdMeasureToggle3d - + Part Pieza - + Toggle 3D Alterna 3D - + Toggle on and off all direct dimensions, including angular. Activa y desactiva todas las cotas directas, @@ -1300,17 +1300,17 @@ incluso las angulares. CmdMeasureToggleAll - + Part Pieza - + Toggle All Cambiar Todo - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Activa y desactiva todas las cotas visibles actualmente, @@ -1320,17 +1320,17 @@ directas, ortogonales y angulares. CmdMeasureToggleDelta - + Part Pieza - + Toggle Delta Activar Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1342,17 +1342,17 @@ en sus componentes X, Y y Z. CmdPartBoolean - + Part Pieza - + Boolean... Booleano... - + Run a boolean operation with two shapes selected Ejecuta una operación booleana con dos formas seleccionadas @@ -1416,17 +1416,17 @@ en sus componentes X, Y y Z. CmdPartBuilder - + Part Pieza - + Shape builder... Generador de forma... - + Advanced utility to create shapes Utilidad avanzada para crear formas @@ -1434,17 +1434,17 @@ en sus componentes X, Y y Z. CmdPartChamfer - + Part Pieza - + Chamfer... Chaflán... - + Chamfer the selected edges of a shape Crear chaflán para el borde seleccionado @@ -1452,17 +1452,17 @@ en sus componentes X, Y y Z. CmdPartCommon - + Part Pieza - + Intersection Intersección - + Make an intersection of two shapes Hacer una intersección de dos formas @@ -1470,17 +1470,17 @@ en sus componentes X, Y y Z. CmdPartCompCompoundTools - + Part Pieza - + Compound tools Herramientas compuestas - + Compound tools: working with lists of shapes. Herramientas compuestas: trabajando con listas de formas. @@ -1488,17 +1488,17 @@ en sus componentes X, Y y Z. CmdPartCompJoinFeatures - + Part Pieza - + Join objects... Unir objetos... - + Join walled objects Une objetos amurallados @@ -1506,17 +1506,17 @@ en sus componentes X, Y y Z. CmdPartCompOffset - + Part Pieza - + Offset: Desplazamiento: - + Tools to offset shapes (construct parallel shapes) Herramientas para separación de formas (construir formas paralelas) @@ -1524,17 +1524,17 @@ en sus componentes X, Y y Z. CmdPartCompSplitFeatures - + Part Pieza - + Split objects... Partir objetos... - + Shape splitting and Compsolid creation tools. Herramientas de división de formas y creación Compsolid. @@ -1542,17 +1542,17 @@ en sus componentes X, Y y Z. CmdPartCompound - + Part Pieza - + Make compound Crear cuerpo compuesto - + Make a compound of several shapes Crear composición desde varias formas @@ -1580,17 +1580,17 @@ en sus componentes X, Y y Z. CmdPartCrossSections - + Part Pieza - + Cross-sections... Cortes transversales... - + Cross-sections Cortes transversales @@ -1672,17 +1672,17 @@ en sus componentes X, Y y Z. CmdPartExport - + Part Pieza - + Export CAD... Exportar CAD... - + Exports to a CAD file Exporta a un archivo CAD @@ -1690,17 +1690,17 @@ en sus componentes X, Y y Z. CmdPartExtrude - + Part Pieza - + Extrude... Extruir... - + Extrude a selected sketch Extruye el croquis seleccionado @@ -1708,17 +1708,17 @@ en sus componentes X, Y y Z. CmdPartFillet - + Part Pieza - + Fillet... Redondeo... - + Fillet the selected edges of a shape Redondea las aristas seleccionadas de una forma @@ -1726,17 +1726,17 @@ en sus componentes X, Y y Z. CmdPartFuse - + Part Pieza - + Union Unión - + Make a union of several shapes Hacer una unión de varias formas @@ -1744,17 +1744,17 @@ en sus componentes X, Y y Z. CmdPartImport - + Part Pieza - + Import CAD... Importar CAD... - + Imports a CAD file Importa un archivo de CAD @@ -1762,17 +1762,17 @@ en sus componentes X, Y y Z. CmdPartImportCurveNet - + Part Pieza - + Import curve network... Importa red de curvas... - + Import a curve network Importa una red de curvas @@ -1780,17 +1780,17 @@ en sus componentes X, Y y Z. CmdPartLoft - + Part Pieza - + Loft... Proyección... - + Utility to loft Crear proyección @@ -1798,17 +1798,17 @@ en sus componentes X, Y y Z. CmdPartMakeFace - + Part Pieza - + Make face from wires Crear cara a partir de alambres - + Make face from set of wires (e.g. from a sketch) Hacer cara del conjunto de alambres (por ejemplo, desde un croquis) @@ -1816,17 +1816,17 @@ en sus componentes X, Y y Z. CmdPartMakeSolid - + Part Pieza - + Convert to solid Convertir a sólido - + Create solid from a shell or compound Crear sólido desde un cascarón o un compuesto @@ -1834,35 +1834,35 @@ en sus componentes X, Y y Z. CmdPartMirror - + Part Pieza - + Mirroring... - Duplicar... + Reflejar... - + Mirroring a selected shape - Duplicación de una forma seleccionada + Reflejar una forma seleccionada CmdPartOffset - + Part Pieza - + 3D Offset... Desplazamiento 3D... - + Utility to offset in 3D Utilidad para desplazamiento en 3D @@ -1870,17 +1870,17 @@ en sus componentes X, Y y Z. CmdPartOffset2D - + Part Pieza - + 2D Offset... Desplazamiento 2D... - + Utility to offset planar shapes Utilidad para equidistancia de formas planares @@ -1942,17 +1942,17 @@ en sus componentes X, Y y Z. CmdPartProjectionOnSurface - + Part Pieza - + Create projection on surface... Crea proyección en superficie... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1984,17 +1984,17 @@ de proyección. CmdPartReverseShape - + Part Pieza - + Reverse shapes Invertir formas - + Reverse orientation of shapes Invertir la orientación de las formas @@ -2002,17 +2002,17 @@ de proyección. CmdPartRevolve - + Part Pieza - + Revolve... Girar... - + Revolve a selected shape Girar una forma seleccionada @@ -2020,17 +2020,17 @@ de proyección. CmdPartRuledSurface - + Part Pieza - + Create ruled surface Crear superficie reglada - + Create a ruled surface from either two Edges or two wires Crear superficie reglada desde dos aristas o dos alambres @@ -2038,17 +2038,17 @@ de proyección. CmdPartSection - + Part Pieza - + Section Sección - + Make a section of two shapes Hacer una sección de dos formas @@ -2056,12 +2056,12 @@ de proyección. CmdPartSectionCut - + Persistent section cut Corte de sección persistente - + Creates a persistent section cut of visible part objects Crea un corte de sección persistente de objetos de piezas visibles @@ -2143,17 +2143,17 @@ de proyección. CmdPartSweep - + Part Pieza - + Sweep... Barrido... - + Utility to sweep Crear barrido @@ -2161,27 +2161,27 @@ de proyección. CmdPartThickness - + Part Pieza - + Thickness... Espesor... - + Utility to apply a thickness Utilidad para aplicar un espesor - + Wrong selection Selección incorrecta - + Selected shape is not a solid La forma seleccionada no es un sólido @@ -2233,67 +2233,67 @@ de proyección. Crear Caja - + Part Cut Corte - + Common Común - + Fusion Fusión - + Compound Compuesto - + Section Sección - + Import Part Importar Parte - + Part Import Curve Net Importar Curva Net de Pieza - + Reverse Invertir - + Make face Hacer cara - + Make Offset Desplazar - + Make 2D Offset Desplazar 2D - + Make Thickness Dar espesor - + Create ruled surface Crear superficie reglada @@ -2605,32 +2605,32 @@ Nota: La ubicación se expresa en el espacio local del objeto que se adjunta.Intercambiar selección - + Select a shape on the left side, first Seleccione primero una forma en el lado izquierdo, - + Select a shape on the right side, first Seleccione primero una forma en el lado derecho, - + Cannot perform a boolean operation with the same shape No es posible realizar una operación booleana con la misma forma - + No active document available Ningún documento activo disponible - + One of the selected objects doesn't exist anymore Uno de los objetos seleccionados ya no existe - + Performing union on non-solids is not possible No es posible realizar la Unión en no sólidos @@ -2640,7 +2640,7 @@ Nota: La ubicación se expresa en el espacio local del objeto que se adjunta.No es posible realizar la intersección en no sólidos - + Performing difference on non-solids is not possible No es posible realizar la diferencia en no sólidos @@ -3310,8 +3310,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Seleccione esto para no importar ningún objeto invisible. + Select this to import invisible objects. + Seleccionar para importar objetos no visibles. @@ -5727,63 +5727,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Selección incorrecta - + Select two shapes please. Seleccione dos formas por favor. - - - + + + Non-solids selected Se han seleccionado objetos no sólidos - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Usar objetos no sólidos para operaciones booleanas puede causar resultados inesperados. ¿Quieres continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Seleccione dos o más formas, por favor. O bien, seleccione un compuesto que contiene dos o más formas para calcular el común entre ellas. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Seleccione dos formas o más, por favor. O bien, seleccione un compuesto que contiene dos o más formas para ser fusionado. - + Select one shape or more, please. Seleccione una o más formas, por favor. - + All CAD Files Todos los archivos CAD - + All Files Todos los Archivos - + You have to select either two edges or two wires. Tiene que seleccionar dos aristas o dos alambres. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_eu.ts b/src/Mod/Part/Gui/Resources/translations/Part_eu.ts index 3f07403950..f89afe6889 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_eu.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_eu.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Pieza - - - + + + Box selection Kutxa bidezko hautapena @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Pieza - + Check Geometry Egiaztatu geometria - + Analyzes Geometry For Errors Geometria analizatzen du errore bila @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Pieza - + Color per face Kolorea aurpegi bakoitzeko - + Set the color of each individual face of the selected object. Ezarri hautatutako objektuaren banakako aurpegi bakoitzaren kolorea. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Pieza - + Measure Angular Neurketa angeluarra - + Measure the angle between two edges. Neurtu bi ertzen arteko angelua. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Pieza - + Clear All Garbitu dena - + Clear all dimensions from the screen. Garbitu pantailako kota guztiak. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Pieza - + Measure Linear Neurketa lineala - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ bi erpinen artean neurtuko da. CmdMeasureRefresh - + Part Pieza - + Refresh Freskatu - + Recalculate the dimensions if the measured points have moved. Kalkulatu kotak berriro neurtutako @@ -1279,17 +1279,17 @@ puntuak lekuz aldatu badira. CmdMeasureToggle3d - + Part Pieza - + Toggle 3D Txandakatu 3Da - + Toggle on and off all direct dimensions, including angular. Aktibatu/desaktibatu kota zuzen guztiak, @@ -1299,17 +1299,17 @@ baita angeluarra ere. CmdMeasureToggleAll - + Part Pieza - + Toggle All Txandakatu denak - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Aktibatu/desaktibatu ikusgai dauden kota guztiak: @@ -1319,17 +1319,17 @@ zuzenak, ortogonalak eta angeluarrak. CmdMeasureToggleDelta - + Part Pieza - + Toggle Delta Txandakatu delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ X, Y eta Z osagaietan. CmdPartBoolean - + Part Pieza - + Boolean... Boolearra... - + Run a boolean operation with two shapes selected Exekutatu eragiketa boolear bat hautatutako bi formarekin @@ -1415,17 +1415,17 @@ X, Y eta Z osagaietan. CmdPartBuilder - + Part Pieza - + Shape builder... Formen eraikitzailea... - + Advanced utility to create shapes Formak sortzeko utilitate aurreratua @@ -1433,17 +1433,17 @@ X, Y eta Z osagaietan. CmdPartChamfer - + Part Pieza - + Chamfer... Alaka... - + Chamfer the selected edges of a shape Alakatu forma batean hautatutako ertzak @@ -1451,17 +1451,17 @@ X, Y eta Z osagaietan. CmdPartCommon - + Part Pieza - + Intersection Ebakidura - + Make an intersection of two shapes Egin bi formaren ebakidura @@ -1469,17 +1469,17 @@ X, Y eta Z osagaietan. CmdPartCompCompoundTools - + Part Pieza - + Compound tools Konposatuen tresnak - + Compound tools: working with lists of shapes. Konposatuen tresnak: formen zerrendekin lan egitea. @@ -1487,17 +1487,17 @@ X, Y eta Z osagaietan. CmdPartCompJoinFeatures - + Part Pieza - + Join objects... Elkartu objektuak... - + Join walled objects Elkartu pareta osatzen duten objektuak @@ -1505,17 +1505,17 @@ X, Y eta Z osagaietan. CmdPartCompOffset - + Part Pieza - + Offset: Desplazamendua: - + Tools to offset shapes (construct parallel shapes) Formak desplazatzeko tresnak (forma paraleloak eraikitzeko) @@ -1523,17 +1523,17 @@ X, Y eta Z osagaietan. CmdPartCompSplitFeatures - + Part Pieza - + Split objects... Zatitu objektuak... - + Shape splitting and Compsolid creation tools. Formak zatitzeko eta konposatu solidoak sortzeko tresnak. @@ -1541,17 +1541,17 @@ X, Y eta Z osagaietan. CmdPartCompound - + Part Pieza - + Make compound Egin konposatua - + Make a compound of several shapes Egin hainbat formen konposatu bat @@ -1579,17 +1579,17 @@ X, Y eta Z osagaietan. CmdPartCrossSections - + Part Pieza - + Cross-sections... Zeharkako sekzioak... - + Cross-sections Zeharkako sekzioak @@ -1671,17 +1671,17 @@ X, Y eta Z osagaietan. CmdPartExport - + Part Pieza - + Export CAD... Esportatu CADa... - + Exports to a CAD file CAD fitxategi batera esportatzen du @@ -1689,17 +1689,17 @@ X, Y eta Z osagaietan. CmdPartExtrude - + Part Pieza - + Extrude... Estruitu... - + Extrude a selected sketch Estruitu hautatutako krokis bat @@ -1707,17 +1707,17 @@ X, Y eta Z osagaietan. CmdPartFillet - + Part Pieza - + Fillet... Biribildu... - + Fillet the selected edges of a shape Biribildu forma batean hautatutako ertzak @@ -1725,17 +1725,17 @@ X, Y eta Z osagaietan. CmdPartFuse - + Part Pieza - + Union Batuketa - + Make a union of several shapes Batu hainbat forma @@ -1743,17 +1743,17 @@ X, Y eta Z osagaietan. CmdPartImport - + Part Pieza - + Import CAD... Inportatu CADa... - + Imports a CAD file CAD fitxategi bat inportatzen du @@ -1761,17 +1761,17 @@ X, Y eta Z osagaietan. CmdPartImportCurveNet - + Part Pieza - + Import curve network... Inportatu kurba-sare bat... - + Import a curve network Inportatu kurba-sare bat @@ -1779,17 +1779,17 @@ X, Y eta Z osagaietan. CmdPartLoft - + Part Pieza - + Loft... Jaurti... - + Utility to loft Jaurtitzeko utilitatea @@ -1797,17 +1797,17 @@ X, Y eta Z osagaietan. CmdPartMakeFace - + Part Pieza - + Make face from wires Sortu aurpegia alanbreetatik - + Make face from set of wires (e.g. from a sketch) Sortu aurpegia alanbreen multzo batetik (adibidez krokis batetik) @@ -1815,17 +1815,17 @@ X, Y eta Z osagaietan. CmdPartMakeSolid - + Part Pieza - + Convert to solid Bihurtu solido - + Create solid from a shell or compound Sortu solidoa oskol batetik edo konposatu batetik @@ -1833,17 +1833,17 @@ X, Y eta Z osagaietan. CmdPartMirror - + Part Pieza - + Mirroring... Ispilatzen... - + Mirroring a selected shape Hautatutako forma bat ispilatzen @@ -1851,17 +1851,17 @@ X, Y eta Z osagaietan. CmdPartOffset - + Part Pieza - + 3D Offset... 3D desplazamendua... - + Utility to offset in 3D 3Dn desplazatzeko utilitatea @@ -1869,17 +1869,17 @@ X, Y eta Z osagaietan. CmdPartOffset2D - + Part Pieza - + 2D Offset... 2D desplazamendua... - + Utility to offset planar shapes Forma planarra desplazatzeko utilitatea @@ -1941,17 +1941,17 @@ X, Y eta Z osagaietan. CmdPartProjectionOnSurface - + Part Pieza - + Create projection on surface... Sortu proiekzioa gainazalean... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ zehazten du. CmdPartReverseShape - + Part Pieza - + Reverse shapes Alderantzikatu formak - + Reverse orientation of shapes Alderantzikatu formen orientazioa @@ -2001,17 +2001,17 @@ zehazten du. CmdPartRevolve - + Part Pieza - + Revolve... Erreboluzionatu... - + Revolve a selected shape Erreboluzionatu hautatutako forma bat @@ -2019,17 +2019,17 @@ zehazten du. CmdPartRuledSurface - + Part Pieza - + Create ruled surface Sortu gainazal erregelatua - + Create a ruled surface from either two Edges or two wires Sortu gainazal erregelatua bi ertz edo bi alanbre erabiliz @@ -2037,17 +2037,17 @@ zehazten du. CmdPartSection - + Part Pieza - + Section Sekzioa - + Make a section of two shapes Egin bi formaren sekzio bat @@ -2055,12 +2055,12 @@ zehazten du. CmdPartSectionCut - + Persistent section cut Sekzio-mozte iraunkorra - + Creates a persistent section cut of visible part objects Sekzio-mozte iraunkorra sortzen du ikusgai dauden pieza-objektuetan @@ -2142,17 +2142,17 @@ zehazten du. CmdPartSweep - + Part Pieza - + Sweep... Ekortu... - + Utility to sweep Ekortzeko utilitatea @@ -2160,27 +2160,27 @@ zehazten du. CmdPartThickness - + Part Pieza - + Thickness... Lodiera... - + Utility to apply a thickness Lodiera aplikatzeko utilitatea - + Wrong selection Hautapen okerra - + Selected shape is not a solid Hautatutako forma ez da solidoa @@ -2232,67 +2232,67 @@ zehazten du. Pieza-koadroaren sorrera - + Part Cut Piezaren mozketa - + Common Komuna - + Fusion Fusioa - + Compound Konposatua - + Section Sekzioa - + Import Part Inportatu pieza - + Part Import Curve Net Piezaren kurba-sarearen inportazioa - + Reverse Alderantzizkatu - + Make face Sortu aurpegia - + Make Offset Sortu desplazamendua - + Make 2D Offset Sortu 2D desplazamendua - + Make Thickness Sortu lodiera - + Create ruled surface Sortu gainazal erregelatua @@ -2604,32 +2604,32 @@ Oharra: Kokapena eransten den objektuaren espazio lokalean adierazten da.Trukatu hautapena - + Select a shape on the left side, first Hasteko, hautatu ezker aldeko forma bat - + Select a shape on the right side, first Hasteko, hautatu eskuin aldeko forma bat - + Cannot perform a boolean operation with the same shape Ezin da eragiketa boolearra egin forma berarekin - + No active document available Ez dago dokumentu aktiborik eskuragarri - + One of the selected objects doesn't exist anymore Hautatutako objektuetako bat ez da existitzen - + Performing union on non-solids is not possible Ezin dira solidoak ez diren elementuak batu @@ -2639,7 +2639,7 @@ Oharra: Kokapena eransten den objektuaren espazio lokalean adierazten da.Ezin da ebakidurarik egin solidoak ez diren elementuekin - + Performing difference on non-solids is not possible Ezin da diferentziarik kalkulatu solidoak ez diren elementuekin @@ -3310,8 +3310,8 @@ irakurtzen den bitartean (motelagoa baino xehetasun gehiagokoa). - Select this to not import any invisible objects. - Hautatu hau objektu ikusezinak ez inportatzeko. + Select this to import invisible objects. + Hautatu hau objektu ikusezinak inportatzeko. @@ -5732,62 +5732,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Hautapen okerra - + Select two shapes please. Hautatu bi forma. - - - + + + Non-solids selected Solidoak ez direnak hautatu dira - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Solidoak ez diren objektuak eragiketa boolearretan erabiltzeak espero ez diren emaitzak eman ditzake. Jarraitu nahi duzu? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Hautatu bi forma edo gehiago. Edo hautatu bi forma edo gehiago dituen konposatu bat, bien arteko zati komuna kalkulatzeko. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Hautatu bi forma edo gehiago, Edo hautatu bi forma edo gehiago dituen konposatu bat, fusionatuak izan daitezen. - + Select one shape or more, please. Hautatu forma bat edo gehiago. - + All CAD Files CAD fitxategi guztiak - + All Files Fitxategi guztiak - + You have to select either two edges or two wires. Bi ertz edo bi alanbre hautatu behar dituzu. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_fi.ts b/src/Mod/Part/Gui/Resources/translations/Part_fi.ts index 812b5a1668..d1912ced9e 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_fi.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_fi.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Osa - - - + + + Box selection Laatikon valinta @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Osa - + Check Geometry Tarkista geometria - + Analyzes Geometry For Errors Etsi geometrian virheet @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Osa - + Color per face Väri per tahko - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Osa - + Measure Angular Mittaa kulma - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Osa - + Clear All Tyhjennä kaikki - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Osa - + Measure Linear Mittaa lineaarisesti - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Osa - + Refresh Päivitä - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Osa - + Toggle 3D Toggle 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Osa - + Toggle All Vaihda kaikki - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Osa - + Toggle Delta Vaihda Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Osa - + Boolean... Boolen operaatio... - + Run a boolean operation with two shapes selected Suorita Boolen operaatio kahdella valitulla muodolla @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Osa - + Shape builder... Rakenna muoto... - + Advanced utility to create shapes Lisäasetukset muotojen luomisen apuohjelmalle @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Osa - + Chamfer... Viistä... - + Chamfer the selected edges of a shape Viiste valittuihin muotoihin reunoista @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Osa - + Intersection Leikkaus - + Make an intersection of two shapes Tee kahden muodon leikkauspisteet @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Osa - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Yhdistelmämuotojen työkalut: muotolistojen käsitteleminen. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Osa - + Join objects... Yhdistä objektit... - + Join walled objects Liitä seinäkohteisiin @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Osa - + Offset: Siirtymä: - + Tools to offset shapes (construct parallel shapes) Työkalut kompensoimaan muotoja (rakenna rinnakkaisia muotoja) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Osa - + Split objects... Jaa objektit... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Osa - + Make compound Tee yhdistelmämuoto - + Make a compound of several shapes Tee yhdistelmämuoto useasta muodosta @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Osa - + Cross-sections... Poikkileikkaukset... - + Cross-sections Poikkileikkaukset @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Osa - + Export CAD... Vie CAD... - + Exports to a CAD file CAD-tiedoston vienti @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Osa - + Extrude... Pursota... - + Extrude a selected sketch Pursota valittu luonnos @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Osa - + Fillet... Pyöristys... - + Fillet the selected edges of a shape Pyöristä muodon valitut särmät @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Osa - + Union Unioni - + Make a union of several shapes Tee unioni (yhdiste) useista muodoista @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Osa - + Import CAD... Tuo CAD... - + Imports a CAD file Tuo CAD-tiedoston @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Osa - + Import curve network... Tuo käyrä-verkko... - + Import a curve network Tuo käyrä-verkko @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Osa - + Loft... Profiilivenytys... - + Utility to loft Apuohjelma profiilivenytykseen @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Osa - + Make face from wires Tee pintatahko langoista - + Make face from set of wires (e.g. from a sketch) Tee pintatahko lankojen kokoelmasta (esim. luonnoksesta) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Osa - + Convert to solid Muunna kiintomuodoksi - + Create solid from a shell or compound Luo kiintomuoto kuoresta tai yhdistelmämuodosta @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Osa - + Mirroring... Peilaus... - + Mirroring a selected shape Valitun muodon peilaus @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Osa - + 3D Offset... 3D-siirtymä... - + Utility to offset in 3D Apuohjelma 3D-siirtymän määrittämiseen @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Osa - + 2D Offset... 2D-siirtymä... - + Utility to offset planar shapes Työkalu tasomuotojen siirtymään @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Osa - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Osa - + Reverse shapes Käänteiset muodot - + Reverse orientation of shapes Käännä muotojen suunta @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Osa - + Revolve... Pyöräytä... - + Revolve a selected shape Valitun muodon pyöräytys @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Osa - + Create ruled surface Luo pyyhkäisypinta (viivotinpinta) - + Create a ruled surface from either two Edges or two wires Luo pyyhkäisypinta (viivotinpinta) joko kahdesta reunasta tai kahdesta langasta @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Osa - + Section Leikkaus - + Make a section of two shapes Tee osa kahdesta muodosta @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Osa - + Sweep... Pyyhkäise... - + Utility to sweep Pyyhkäisijä @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Osa - + Thickness... Paksuus... - + Utility to apply a thickness Apuohjelma jolla paksuuden voi määrätä - + Wrong selection Virheellinen valinta - + Selected shape is not a solid Valittu muoto ei ole kiintomuoto @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Yhteinen - + Fusion Fusion - + Compound Yhdistelmämuoto - + Section Leikkaus - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse Käänteinen - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Luo pyyhkäisypinta (viivotinpinta) @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Vaihda valinta - + Select a shape on the left side, first Valitse ensin vasemmanpuoleinen muoto - + Select a shape on the right side, first Valitse ensin oikeanpuoleinen muoto - + Cannot perform a boolean operation with the same shape Boolen operaatiota ei voi suorittaa yhdellä ja samalla muodolla - + No active document available Ei aktiivista asiakirjaa saatavilla - + One of the selected objects doesn't exist anymore Yksi valituista kohteista ei ole enää olemassa - + Performing union on non-solids is not possible Yhdiste-operaatio eli unioni on mahdollinen vain kiintomuotojen välillä @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Leikkaus-operaatio on mahdollinen vain kiintomuotojen välillä - + Performing difference on non-solids is not possible Erotus-operaatio on mahdollinen vain kiintomuotojen välillä @@ -3312,8 +3312,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5736,63 +5736,63 @@ reuna tai lanka, jota pitkin reitin pyyhkäisy tehdään. - - - - - + + + + + Wrong selection Virheellinen valinta - + Select two shapes please. Valitse kaksi muotoa. - - - + + + Non-solids selected Muut kuin kiintomuodot valittu - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Muiden kuin kiintomuotojen käyttö voi aiheuttaa odottamattomia tuloksia Boolen operaatioita käytettäessä. Haluatko jatkaa? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Valitse vähintään kaksi muotoa. Tai valitse yksi yhdistelmämuoto, joka sisältää vähintään kaksi muotoa, jotta voidaan laskea niiden välinen leikkaus. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Valitse vähintään kaksi muotoa. Tai valitse yksi yhdistelmämuoto, joka sisältää vähintään kaksi muotoa, jotta voidaan liittää ne yhteen. - + Select one shape or more, please. Valitse yksi tai useampia muotoja. - + All CAD Files Kaikki CAD-tiedostot - + All Files Kaikki tiedostot - + You have to select either two edges or two wires. Voit valita vain kaksi reunaa tai kaksi lankaa. @@ -6630,7 +6630,7 @@ It will create a 'Compound Filter' for each shape. Area - Area + Pinta-ala diff --git a/src/Mod/Part/Gui/Resources/translations/Part_fr.ts b/src/Mod/Part/Gui/Resources/translations/Part_fr.ts index bffe9bafa4..1cfe3b7fb8 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_fr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_fr.ts @@ -737,7 +737,7 @@ Placement is made equal to Placement of linked object. Attachment3D mode tooltip - Le placement est identique au Placement de l’objet lié. + Le placement est identique au placement de l’objet lié. @@ -1150,32 +1150,32 @@ CmdBoxSelection - + Part Pièce - - - + + + Box selection - Sélection par boîte + Sélectionner par une boîte CmdCheckGeometry - + Part Pièce - + Check Geometry Vérifier la géométrie - + Analyzes Geometry For Errors Analyse la géométrie @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Pièce - + Color per face Couleur par face - + Set the color of each individual face of the selected object. Définir la couleur de chaque face de l’objet sélectionné. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Pièce - + Measure Angular Mesure angulaire - + Measure the angle between two edges. Mesurer l'angle entre deux arêtes. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Pièce - + Clear All Tout effacer - + Clear all dimensions from the screen. Effacer toutes les cotes à l’écran. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Pièce - + Measure Linear Mesure linéaire - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ cela mesurera entre deux de leurs sommets. CmdMeasureRefresh - + Part Pièce - + Refresh Rafraîchir - + Recalculate the dimensions if the measured points have moved. Recalculer les cotes @@ -1279,17 +1279,17 @@ si les points mesurés ont été déplacés. CmdMeasureToggle3d - + Part Pièce - + Toggle 3D Basculer en 3D - + Toggle on and off all direct dimensions, including angular. Basculer toutes les cotes directes, @@ -1299,17 +1299,17 @@ y compris angulaire. CmdMeasureToggleAll - + Part Pièce - + Toggle All Tout basculer - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Basculer toutes les cotes actuellement visibles, @@ -1319,17 +1319,17 @@ directes, orthogonales et angulaires. CmdMeasureToggleDelta - + Part Pièce - + Toggle Delta - Basculer Delta + Basculer en mode delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ décomposée en ses composantes X, Y et Z. CmdPartBoolean - + Part Pièce - + Boolean... Opération booléenne... - + Run a boolean operation with two shapes selected Exécuter une opération booléenne sur deux formes sélectionnées @@ -1415,17 +1415,17 @@ décomposée en ses composantes X, Y et Z. CmdPartBuilder - + Part Pièce - + Shape builder... Générateur de forme... - + Advanced utility to create shapes Utilitaire avancé de création de formes @@ -1433,17 +1433,17 @@ décomposée en ses composantes X, Y et Z. CmdPartChamfer - + Part Pièce - + Chamfer... Chanfrein... - + Chamfer the selected edges of a shape Chanfreiner les arêtes sélectionnées d'une forme @@ -1451,17 +1451,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCommon - + Part Pièce - + Intersection Intersection - + Make an intersection of two shapes Exécuter une intersection entre deux formes @@ -1469,17 +1469,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCompCompoundTools - + Part Pièce - + Compound tools Outils pour des composés - + Compound tools: working with lists of shapes. Outils pour des composés : travailler avec des listes de formes. @@ -1487,17 +1487,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCompJoinFeatures - + Part Pièce - + Join objects... Joindre les objets... - + Join walled objects Joindre les objets à paroi @@ -1505,17 +1505,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCompOffset - + Part Pièce - + Offset: Décalage : - + Tools to offset shapes (construct parallel shapes) Outils pour décaler des formes (construire des formes parallèles) @@ -1523,17 +1523,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCompSplitFeatures - + Part Pièce - + Split objects... Éclater des objets... - + Shape splitting and Compsolid creation tools. Outils pour éclater des formes et créer des composés. @@ -1541,17 +1541,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCompound - + Part Pièce - + Make compound Créer un composé - + Make a compound of several shapes Créer un composé à partir de plusieurs formes @@ -1579,17 +1579,17 @@ décomposée en ses composantes X, Y et Z. CmdPartCrossSections - + Part Pièce - + Cross-sections... Coupes... - + Cross-sections Coupes @@ -1671,17 +1671,17 @@ décomposée en ses composantes X, Y et Z. CmdPartExport - + Part Pièce - + Export CAD... - Exportation CAO... + Exporter un fichier de CAO... - + Exports to a CAD file Exporte vers un fichier dans un format de CAO @@ -1689,17 +1689,17 @@ décomposée en ses composantes X, Y et Z. CmdPartExtrude - + Part Pièce - + Extrude... Extrusion... - + Extrude a selected sketch Extrusion d'une esquisse sélectionnée @@ -1707,17 +1707,17 @@ décomposée en ses composantes X, Y et Z. CmdPartFillet - + Part Pièce - + Fillet... Congé... - + Fillet the selected edges of a shape Créer un congé sur les arêtes sélectionnées d'une forme @@ -1725,17 +1725,17 @@ décomposée en ses composantes X, Y et Z. CmdPartFuse - + Part Pièce - + Union Union - + Make a union of several shapes Exécuter l'union de plusieurs formes @@ -1743,17 +1743,17 @@ décomposée en ses composantes X, Y et Z. CmdPartImport - + Part Pièce - + Import CAD... Importation CAO... - + Imports a CAD file Importe un fichier CAO @@ -1761,17 +1761,17 @@ décomposée en ses composantes X, Y et Z. CmdPartImportCurveNet - + Part Pièce - + Import curve network... Importer réseau de courbes... - + Import a curve network Importer un réseau de courbes @@ -1779,17 +1779,17 @@ décomposée en ses composantes X, Y et Z. CmdPartLoft - + Part Pièce - + Loft... Lissage... - + Utility to loft Lissage d'une série de profils @@ -1797,17 +1797,17 @@ décomposée en ses composantes X, Y et Z. CmdPartMakeFace - + Part Pièce - + Make face from wires - Créer une face à partir de fils + Créer une face à partir de polylignes - + Make face from set of wires (e.g. from a sketch) Créer une face à partir d'un ensemble de polylignes (par exemple, à partir d’une esquisse) @@ -1815,17 +1815,17 @@ décomposée en ses composantes X, Y et Z. CmdPartMakeSolid - + Part Pièce - + Convert to solid Convertir en solide - + Create solid from a shell or compound Créer un solide à partir d'une coque ou d'un composé @@ -1833,17 +1833,17 @@ décomposée en ses composantes X, Y et Z. CmdPartMirror - + Part Pièce - + Mirroring... Mise en miroir... - + Mirroring a selected shape Mise en miroir de la forme sélectionnée @@ -1851,17 +1851,17 @@ décomposée en ses composantes X, Y et Z. CmdPartOffset - + Part Pièce - + 3D Offset... Décalage 3D... - + Utility to offset in 3D Utilitaire pour décaler en 3D @@ -1869,17 +1869,17 @@ décomposée en ses composantes X, Y et Z. CmdPartOffset2D - + Part Pièce - + 2D Offset... Décalage 2D... - + Utility to offset planar shapes Utilitaire pour décaler des formes planaires @@ -1935,23 +1935,23 @@ décomposée en ses composantes X, Y et Z. Creation of parametrized geometric primitives - Création de primitives géométriques paramétrées + Créer des primitives géométriques paramétrées CmdPartProjectionOnSurface - + Part Pièce - + Create projection on surface... Créer une projection sur une surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1982,17 +1982,17 @@ La vue caméra détermine la direction de la projection. CmdPartReverseShape - + Part Pièce - + Reverse shapes Inverser les formes - + Reverse orientation of shapes Inverser l'orientation des formes @@ -2000,17 +2000,17 @@ La vue caméra détermine la direction de la projection. CmdPartRevolve - + Part Pièce - + Revolve... Révolution... - + Revolve a selected shape Appliquer une révolution à une forme sélectionnée @@ -2018,17 +2018,17 @@ La vue caméra détermine la direction de la projection. CmdPartRuledSurface - + Part Pièce - + Create ruled surface Créer une surface réglée - + Create a ruled surface from either two Edges or two wires Créer une surface réglée depuis deux arêtes ou deux fils @@ -2036,17 +2036,17 @@ La vue caméra détermine la direction de la projection. CmdPartSection - + Part Pièce - + Section Section - + Make a section of two shapes Faire une section de deux formes @@ -2054,12 +2054,12 @@ La vue caméra détermine la direction de la projection. CmdPartSectionCut - + Persistent section cut Coupe persistante - + Creates a persistent section cut of visible part objects Crée une coupe persistante des objets de la partie visible @@ -2141,17 +2141,17 @@ La vue caméra détermine la direction de la projection. CmdPartSweep - + Part Pièce - + Sweep... Balayage... - + Utility to sweep Balayage d'une ou plusieurs section le long d'un chemin @@ -2159,27 +2159,27 @@ La vue caméra détermine la direction de la projection. CmdPartThickness - + Part Pièce - + Thickness... Évidement... - + Utility to apply a thickness Évidement d'un solide sélectionné - + Wrong selection Sélection invalide - + Selected shape is not a solid La forme sélectionnée n'est pas un solide @@ -2231,67 +2231,67 @@ La vue caméra détermine la direction de la projection. Créer un Part cube - + Part Cut Part Soustraction - + Common Intersection - + Fusion Fusion - + Compound Composé - + Section Section - + Import Part Importer une pièce - + Part Import Curve Net Part Réseau de courbe d'importation - + Reverse Inverser - + Make face Réaliser une face - + Make Offset Créer un décalage - + Make 2D Offset Créer un décalage 2D - + Make Thickness Créer une épaisseur - + Create ruled surface Créer une surface réglée @@ -2323,7 +2323,7 @@ La vue caméra détermine la direction de la projection. Edit attachment - Modifier la pièce jointe + Modifier l'ancrage @@ -2424,7 +2424,7 @@ La vue caméra détermine la direction de la projection. Note: The placement is expressed in local space of object being attached. - Note : Le placement est exprimé localement par rapport à l'objet auquel il est attaché. + Remarque : le placement est exprimé localement par rapport à l'objet auquel il est ancré. @@ -2446,7 +2446,7 @@ La vue caméra détermine la direction de la projection. Rotation around the x-axis Note: The placement is expressed in local space of object being attached. Rotation autour de l'axe x -Remarque : le placement est exprimé localement par rapport à l'objet auquel il est rattaché. +Remarque : le placement est exprimé localement par rapport à l'objet auquel il est ancré. @@ -2458,7 +2458,7 @@ Remarque : le placement est exprimé localement par rapport à l'objet auquel il Rotation around the y-axis Note: The placement is expressed in local space of object being attached. Rotation autour de l'axe y -Remarque : le placement est exprimé localement par rapport à l'objet auquel il est rattaché. +Remarque : le placement est exprimé localement par rapport à l'objet auquel il est ancré. @@ -2470,7 +2470,7 @@ Remarque : le placement est exprimé localement par rapport à l'objet auquel il Rotation around the z-axis Note: The placement is expressed in local space of object being attached. Rotation autour de l'axe z -Remarque : le placement est exprimé localement par rapport à l'objet auquel il est rattaché. +Remarque : le placement est exprimé localement par rapport à l'objet auquel il est ancré. @@ -2603,32 +2603,32 @@ Remarque : le placement est exprimé localement par rapport à l'objet auquel il Changement de sélection - + Select a shape on the left side, first Sélectionner d'abord une forme sur le côté gauche - + Select a shape on the right side, first Sélectionner d'abord une forme sur le côté droit - + Cannot perform a boolean operation with the same shape Impossible d'effectuer une opération booléenne sur une seule forme - + No active document available Aucun document actif disponible - + One of the selected objects doesn't exist anymore Un des objets sélectionnés n'existe plus - + Performing union on non-solids is not possible L'union de formes non-solides n'est pas possible @@ -2638,7 +2638,7 @@ Remarque : le placement est exprimé localement par rapport à l'objet auquel il L'intersection de formes non-solides n'est pas possible - + Performing difference on non-solids is not possible La soustraction de formes non-solides n'est pas possible @@ -2850,7 +2850,7 @@ la taille du fichier STEP résultant. Along: - Le long de : + Extrusion primaire : @@ -3305,8 +3305,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Sélectionner cette option pour ne pas importer d'objets invisibles. + Select this to import invisible objects. + Sélectionnez ceci pour importer des objets invisibles. @@ -3395,17 +3395,17 @@ during file reading (slower but higher details). X: - X : + X : Y: - Y : + Y : Z: - Z : + Z : @@ -3592,7 +3592,7 @@ during file reading (slower but higher details). Wedge - Prisme + Pyramide tronquée @@ -3796,12 +3796,12 @@ during file reading (slower but higher details). Right-handed - Main droite + Pas à droite Left-handed - Main gauche + Pas à gauche @@ -4047,7 +4047,7 @@ during file reading (slower but higher details). Angle: - Angle : + Angle : @@ -5420,7 +5420,7 @@ en traçant un rectangle de sélection dans la vue 3D Box selection - Sélection par boîte + Sélectionner par une boîte @@ -5736,63 +5736,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Sélection invalide - + Select two shapes please. Veuillez sélectionner deux formes. - - - + + + Non-solids selected Formes non-pleines sélectionnées - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? L'utilisation de formes non-pleines pour les opérations booléennes peut entraîner des résultats indésirables. Voulez-vous continuer ? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. - Sélectionnez deux formes ou plus. Ou sélectionnez un composé contenant plusieurs formes à partir desquelles calculer l'intersection. + Sélectionnez deux formes ou plus, ou bien, sélectionnez un composé contenant deux formes ou plus pour calculer leur intersection. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. - Sélectionnez deux formes ou plus. Ou sélectionnez un composé contenant plusieurs formes à partir desquelles calculer la fusion. + Sélectionnez deux formes ou plus, ou bien, sélectionnez un composé contenant deux formes ou plus pour calculer leur union. - + Select one shape or more, please. Veuillez sélectionner au moins une forme. - + All CAD Files Tous les fichiers CAO - + All Files Tous les fichiers - + You have to select either two edges or two wires. Vous devez sélectionner deux arêtes ou deux fils. @@ -6170,7 +6170,7 @@ Voulez-vous continuer ? Attachment editor - Éditeur de l'accrochage + Éditeur de l'ancrage @@ -6218,7 +6218,7 @@ Voulez-vous continuer ? Boolean - Opérations booléennes + Opérations booléennes de Part @@ -6411,7 +6411,7 @@ Si un deuxième objet est sélectionné, il sera utilisé comme référence, par First select a shape that is a compound. If a second object is selected (optional) it will be treated as a stencil. - Sélectionnez d'abord une forme qui est un composé. Si un deuxième objet est sélectionné (facultatif), il sera traité comme un gabarit. + Sélectionnez d'abord un composé. Si un deuxième objet est sélectionné (facultatif), il sera traité comme un modèle de forme. @@ -6565,7 +6565,7 @@ Cela créera un "filtre composé" pour chaque forme. Attachment... - Ancrage + Ancrage... diff --git a/src/Mod/Part/Gui/Resources/translations/Part_gl.ts b/src/Mod/Part/Gui/Resources/translations/Part_gl.ts index 3a80e88a30..f8e9a35ce8 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_gl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_gl.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Peza - - - + + + Box selection Caixa de selección @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Peza - + Check Geometry Verificar a xeometría - + Analyzes Geometry For Errors Analiza a xeometría na procura de erros @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Peza - + Color per face Cor por face - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Peza - + Measure Angular Medida Angular - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Peza - + Clear All Limpar todo - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Peza - + Measure Linear Medida linear - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Peza - + Refresh Refrescar - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Peza - + Toggle 3D Toggle 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Peza - + Toggle All Alternar todos - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Peza - + Toggle Delta Cambiar a Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Peza - + Boolean... Booleano... - + Run a boolean operation with two shapes selected Executa unha operación booleana con dúas formas escolmadas @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Peza - + Shape builder... Construtor de formas... - + Advanced utility to create shapes Utilidade avanzada para facer formas @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Peza - + Chamfer... Chafrán... - + Chamfer the selected edges of a shape Facer chafrán nos bordos escolmados dunha forma @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Peza - + Intersection Intersección - + Make an intersection of two shapes Facer unha intersección de dúas formas @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Peza - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Ferramentas compostas: traballando con listas de formas. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Peza - + Join objects... Xuntar obxectos... - + Join walled objects Xuntar obxectos murados @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Peza - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Ferramentas para desprazar formas (constrúe formas paralelas) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Peza - + Split objects... Dividir obxectos... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Peza - + Make compound Facer composto - + Make a compound of several shapes Fai un composto a partir de varias formas @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Peza - + Cross-sections... Cortes transversais... - + Cross-sections Cortes transversais @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Peza - + Export CAD... Exportar CAD... - + Exports to a CAD file Exporta para un ficheiro CAD @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Peza - + Extrude... Extrudir... - + Extrude a selected sketch Extrude un esbozo escolmado @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Peza - + Fillet... Chafrán arredondado... - + Fillet the selected edges of a shape Fai un chafrán arredondado dos bordos escolmados dunha forma @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Peza - + Union Unión - + Make a union of several shapes Facer unha unión de varias formas @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Peza - + Import CAD... Importar CAD... - + Imports a CAD file Importar un ficheiro CAD @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Peza - + Import curve network... Importar rede de curvas... - + Import a curve network Importar unha rede de curvas @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Peza - + Loft... Alzamento... - + Utility to loft Utilidade para alzamento @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Peza - + Make face from wires Facer face a partir de arames - + Make face from set of wires (e.g. from a sketch) Facer face dende xogo de arames (e.x. dende un esbozo) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Peza - + Convert to solid Converter a sólido - + Create solid from a shell or compound Crear sólidos a partir dunha carcasa ou composto @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Peza - + Mirroring... Espello... - + Mirroring a selected shape Imaxe espello dunha forma escolmada @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Peza - + 3D Offset... Desprazamento 3D... - + Utility to offset in 3D Utilidade a desprazamento en 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Peza - + 2D Offset... Desprazamento 2D... - + Utility to offset planar shapes Utilidade a formas chan desprazadas @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Peza - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Peza - + Reverse shapes Inverter formas - + Reverse orientation of shapes Inverte a orientación das formas @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Peza - + Revolve... Virar... - + Revolve a selected shape Vira unha forma escolmada @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Peza - + Create ruled surface Crear superficie chaira - + Create a ruled surface from either two Edges or two wires Crea unha superficie chaira a partir de dúas arestas ou dous arames @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Peza - + Section Sección - + Make a section of two shapes Facer unha sección de dúas formas @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Peza - + Sweep... Varrer... - + Utility to sweep Utilidade para varrer @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Peza - + Thickness... Grosor... - + Utility to apply a thickness Utilidade para aplicar un grosor - + Wrong selection Escolma errada - + Selected shape is not a solid A forma escolmada non é un sólido @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Común - + Fusion Fusión - + Compound Composto - + Section Sección - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse Inverter - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Crear superficie chaira @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Trocar selección - + Select a shape on the left side, first Primeiro escolme unha forma do lado esquerdo, - + Select a shape on the right side, first Primeiro escolme unha forma do lado dereito, - + Cannot perform a boolean operation with the same shape Non é posible facer unha operación booleana coa mesma forma - + No active document available Ningún documento activo dispoñíbel - + One of the selected objects doesn't exist anymore Un dos obxectos escolmados xa non existe - + Performing union on non-solids is not possible Non é posíbel conformar unha unión de non sólidos @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Non é posíbel conformar unha intersección de non sólidos - + Performing difference on non-solids is not possible Non é posíbel conformar unha subtracción de non sólidos @@ -3308,8 +3308,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5727,62 +5727,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Escolma errada - + Select two shapes please. Escolme dúas formas por favor. - - - + + + Non-solids selected Escolléronse non-sólidos - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? O uso de non-sólidos para operacións booleanas pode levar a resultados inesperados. Quere seguir? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Escolme dúas ou máis formas, por favor. Ou, escolla un composto que conteña dúas ou máis formas para calcular a parte común entre elas. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Escolme dúas ou máis formas, por favor. Ou, escolla un composto que conteña dúas ou máis formas para seren fundidas. - + Select one shape or more, please. Escolme unha forma ou máis, por favor. - + All CAD Files Tódolos ficheiros CAD - + All Files Tódolos ficheiros - + You have to select either two edges or two wires. Ten que escolmar tamén dúas arestas ou dous arames. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_hr.ts b/src/Mod/Part/Gui/Resources/translations/Part_hr.ts index a4a8b4d407..d4c47307a3 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_hr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_hr.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Geometrijsko tijelo - - - + + + Box selection Pravokutno odabiranje @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Geometrijsko tijelo - + Check Geometry Provjeri geometriju - + Analyzes Geometry For Errors Analiziranje geometrije radi grešaka @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Geometrijsko tijelo - + Color per face Boja po površini - + Set the color of each individual face of the selected object. Postavite boju svakog pojedinačnog lica odabranog objekta. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Geometrijsko tijelo - + Measure Angular Mjerenje kuta - + Measure the angle between two edges. Izmjerite kut između dva ruba. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Geometrijsko tijelo - + Clear All Obriši sve - + Clear all dimensions from the screen. Izbriši sve dimenzije sa zaslona. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Geometrijsko tijelo - + Measure Linear Mjerno ravnalo - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1260,17 +1260,17 @@ između dva njihova vrha. CmdMeasureRefresh - + Part Geometrijsko tijelo - + Refresh Osvježi - + Recalculate the dimensions if the measured points have moved. Ponovno izračunajte dimenzije @@ -1280,17 +1280,17 @@ ako su se mjerene točke pomaknule. CmdMeasureToggle3d - + Part Geometrijsko tijelo - + Toggle 3D Uključi/Isključi 3D - + Toggle on and off all direct dimensions, including angular. Uklj/isklj sve izravne dimenzije uključujući kutne. @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Geometrijsko tijelo - + Toggle All Uključi/Isključi sve - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Uklj/isklj sve trenutno vidljive dimenzije, @@ -1319,17 +1319,17 @@ izravne, ortogonalne i kutne. CmdMeasureToggleDelta - + Part Geometrijsko tijelo - + Toggle Delta Uključi/isključi Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ na njihove X, Y ,Z komponente. CmdPartBoolean - + Part Geometrijsko tijelo - + Boolean... Booleova ... - + Run a boolean operation with two shapes selected Izvrši booleovu operaciju sa odabrana dva oblika @@ -1415,17 +1415,17 @@ na njihove X, Y ,Z komponente. CmdPartBuilder - + Part Geometrijsko tijelo - + Shape builder... Graditelj oblika ... - + Advanced utility to create shapes Napredni alat za izradu oblika @@ -1433,17 +1433,17 @@ na njihove X, Y ,Z komponente. CmdPartChamfer - + Part Geometrijsko tijelo - + Chamfer... Zarubi... - + Chamfer the selected edges of a shape Zarubi odabrane rubove, površine ili tijela @@ -1451,17 +1451,17 @@ na njihove X, Y ,Z komponente. CmdPartCommon - + Part Geometrijsko tijelo - + Intersection Presjek - + Make an intersection of two shapes Napravite presjek dva oblika @@ -1469,17 +1469,17 @@ na njihove X, Y ,Z komponente. CmdPartCompCompoundTools - + Part Geometrijsko tijelo - + Compound tools Alati složenih materijala - + Compound tools: working with lists of shapes. Alati složenih materijala: rad s listama oblika. @@ -1487,17 +1487,17 @@ na njihove X, Y ,Z komponente. CmdPartCompJoinFeatures - + Part Geometrijsko tijelo - + Join objects... Pridruži objekte... - + Join walled objects Pridruži zatvorene objekte @@ -1505,17 +1505,17 @@ na njihove X, Y ,Z komponente. CmdPartCompOffset - + Part Geometrijsko tijelo - + Offset: Odmak: - + Tools to offset shapes (construct parallel shapes) Alati za pomak oblika (izgradnju paralelnih oblika) @@ -1523,17 +1523,17 @@ na njihove X, Y ,Z komponente. CmdPartCompSplitFeatures - + Part Geometrijsko tijelo - + Split objects... Razdjeli objekte... - + Shape splitting and Compsolid creation tools. Alati za cijepanje Oblika i Compsolid-a. @@ -1541,17 +1541,17 @@ na njihove X, Y ,Z komponente. CmdPartCompound - + Part Geometrijsko tijelo - + Make compound Napravite spoj - + Make a compound of several shapes Napravite spoj nekoliko oblika @@ -1579,17 +1579,17 @@ na njihove X, Y ,Z komponente. CmdPartCrossSections - + Part Geometrijsko tijelo - + Cross-sections... Presjeci... - + Cross-sections Presjeci @@ -1671,17 +1671,17 @@ na njihove X, Y ,Z komponente. CmdPartExport - + Part Geometrijsko tijelo - + Export CAD... Izvezi CAD ... - + Exports to a CAD file Izvoz u CAD datoteku @@ -1689,17 +1689,17 @@ na njihove X, Y ,Z komponente. CmdPartExtrude - + Part Geometrijsko tijelo - + Extrude... Izvuci ... - + Extrude a selected sketch Izvuci odabranu skicu @@ -1707,17 +1707,17 @@ na njihove X, Y ,Z komponente. CmdPartFillet - + Part Geometrijsko tijelo - + Fillet... Zaobli ... - + Fillet the selected edges of a shape Zaobli odabrane rubove oblika @@ -1725,17 +1725,17 @@ na njihove X, Y ,Z komponente. CmdPartFuse - + Part Geometrijsko tijelo - + Union Unija - + Make a union of several shapes Napravi uniju nekoliko oblika @@ -1743,17 +1743,17 @@ na njihove X, Y ,Z komponente. CmdPartImport - + Part Geometrijsko tijelo - + Import CAD... Učitaj CAD ... - + Imports a CAD file Učitaj CAD datoteku @@ -1761,17 +1761,17 @@ na njihove X, Y ,Z komponente. CmdPartImportCurveNet - + Part Geometrijsko tijelo - + Import curve network... Uvoz krivulje mreže... - + Import a curve network Uvoz krivulje mreže @@ -1779,17 +1779,17 @@ na njihove X, Y ,Z komponente. CmdPartLoft - + Part Geometrijsko tijelo - + Loft... Tuba... - + Utility to loft Alat za loft @@ -1797,17 +1797,17 @@ na njihove X, Y ,Z komponente. CmdPartMakeFace - + Part Geometrijsko tijelo - + Make face from wires Stvori naličje od žice - + Make face from set of wires (e.g. from a sketch) Maknuti lice od skupa žica (npr. iz skice) @@ -1815,17 +1815,17 @@ na njihove X, Y ,Z komponente. CmdPartMakeSolid - + Part Geometrijsko tijelo - + Convert to solid Pretvori u čvrsto tijelo - + Create solid from a shell or compound Napravi tijelo tijela iz ljuske ili skupine @@ -1833,17 +1833,17 @@ na njihove X, Y ,Z komponente. CmdPartMirror - + Part Geometrijsko tijelo - + Mirroring... Zrcaljenje ... - + Mirroring a selected shape Zrcaljenje odabranog oblika @@ -1851,17 +1851,17 @@ na njihove X, Y ,Z komponente. CmdPartOffset - + Part Geometrijsko tijelo - + 3D Offset... 3D Pomak... - + Utility to offset in 3D Korisni programi za pomak u 3D @@ -1869,17 +1869,17 @@ na njihove X, Y ,Z komponente. CmdPartOffset2D - + Part Geometrijsko tijelo - + 2D Offset... 2D Pomak... - + Utility to offset planar shapes Korisni programi za pomak planarnih oblika @@ -1912,12 +1912,12 @@ na njihove X, Y ,Z komponente. Create points object from geometry - Create points object from geometry + Stvori objekt točki iz geometrije Create selectable points object from selected geometric object - Create selectable points object from selected geometric object + Stvara odabirni objekt točki iz odabranog geometrijskog objekta @@ -1941,19 +1941,19 @@ na njihove X, Y ,Z komponente. CmdPartProjectionOnSurface - + Part Geometrijsko tijelo - + Create projection on surface... Napravite projekciju na površini... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1985,17 +1985,17 @@ projekcije. CmdPartReverseShape - + Part Geometrijsko tijelo - + Reverse shapes Zamijeni oblike - + Reverse orientation of shapes Obrnutia orijentacija oblika @@ -2003,17 +2003,17 @@ projekcije. CmdPartRevolve - + Part Geometrijsko tijelo - + Revolve... Zakreni... - + Revolve a selected shape Zakreće odabrani oblik @@ -2021,17 +2021,17 @@ projekcije. CmdPartRuledSurface - + Part Geometrijsko tijelo - + Create ruled surface Napravi glavnu površinu - + Create a ruled surface from either two Edges or two wires Izradi pravilnu površinu iz dva ruba ili dvije žice @@ -2039,17 +2039,17 @@ projekcije. CmdPartSection - + Part Geometrijsko tijelo - + Section Odsječak - + Make a section of two shapes Napravi sekciju dva oblika @@ -2057,12 +2057,12 @@ projekcije. CmdPartSectionCut - + Persistent section cut Trajni rez presjeka - + Creates a persistent section cut of visible part objects Stvara trajni rez presjeka vidljivih dijelova objekata @@ -2146,17 +2146,17 @@ projekcije. CmdPartSweep - + Part Geometrijsko tijelo - + Sweep... Zamah... - + Utility to sweep Alat za zamah @@ -2164,27 +2164,27 @@ projekcije. CmdPartThickness - + Part Geometrijsko tijelo - + Thickness... Debljina... - + Utility to apply a thickness Alat za postavljanje debljine - + Wrong selection Pogrešan odabir - + Selected shape is not a solid Odabrani oblik nije tijelo @@ -2236,67 +2236,67 @@ projekcije. Stvori kutiju dijela - + Part Cut Rezanje djela - + Common Zajedničko - + Fusion Spajanje - + Compound Spoj - + Section Odsječak - + Import Part Uvezi dio - + Part Import Curve Net Net krivulja uvoza dijela - + Reverse Obrnuto - + Make face Napravi lice - + Make Offset Napravi pomak - + Make 2D Offset Napravi 2D pomak - + Make Thickness Napravi debljinu - + Create ruled surface Napravi glavnu površinu @@ -2308,7 +2308,7 @@ projekcije. Points from geometry - Points from geometry + Točke iz geometrije @@ -2611,32 +2611,32 @@ predmeta koji se pridružuje. Zamijeni odabir - + Select a shape on the left side, first Prvo odaberite oblik na lijevoj strani - + Select a shape on the right side, first Prvo odaberite oblik na desnoj strani - + Cannot perform a boolean operation with the same shape Ne možete izvesti operaciju s istim oblikom - + No active document available Nema aktivnog dostupnog dokumenta - + One of the selected objects doesn't exist anymore Jedan od odabranih objekata više ne postoji - + Performing union on non-solids is not possible Nije moguće izvođenje spajanja na objektima koji nisu tijela @@ -2646,7 +2646,7 @@ predmeta koji se pridružuje. Nije moguće izvođenje prejeka na objektima koji nisu tijela - + Performing difference on non-solids is not possible Nije moguće izvođenje razlike na objektima koji nisu tijela @@ -2965,7 +2965,7 @@ If both lengths are zero, magnitude of direction is used. Unknown error - Unknown error + Nepoznata greška @@ -3320,8 +3320,8 @@ tijekom čitanja datoteke (sporije, ali veći detalji). - Select this to not import any invisible objects. - Odaberite ovo da ne uvozite nikakve nevidljive objekte. + Select this to import invisible objects. + Odaberite ovo da uvezete nevidljive objekte. @@ -4110,7 +4110,7 @@ tijekom čitanja datoteke (sporije, ali veći detalji). Unknown error - Unknown error + Nepoznata greška @@ -5154,26 +5154,26 @@ predmeta koji se pridružuje. Skip this settings page and run the geometry check automatically. - Skip this settings page and run the geometry check automatically. + Preskoči ovu stranicu postavki i automatski pokreni provjeru geometrije Default: false - Default: false + Zadano: netačno Run boolean operation check - Run boolean operation check + Pokreni provjeru booleove (logičke) operacije Extra boolean operations check that can sometimes find errors that the standard BRep geometry check misses. These errors do not always mean the checked object is unusable. Default: false - Extra boolean operations check that can sometimes find errors that -the standard BRep geometry check misses. These errors do not always -mean the checked object is unusable. Default: false + Provjera dodatnih booleovih (logičkih) operacija koja ponekad može pronaći pogreške koje +standardna BRep provjera geometrije promaši. Ove greške ne znače uvijek +da je provjereni objekt neupotrebljiv. Zadano: netočno @@ -5225,28 +5225,27 @@ alat za provjeru geometrije. Zadano: netočno Individual boolean operation checks: - -Individual boolean operation checks: + Pojedinačne provjere boleovih (logičkih) operacija: Bad type - Bad type + Pogrešna vrsta Self-intersect - Self-intersect + Samo-preklapanje Too small edge - Too small edge + Premali rub Nonrecoverable face - Nonrecoverable face + Nepopravljivo lice @@ -5256,22 +5255,22 @@ Individual boolean operation checks: Incompatibility of face - Incompatibility of face + Nekompatibilnost lica Incompatibility of vertex - Incompatibility of vertex + Nekompatibilnost tjemene točke Incompatibility of edge - Incompatibility of edge + Nekompatibilnost ruba Invalid curve on surface - Invalid curve on surface + Nevažeća krivulja na površini @@ -5344,7 +5343,7 @@ Individual boolean operation checks: Boolean operation check... - Boolean operation check... + Provjera booleove (logičke) operacije... @@ -5360,26 +5359,27 @@ Individual boolean operation checks: Checking - Checking + Provjeravam %1 processed out of %2 selected - %1 processed out of %2 selected + %1 obrađeno od %2 odabrana %n invalid shapes. - - %n invalid shapes. - %n invalid shapes. - %n invalid shapes. + + +%n nevažeći oblik. + %n ne važećih oblika. + %n -ti ne važeći oblici. Checked object - Checked object + Provjereni objekt @@ -5754,62 +5754,62 @@ u 3D pogledu kao putanju za zamah. - - - - - + + + + + Wrong selection Pogrešan odabir - + Select two shapes please. Molim odaberite dva oblika. - - - + + + Non-solids selected Ne-čvrsto tijelo odabrano - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Korištenje ne-čvrstih tijela za Booleove operacije može dovesti do neočekivanih rezultata. Želite li nastaviti? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Odaberite dva oblika ili više oblika, ili odaberite jedan spojeni dio koji sadrži dva ili više oblika od kojih se izračuna presjek između njih. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Odaberite dva oblika ili više oblika, ili odaberite jedan spojeni dio koji sadrži dva ili više oblika koji če se spojiti. - + Select one shape or more, please. Odaberite jedan ili više oblika. - + All CAD Files Sve CAD datoteke - + All Files Sve datoteke - + You have to select either two edges or two wires. Trebate odabrati bilo dvije oštrice ili dvije žice. @@ -6050,62 +6050,62 @@ Do you want to continue? Boolean operation: Unknown check - Boolean operation: Unknown check + Booleanska operacija: Nepoznata provjera Boolean operation: Bad type - Boolean operation: Bad type + Booleanska operacija: Pogrešna vrsta Boolean operation: Self-intersection found - Boolean operation: Self-intersection found + Booleanska operacija: Samo-preklapanje nije pronađeno Boolean operation: Edge too small - Boolean operation: Edge too small + Booleanska operacija: premali rub Boolean operation: Non-recoverable face - Boolean operation: Non-recoverable face + Booleanska operacija: Nepopravljivo lice Boolean operation: Incompatibility of vertex - Boolean operation: Incompatibility of vertex + Booleanska operacija: Nekompatibilnost tjemene točke Boolean operation: Incompatibility of edge - Boolean operation: Incompatibility of edge + Booleanska operacija: Nekompatibilnost ruba Boolean operation: Incompatibility of face - Boolean operation: Incompatibility of face + Booleanska operacija: Nekompatibilnost lica Boolean operation: Aborted - Boolean operation: Aborted + Booleanska operacija: Obustavljeno Boolean operation: GeomAbs_C0 - Boolean operation: GeomAbs_C0 + Booleanska operacija: GeomAbs_C0 Boolean operation: Invalid curve on surface - Boolean operation: Invalid curve on surface + Booleanska operacija: Nevažeća krivulja na površini Boolean operation: Not valid - Boolean operation: Not valid + Booleanska operacija: nije valjan @@ -6197,12 +6197,12 @@ Do you want to continue? Distance in parameter space - Distance in parameter space + Udaljenost u parametričnom prostoru Enter distance: - Enter distance: + Unesite udaljenost: @@ -6619,7 +6619,7 @@ Stvorit će 'Filter sastavljanja' za svaki oblik. Shape type - Shape type + Vrsta oblika @@ -6654,7 +6654,7 @@ Stvorit će 'Filter sastavljanja' za svaki oblik. CompSolids - CompSolids + Višeslojni čvrsti spojevi @@ -6694,7 +6694,7 @@ Stvorit će 'Filter sastavljanja' za svaki oblik. Curve center - Curve center + Središte krivulje @@ -6709,7 +6709,7 @@ Stvorit će 'Filter sastavljanja' za svaki oblik. Is closed - Is closed + zatvoren @@ -6719,12 +6719,12 @@ Stvorit će 'Filter sastavljanja' za svaki oblik. Global center of mass - Global center of mass + Globalni centar mase Global placement - Global placement + Globalno postavljanje diff --git a/src/Mod/Part/Gui/Resources/translations/Part_hu.ts b/src/Mod/Part/Gui/Resources/translations/Part_hu.ts index 063a362b4c..8062b2fa58 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_hu.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_hu.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Alkatrész - - - + + + Box selection Négyzet kiválasztás @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Alkatrész - + Check Geometry Geometria ellenőrzése - + Analyzes Geometry For Errors Geometria hiba analízis @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Alkatrész - + Color per face Felületenkénti szín - + Set the color of each individual face of the selected object. Állítsa be a kijelölt tárgy összes falának színét. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Alkatrész - + Measure Angular Hosszirányú méretezés - + Measure the angle between two edges. Mérje meg a két él közötti szöget. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Alkatrész - + Clear All Minden törlése - + Clear all dimensions from the screen. Törölje az összes méretet a képernyőről. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Alkatrész - + Measure Linear Egyenes méretezés - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ a mérést a két csúcs között kell végezni. CmdMeasureRefresh - + Part Alkatrész - + Refresh Frissítés - + Recalculate the dimensions if the measured points have moved. A mérési pontok mozgatásakor @@ -1279,17 +1279,17 @@ számítsa újra a méreteket. CmdMeasureToggle3d - + Part Alkatrész - + Toggle 3D 3D kapcsolása - + Toggle on and off all direct dimensions, including angular. Kapcsolja ki és tiltsa le az összes közvetlen méretet, @@ -1299,17 +1299,17 @@ beleértve a szöget. CmdMeasureToggleAll - + Part Alkatrész - + Toggle All Mindegyiket kapcsolja - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Kapcsolja ki és be az összes jelenleg látható méretezést, @@ -1319,17 +1319,17 @@ közvetlent, merőlegest és szögest. CmdMeasureToggleDelta - + Part Alkatrész - + Toggle Delta Delta ki-/ bekapcsolása - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ X, Y és Z komponenseire. CmdPartBoolean - + Part Alkatrész - + Boolean... Logikai... - + Run a boolean operation with two shapes selected Logikai művelet végrehajtása a két kijelölt alakzaton @@ -1415,17 +1415,17 @@ X, Y és Z komponenseire. CmdPartBuilder - + Part Alkatrész - + Shape builder... Alak építő ... - + Advanced utility to create shapes Forma létrehozó fejlett eszköz @@ -1433,17 +1433,17 @@ X, Y és Z komponenseire. CmdPartChamfer - + Part Alkatrész - + Chamfer... Letörés... - + Chamfer the selected edges of a shape Az alakzat kijelölt éleinek letörése @@ -1451,17 +1451,17 @@ X, Y és Z komponenseire. CmdPartCommon - + Part Alkatrész - + Intersection Metszet - + Make an intersection of two shapes Készíts egy metszetet két alakzattal @@ -1469,17 +1469,17 @@ X, Y és Z komponenseire. CmdPartCompCompoundTools - + Part Alkatrész - + Compound tools Kapcsolati eszközök - + Compound tools: working with lists of shapes. Egyesítő eszközök: munka az alakzatok listáival. @@ -1487,17 +1487,17 @@ X, Y és Z komponenseire. CmdPartCompJoinFeatures - + Part Alkatrész - + Join objects... Objektumok csatlakoztatása... - + Join walled objects Fallal határolt objektumok csatlakoztatása @@ -1505,17 +1505,17 @@ X, Y és Z komponenseire. CmdPartCompOffset - + Part Alkatrész - + Offset: Eltolás: - + Tools to offset shapes (construct parallel shapes) Eszközök az alakzatok eltolásához (párhuzamos alakzatokat épít) @@ -1523,17 +1523,17 @@ X, Y és Z komponenseire. CmdPartCompSplitFeatures - + Part Alkatrész - + Split objects... Objektumok felosztása... - + Shape splitting and Compsolid creation tools. Szerszámok a formák felosztásához és az összetett testek létrehozásához. @@ -1541,17 +1541,17 @@ X, Y és Z komponenseire. CmdPartCompound - + Part Alkatrész - + Make compound Összetett létrehozása - + Make a compound of several shapes Több alakzat összetettjének létrehozása @@ -1579,17 +1579,17 @@ X, Y és Z komponenseire. CmdPartCrossSections - + Part Alkatrész - + Cross-sections... Keresztmetszet... - + Cross-sections Keresztmetszet @@ -1671,17 +1671,17 @@ X, Y és Z komponenseire. CmdPartExport - + Part Alkatrész - + Export CAD... Export CAD ... - + Exports to a CAD file CAD fájlok exportálása @@ -1689,17 +1689,17 @@ X, Y és Z komponenseire. CmdPartExtrude - + Part Alkatrész - + Extrude... Kihúzás... - + Extrude a selected sketch Kiválasztott vázlat kihúzása @@ -1707,17 +1707,17 @@ X, Y és Z komponenseire. CmdPartFillet - + Part Alkatrész - + Fillet... Lekerekítés... - + Fillet the selected edges of a shape Egy alakzat kiválasztott éleinek lekerekítése @@ -1725,17 +1725,17 @@ X, Y és Z komponenseire. CmdPartFuse - + Part Alkatrész - + Union Egyesítés - + Make a union of several shapes Készíts egy egyesítést több alakzattal @@ -1743,17 +1743,17 @@ X, Y és Z komponenseire. CmdPartImport - + Part Alkatrész - + Import CAD... CAD import... - + Imports a CAD file CAD-fájl importálása @@ -1761,17 +1761,17 @@ X, Y és Z komponenseire. CmdPartImportCurveNet - + Part Alkatrész - + Import curve network... Görbe hálózat importálás... - + Import a curve network Görbe hálózat importálása @@ -1779,17 +1779,17 @@ X, Y és Z komponenseire. CmdPartLoft - + Part Alkatrész - + Loft... Szint ... - + Utility to loft Elágazás segédprogram @@ -1797,17 +1797,17 @@ X, Y és Z komponenseire. CmdPartMakeFace - + Part Alkatrész - + Make face from wires Felület létrehozás hálóból - + Make face from set of wires (e.g. from a sketch) Felület létrehozás meghatározott hálókból (pl. egy vázlatból) @@ -1815,17 +1815,17 @@ X, Y és Z komponenseire. CmdPartMakeSolid - + Part Alkatrész - + Convert to solid Konvertálás szilárd testté - + Create solid from a shell or compound Hozzon létre egy alakzatot szilárd héjból vagy összetettből @@ -1833,17 +1833,17 @@ X, Y és Z komponenseire. CmdPartMirror - + Part Alkatrész - + Mirroring... Tükrözés... - + Mirroring a selected shape A kijelölt alakzat tükrözése @@ -1851,17 +1851,17 @@ X, Y és Z komponenseire. CmdPartOffset - + Part Alkatrész - + 3D Offset... 3D eltolás... - + Utility to offset in 3D Segéd a 3D eltolás alkalmazásához @@ -1869,17 +1869,17 @@ X, Y és Z komponenseire. CmdPartOffset2D - + Part Alkatrész - + 2D Offset... 2D eltolás... - + Utility to offset planar shapes Segéd a síkbeli eltolás alkalmazásához @@ -1941,17 +1941,17 @@ X, Y és Z komponenseire. CmdPartProjectionOnSurface - + Part Alkatrész - + Create projection on surface... Kivetítés létrehozása a felületen... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ irányát. CmdPartReverseShape - + Part Alkatrész - + Reverse shapes Fordított alakzat - + Reverse orientation of shapes Alakzat irányának megfordítása @@ -2001,17 +2001,17 @@ irányát. CmdPartRevolve - + Part Alkatrész - + Revolve... Körmetszés... - + Revolve a selected shape Kijelölt alakzat körmetszése @@ -2019,17 +2019,17 @@ irányát. CmdPartRuledSurface - + Part Alkatrész - + Create ruled surface Zárható felület létrehozása - + Create a ruled surface from either two Edges or two wires Vonalazott felület létrehozása két élből vagy két dróthálóból @@ -2037,17 +2037,17 @@ irányát. CmdPartSection - + Part Alkatrész - + Section Szakasz - + Make a section of two shapes Szakasz készítése két alakzattal @@ -2055,12 +2055,12 @@ irányát. CmdPartSectionCut - + Persistent section cut Állandó szakaszkivágás - + Creates a persistent section cut of visible part objects Állandó szakaszkivágást hoz létre látható alkatrész tárgyból @@ -2142,17 +2142,17 @@ irányát. CmdPartSweep - + Part Alkatrész - + Sweep... Húzás... - + Utility to sweep Segédprogram a húzáshoz @@ -2160,27 +2160,27 @@ irányát. CmdPartThickness - + Part Alkatrész - + Thickness... Vastagság... - + Utility to apply a thickness Segéd a vastagságok alkalmazásához - + Wrong selection Rossz kijelölés - + Selected shape is not a solid A kijelölt alakzat nem szilárd test @@ -2232,67 +2232,67 @@ irányát. Párhuzamos alkatrész létrehozása - + Part Cut Rész szakasz - + Common Közös - + Fusion Kapcsolat - + Compound Összetétel - + Section Szakasz - + Import Part Alkatrész importálása - + Part Import Curve Net Ívelt hálórész importálása - + Reverse Fordított - + Make face Felület létrehozása - + Make Offset Eltolás - + Make 2D Offset 2D eltolás létrehozása - + Make Thickness Vastagság létrehozása - + Create ruled surface Zárható felület létrehozása @@ -2604,32 +2604,32 @@ Megjegyzés: A pozíciót a mellékelt tárgy helyi terében fejezzük ki.Kijelölés csere - + Select a shape on the left side, first Először bal oldalon jelölje ki az alakzatot - + Select a shape on the right side, first Először jobb oldalon jelölje ki az alakzatot - + Cannot perform a boolean operation with the same shape Nem tud végrehajtani logikai művelet az azonos alakzaton - + No active document available Nincs elérhető aktív dokumentum - + One of the selected objects doesn't exist anymore Az egyik kijelölt objektum nem létezik - + Performing union on non-solids is not possible Nem szilárd testek egységesítése nem lehetséges @@ -2639,7 +2639,7 @@ Megjegyzés: A pozíciót a mellékelt tárgy helyi terében fejezzük ki.Nem szilárd test metszése nem lehetséges - + Performing difference on non-solids is not possible Nem szilárd test kivonása egymásból nem lehetséges @@ -3311,8 +3311,8 @@ a fájl olvasása közben (lassabb, de pontosabb). - Select this to not import any invisible objects. - Válassza ezt a beállítást, ha nem szeretne láthatatlan objektumokat importálni. + Select this to import invisible objects. + Válassza ezt láthatatlan tárgyak importálásához. @@ -4053,7 +4053,7 @@ a fájl olvasása közben (lassabb, de pontosabb). Angle: - Dőlésszög: + Szög: @@ -5730,62 +5730,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Rossz kijelölés - + Select two shapes please. Két alakzatot jelöljön ki. - - - + + + Non-solids selected Nem szilárdtest a kiválasztott - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Logikai műveletekben a nem szilárdtestek használata nem várt eredményekhez vezethet. Folytatni szeretné? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Kérjük válasszon két vagy több alakzatot. Vagy válasszon két vagy több alakzatból állót, melynek összeolvadása számolható. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Kérjük válasszon két vagy több alakzatot. Vagy válasszon két vagy több alakzatból állót, melyet összeolvaszt. - + Select one shape or more, please. Kérem, válasszon egy vagy több alakzatot. - + All CAD Files Minden CAD fájl - + All Files Összes fájl - + You have to select either two edges or two wires. Választani kell két élet, vagy két dróthálót. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_it.ts b/src/Mod/Part/Gui/Resources/translations/Part_it.ts index 16662556e5..d254ce1459 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_it.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_it.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Parte - - - + + + Box selection Box di selezione @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Parte - + Check Geometry Controlla la geometria - + Analyzes Geometry For Errors Analizza la geometria alla ricerca di errori @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Parte - + Color per face Colore per faccia - + Set the color of each individual face of the selected object. Imposta il colore di ogni singola faccia dell'oggetto selezionato. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Parte - + Measure Angular Misura angolare - + Measure the angle between two edges. Misura l'angolo tra due bordi. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Parte - + Clear All Cancella tutto - + Clear all dimensions from the screen. Cancella tutte le quotature dallo schermo. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Parte - + Measure Linear Misura lineare - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ tra due vertici. CmdMeasureRefresh - + Part Parte - + Refresh Aggiorna - + Recalculate the dimensions if the measured points have moved. Ricalcolare le quotature @@ -1279,17 +1279,17 @@ se i punti misurati si sono spostati. CmdMeasureToggle3d - + Part Parte - + Toggle 3D Attiva/disattiva 3D - + Toggle on and off all direct dimensions, including angular. Attiva/disattiva tutte le quotature dirette, @@ -1299,17 +1299,17 @@ compreso l'angolare. CmdMeasureToggleAll - + Part Parte - + Toggle All Attiva/disattiva tutte le misure - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Attiva/disattiva tutte le quotature attualmente visibili, @@ -1319,17 +1319,17 @@ dirette, ortogonali e angolari. CmdMeasureToggleDelta - + Part Parte - + Toggle Delta Attiva/disattiva Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ nei suoi componenti X, Y e Z. CmdPartBoolean - + Part Parte - + Boolean... Operazione booleana... - + Run a boolean operation with two shapes selected Esegue un'operazione booleana tra le due forme selezionate @@ -1415,17 +1415,17 @@ nei suoi componenti X, Y e Z. CmdPartBuilder - + Part Parte - + Shape builder... Genera una forma... - + Advanced utility to create shapes Utilità avanzate per creare forme @@ -1433,17 +1433,17 @@ nei suoi componenti X, Y e Z. CmdPartChamfer - + Part Parte - + Chamfer... Smussa... - + Chamfer the selected edges of a shape Smussa gli spigoli selezionati di una forma @@ -1451,17 +1451,17 @@ nei suoi componenti X, Y e Z. CmdPartCommon - + Part Parte - + Intersection Intersezione - + Make an intersection of two shapes Esegue un'intersezione di due forme @@ -1469,17 +1469,17 @@ nei suoi componenti X, Y e Z. CmdPartCompCompoundTools - + Part Parte - + Compound tools Strumenti per solidi composti - + Compound tools: working with lists of shapes. Strumenti per composti: funzionano con liste di forme. @@ -1487,17 +1487,17 @@ nei suoi componenti X, Y e Z. CmdPartCompJoinFeatures - + Part Parte - + Join objects... Congiungi gli oggetti... - + Join walled objects Congiungi oggetti cavi @@ -1505,17 +1505,17 @@ nei suoi componenti X, Y e Z. CmdPartCompOffset - + Part Parte - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Strumenti per creare offset delle forme (costruire forme parallele) @@ -1523,17 +1523,17 @@ nei suoi componenti X, Y e Z. CmdPartCompSplitFeatures - + Part Parte - + Split objects... Dividere gli oggetti... - + Shape splitting and Compsolid creation tools. Strumenti di taglio della forma e creazione solidi composti. @@ -1541,17 +1541,17 @@ nei suoi componenti X, Y e Z. CmdPartCompound - + Part Parte - + Make compound Crea un composto - + Make a compound of several shapes Crea un composto di diverse forme @@ -1579,17 +1579,17 @@ nei suoi componenti X, Y e Z. CmdPartCrossSections - + Part Parte - + Cross-sections... Sezioni... - + Cross-sections Sezioni @@ -1671,17 +1671,17 @@ nei suoi componenti X, Y e Z. CmdPartExport - + Part Parte - + Export CAD... Esporta CAD... - + Exports to a CAD file Esportazione in un file CAD @@ -1689,17 +1689,17 @@ nei suoi componenti X, Y e Z. CmdPartExtrude - + Part Parte - + Extrude... Estrudi... - + Extrude a selected sketch Estrude lo sketch selezionato @@ -1707,17 +1707,17 @@ nei suoi componenti X, Y e Z. CmdPartFillet - + Part Parte - + Fillet... Raccorda... - + Fillet the selected edges of a shape Raccorda gli spigoli selezionati in una forma @@ -1725,17 +1725,17 @@ nei suoi componenti X, Y e Z. CmdPartFuse - + Part Parte - + Union Unione - + Make a union of several shapes Esegue un'unione di varie forme @@ -1743,17 +1743,17 @@ nei suoi componenti X, Y e Z. CmdPartImport - + Part Parte - + Import CAD... Importa CAD... - + Imports a CAD file Importa un file CAD @@ -1761,17 +1761,17 @@ nei suoi componenti X, Y e Z. CmdPartImportCurveNet - + Part Parte - + Import curve network... Importa una rete di curve... - + Import a curve network Importa una rete di curve @@ -1779,17 +1779,17 @@ nei suoi componenti X, Y e Z. CmdPartLoft - + Part Parte - + Loft... Loft... - + Utility to loft Utilità per loft @@ -1797,17 +1797,17 @@ nei suoi componenti X, Y e Z. CmdPartMakeFace - + Part Parte - + Make face from wires Crea faccia da wire - + Make face from set of wires (e.g. from a sketch) Crea una faccia da una serie di contorni (ad esempio da uno schizzo) @@ -1815,17 +1815,17 @@ nei suoi componenti X, Y e Z. CmdPartMakeSolid - + Part Parte - + Convert to solid Converti in solido - + Create solid from a shell or compound Crea solido da un guscio o un composto @@ -1833,17 +1833,17 @@ nei suoi componenti X, Y e Z. CmdPartMirror - + Part Parte - + Mirroring... Specchia... - + Mirroring a selected shape Specchia una forma selezionata @@ -1851,17 +1851,17 @@ nei suoi componenti X, Y e Z. CmdPartOffset - + Part Parte - + 3D Offset... Offset 3D... - + Utility to offset in 3D Utilità di offset in 3D @@ -1869,17 +1869,17 @@ nei suoi componenti X, Y e Z. CmdPartOffset2D - + Part Parte - + 2D Offset... Offset 2D... - + Utility to offset planar shapes Utilità per offset di forme planari @@ -1941,17 +1941,17 @@ nei suoi componenti X, Y e Z. CmdPartProjectionOnSurface - + Part Parte - + Create projection on surface... Crea proiezione su superficie... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ della proiezione. CmdPartReverseShape - + Part Parte - + Reverse shapes Inverti forme - + Reverse orientation of shapes Inverte l'orientamento delle forme @@ -2001,17 +2001,17 @@ della proiezione. CmdPartRevolve - + Part Parte - + Revolve... Rivoluziona... - + Revolve a selected shape Rivoluziona una forma selezionata @@ -2019,17 +2019,17 @@ della proiezione. CmdPartRuledSurface - + Part Parte - + Create ruled surface Crea superficie rigata - + Create a ruled surface from either two Edges or two wires Crea una superficie rigata tra due spigoli o due polilinee, cioè una superficie di tipo mesh a maglie poligonali @@ -2037,17 +2037,17 @@ della proiezione. CmdPartSection - + Part Parte - + Section Seziona - + Make a section of two shapes Esegue una sezione di due forme @@ -2055,12 +2055,12 @@ della proiezione. CmdPartSectionCut - + Persistent section cut Taglio sezione persistente - + Creates a persistent section cut of visible part objects Crea una sezione persistente di oggetti di Parti visibili @@ -2142,17 +2142,17 @@ della proiezione. CmdPartSweep - + Part Parte - + Sweep... Sweep... - + Utility to sweep Utilità per lo sweep @@ -2160,27 +2160,27 @@ della proiezione. CmdPartThickness - + Part Parte - + Thickness... Spessore... - + Utility to apply a thickness Utilità di applicazione spessore - + Wrong selection Selezione errata - + Selected shape is not a solid La forma selezionata non è un solido @@ -2232,67 +2232,67 @@ della proiezione. Crea una parte parallelepipedo - + Part Cut Taglia Parte - + Common Comune - + Fusion Fusione - + Compound Composto - + Section Seziona - + Import Part Importa Parte - + Part Import Curve Net Importa Parte Curve Net - + Reverse Inverti - + Make face Crea faccia - + Make Offset Fai un offset - + Make 2D Offset Fai un offset 2D - + Make Thickness Rendi spessore - + Create ruled surface Crea superficie rigata @@ -2606,32 +2606,32 @@ Nota: il posizionamento è espresso nello spazio locale dell'oggetto da allegare Inverti selezione - + Select a shape on the left side, first Selezionare prima una forma sul lato sinistro - + Select a shape on the right side, first Selezionare prima una forma sul lato destro - + Cannot perform a boolean operation with the same shape Non è possibile effettuare una operazione booleana con la stessa forma - + No active document available Nessun documento attivo disponibile - + One of the selected objects doesn't exist anymore Uno degli oggetti selezionati non esiste più - + Performing union on non-solids is not possible Non è possibile eseguire l'unione su oggetti non solidi @@ -2641,7 +2641,7 @@ Nota: il posizionamento è espresso nello spazio locale dell'oggetto da allegare Non è possibile eseguire l'intersezione su oggetti non solidi - + Performing difference on non-solids is not possible Non è possibile eseguire la differenza su oggetti non solidi @@ -3311,8 +3311,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Selezionare questa opzione per non importare oggetti invisibili. + Select this to import invisible objects. + Selezionare questa opzione per importare oggetti invisibili. @@ -5730,62 +5730,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Selezione errata - + Select two shapes please. Selezionare due forme. - - - + + + Non-solids selected Forme selezionate non solide - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? L'uso di forme non solide per operazioni booleane può portare a risultati imprevisti. Si desidera continuare? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Selezionare due o più forme. In alternativa, è possibile selezionare un composto contenente due o più forme per calcolare la loro parte comune. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Selezionare due o più forme. In alternativa, è possibile selezionare un composto contenente due o più forme da fondere. - + Select one shape or more, please. Selezionare una o più forme, per favore. - + All CAD Files Tutti i file CAD - + All Files Tutti i file - + You have to select either two edges or two wires. È necessario selezionare due spigoli o due polilinee. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ja.ts b/src/Mod/Part/Gui/Resources/translations/Part_ja.ts index 6b9dad2730..060611d852 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ja.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ja.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part 部品 - - - + + + Box selection 矩形選択 @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part 部品 - + Check Geometry 幾何形状のチェック - + Analyzes Geometry For Errors 形状に欠陥がないか分析 @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part 部品 - + Color per face 面ごとの色 - + Set the color of each individual face of the selected object. 選択したオブジェクトの個々の面の色を設定します。 @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part 部品 - + Measure Angular 角度計測 - + Measure the angle between two edges. 2 つのエッジ間の角度を測定します。 @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part 部品 - + Clear All 全てクリア - + Clear all dimensions from the screen. スクリーンからすべての寸法をクリアします。 @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part 部品 - + Measure Linear 距離計測 - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part 部品 - + Refresh 更新 - + Recalculate the dimensions if the measured points have moved. 測定点が移動した場合、寸法 @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part 部品 - + Toggle 3D 3D の切り替え - + Toggle on and off all direct dimensions, including angular. 角度を含む @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part 部品 - + Toggle All 表示の切り替え - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. 現在表示されているすべての寸法、 @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part 部品 - + Toggle Delta デルタ(表示のオンオフ) - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part 部品 - + Boolean... ブーリアン演算... - + Run a boolean operation with two shapes selected 選択された二つの図形のブーリアン演算を実行 @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part 部品 - + Shape builder... シェイプビルダー... - + Advanced utility to create shapes 高度な図形作成ユーティリティ @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part 部品 - + Chamfer... 面取り... - + Chamfer the selected edges of a shape 形状の選択されたエッジを面取り @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part 部品 - + Intersection 共通集合 - + Make an intersection of two shapes 二つの図形の共通集合を作成 @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part 部品 - + Compound tools 複合ツール - + Compound tools: working with lists of shapes. コンパウンド・ツール:シェイプのリストを使って作業 @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part 部品 - + Join objects... オブジェクトの接合... - + Join walled objects 壁に囲まれたオブジェクトを結合 @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part 部品 - + Offset: オフセット: - + Tools to offset shapes (construct parallel shapes) シェイプオフセット用ツール(平行なシェイプを作成) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part 部品 - + Split objects... オブジェクトの分割... - + Shape splitting and Compsolid creation tools. シェイプ分割と複合ソリッド作成のツール @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part 部品 - + Make compound コンパウンドを作成 - + Make a compound of several shapes 複数のシェイプからコンパウンドを作成 @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part 部品 - + Cross-sections... 断面... - + Cross-sections 断面 @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part 部品 - + Export CAD... パートをエクスポート... - + Exports to a CAD file CADファイルにエクスポート @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part 部品 - + Extrude... 押し出し... - + Extrude a selected sketch 選択したスケッチを押し出し @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part 部品 - + Fillet... フィレット... - + Fillet the selected edges of a shape 選択した図形のエッジをフィレット @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part 部品 - + Union 結合 - + Make a union of several shapes 複数の形状の和集合を作成 @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part 部品 - + Import CAD... CADをインポート... - + Imports a CAD file CADファイルをインポート @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part 部品 - + Import curve network... 曲線ネットワークをインポート... - + Import a curve network 曲線ネットワークをインポート @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part 部品 - + Loft... ロフト... - + Utility to loft ロフトユーティリティ @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part 部品 - + Make face from wires ワイヤーから面を作成 - + Make face from set of wires (e.g. from a sketch) ワイヤーの組みから面を作成(例:スケッチから) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part 部品 - + Convert to solid ソリッドに変換 - + Create solid from a shell or compound シェルまたはコンパウンドからソリッドを作成 @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part 部品 - + Mirroring... ミラーリング... - + Mirroring a selected shape 選択した図形をミラーリング @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part 部品 - + 3D Offset... 3Dオフセット... - + Utility to offset in 3D 3次元用オフセットユーティリティ @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part 部品 - + 2D Offset... 2Dオフセット... - + Utility to offset planar shapes 平面形状用オフセットユーティリティ @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part 部品 - + Create projection on surface... 表面に投影を作成... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part 部品 - + Reverse shapes 図形を反転 - + Reverse orientation of shapes 図形の方向を反転します。 @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part 部品 - + Revolve... 回転... - + Revolve a selected shape 選択した図形を回転 @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part 部品 - + Create ruled surface 線織面を作成 - + Create a ruled surface from either two Edges or two wires 2 本の稜線または 2 本のワイヤから線織面を作成 @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part 部品 - + Section セクション - + Make a section of two shapes 2つの形状の横断面を作成 @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut 永続的な断面カット - + Creates a persistent section cut of visible part objects 表示されているパートオブジェクトの永続的な断面カットを作成 @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part 部品 - + Sweep... スイープ... - + Utility to sweep スイープユーティリティ @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part 部品 - + Thickness... 厚み... - + Utility to apply a thickness 厚み適用ユーティリティ - + Wrong selection 誤った選択 - + Selected shape is not a solid 選択した図形はソリッドではありません @@ -2232,67 +2232,67 @@ of projection. 部品ボックス作成 - + Part Cut 部品切断 - + Common 共通部分 - + Fusion 融合 - + Compound コンパウンド - + Section セクション - + Import Part 部品をインポート - + Part Import Curve Net Part Import Curve Net - + Reverse 反転 - + Make face 面を作成 - + Make Offset オフセットを作成 - + Make 2D Offset 2D オフセットを作成 - + Make Thickness 厚みを作成 - + Create ruled surface 線織面を作成 @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.選択の反転 - + Select a shape on the left side, first 最初に左側の図形を選択します - + Select a shape on the right side, first 最初に右側の図形を選択します - + Cannot perform a boolean operation with the same shape 同じ図形を使用してブーリアン演算を行うことはできません - + No active document available 利用可能なアクティブドキュメントはありませんでした - + One of the selected objects doesn't exist anymore 選択したオブジェクトはもう存在しません - + Performing union on non-solids is not possible ソリッドでないものに対する結合は行えません @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.ソリッドでないものに対する共通集合は行えません - + Performing difference on non-solids is not possible ソリッドでないものに対する論理差は行えません @@ -3309,8 +3309,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - 非表示オブジェクトをインポートしない場合に選択します。 + Select this to import invisible objects. + 非表示オブジェクトをインポートする場合はこれを選択します。 @@ -5716,62 +5716,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection 誤った選択 - + Select two shapes please. 2つの図形を選択してください。 - - - + + + Non-solids selected 非ソリッドが選択されています - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? 非ソリッドをブーリアン演算に用いると、予期しない結果を引き起こす可能性があります。続行しますか? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. 複数のシェイプ、または共通部分を計算する複数のシェイプが入ったコンパウンドを1つ選択してください。 - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. 複数のシェイプ、または結合する複数のシェイプが入ったコンパウンドを1つ選択してください。 - + Select one shape or more, please. シェイプを 1 つ以上を選択してください。 - + All CAD Files 全てのCADファイル - + All Files すべてのファイル - + You have to select either two edges or two wires. 2 つのエッジまたは 2 本のワイヤを選択する必要があります。 diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ka.ts b/src/Mod/Part/Gui/Resources/translations/Part_ka.ts index 83c2c0d4f5..dd54225721 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ka.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ka.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part ნაწილი - - - + + + Box selection არეალის მონიშვნა @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part ნაწილი - + Check Geometry გეომეტრიის შემოწმება - + Analyzes Geometry For Errors გეომეტრის ანალიზი შეცდომების გამოსავლენად @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part ნაწილი - + Color per face თითოეული ზედაპირის ფერი - + Set the color of each individual face of the selected object. მონიშნული ობიექტის ყველა ინდივიდუალური ზედაპირის ფერის დაყენება. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part ნაწილი - + Measure Angular კუთხის გაზომვა - + Measure the angle between two edges. ორ წიბოს შუა კუთხის გაზომვა. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part ნაწილი - + Clear All ყველაფრის გასუფთავება - + Clear all dimensions from the screen. ყველა ზომის გაქრობა ეკრანიდან. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part ნაწილი - + Measure Linear სიგრძის გაზომვა - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part ნაწილი - + Refresh განახლება - + Recalculate the dimensions if the measured points have moved. გაზომილი წერტილების გადაადგილების @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part ნაწილი - + Toggle 3D 3D-ის ჩართ/გამორთ - + Toggle on and off all direct dimensions, including angular. ყველა პირდაპირი ზომის ჩვენების, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part ნაწილი - + Toggle All ყველას ჩართ/გამორთ - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. ყველა მიმდინარე ხილული ზომების, პირდაპირის, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part ნაწილი - + Toggle Delta დელტას ჩართ/გამორთ - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part ნაწილი - + Boolean... ბულევური ოპერაციები... - + Run a boolean operation with two shapes selected ბულევური ოპერაცია ორი მონიშნული მონახაზით @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part ნაწილი - + Shape builder... მოხაზულობის ამწყობი... - + Advanced utility to create shapes ფორმების შესაქმნელი დამატებითი იარაღი @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part ნაწილი - + Chamfer... კუთხის ნაზოლი... - + Chamfer the selected edges of a shape მოხაზულობის მონიშნული წიბოების ნაზოლი @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part ნაწილი - + Intersection კვეთა - + Make an intersection of two shapes ორი მონახაზის ერთმანეთზე კვეთის შექმნა @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part ნაწილი - + Compound tools გადაბმის ხელსაწყოები - + Compound tools: working with lists of shapes. გადაბმების ხელსაწყოები: მოხაზულობების სიებთან მუშაობა. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part ნაწილი - + Join objects... ობიექტების შეერთება... - + Join walled objects კედლის ობიექტების შეერთება @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part ნაწილი - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) მოხაზულობის წანაცვლების ხელსაწყოები (პარალელური მოხაზულობების შექმნა) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part ნაწილი - + Split objects... ობიექტების დაყოფა... - + Shape splitting and Compsolid creation tools. ფორმების გაყოფისა და კომპლექსური მყარი სხეულების შექმნის ხელსაწყო. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part ნაწილი - + Make compound შეერთება - + Make a compound of several shapes რამდენიმე მოხაზულობისგან გადაბმის შექმნა @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part ნაწილი - + Cross-sections... განივი-გადანაჭრები... - + Cross-sections განივი-გადანაჭრები @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part ნაწილი - + Export CAD... CAD-ში გატანა... - + Exports to a CAD file CAD ფაილში გატანა @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part ნაწილი - + Extrude... გამოწნევით დაყალიბება... - + Extrude a selected sketch მონიშნული ესკიზის გამოწნევა @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part ნაწილი - + Fillet... მომრგვალება... - + Fillet the selected edges of a shape მოხაზულობის მონიშნული წიბოების მომრგვალება @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part ნაწილი - + Union გაერთიანება - + Make a union of several shapes რამდენიმე მოხაზულობისგან კავშირის შექმნა @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part ნაწილი - + Import CAD... CAD-ის შემოტანა... - + Imports a CAD file CAD ფაილის შემოტანა @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part ნაწილი - + Import curve network... რკალების ქსელის შემოტანა... - + Import a curve network მრუდების ქსელის შემოტანა @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part ნაწილი - + Loft... სხვენი... - + Utility to loft სხვენის ხელსაწყო @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part ნაწილი - + Make face from wires ზედაპირის პოლიხაზებისგან შექმნა - + Make face from set of wires (e.g. from a sketch) პოლიხაზების ნაკრებისგან ზედაპირის შექმნა (მაგ. ესკიზიდან) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part ნაწილი - + Convert to solid მყარ სხეულად გარდაქმნა - + Create solid from a shell or compound გარსის ან გადაბმისგან მყარი სხეულის შექმნა @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part ნაწილი - + Mirroring... სარკისებური ასლი... - + Mirroring a selected shape მონიშნული მოხაზულობის ასლის გადაღება @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part ნაწილი - + 3D Offset... 3D წანაცვლება... - + Utility to offset in 3D 3D-ში წანაცვლების იარაღი @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part ნაწილი - + 2D Offset... 2D წანაცვლება... - + Utility to offset planar shapes ბრტყელი მოხაზულობების წანაცვლების ხელსაწყო @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part ნაწილი - + Create projection on surface... ზედაპირზე პროექციის შექმნა... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1982,17 +1982,17 @@ of projection. CmdPartReverseShape - + Part ნაწილი - + Reverse shapes მონახაზების რევერსი - + Reverse orientation of shapes მონახაზების ორიენტაციის შებრუნება @@ -2000,17 +2000,17 @@ of projection. CmdPartRevolve - + Part ნაწილი - + Revolve... ტრიალი... - + Revolve a selected shape მონიშნული მონახაზის ბრუნვა @@ -2018,17 +2018,17 @@ of projection. CmdPartRuledSurface - + Part ნაწილი - + Create ruled surface დახაზული ზედაპირის შექმნა - + Create a ruled surface from either two Edges or two wires 2 წიბოსგან ან პოლიხაზისგან დახაზული ზედაპირის შექმნა @@ -2036,17 +2036,17 @@ of projection. CmdPartSection - + Part ნაწილი - + Section სექცია - + Make a section of two shapes ორი მონახაზის კვეთის შექმნა @@ -2054,12 +2054,12 @@ of projection. CmdPartSectionCut - + Persistent section cut მუდმივი კვეთა - + Creates a persistent section cut of visible part objects ხილული ნაწილი ობიექტების მუდმივი კვეთის შექმნა @@ -2141,17 +2141,17 @@ of projection. CmdPartSweep - + Part ნაწილი - + Sweep... შლილი... - + Utility to sweep შლილის ხელსაწყო @@ -2159,27 +2159,27 @@ of projection. CmdPartThickness - + Part ნაწილი - + Thickness... სისქე... - + Utility to apply a thickness სისქის შეცვლის ხელსაწყო - + Wrong selection არასწორი არჩევანი - + Selected shape is not a solid მონიშნული მონახაზი მყარი სხეული არაა @@ -2231,67 +2231,67 @@ of projection. პარალელეპიპედის ნაწილის შექმნა - + Part Cut ნაწილის ჭრილი - + Common კვეთა - + Fusion შერწყმა - + Compound გადაბმა - + Section სექცია - + Import Part ნაწილის შემოტანა - + Part Import Curve Net Part-ში მრუდების ქსელის შემოტანა - + Reverse რევერსი - + Make face ზედაპირის შექმნა - + Make Offset წანაცვლების შექმნა - + Make 2D Offset 2D წანაცვლების შექმნა - + Make Thickness სისქის შექმნა - + Create ruled surface დახაზული ზედაპირის შექმნა @@ -2603,32 +2603,32 @@ Note: The placement is expressed in local space of object being attached.მონიშნულის ადგილის შეცვლა - + Select a shape on the left side, first ჯერ აირჩიეთ მარცხენა მხრის მოხაზულობა - + Select a shape on the right side, first ჯერ აირჩიეთ მარჯვენა მხრის მოხაზულობა - + Cannot perform a boolean operation with the same shape ბულევურ ოპერაციის იგივე მოხაზულობაზე ჩატარება შეუძლებელია - + No active document available აქტიური დოკუმენტი ხელმისაწვდომი არაა - + One of the selected objects doesn't exist anymore მონიშნული ობიექტებიდან ერთერთი აღარ არსებობს - + Performing union on non-solids is not possible არა-მყარი სხეულების ობიექტების გაერთიანება შეუძლებელია @@ -2638,7 +2638,7 @@ Note: The placement is expressed in local space of object being attached.არა-მყარი სხეულების ობიექტების კვეთა შეუძლებელია - + Performing difference on non-solids is not possible არა-მყარი სხეულების ობიექტებს შორის სხვაობის პოვნა შეუძლებელია @@ -3309,8 +3309,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - ჩართეთ, თუ გსურთ მხოლოდ ხილული ობიექტების შემოიტანოთ. + Select this to import invisible objects. + ჩართეთ, თუ გსურთ, უხილავი ობიექტებიც შემოიტანოთ. @@ -5727,63 +5727,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection არასწორი არჩევანი - + Select two shapes please. გთხოვ, აირჩიოთ ორი ფიგურა. - - - + + + Non-solids selected მონიშნული არა-მყარი სხეულია - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? ბულევურ ოპერაციებში არა-მყარი სხეულების გამოყენებამ შეიძლება მოულოდნელი შედეგები გამოიღოს. გნებავთ გავაგრძელო? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. კვეთის გამოსათვლელად აირჩიეთ ორი მოხაზულობა ან აირჩიეთ ერთი გადაბმა, რომელიც ორ ან მეტ მოხაზულობას შეიცავს. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. მონიშნეთ ორი ან მეტი მოხაზულობა, ან აირჩიეთ ერთი გადაბმა, რომელიც ორ ან მეტ მოხაზულობას შეიცავს, მათ შესარწყმელად. - + Select one shape or more, please. მონიშნეთ ერთი ან მეტი მონახაზი, გეთაყვა. - + All CAD Files ყველა CAD ფაილი - + All Files ყველა ფაილი - + You have to select either two edges or two wires. უნდა აირჩიოთ ორი წიბო ან ორი პოლიხაზი. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ko.ts b/src/Mod/Part/Gui/Resources/translations/Part_ko.ts index e2859f9394..aa92a06d94 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ko.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ko.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part 부품 - - - + + + Box selection 박스 선택항목 @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part 부품 - + Check Geometry Check Geometry - + Analyzes Geometry For Errors 오류에 대 한 형상 분석 @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part 부품 - + Color per face 면 당 색상 - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part 부품 - + Measure Angular 각도 측정 - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part 부품 - + Clear All 모두 지우기 - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part 부품 - + Measure Linear 선형 측정 - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part 부품 - + Refresh 새로 고침 - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part 부품 - + Toggle 3D Toggle 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part 부품 - + Toggle All 모두 반전 - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part 부품 - + Toggle Delta 델타 전환 - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part 부품 - + Boolean... 부울... - + Run a boolean operation with two shapes selected 부울 작업을 실행 하는 두 셰이프 선택 @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part 부품 - + Shape builder... 모양 작성기... - + Advanced utility to create shapes 도형을 만들 고급 유틸리티 @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part 부품 - + Chamfer... Chamfer... - + Chamfer the selected edges of a shape 선택된 모서리에 챔퍼 @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part 부품 - + Intersection 교집합 - + Make an intersection of two shapes 두 도형 교차 시키기 @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part 부품 - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Compound tools: working with lists of shapes. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part 부품 - + Join objects... 물체 연결... - + Join walled objects 둘러쌓인 물체 연결 @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part 부품 - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Tools to offset shapes (construct parallel shapes) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part 부품 - + Split objects... Split objects... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part 부품 - + Make compound 하나로 합치기 - + Make a compound of several shapes 여러 모양을 하나로 합치기 @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part 부품 - + Cross-sections... 횡단면... - + Cross-sections 횡단면 @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part 부품 - + Export CAD... CAD 데이터 내보내기... - + Exports to a CAD file CAD 파일로 내보내기 @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part 부품 - + Extrude... 돌출... - + Extrude a selected sketch 선택한 스케치 돌출 @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part 부품 - + Fillet... 필렛... - + Fillet the selected edges of a shape 선택된 모서리에 필렛 주시 @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part 부품 - + Union 결합체 - + Make a union of several shapes 여러 모양의 결합 만들기 @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part 부품 - + Import CAD... CAD 가져오기... - + Imports a CAD file CAD 파일 가져오기 @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part 부품 - + Import curve network... 곡선 네트워크 가져오기... - + Import a curve network 곡선 네트워크 가져오기 @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part 부품 - + Loft... 로프트... - + Utility to loft 로프트 도구 @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part 부품 - + Make face from wires Make face from wires - + Make face from set of wires (e.g. from a sketch) Make face from set of wires (e.g. from a sketch) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part 부품 - + Convert to solid 솔리드로 변환 - + Create solid from a shell or compound 쉘이나 복합체를 이용하여 솔리드 생성 @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part 부품 - + Mirroring... 미러링... - + Mirroring a selected shape 선택된 모양 미러링 @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part 부품 - + 3D Offset... 3D Offset... - + Utility to offset in 3D Utility to offset in 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part 부품 - + 2D Offset... 2D Offset... - + Utility to offset planar shapes Utility to offset planar shapes @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part 부품 - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part 부품 - + Reverse shapes 모양 반전 - + Reverse orientation of shapes 모형 방향 반전 @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part 부품 - + Revolve... 회전... - + Revolve a selected shape 선택된 모양 회전 @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part 부품 - + Create ruled surface 선직면 생성 - + Create a ruled surface from either two Edges or two wires 두 모서리 혹은 두 와이어(로프)를 이용하여 선직면 생성 @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part 부품 - + Section 단면 - + Make a section of two shapes 두 모양의 절단면 생성 @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part 부품 - + Sweep... 스윕... - + Utility to sweep 스윕을 위한 도구 @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part 부품 - + Thickness... 두께... - + Utility to apply a thickness 두께 적용을 위한 도구 - + Wrong selection 잘못 된 선택 - + Selected shape is not a solid 선택된 모양은 고체가 아닙니다 @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common 공통(교집합) - + Fusion Fusion - + Compound 복합체 - + Section 단면 - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse 반대로 - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface 선직면 생성 @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.스왑 선택 - + Select a shape on the left side, first 왼쪽면의 셰이프를 먼저 선택 - + Select a shape on the right side, first 오른쪽 면의 셰이프를 먼저 선택 - + Cannot perform a boolean operation with the same shape 같은 모양으로 부울 작업을 수행할 수 없습니다. - + No active document available 활성화된 문서 없음. - + One of the selected objects doesn't exist anymore 선택한 개체 중 하나는 더 이상 존재 하지 않습니다. - + Performing union on non-solids is not possible 솔리드가 아닌 객체에 연합을 수행 하는 것은 불가능 @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.솔리드가 이닌 객체에 교차를 수행하는 것은 불가능 - + Performing difference on non-solids is not possible 솔리드가 아닌 객체에 차이(difference)를 수행하는 것은 불가능 @@ -3311,8 +3311,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5733,62 +5733,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection 잘못 된 선택 - + Select two shapes please. 두 개의 셰이프를 선택 해 주세요 - - - + + + Non-solids selected 비-솔리드 선택 - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? 부울 작업 비-솔리드를 사용 하 여 예기치 않은 결과가 발생할 수 있습니다. 계속 하 시겠습니까? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. - + Select one shape or more, please. 셰이프를 하나 이상 선택하세요. - + All CAD Files All CAD Files - + All Files 모든 파일 - + You have to select either two edges or two wires. 두 개의 모서리 또는 두 개의 와이어를 선택 해야 합니다. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_nl.ts b/src/Mod/Part/Gui/Resources/translations/Part_nl.ts index d9b58af598..daddd02ba1 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_nl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_nl.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Onderdeel - - - + + + Box selection Rechthoekselectie @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Onderdeel - + Check Geometry Geometrie nakijken - + Analyzes Geometry For Errors Analiseert Geometrie Voor Fouten @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Onderdeel - + Color per face Kleur per vlak - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Onderdeel - + Measure Angular Hoek meten - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Onderdeel - + Clear All Alles wissen - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Onderdeel - + Measure Linear Lineair meten - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Onderdeel - + Refresh Vernieuwen - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Onderdeel - + Toggle 3D - Toggle 3D + 3D aan/uit - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Onderdeel - + Toggle All Alles omschakelen - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Onderdeel - + Toggle Delta Schakel Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Onderdeel - + Boolean... Boolean... - + Run a boolean operation with two shapes selected Een Booleaanse bewerking uitvoeren met twee geselecteerde vormen @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Onderdeel - + Shape builder... Vormbouwer... - + Advanced utility to create shapes Geavanceerd werktuig om vormen te maken @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Onderdeel - + Chamfer... Afschuining ... - + Chamfer the selected edges of a shape Afschuining van de geselecteerde randen van een vorm @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Onderdeel - + Intersection Snijpunt - + Make an intersection of two shapes Een doorsnede van twee vormen maken @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Onderdeel - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Samenstellingsgereedschappen: werken met lijsten van vormen. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Onderdeel - + Join objects... Objecten samenvoegen... - + Join walled objects Objecten met wanden toevoegen @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Onderdeel - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Gereedschap om vormen te verschuiven (bouw parallelle vormen) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Onderdeel - + Split objects... Objecten splitsen... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Onderdeel - + Make compound Samenstelling maken - + Make a compound of several shapes Maak een samenstelling van meerdere vormen @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Onderdeel - + Cross-sections... Dwarsdoorsneden... - + Cross-sections Dwarsdoorsneden @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Onderdeel - + Export CAD... Exporteer CAD... - + Exports to a CAD file Uitvoer naar een CAD-bestand @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Onderdeel - + Extrude... Uitrekken... - + Extrude a selected sketch Een geselecteerde schets extruderen @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Onderdeel - + Fillet... Afronden... - + Fillet the selected edges of a shape Rond de geselecteerde randen van een vorm af @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Onderdeel - + Union Verbinden - + Make a union of several shapes Verenig verschillende vormen @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Onderdeel - + Import CAD... Import CAD... - + Imports a CAD file Importeert een CAD-bestand @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Onderdeel - + Import curve network... Importeer een gekromd raster... - + Import a curve network Importeer een gekromd raster @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Onderdeel - + Loft... Loft... - + Utility to loft Gereedschap voor loft @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Onderdeel - + Make face from wires Maak vlak vanuit draden - + Make face from set of wires (e.g. from a sketch) Maak een vlak vanuit een draadset (bijv. vanuit een schets) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Onderdeel - + Convert to solid Converteren naar volumemodel - + Create solid from a shell or compound Volumemodel vanuit een schil of samengestelde deel maken @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Onderdeel - + Mirroring... Spiegelen... - + Mirroring a selected shape Spiegelen van een geselecteerde vorm @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Onderdeel - + 3D Offset... 3D-verschuiving... - + Utility to offset in 3D Gereedschap om te verschuiven in 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Onderdeel - + 2D Offset... 2D-verschuiving... - + Utility to offset planar shapes Gereedschap om planaire vormen te verschuiven @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Onderdeel - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Onderdeel - + Reverse shapes Omkeren van vormen - + Reverse orientation of shapes Omgekeerde oriëntatie van vormen @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Onderdeel - + Revolve... Wentelen... - + Revolve a selected shape Een geselecteerde vorm wentelen @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Onderdeel - + Create ruled surface Maak een geregeerd oppervlak aan - + Create a ruled surface from either two Edges or two wires Maak een geregeerd oppervlak vanuit twee randen of twee draden @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Onderdeel - + Section Deel - + Make a section of two shapes Een doorsnede van twee vormen maken @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Onderdeel - + Sweep... Sweep... - + Utility to sweep Sweepgereedschap @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Onderdeel - + Thickness... Dikte... - + Utility to apply a thickness Hulpprogramma voor aanbrengen van een dikte - + Wrong selection Verkeerde selectie - + Selected shape is not a solid Geselecteerde vorm is geen volumemodel @@ -2215,7 +2215,7 @@ of projection. Create transformed copy - Create transformed copy + Creëer getransformeerde kopie @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Gemeenschappelijk - + Fusion Fusie - + Compound Samenstelling - + Section Deel - + Import Part Onderdeel importeren - + Part Import Curve Net Part Import Curve Net - + Reverse Omdraaien - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Maak een geregeerd oppervlak aan @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Wissel selectie om - + Select a shape on the left side, first Selecteer eerst een vorm aan de linkerkant - + Select a shape on the right side, first Selecteer eerst een vorm aan de rechterkant - + Cannot perform a boolean operation with the same shape Kan een booleaanse bewerking niet uit te voeren met dezelfde vorm - + No active document available Geen actief document beschikbaar - + One of the selected objects doesn't exist anymore Eén van de geselecteerde objecten bestaat niet meer - + Performing union on non-solids is not possible De vereniging van non-volumemodellen is niet mogelijk @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.De intersectie van non-volumemodellen is niet mogelijk - + Performing difference on non-solids is not possible De Aftrekking van non-volumemodellen is niet mogelijk @@ -3311,8 +3311,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Selecteer dit om onzichtbare objecten te importeren. @@ -5215,7 +5215,7 @@ Individual boolean operation checks: Bad type - Bad type + Slecht type @@ -5318,12 +5318,12 @@ Individual boolean operation checks: Check Geometry Results - Check Geometry Results + Controleer Geometrie Resultaten Check is running... - Check is running... + De controle wordt uitgevoerd... @@ -5735,63 +5735,63 @@ in de 3D-weergave voor het veegpad. - - - - - + + + + + Wrong selection Verkeerde selectie - + Select two shapes please. Selecteer twee vormen alstublieft. - - - + + + Non-solids selected Non-volumemodel geselecteerd - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Het gebruik van non-volumemodellen voor booleaanse bewerkingen kan onverwachte resultaten opleveren. Wilt u doorgaan? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Gelieve twee of meer vormen te kiezen. Of, selecteer één samenstelling met twee of meer vormen om gemeenschappelijke tussen de twee of meer vormen te berekenen. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Gelieve twee of meer vormen te kiezen. Of, selecteer één samenstelling met twee of meer vormen die samengevoegd moeten worden. - + Select one shape or more, please. Selecteer een of meer vormen, Alstublieft. - + All CAD Files Alle CAD bestanden - + All Files Alle bestanden - + You have to select either two edges or two wires. Je moet of twee randen of twee draden selecteren. @@ -6281,7 +6281,7 @@ Wilt u doorgaan? Bad selection - Bad selection + Foute selectie @@ -6309,7 +6309,7 @@ Wilt u doorgaan? Connect objects - Connect objects + Objecten verbinden @@ -6368,7 +6368,7 @@ Wilt u doorgaan? Bad selection - Bad selection + Foute selectie @@ -6418,7 +6418,7 @@ for collision or distance filtering. Bad selection - Bad selection + Foute selectie @@ -6453,7 +6453,7 @@ It will create a 'Compound Filter' for each shape. Bad selection - Bad selection + Foute selectie @@ -6461,7 +6461,7 @@ It will create a 'Compound Filter' for each shape. No object named {} - No object named {} + Geen object met de naam {} @@ -6471,7 +6471,7 @@ It will create a 'Compound Filter' for each shape. Object {} is neither movable nor attachable, can't edit attachment - Object {} is neither movable nor attachable, can't edit attachment + Object {} is niet verplaatsbaar of toevoegbaar, kan de bijlage niet bewerken @@ -6493,12 +6493,12 @@ It will create a 'Compound Filter' for each shape. Edit attachment of {} - Edit attachment of {} + Bijlage van {} bewerken Ignored. Can't attach object to itself! - Ignored. Can't attach object to itself! + Genegeerd. Kan object niet aan zichzelf koppelen! @@ -6508,12 +6508,12 @@ It will create a 'Compound Filter' for each shape. {} (add {}) - {} (add {}) + {} (voeg {} toe) {} (add more references) - {} (add more references) + {} (Voeg meer referenties toe) @@ -6523,7 +6523,7 @@ It will create a 'Compound Filter' for each shape. Reference{} - Reference{} + Referentie{} @@ -6533,7 +6533,7 @@ It will create a 'Compound Filter' for each shape. Failed to resolve links. {} - Failed to resolve links. {} + Koppelingen herstellen mislukt. {} @@ -6543,12 +6543,12 @@ It will create a 'Compound Filter' for each shape. Attached with mode {} - Attached with mode {} + Toegevoegd met modus {} Error: {} - Error: {} + Fout: {} @@ -6566,12 +6566,12 @@ It will create a 'Compound Filter' for each shape. Attachment... - Attachment... + Bijlage... Edit attachment of selected object. - Edit attachment of selected object. + Bijlage van het geselecteerde object bewerken. @@ -6594,7 +6594,7 @@ It will create a 'Compound Filter' for each shape. Wires - Wires + Draden @@ -6735,7 +6735,7 @@ A 'Compound Filter' can be used to extract the individual slices. Slice apart - Slice apart + Snij door diff --git a/src/Mod/Part/Gui/Resources/translations/Part_pl.ts b/src/Mod/Part/Gui/Resources/translations/Part_pl.ts index 27687baff2..eee361e229 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_pl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_pl.ts @@ -680,7 +680,7 @@ Folding AttachmentPlane mode caption - Składanie + Składany @@ -877,7 +877,7 @@ Folding Attachment3D mode caption - Składanie + Składany @@ -1150,32 +1150,32 @@ CmdBoxSelection - + Part Część - - - + + + Box selection - Zaznacz obszar + Zaznacz obszarem CmdCheckGeometry - + Part Część - + Check Geometry Sprawdź geometrię - + Analyzes Geometry For Errors Analizuje geometrię pod kątem błędów @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Część - + Color per face Kolor dla ściany - + Set the color of each individual face of the selected object. Ustaw kolor dla każdej ściany wybranego obiektu. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Część - + Measure Angular - Wymiarowanie kątowe + Pomiar kątowy - + Measure the angle between two edges. Zmierz kąt między dwoma krawędziami. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Część - + Clear All Usuń widoczne pomiary - + Clear all dimensions from the screen. Wyczyść z ekranu wszystkie wymiary. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Część - + Measure Linear - Wymiarowanie liniowe + Pomiar liniowy - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ pomiędzy dwoma ich wierzchołkami. CmdMeasureRefresh - + Part Część - + Refresh - Odśwież + Odśwież pomiary - + Recalculate the dimensions if the measured points have moved. Przelicz wymiary @@ -1279,61 +1279,61 @@ w przypadku przesunięcia punktów pomiarowych. CmdMeasureToggle3d - + Part Część - + Toggle 3D - Przełącz widok 3D + Włącz / wyłącz widok pomiarów 3D - + Toggle on and off all direct dimensions, including angular. - Przełącz i wyłącz wszystkie wymiary bezpośrednie, + Włącza i wyłącza wszystkie pomiary bezpośrednie, w tym kątowe. CmdMeasureToggleAll - + Part Część - + Toggle All - Przełącz widoczność wymiarów + Przełącz widoczność pomiarów - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. - Przełącz i wyłącz wszystkie aktualnie widoczne wymiary, + Włącza i wyłącza wszystkie aktualnie widoczne pomiary, bezpośrednie, ortogonalne i kątowe. CmdMeasureToggleDelta - + Part Część - + Toggle Delta - Przełącz Deltę + Włącz / wyłącz widok pomiarów przyrostowych - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. - Przełącz i wyłącz wszystkie wymiary ortogonalne, + Włącza i wyłącza wszystkie pomiary ortogonalne, co oznacza, że wymiar bezpośredni zostanie podzielony na jego składowe X, Y i Z. @@ -1341,17 +1341,17 @@ na jego składowe X, Y i Z. CmdPartBoolean - + Part Część - + Boolean... - Logiczne ... + Operacja logiczna ... - + Run a boolean operation with two shapes selected Uruchom operację logiczną z dwoma wybranymi kształtami @@ -1373,7 +1373,7 @@ na jego składowe X, Y i Z. Create a cube solid - Utwórz prostopadłościan + Tworzy sześcian @@ -1415,17 +1415,17 @@ na jego składowe X, Y i Z. CmdPartBuilder - + Part Część - + Shape builder... Konstruktor kształtu ... - + Advanced utility to create shapes Zaawansowane narzędzie do tworzenia kształtów @@ -1433,17 +1433,17 @@ na jego składowe X, Y i Z. CmdPartChamfer - + Part Część - + Chamfer... Sfazowanie ... - + Chamfer the selected edges of a shape Fazuj wybrane krawędzie obiektu @@ -1451,17 +1451,17 @@ na jego składowe X, Y i Z. CmdPartCommon - + Part Część - + Intersection Przecięcie - + Make an intersection of two shapes Utwórz przecięcie dwóch kształtów @@ -1469,17 +1469,17 @@ na jego składowe X, Y i Z. CmdPartCompCompoundTools - + Part Część - + Compound tools Narzędzia złożeń - + Compound tools: working with lists of shapes. Narzędzia złożeń: praca z listami kształtów. @@ -1487,17 +1487,17 @@ na jego składowe X, Y i Z. CmdPartCompJoinFeatures - + Part Część - + Join objects... Połącz obiekty ... - + Join walled objects Połącz wygrodzone obiekty @@ -1505,17 +1505,17 @@ na jego składowe X, Y i Z. CmdPartCompOffset - + Part Część - + Offset: Odsunięcie: - + Tools to offset shapes (construct parallel shapes) Narzędzia do odsuwania kształtów (konstrukcja równoległych kształtów) @@ -1523,17 +1523,17 @@ na jego składowe X, Y i Z. CmdPartCompSplitFeatures - + Part Część - + Split objects... Podziel obiekty ... - + Shape splitting and Compsolid creation tools. Narzędzia do dzielenia kształtu i tworzenia brył zespolonych. @@ -1541,17 +1541,17 @@ na jego składowe X, Y i Z. CmdPartCompound - + Part Część - + Make compound Utwórz kształt złożony - + Make a compound of several shapes Stwórz złożenie z kilku kształtów @@ -1573,23 +1573,23 @@ na jego składowe X, Y i Z. Create a cone solid - Utwórz stożek + Tworzy stożek CmdPartCrossSections - + Part Część - + Cross-sections... Przekrój poprzeczny ... - + Cross-sections Przekrój poprzeczny @@ -1629,7 +1629,7 @@ na jego składowe X, Y i Z. Create a Cylinder - Utwórz walec + Tworzy walec @@ -1671,17 +1671,17 @@ na jego składowe X, Y i Z. CmdPartExport - + Part Część - + Export CAD... - Eksport projektu do CAD... + Eksport projektu do CAD ... - + Exports to a CAD file Eksport do pliku CAD @@ -1689,17 +1689,17 @@ na jego składowe X, Y i Z. CmdPartExtrude - + Part Część - + Extrude... Wyciągnięcie ... - + Extrude a selected sketch Wyciągnij wybrany szkic @@ -1707,17 +1707,17 @@ na jego składowe X, Y i Z. CmdPartFillet - + Part Część - + Fillet... Zaokrąglenie ... - + Fillet the selected edges of a shape Zaokrąglij wybrane krawędzie obiektu @@ -1725,17 +1725,17 @@ na jego składowe X, Y i Z. CmdPartFuse - + Part Część - + Union Połączenie - + Make a union of several shapes Utwórz połączenie kilku kształtów @@ -1743,17 +1743,17 @@ na jego składowe X, Y i Z. CmdPartImport - + Part Część - + Import CAD... Import projektu CAD ... - + Imports a CAD file Importuje plik CAD @@ -1761,17 +1761,17 @@ na jego składowe X, Y i Z. CmdPartImportCurveNet - + Part Część - + Import curve network... Importuj sieć krzywych ... - + Import a curve network Importuj sieć krzywych @@ -1779,17 +1779,17 @@ na jego składowe X, Y i Z. CmdPartLoft - + Part Część - + Loft... Wyciągnięcie przez profile ... - + Utility to loft Narzędzie wyciągnięcia po profilach @@ -1797,17 +1797,17 @@ na jego składowe X, Y i Z. CmdPartMakeFace - + Part Część - + Make face from wires - Stwórz ścianę z polilinii + Utwórz ścianę z polilinii - + Make face from set of wires (e.g. from a sketch) Stwórz ścianę z zestawu polilinii (np. ze szkicu) @@ -1815,17 +1815,17 @@ na jego składowe X, Y i Z. CmdPartMakeSolid - + Part Część - + Convert to solid Przekształć na bryłę - + Create solid from a shell or compound Stwórz bryłę z powłoki lub złożenia @@ -1833,17 +1833,17 @@ na jego składowe X, Y i Z. CmdPartMirror - + Part Część - + Mirroring... Odbicie lustrzane ... - + Mirroring a selected shape Utwórz odbicie lustrzane wybranego kształtu @@ -1851,17 +1851,17 @@ na jego składowe X, Y i Z. CmdPartOffset - + Part Część - + 3D Offset... Odsunięcie 3D ... - + Utility to offset in 3D Narzędzie tworzące odsunięcie w przestrzeni 3D @@ -1869,17 +1869,17 @@ na jego składowe X, Y i Z. CmdPartOffset2D - + Part Część - + 2D Offset... Odsunięcie 2D ... - + Utility to offset planar shapes Narzędzie do odsuwania płaskich kształtów @@ -1917,7 +1917,7 @@ na jego składowe X, Y i Z. Create selectable points object from selected geometric object - Tworzenie obiektu punktów wybieralnych z zaznaczonego obiektu geometrycznego + Tworzy obiekt punktów wybrany z zaznaczonego obiektu geometrycznego @@ -1941,17 +1941,17 @@ na jego składowe X, Y i Z. CmdPartProjectionOnSurface - + Part Część - + Create projection on surface... Utwórz rzut na powierzchni ... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1982,17 +1982,17 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartReverseShape - + Part Część - + Reverse shapes Odwróć kształty - + Reverse orientation of shapes Odwróć orientację kształtów @@ -2000,17 +2000,17 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartRevolve - + Part Część - + Revolve... Obrót... - + Revolve a selected shape Wyciągnij przez obrót wybrany kształt @@ -2018,17 +2018,17 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartRuledSurface - + Part Część - + Create ruled surface Utwórz powierzchnię prostokreślną - + Create a ruled surface from either two Edges or two wires Utwórz powierzchnię prostokreślną z krawędzi lub polilinii @@ -2036,17 +2036,17 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartSection - + Part Część - + Section Przecięcie - + Make a section of two shapes Utwórz część wspólną z dwóch kształtów @@ -2054,12 +2054,12 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartSectionCut - + Persistent section cut Wycinek przekroju - + Creates a persistent section cut of visible part objects Tworzy trwałą reprezentację przekroju widocznych obiektów części @@ -2115,7 +2115,7 @@ Ujęcie widoku określa kierunek rzutowania. Create a Cylinder - Utwórz walec + Tworzy walec @@ -2135,23 +2135,23 @@ Ujęcie widoku określa kierunek rzutowania. Create a sphere solid - Utwórz sferę + Tworzy sferę CmdPartSweep - + Part Część - + Sweep... Wyciągnięcie po ścieżce ... - + Utility to sweep Narzędzie do wyciągnięcia po ścieżce @@ -2159,27 +2159,27 @@ Ujęcie widoku określa kierunek rzutowania. CmdPartThickness - + Part Część - + Thickness... Grubość ... - + Utility to apply a thickness Narzędzie do nadawania grubości - + Wrong selection Niewłaściwy wybór - + Selected shape is not a solid Zaznaczony kształt nie jest bryłą @@ -2201,7 +2201,7 @@ Ujęcie widoku określa kierunek rzutowania. Create a torus solid - Utwórz torus + Tworzy torus @@ -2219,7 +2219,7 @@ Ujęcie widoku określa kierunek rzutowania. Create a non-parametric copy with transformed placement - Utwórz kopię nieparametryczną z przekształconym umiejscowieniem + Tworzy kopię nieparametryczną z przekształconym umiejscowieniem @@ -2228,70 +2228,70 @@ Ujęcie widoku określa kierunek rzutowania. Part Box Create - Utwórz sześcian środowiska Część + Utwórz prostopadłościan środowiska Część - + Part Cut Częściowe cięcie - + Common Część wspólna - + Fusion Łączenie - + Compound Złożenie - + Section - Przecięcie + Przekrój - + Import Part Importuj część - + Part Import Curve Net Importuj sieć krzywych w środowisku Część - + Reverse Odwróć - + Make face Utwórz ścianę - + Make Offset Dokonaj odsunięcia - + Make 2D Offset Wykonaj odsunięcie 2D - + Make Thickness Stwórz grubość - + Create ruled surface Utwórz powierzchnię prostokreślną @@ -2407,7 +2407,7 @@ Ujęcie widoku określa kierunek rzutowania. Attachment mode: - Tryb mocowania: + Tryb dołączenia: @@ -2561,7 +2561,7 @@ Uwaga: Położenie jest wyrażone w przestrzeni lokalnej dołączanego obiektu.< Section - Przekrój + Przecięcie @@ -2603,32 +2603,32 @@ Uwaga: Położenie jest wyrażone w przestrzeni lokalnej dołączanego obiektu.< Odwróć zaznaczenie - + Select a shape on the left side, first Najpierw zaznacz kształt po lewej stronie - + Select a shape on the right side, first Najpierw zaznacz kształt po prawej stronie, - + Cannot perform a boolean operation with the same shape Nie można wykonać operacji logicznej na tym samym kształcie - + No active document available Brak aktywnego dokumentu - + One of the selected objects doesn't exist anymore Jeden z zaznaczonych obiektów nie istnieje - + Performing union on non-solids is not possible Utworzenie złączenia na obiektach nie będących bryłami nie jest możliwe @@ -2638,7 +2638,7 @@ Uwaga: Położenie jest wyrażone w przestrzeni lokalnej dołączanego obiektu.< Utworzenie iloczynu obiektów nie będących bryłami nie jest możliwe - + Performing difference on non-solids is not possible Utworzenie różnicy obiektów nie będących bryłami nie jest możliwe @@ -2896,7 +2896,7 @@ Jeśli obie długości są równe zero, używana jest wartość wielkości kieru Taper angle against - Kąt nacięcia w kierunku + Kąt ścięcia przeciwnie @@ -2926,7 +2926,7 @@ Jeśli obie długości są równe zero, używana jest wartość wielkości kieru Selecting... - Wybieranie... + Wybieranie ... @@ -3312,8 +3312,8 @@ podczas odczytu pliku (wolniejsze, ale dokładniejsze). - Select this to not import any invisible objects. - Wybierz to, aby nie importować niewidocznych obiektów. + Select this to import invisible objects. + Wybierz tę opcję, aby zaimportować niewidoczne obiekty. @@ -3557,7 +3557,7 @@ podczas odczytu pliku (wolniejsze, ale dokładniejsze). Box - Sześcian + Prostopadłościan @@ -4214,7 +4214,7 @@ podczas odczytu pliku (wolniejsze, ale dokładniejsze). Measure - Wymiarowanie + Pomiary @@ -4956,7 +4956,7 @@ only created cuts will be visible Attachment mode: - Tryb mocowania: + Tryb dołączenia: @@ -5057,7 +5057,7 @@ dołączanego obiektu. Not attached - Nie dołączony + Nie dołączono @@ -5087,7 +5087,7 @@ dołączanego obiektu. Selecting... - Wybieranie... + Wybieranie ... @@ -5131,7 +5131,7 @@ dołączanego obiektu. Skip settings page - Pomiń stronę ustawień + Pomiń ustawienia @@ -5417,7 +5417,7 @@ przez przeciągnięcie prostokąta zaznaczenia w oknie widoku 3D Box selection - Zaznacz obszar + Zaznacz obszarem @@ -5479,7 +5479,7 @@ przez przeciągnięcie prostokąta zaznaczenia w oknie widoku 3D Arc - Wzdłuż łuku + Łuk @@ -5723,7 +5723,7 @@ in the 3D view for the sweep path. Part/Part Design - Część / + Część / Projekt Części @@ -5734,62 +5734,62 @@ Projekt Części - - - - - + + + + + Wrong selection Niewłaściwy wybór - + Select two shapes please. Proszę wybrać dwa kształty. - - - + + + Non-solids selected Zaznaczone obiekty nie są bryłami - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Użycie obiektów nie będących bryłami, do przeprowadzenia operacji logicznych, może doprowadzić do nieoczekiwanych rezultatów. Czy chcesz kontynuować? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Wybierz dwa lub więcej kształtów. Lub wybierz jedno złożenie z dwóch lub więcej kształtów, aby obliczyć ich część wspólną. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Wybierz dwa lub więcej kształtów, proszę. Lub, wybierz jedno złożenie zawierające dwa lub więcej kształtów, które mają być połączone. - + Select one shape or more, please. Proszę wybierać jeden lub więcej kształtów. - + All CAD Files Wszystkie pliki CAD - + All Files Wszystkie pliki - + You have to select either two edges or two wires. Należy wybrać dwie krawędzie lub dwie polilinie. @@ -6096,7 +6096,7 @@ Do you want to continue? Selections - Zaznaczenia + Wybór: @@ -6172,7 +6172,7 @@ Do you want to continue? Create tube - Utwórz rurę + Rura @@ -6245,7 +6245,7 @@ Do you want to continue? Measure - Wymiarowanie + Pomiary @@ -6253,7 +6253,7 @@ Do you want to continue? Create tube - Utwórz rurę + Rura @@ -6380,7 +6380,9 @@ Do you want to continue? Select at least two objects, or one or more compounds. If only one compound is selected, the compounded shapes will be intersected between each other (otherwise, compounds with self-intersections are invalid). - Wybierz co najmniej dwa obiekty bądź jeden lub więcej złożonych kształtów. Jeśli wybrany zostanie tylko jeden kształt złożony, jego części składowe zostaną przecięte między sobą (w przeciwnym razie, kształt złożony z własnymi przecięciami jest nieprawidłowy). + Wybierz co najmniej dwa obiekty bądź jeden lub więcej złożonych kształtów. +Jeśli wybrany zostanie tylko jeden kształt złożony, jego części składowe zostaną przecięte między sobą +(w przeciwnym razie, kształt złożony z własnymi przecięciami jest nieprawidłowy). @@ -6526,7 +6528,7 @@ Stworzy to "Filtr złożeń” dla każdego kształtu. Selecting... - Wybieranie... + Wybieranie ... @@ -6536,7 +6538,7 @@ Stworzy to "Filtr złożeń” dla każdego kształtu. Not attached - Nie dołączony + Nie dołączono @@ -6716,16 +6718,16 @@ oryginalnych kształtów. Slice to compound - Rozbij na kształty złożone + Natnij na kształty złożenia Slice a selected object by using other objects as cutting tools. The resulting pieces will be stored in a compound. A 'Compound Filter' can be used to extract the individual slices. - Rozbij wybrany obiekt za pomocą innych obiektów jako narzędzia cięcia. + Rozbija wybrany obiekt za pomocą innych obiektów jako narzędzi cięcia. Wynikające z niego części będą przechowywane w złożeniu. -Filtr złożeń może być użyty do wydobycia pojedynczych plastrów. +Filtr złożeń może być użyty do wydobycia pojedynczych części. @@ -6733,7 +6735,7 @@ Filtr złożeń może być użyty do wydobycia pojedynczych plastrów. Slice apart - Rozbij + Rozetnij diff --git a/src/Mod/Part/Gui/Resources/translations/Part_pt-BR.ts b/src/Mod/Part/Gui/Resources/translations/Part_pt-BR.ts index 9f3e1a5e86..5837a21251 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_pt-BR.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_pt-BR.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Part - - - + + + Box selection Caixa de seleção @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Part - + Check Geometry Verificar a geometria - + Analyzes Geometry For Errors Procura erros na geometria @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Part - + Color per face Cor por face - + Set the color of each individual face of the selected object. Defina uma cor para cada face do objeto selecionado. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Part - + Measure Angular Medida angular - + Measure the angle between two edges. Mede o ângulo entre duas arestas. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Part - + Clear All Limpar tudo - + Clear all dimensions from the screen. Apaga todas as dimensões que aparecem na tela. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Part - + Measure Linear Medida linear - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ entre seus dois vértices. CmdMeasureRefresh - + Part Part - + Refresh Atualizar - + Recalculate the dimensions if the measured points have moved. Recalcula as dimensões @@ -1279,17 +1279,17 @@ quando os pontos de medição se moverem. CmdMeasureToggle3d - + Part Part - + Toggle 3D Alternar 3D - + Toggle on and off all direct dimensions, including angular. Exibe ou oculta todas as dimensões diretas, incluindo as angulares. @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Part - + Toggle All Alternar todos - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Exibe ou oculta todas as dimensões atualmente visíveis: diretas, ortogonais e angulares. @@ -1317,17 +1317,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Part - + Toggle Delta Alternar delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1337,17 +1337,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Part - + Boolean... Booleano... - + Run a boolean operation with two shapes selected Executar uma operação booleana com duas formas selecionadas @@ -1411,17 +1411,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Part - + Shape builder... Construtor de forma... - + Advanced utility to create shapes Utilitário avançado para criar formas @@ -1429,17 +1429,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Part - + Chamfer... Chanfro... - + Chamfer the selected edges of a shape Chanfra as arestas selecionadas de uma forma @@ -1447,17 +1447,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Part - + Intersection Intersecção - + Make an intersection of two shapes Fazer uma interseção entre duas formas @@ -1465,17 +1465,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Part - + Compound tools Ferramentas para criação de Composições - + Compound tools: working with lists of shapes. Ferramentas de Compostos: trabalhando com listas de formas. @@ -1483,17 +1483,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Part - + Join objects... Juntar objetos... - + Join walled objects Unir objetos murados @@ -1501,17 +1501,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Part - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Ferramentas para deslocamento de formas (constrói faces paralelas) @@ -1519,17 +1519,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Part - + Split objects... Separar objetos... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1537,17 +1537,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Part - + Make compound Criar um composto - + Make a compound of several shapes Cria um composto a partir de várias formas @@ -1575,17 +1575,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Part - + Cross-sections... Secções transversais... - + Cross-sections Secções transversais @@ -1667,17 +1667,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Part - + Export CAD... Exportar CAD ... - + Exports to a CAD file Exporta para um arquivo CAD @@ -1685,17 +1685,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Part - + Extrude... Extrusão... - + Extrude a selected sketch Extrusão de um esboço selecionado @@ -1703,17 +1703,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Part - + Fillet... Filete... - + Fillet the selected edges of a shape Criar um filete nas arestas selecionadas de uma forma @@ -1721,17 +1721,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Part - + Union União - + Make a union of several shapes Fazer uma união com várias formas @@ -1739,17 +1739,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Part - + Import CAD... Importar CAD... - + Imports a CAD file Importar um arquivo CAD @@ -1757,17 +1757,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Part - + Import curve network... Importar uma rede de curvas... - + Import a curve network Importar uma rede de curvas @@ -1775,17 +1775,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Part - + Loft... Loft... - + Utility to loft Utilitário de loft @@ -1793,17 +1793,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Part - + Make face from wires Fazer face a partir de arames - + Make face from set of wires (e.g. from a sketch) Criar uma face a partir de um conjunto de arames (p. ex. de um esboço) @@ -1811,17 +1811,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Part - + Convert to solid Converter em sólido - + Create solid from a shell or compound Criar sólidos a partir de uma casca ou composto @@ -1829,17 +1829,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Part - + Mirroring... Espelho... - + Mirroring a selected shape Espelhar uma forma selecionada @@ -1847,17 +1847,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Part - + 3D Offset... Deslocamento 3D... - + Utility to offset in 3D Utilitário para offset em 3D @@ -1865,17 +1865,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Part - + 2D Offset... Deslocamento 2D... - + Utility to offset planar shapes Utilidade para fazer offsets de formas planas @@ -1937,17 +1937,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Part - + Create projection on surface... Criar projeção na superfície... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1976,17 +1976,17 @@ of projection. CmdPartReverseShape - + Part Part - + Reverse shapes Inverter formas - + Reverse orientation of shapes Inverter a orientação de formas @@ -1994,17 +1994,17 @@ of projection. CmdPartRevolve - + Part Part - + Revolve... Revolver... - + Revolve a selected shape Revolve uma forma selecionada @@ -2012,17 +2012,17 @@ of projection. CmdPartRuledSurface - + Part Part - + Create ruled surface Criar superfície regrada - + Create a ruled surface from either two Edges or two wires Criar uma superfície regrada a partir de duas arestas ou dois arames @@ -2030,17 +2030,17 @@ of projection. CmdPartSection - + Part Part - + Section Seção - + Make a section of two shapes Fazer uma seção com duas formas @@ -2048,12 +2048,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2135,17 +2135,17 @@ of projection. CmdPartSweep - + Part Part - + Sweep... Varra... - + Utility to sweep Utilitário de varredura @@ -2153,27 +2153,27 @@ of projection. CmdPartThickness - + Part Part - + Thickness... Espessura... - + Utility to apply a thickness Utilitário para aplicar uma espessura - + Wrong selection Seleção errada - + Selected shape is not a solid A forma selecionada não é um sólido @@ -2225,67 +2225,67 @@ of projection. Criar caixa de peças - + Part Cut Recorte da peça - + Common Comum - + Fusion Fusão - + Compound Composto - + Section Seção - + Import Part Importar Parte - + Part Import Curve Net Peça formada por rede de curvas importadas - + Reverse Inverter - + Make face Criar face - + Make Offset Criar offset - + Make 2D Offset Criar offset 2D - + Make Thickness Criar espessura - + Create ruled surface Criar superfície regrada @@ -2597,32 +2597,32 @@ Nota: As coordenadas da posição são relacionadas ao sistema local de coordena Trocar seleção - + Select a shape on the left side, first Selecione uma forma no lado esquerdo primeiro - + Select a shape on the right side, first Selecione uma forma no lado direito primeiro - + Cannot perform a boolean operation with the same shape Não é possível executar uma operação booleana com a mesma forma - + No active document available Nenhum documento ativo disponível - + One of the selected objects doesn't exist anymore Um dos objetos selecionados não existe mais - + Performing union on non-solids is not possible Não é possível executar união em objetos não solidos @@ -2632,7 +2632,7 @@ Nota: As coordenadas da posição são relacionadas ao sistema local de coordena Não é possível executar interseção em não sólidos - + Performing difference on non-solids is not possible Não é possível executar diferença em não-sólidos @@ -3301,8 +3301,8 @@ durante a leitura de arquivos. A importação levará mais tempo e mais detalhes - Select this to not import any invisible objects. - Selecione esta opção para não importar objetos invisíveis. + Select this to import invisible objects. + Selecione isto para importar objetos invisíveis. @@ -5714,63 +5714,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Seleção errada - + Select two shapes please. Selecione duas formas, por favor. - - - + + + Non-solids selected Não-sólidos selecionados - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? O uso de não-sólidos para operações booleanas pode levar a resultados inesperados. Deseja continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Selecione duas formas, ou mais, por favor. Ou selecione um composto contendo duas ou mais formas para calcular a parte comum entre elas. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Selecione duas formas, ou mais, por favor. Ou selecione um composto contendo duas ou mais formas para serem fundidas. - + Select one shape or more, please. Selecione uma forma ou mais, por favor. - + All CAD Files Todos os arquivos de CAD - + All Files Todos os Arquivos - + You have to select either two edges or two wires. Você deve selecionar duas arestas ou dois cabos. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_pt-PT.ts b/src/Mod/Part/Gui/Resources/translations/Part_pt-PT.ts index 86c5dfda0c..6c50b61965 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_pt-PT.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_pt-PT.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Parte - - - + + + Box selection Caixa de seleção @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Parte - + Check Geometry Verificar a geometria - + Analyzes Geometry For Errors Analiza Erros Geométricos @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Parte - + Color per face Cor por face - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Parte - + Measure Angular Medição Angular - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Parte - + Clear All Limpar tudo - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Parte - + Measure Linear Medição Linear - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Parte - + Refresh Atualizar - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Parte - + Toggle 3D Toggle 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Parte - + Toggle All Ativar/Desativar todos - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Parte - + Toggle Delta Liga/desliga Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Parte - + Boolean... Booliano ... - + Run a boolean operation with two shapes selected Executar uma operação Booleana com duas formas selecionadas @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Parte - + Shape builder... Construtor de Formas... - + Advanced utility to create shapes Utilitário avançado para criar formas @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Parte - + Chamfer... Chanfro... - + Chamfer the selected edges of a shape Chanfra as arestas selecionadas de uma forma @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Parte - + Intersection Interseção - + Make an intersection of two shapes Criar uma interseção de duas formas @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Parte - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Ferramentas de composto: trabalhando com listas de formas. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Parte - + Join objects... Juntar objetos... - + Join walled objects Juntar objetos de parede @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Parte - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Ferramentas para deslocamento de formas (constrói faces paralelas) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Parte - + Split objects... Separar objetos... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Parte - + Make compound Fazer composto - + Make a compound of several shapes Fazer composto de várias formas @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Parte - + Cross-sections... Perfis transversais ... - + Cross-sections Perfis transversais @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Parte - + Export CAD... Exportar CAD ... - + Exports to a CAD file Exporta para um ficheiro CAD @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Parte - + Extrude... Extrusão ... - + Extrude a selected sketch Extrusão de um esboço selecionado @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Parte - + Fillet... Boleado (fillet)... - + Fillet the selected edges of a shape Criar Boleado (fillet) nas arestas selecionadas de uma forma @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Parte - + Union União - + Make a union of several shapes Criar uma união de várias formas @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Parte - + Import CAD... Importar CAD... - + Imports a CAD file Importa um arquivo de CAD @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Parte - + Import curve network... Importar uma rede de curvas... - + Import a curve network Importar uma rede de curvas @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Parte - + Loft... Loft... - + Utility to loft Utilitário para arrastar @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Parte - + Make face from wires Fazer face a partir de traços - + Make face from set of wires (e.g. from a sketch) Faz face de um conjunto de traços (por exemplo, de um esboço) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Parte - + Convert to solid Converter para sólido - + Create solid from a shell or compound Criar sólidos a partir de um shell ou composto @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Parte - + Mirroring... Espelhamento... - + Mirroring a selected shape Espelhamento de uma forma selecionada @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Parte - + 3D Offset... Deslocamento 3D... - + Utility to offset in 3D Ferramenta para deslocamento em 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Parte - + 2D Offset... Deslocamento 2D... - + Utility to offset planar shapes Ferramenta para deslocamento de formas planas @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Parte - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Parte - + Reverse shapes Reverter formas - + Reverse orientation of shapes Inverter a orientação das formas @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Parte - + Revolve... Revolver... - + Revolve a selected shape Revolver a forma selecionada @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Parte - + Create ruled surface Criar superfície regrada - + Create a ruled surface from either two Edges or two wires Criar uma superfície regrada a partir de duas arestas ou dois traços @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Parte - + Section Secção - + Make a section of two shapes Selecionar duas formas @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Parte - + Sweep... Varrer... - + Utility to sweep Utilitário para varrer @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Parte - + Thickness... Espessura ... - + Utility to apply a thickness Utilitário para aplicar uma espessura - + Wrong selection Seleção errada - + Selected shape is not a solid A forma selecionada não é um sólida @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Comum - + Fusion Fusion - + Compound Composto - + Section Secção - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse Inverter - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Criar superfície regrada @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Troca seleção - + Select a shape on the left side, first Selecione uma forma do lado esquerdo, primeiro - + Select a shape on the right side, first Selecione uma forma do lado direito, primeiro - + Cannot perform a boolean operation with the same shape Não é possível executar uma operação Booleana com a mesma forma - + No active document available Nenhum documento ativo disponível - + One of the selected objects doesn't exist anymore Um dos objetos selecionados já não existe - + Performing union on non-solids is not possible Não é possível executar união em objetos não solidos @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Não é possível executar interseções em não sólidos - + Performing difference on non-solids is not possible Não é possível executar a diferença em não-sólidos @@ -3308,8 +3308,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5727,62 +5727,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Seleção errada - + Select two shapes please. Por favor, selecione duas formas. - - - + + + Non-solids selected Não-sólidos selecionados - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? O uso de não-sólidos para operações booleanas pode levar a resultados inesperados. Deseja continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Selecione duas formas, ou mais, por favor. Ou selecione um composto contendo duas ou mais formas para calcular a parte comum entre elas. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Selecione duas formas, ou mais, por favor. Ou selecione um composto contendo duas ou mais formas para serem fundidas. - + Select one shape or more, please. Selecione uma forma ou mais, por favor. - + All CAD Files Todos os ficheiros CAD - + All Files Todos os Ficheiros - + You have to select either two edges or two wires. Tem que selecionar duas arestas ou dois traços. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ro.ts b/src/Mod/Part/Gui/Resources/translations/Part_ro.ts index f5bef98932..28270eac2e 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ro.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ro.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Componentă - - - + + + Box selection Selectare cu dreptunghi @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Componentă - + Check Geometry Verifica geometria - + Analyzes Geometry For Errors Analizeaza geometria pentru erori @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Componentă - + Color per face Culoare pe fata - + Set the color of each individual face of the selected object. Setați culoarea fiecărei fețe individuale a obiectului selectat. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Componentă - + Measure Angular Măsură unghiulară - + Measure the angle between two edges. Măsuraţi unghiul dintre două margini. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Componentă - + Clear All Ștergere toate - + Clear all dimensions from the screen. Ştergeţi toate dimensiunile de pe ecran. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Componentă - + Measure Linear Mesura lineară - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ dacă marginile sau fețele sunt alese, va măsura CmdMeasureRefresh - + Part Componentă - + Refresh Reîmprospătare - + Recalculate the dimensions if the measured points have moved. Recalculează dimensiunile @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Componentă - + Toggle 3D Comutați 3D - + Toggle on and off all direct dimensions, including angular. Comută pe și dezactivează toate dimensiunile directe, @@ -1299,17 +1299,17 @@ inclusiv angular. CmdMeasureToggleAll - + Part Componentă - + Toggle All Activează/dezactivează toate - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Comută pe și dezactivează toate dimensiunile vizibile, @@ -1319,17 +1319,17 @@ directe, ortogonale și angulare. CmdMeasureToggleDelta - + Part Componentă - + Toggle Delta Activează/dezactivează Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Componentă - + Boolean... Boolean... - + Run a boolean operation with two shapes selected Executaţi o operaţiune de booleană cu două forme selectate @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Componentă - + Shape builder... Constructor de forme... - + Advanced utility to create shapes Utilitar avansat pentru constructia de forme @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Componentă - + Chamfer... Teșitură... - + Chamfer the selected edges of a shape Definiţi teşirea muchiilor selectate ale formei @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Componentă - + Intersection Intersecţie - + Make an intersection of two shapes Creaza intersectia a doua forme @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Componentă - + Compound tools Unelte compuse - + Compound tools: working with lists of shapes. Instrumente de compunere: lucrul cu liste de forme. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Componentă - + Join objects... Unește obiectele... - + Join walled objects Unirea obiectelor tip perete @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Componentă - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Instrumente pentru a compensa formele (construește forme paralele) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Componentă - + Split objects... Obiecte explodate... - + Shape splitting and Compsolid creation tools. Forma divizată și instrumente Compsolid. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Componentă - + Make compound Creați un compus - + Make a compound of several shapes Face un compus din mai multe forme @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Componentă - + Cross-sections... Sectiune transversala... - + Cross-sections Sectiune transversala @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Componentă - + Export CAD... Exporta CAD... - + Exports to a CAD file Exporta un CAD intr-un fisier @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Componentă - + Extrude... Extrudare... - + Extrude a selected sketch Extrudați o schiță selectată @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Componentă - + Fillet... Rotunjire... - + Fillet the selected edges of a shape Rotunjiți marginile selectate ale unei forme @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Componentă - + Union Reuniune - + Make a union of several shapes Creaza uniunea mai multor forme @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Componentă - + Import CAD... Import CAD... - + Imports a CAD file Importați un fişier CAD @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Componentă - + Import curve network... Import o rețea de curbe... - + Import a curve network Importați o rețea de curbe @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Componentă - + Loft... Pod... - + Utility to loft Utilitar pentru unire @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Componentă - + Make face from wires Crează o fațetă plecănd de la două fire - + Make face from set of wires (e.g. from a sketch) Part_MakeFace : Creează o fațetă plecând de la un ansamblu de fire (de exemplul, plecând de la schiță) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Componentă - + Convert to solid Converteste in solid - + Create solid from a shell or compound Creaza un solid din carcasa sau component @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Componentă - + Mirroring... Oglindire... - + Mirroring a selected shape Copiaza in oglinda forma selectata @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Componentă - + 3D Offset... Decalaj 3D... - + Utility to offset in 3D Utility to offset in 3D Inchideti utilizarea 3D @@ -1870,17 +1870,17 @@ Inchideti utilizarea 3D CmdPartOffset2D - + Part Componentă - + 2D Offset... Decalaj 2D... - + Utility to offset planar shapes Utilitara pentru decalarea formelor planare @@ -1942,17 +1942,17 @@ Inchideti utilizarea 3D CmdPartProjectionOnSurface - + Part Componentă - + Create projection on surface... Creați proiecția pe suprafață... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1984,17 +1984,17 @@ de proiecție. CmdPartReverseShape - + Part Componentă - + Reverse shapes Inverseaza forma - + Reverse orientation of shapes Inverseaza orientarea formei @@ -2002,17 +2002,17 @@ de proiecție. CmdPartRevolve - + Part Componentă - + Revolve... Roteste... - + Revolve a selected shape Roteste forma selectata @@ -2020,17 +2020,17 @@ de proiecție. CmdPartRuledSurface - + Part Componentă - + Create ruled surface Creaza suprafata dreapta - + Create a ruled surface from either two Edges or two wires Creaţi o suprafaţă riglată din două margini sau două fire @@ -2038,17 +2038,17 @@ de proiecție. CmdPartSection - + Part Componentă - + Section Secţiune - + Make a section of two shapes Creaza o sectiune a doua forme @@ -2056,12 +2056,12 @@ de proiecție. CmdPartSectionCut - + Persistent section cut Secţiune tăietură persistentă - + Creates a persistent section cut of visible part objects Creează o tăietură de secţiune persistentă a obiectelor din partea vizibilă @@ -2143,17 +2143,17 @@ de proiecție. CmdPartSweep - + Part Componentă - + Sweep... Matura... - + Utility to sweep Utilitate pentru maturare @@ -2161,27 +2161,27 @@ de proiecție. CmdPartThickness - + Part Componentă - + Thickness... Grosime... - + Utility to apply a thickness Utilitate pentru a aplica o grosime - + Wrong selection Selecţie greşită - + Selected shape is not a solid Forma selectata nu este un solid @@ -2233,67 +2233,67 @@ de proiecție. Crează caseta de piese - + Part Cut Taie partea - + Common Intersecție - + Fusion Fuziune - + Compound Compus - + Section Secţiune - + Import Part Importă capitol - + Part Import Curve Net Importă Part Curve Net - + Reverse Invers - + Make face Fașa planului - + Make Offset Realizați Offset - + Make 2D Offset Realizați Offset 2D - + Make Thickness Faceți grosime - + Create ruled surface Creaza suprafata dreapta @@ -2605,32 +2605,32 @@ Notă: Plasamentul este exprimat în spaţiul local al obiectului ataşat.Schimba selectia - + Select a shape on the left side, first Selectati mai intai o forma in stanga - + Select a shape on the right side, first Selectati mai intai o forma in dreapta - + Cannot perform a boolean operation with the same shape Imposibil de efectuat o operaţiune logica cu aceeasi forma - + No active document available Nici un document activ disponibil - + One of the selected objects doesn't exist anymore Unul dintre obiectele selectate nu mai exista - + Performing union on non-solids is not possible Realizarea Uniunii pe non-solide nu este posibila @@ -2640,7 +2640,7 @@ Notă: Plasamentul este exprimat în spaţiul local al obiectului ataşat.Efectuarea intersectiei pe non-solide nu este posibila - + Performing difference on non-solids is not possible Efectuarea diferentei pe non-solide nu este posibila @@ -3309,8 +3309,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Selectați acest lucru pentru a nu importa niciun obiect invizibil. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5733,62 +5733,62 @@ in vizualizarea 3D pentru calea maturarii. - - - - - + + + + + Wrong selection Selecţie greşită - + Select two shapes please. Selectati doua forme. - - - + + + Non-solids selected Forme non pline selecționate - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Utilizarea formelor non pline pentru operațiuni booleene poate duce la rezulta imprevizibile Vreți să continuați? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Selecționați cel puțin două forme. Sau selectați un ansamblu de două sau mai multe forme pentru a calcula intersecția. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Selecționați cel puțin două forme, vă rog. Sau selectați un ansamblu de două sau mai multe forme pentru a calcula fuziunea. - + Select one shape or more, please. Selectați una sau mai multe forme, vă rog. - + All CAD Files Toate fişierele CAD - + All Files Toate fișierele - + You have to select either two edges or two wires. Trebuiesc selectate doua margini sau doua polilinii. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ru.ts b/src/Mod/Part/Gui/Resources/translations/Part_ru.ts index c8bd21c14e..f59ba7131f 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ru.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ru.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Деталь - - - + + + Box selection Выделить область @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Деталь - + Check Geometry Проверка геометрии - + Analyzes Geometry For Errors Проверить геометрию на ошибки @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Деталь - + Color per face Цвет поверхности - + Set the color of each individual face of the selected object. Установить цвет каждой отдельной грани выбранного объекта. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Деталь - + Measure Angular Измерить угол - + Measure the angle between two edges. Измеряет угол между двумя гранями. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Деталь - + Clear All Очистить всё - + Clear all dimensions from the screen. Удалить все размеры с экрана. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Деталь - + Measure Linear Измерить длину - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Деталь - + Refresh Обновить - + Recalculate the dimensions if the measured points have moved. Пересчитать размеры если точки измерения переместились. @@ -1278,17 +1278,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Деталь - + Toggle 3D Переключить 3D - + Toggle on and off all direct dimensions, including angular. Вкл/выкл все прямые размеры, @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Деталь - + Toggle All Переключить всё - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Включить и выключить все видимые размеры, @@ -1318,17 +1318,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Деталь - + Toggle Delta Переключить Дельту - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1340,17 +1340,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Деталь - + Boolean... Булевы операции... - + Run a boolean operation with two shapes selected Булева операция с двумя выбранными формами @@ -1414,17 +1414,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Деталь - + Shape builder... Построитель форм... - + Advanced utility to create shapes Дополнительная утилита для создания форм @@ -1432,17 +1432,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Деталь - + Chamfer... Фаска... - + Chamfer the selected edges of a shape Добавить фаску на выбранные ребра фигуры @@ -1450,17 +1450,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Деталь - + Intersection Пересечение - + Make an intersection of two shapes Создать пересечение двух форм @@ -1468,17 +1468,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Деталь - + Compound tools Составные инструменты - + Compound tools: working with lists of shapes. Инструменты соединений: работа со списками форм. @@ -1486,17 +1486,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Деталь - + Join objects... Объединить объекты... - + Join walled objects Соединить стеновые объекты @@ -1504,17 +1504,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Деталь - + Offset: Смещение: - + Tools to offset shapes (construct parallel shapes) Инструмент смещения форм (конструирует параллельные формы) @@ -1522,17 +1522,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Деталь - + Split objects... Разделить объекты... - + Shape splitting and Compsolid creation tools. Инструменты для разделения форм и создания коплексных твердых тел. @@ -1540,17 +1540,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Деталь - + Make compound Создать соединение - + Make a compound of several shapes Создать соединение из нескольких форм @@ -1578,17 +1578,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Деталь - + Cross-sections... Поперечные сечения... - + Cross-sections Поперечные сечения @@ -1670,17 +1670,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Деталь - + Export CAD... Экспорт в CAD ... - + Exports to a CAD file Экспорт в файл CAD @@ -1688,17 +1688,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Деталь - + Extrude... Выдавить... - + Extrude a selected sketch Выдавить выбранный эскиз @@ -1706,17 +1706,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Деталь - + Fillet... Скругление... - + Fillet the selected edges of a shape Cкругление выбранного края формы @@ -1724,17 +1724,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Деталь - + Union Объединение - + Make a union of several shapes Создать объединение нескольких фигур @@ -1742,17 +1742,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Деталь - + Import CAD... Импорт CAD... - + Imports a CAD file Импортировать CAD-файл @@ -1760,17 +1760,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Деталь - + Import curve network... Импортировать полигональную сетку кривых... - + Import a curve network Импортировать полигональную сетку кривых @@ -1778,17 +1778,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Деталь - + Loft... Профиль... - + Utility to loft Утилита для профиля @@ -1796,17 +1796,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Деталь - + Make face from wires Создать грань из ломаных - + Make face from set of wires (e.g. from a sketch) Создать грань на основе набора ломаных линий (например из эскиза) @@ -1814,17 +1814,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Деталь - + Convert to solid Преобразовать в твёрдое тело - + Create solid from a shell or compound Создание твердотельного объекта из оболочки или соединения @@ -1832,17 +1832,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Деталь - + Mirroring... Зеркальное отражение... - + Mirroring a selected shape Зеркальное отражение выбранной фигуры @@ -1850,17 +1850,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Деталь - + 3D Offset... Смещение 3D... - + Utility to offset in 3D Утилита смещения в 3D @@ -1868,17 +1868,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Деталь - + 2D Offset... 2D смещение... - + Utility to offset planar shapes Утилита смещения плоских фигур @@ -1940,17 +1940,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Деталь - + Create projection on surface... Создать проекцию на поверхность... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1982,17 +1982,17 @@ of projection. CmdPartReverseShape - + Part Деталь - + Reverse shapes Обратить нормали формы - + Reverse orientation of shapes Обращает (в обратную стороны) все нормали формы @@ -2000,17 +2000,17 @@ of projection. CmdPartRevolve - + Part Деталь - + Revolve... Вращать... - + Revolve a selected shape Вращать выбранную фигуру @@ -2018,17 +2018,17 @@ of projection. CmdPartRuledSurface - + Part Деталь - + Create ruled surface Создать линейчатую ​​поверхность - + Create a ruled surface from either two Edges or two wires Создать линейчатую поверхность из двух ребер или двух ломанных @@ -2036,17 +2036,17 @@ of projection. CmdPartSection - + Part Деталь - + Section Разделить - + Make a section of two shapes Сделать сечение из двух фигур @@ -2054,12 +2054,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Постоянное сечение - + Creates a persistent section cut of visible part objects Создает постоянное сечение видимых объектов детали @@ -2141,17 +2141,17 @@ of projection. CmdPartSweep - + Part Деталь - + Sweep... Профиль по траектории - + Utility to sweep Утилита построения профиля по траектории @@ -2159,27 +2159,27 @@ of projection. CmdPartThickness - + Part Деталь - + Thickness... Толщина... - + Utility to apply a thickness Утилита смены толщины - + Wrong selection Неправильный выбор - + Selected shape is not a solid Выбранная фигура не является твердотельным объектом @@ -2231,67 +2231,67 @@ of projection. Создание блока деталей - + Part Cut Вырез по детали - + Common Пересечение - + Fusion Слияние - + Compound Соединить - + Section Разделить - + Import Part Импорт детали - + Part Import Curve Net Сеть импортированных кривых детали - + Reverse Развернуть - + Make face Сделать грань - + Make Offset Создать Смещение - + Make 2D Offset Сделать смещение 2D - + Make Thickness Создать Толщину - + Create ruled surface Создать линейчатую ​​поверхность @@ -2603,32 +2603,32 @@ Note: The placement is expressed in local space of object being attached.Выбор свопа - + Select a shape on the left side, first Сначала выберите фигуру на левой стороне - + Select a shape on the right side, first Сначала выберите фигуру справа - + Cannot perform a boolean operation with the same shape Невозможно выполнить булеву операцию с той же фигурой - + No active document available Нет доступного активного документа - + One of the selected objects doesn't exist anymore Один из выбранных объектов больше не существует - + Performing union on non-solids is not possible Выполнение объединения не на твердых телах невозможно @@ -2638,7 +2638,7 @@ Note: The placement is expressed in local space of object being attached.Выполнение пересечения не на твердых телах невозможно - + Performing difference on non-solids is not possible Выполнение вычитания не на твердых телах невозможно @@ -3308,8 +3308,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Выберите, чтобы не импортировать невидимые объекты. + Select this to import invisible objects. + Выберите, для импорта невидимых объекты. @@ -5730,62 +5730,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Неправильный выбор - + Select two shapes please. Выберите две фигуры пожалуйста. - - - + + + Non-solids selected Выбраны не твердотельные объекты - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Использование не твердых тел для булевых операций может привести к непредвиденным результатам. Вы хотите продолжить? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Пожалуйста выберите две или более фигуры. Или выберите соединение, также содержащее две или более фигуры, для вычисления пересечения между ними. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Пожалуйста выберите две или более фигуры. Или выберите соединение, также содержащее две или более фигуры, для операции слияния. - + Select one shape or more, please. Выберите одну или более фигур. - + All CAD Files Все CAD файлы - + All Files Все файлы - + You have to select either two edges or two wires. Вы должны выбрать два ребра или две линии. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_sl.ts b/src/Mod/Part/Gui/Resources/translations/Part_sl.ts index 3ea74dfa3f..2418285c0a 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_sl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_sl.ts @@ -232,7 +232,7 @@ Put Datum point coincident with another vertex. AttachmentPoint mode tooltip - Postavi osnovno točko sovpadno z drugim ogliščem. + Postavi sklicno točko sovpadno z drugim ogliščem. @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Del - - - + + + Box selection Izbirni kvader @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Del - + Check Geometry Preveri Geometrijo - + Analyzes Geometry For Errors Preišče, ali ima geometrija napako @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Del - + Color per face Barva na ploskev - + Set the color of each individual face of the selected object. Določi barvo vsaki posamezni ploskvi izbranega predmeta. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Del - + Measure Angular Izmeri kot - + Measure the angle between two edges. Izmeri kót med robovoma. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Del - + Clear All Počisti vse - + Clear all dimensions from the screen. Izbriši vse kote na zaslonu. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Del - + Measure Linear Izmeri razdaljo - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ izmerjena razdalje med njihovima ogliščema. CmdMeasureRefresh - + Part Del - + Refresh Osveži - + Recalculate the dimensions if the measured points have moved. Ponovno preračunaj razdalje, @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Del - + Toggle 3D Preklopi 3D - + Toggle on and off all direct dimensions, including angular. Vključi oz. izključi vse neposredne kote @@ -1299,17 +1299,17 @@ skupaj s kotnimi kotami. CmdMeasureToggleAll - + Part Del - + Toggle All Preklopi vse - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Vklopi oz. izklopi vse trenutno vidne kote: @@ -1319,17 +1319,17 @@ neposredne, pravokotne in kotne. CmdMeasureToggleDelta - + Part Del - + Toggle Delta Preklopi razliko - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ na svoje X, Y in Z komponente. CmdPartBoolean - + Part Del - + Boolean... Logična operacija … - + Run a boolean operation with two shapes selected Zaženi logično operacijo z dvema izbranima oblikama @@ -1415,17 +1415,17 @@ na svoje X, Y in Z komponente. CmdPartBuilder - + Part Del - + Shape builder... Graditelj oblik … - + Advanced utility to create shapes Napreden pripomoček za ustvarjanje oblik @@ -1433,17 +1433,17 @@ na svoje X, Y in Z komponente. CmdPartChamfer - + Part Del - + Chamfer... Prisekaj ... - + Chamfer the selected edges of a shape Prisekaj izbrane robove oblike @@ -1451,17 +1451,17 @@ na svoje X, Y in Z komponente. CmdPartCommon - + Part Del - + Intersection Sečišče - + Make an intersection of two shapes Naredi presek dveh oblik @@ -1469,17 +1469,17 @@ na svoje X, Y in Z komponente. CmdPartCompCompoundTools - + Part Del - + Compound tools Orodja za sestave - + Compound tools: working with lists of shapes. Orodja za sestave: delo s seznami oblik. @@ -1487,17 +1487,17 @@ na svoje X, Y in Z komponente. CmdPartCompJoinFeatures - + Part Del - + Join objects... Spoji predmete … - + Join walled objects Spoji stenaste predmete @@ -1505,17 +1505,17 @@ na svoje X, Y in Z komponente. CmdPartCompOffset - + Part Del - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Orodja za odmikanje oblik (tvorjenje vzporednih oblik) @@ -1523,17 +1523,17 @@ na svoje X, Y in Z komponente. CmdPartCompSplitFeatures - + Part Del - + Split objects... Razcepi predmete ... - + Shape splitting and Compsolid creation tools. Orodja za razdvajanje oblik in ustvarjanje telesij. @@ -1541,17 +1541,17 @@ na svoje X, Y in Z komponente. CmdPartCompound - + Part Del - + Make compound Ustvari sestav - + Make a compound of several shapes Ustvari sestav iz več oblik @@ -1579,17 +1579,17 @@ na svoje X, Y in Z komponente. CmdPartCrossSections - + Part Del - + Cross-sections... Prečni prerezi … - + Cross-sections Prečni prerezi @@ -1671,17 +1671,17 @@ na svoje X, Y in Z komponente. CmdPartExport - + Part Del - + Export CAD... Izvozi CAD... - + Exports to a CAD file Izvoz v datoteko CAD @@ -1689,17 +1689,17 @@ na svoje X, Y in Z komponente. CmdPartExtrude - + Part Del - + Extrude... Izrini … - + Extrude a selected sketch Izrini izbrani očrt @@ -1707,17 +1707,17 @@ na svoje X, Y in Z komponente. CmdPartFillet - + Part Del - + Fillet... Zaokrožitev … - + Fillet the selected edges of a shape Zaokroži izbrane robove oblike @@ -1725,17 +1725,17 @@ na svoje X, Y in Z komponente. CmdPartFuse - + Part Del - + Union Seštevek - + Make a union of several shapes Ustvari seštevek večih oblik @@ -1743,17 +1743,17 @@ na svoje X, Y in Z komponente. CmdPartImport - + Part Del - + Import CAD... Uvoz CAD... - + Imports a CAD file Uvoz datoteke CAD @@ -1761,17 +1761,17 @@ na svoje X, Y in Z komponente. CmdPartImportCurveNet - + Part Del - + Import curve network... Uvoz omrežja krivulj... - + Import a curve network Uvoz omrežja krivulj @@ -1779,35 +1779,35 @@ na svoje X, Y in Z komponente. CmdPartLoft - + Part Del - + Loft... - Ostreši... + Navleci … - + Utility to loft - Pripomoček za ostrešenje + Pripomoček za navlačenje CmdPartMakeFace - + Part Del - + Make face from wires Ustvari ploskev iz črtovja - + Make face from set of wires (e.g. from a sketch) Naredi ploskev iz nabora črtovij (npr. iz očrta) @@ -1815,17 +1815,17 @@ na svoje X, Y in Z komponente. CmdPartMakeSolid - + Part Del - + Convert to solid Pretvori v telo - + Create solid from a shell or compound Ustvari telo iz lupine ali sestava @@ -1833,17 +1833,17 @@ na svoje X, Y in Z komponente. CmdPartMirror - + Part Del - + Mirroring... Zrcaljenje... - + Mirroring a selected shape Zrcaljenje izbrane oblike @@ -1851,17 +1851,17 @@ na svoje X, Y in Z komponente. CmdPartOffset - + Part Del - + 3D Offset... 3D odmik... - + Utility to offset in 3D Pripomoček za odmik v 3D @@ -1869,17 +1869,17 @@ na svoje X, Y in Z komponente. CmdPartOffset2D - + Part Del - + 2D Offset... 2D odmik... - + Utility to offset planar shapes Pripomoček za odmikanje ravninskih oblik @@ -1941,17 +1941,17 @@ na svoje X, Y in Z komponente. CmdPartProjectionOnSurface - + Part Del - + Create projection on surface... Naredi preslikavo na površje ... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ pogleda kamere. CmdPartReverseShape - + Part Del - + Reverse shapes Obrni oblike - + Reverse orientation of shapes Obrni usmerjenost oblik @@ -2001,17 +2001,17 @@ pogleda kamere. CmdPartRevolve - + Part Del - + Revolve... Zvrti … - + Revolve a selected shape Zvrti izbrano obliko @@ -2019,17 +2019,17 @@ pogleda kamere. CmdPartRuledSurface - + Part Del - + Create ruled surface Ustvari premonosno ploskev - + Create a ruled surface from either two Edges or two wires Ustvari premonosno ploskev iz dveh robov ali dveh črtovij @@ -2037,17 +2037,17 @@ pogleda kamere. CmdPartSection - + Part Del - + Section Presek - + Make a section of two shapes Ustvari presek dveh oblik @@ -2055,12 +2055,12 @@ pogleda kamere. CmdPartSectionCut - + Persistent section cut Trajajoči prerez - + Creates a persistent section cut of visible part objects Ustvari trajni prerez skozi vidne dele @@ -2142,45 +2142,45 @@ pogleda kamere. CmdPartSweep - + Part Del - + Sweep... - Povleči... + Vzdolži... - + Utility to sweep - Pripomoček za vlečenje + Pripomoček za vzdolženje CmdPartThickness - + Part Del - + Thickness... Debelina... - + Utility to apply a thickness Orodje za dodajanje debeline - + Wrong selection Napačna izbira - + Selected shape is not a solid Izbrana oblika ni telo @@ -2232,67 +2232,67 @@ pogleda kamere. Ustvari kvader v okolju Del - + Part Cut Rezanje dela - + Common Presek - + Fusion Spojitev - + Compound Sestav - + Section Presek - + Import Part Uvoz dela - + Part Import Curve Net Uvoz dela kot krivuljna mreža - + Reverse Obrni - + Make face Ustvari ploskev - + Make Offset Naredi odmik - + Make 2D Offset Naredi 2D odmik - + Make Thickness Dodaj debelino - + Create ruled surface Ustvari premonosno ploskev @@ -2334,7 +2334,7 @@ pogleda kamere. Loft - Ostreši + Navleci @@ -2365,7 +2365,7 @@ pogleda kamere. Sweep - Povleči + Vzdolži @@ -2604,32 +2604,32 @@ Opomba: Postavitev je izražena glede na lasten prostor predmeta, ki se pripenja Zamenjan izbor - + Select a shape on the left side, first Najprej izberite obliko na levi strani - + Select a shape on the right side, first Najprej izberite obliko na desni strani - + Cannot perform a boolean operation with the same shape Logične operacije ni mogoče izvesti z isto obliko - + No active document available Na voljo ni dejavnega dokumenta - + One of the selected objects doesn't exist anymore Eden od izbranih predmetov ne obstaja več - + Performing union on non-solids is not possible Seštevek netelesnih predmetov ni mogoč @@ -2639,7 +2639,7 @@ Opomba: Postavitev je izražena glede na lasten prostor predmeta, ki se pripenja Presek na netelesnih predmetih ni mogoč - + Performing difference on non-solids is not possible Razlika netelesnih predmetov ni mogoča @@ -3312,8 +3312,8 @@ združevalo v sestave (počasneje vendar z več podrobnostmi). - Select this to not import any invisible objects. - Izberite, če ne želite uvoziti nevidnih predmetov. + Select this to import invisible objects. + Izberite, če želite uvoziti nevidne predmete. @@ -4093,7 +4093,7 @@ združevalo v sestave (počasneje vendar z več podrobnostmi). Revolution axis link is invalid. %1 - Povezava na smerni rob izrivanja ni veljavna. + Povezava na os vrtenine ni veljavna. %1 @@ -4522,7 +4522,7 @@ sicer bo uporabljena normala očrtne ravnine Loft - Ostreši + Navleci @@ -4904,13 +4904,13 @@ bodo prikazane le prerezne ploskve Sweep path - Pot vlečenja + Pot vzdolženja The selected sweep path is invalid. - Izbrana pot vlečenja je neveljavna. + Izbrana pot vzdolženja je neveljavna. @@ -4920,7 +4920,7 @@ bodo prikazane le prerezne ploskve Sweep - Povleči + Vzdolži @@ -5373,7 +5373,7 @@ Preverjanja posamezne logične operacije: Datum dialog: Input error - Pogovorno okno osnovne mere: vhodna napaka + Pogovorno okno sklicnosti: vhodna napaka @@ -5429,7 +5429,7 @@ pravokotnika v 3D pogledu izberete več ploskev Loft - Ostreši + Navleci @@ -5586,12 +5586,12 @@ pravokotnika v 3D pogledu izberete več ploskev Sweep - Povleči + Vzdolži Sweep Path - Pot vlečenja + Pot vzdolženja @@ -5607,8 +5607,7 @@ pravokotnika v 3D pogledu izberete več ploskev Select one or more profiles and select an edge or wire in the 3D view for the sweep path. - Izberite enega ali več prerezov in rob ali črtovje -v 3D pogledu za pot vlečenja. + Izberite v 3D pogledu enega ali več prerezov in rob ali črtovje za pot vzdolženja. @@ -5720,7 +5719,7 @@ v 3D pogledu za pot vlečenja. Part and Part Design workbench - Delovno okolje Del (Part) in Snovanje delov (Part design) + Delovno okolje Del (Part) in Snovalnik delov (Part design) @@ -5728,7 +5727,7 @@ v 3D pogledu za pot vlečenja. Part/Part Design - Del (Part)/Snovanje delov (Part design) + Del (Part)/Snovalnik delov (Part design) @@ -5738,63 +5737,63 @@ v 3D pogledu za pot vlečenja. - - - - - + + + + + Wrong selection Napačna izbira - + Select two shapes please. Izberite dve obliki. - - - + + + Non-solids selected Izbrani netelesni predmeti - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Uporaba netelesnih predmetov za logične operacije lahko privede do nepričakovanih rezultatov. Ali želite nadaljevati? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Izberite dve ali več oblik, oz. izberite en sestav, ki vsebuje dve ali več oblik za izračun preseka. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Izberite dve ali več oblik, oz. izberite en sestav, ki vsebuje dve ali več oblik za zlitje. - + Select one shape or more, please. Izberite eno ali več oblik. - + All CAD Files Vse datoteke CAD - + All Files Vse datoteke - + You have to select either two edges or two wires. Izbrati morate ali dva robova ali dve črtovji. @@ -6035,62 +6034,62 @@ Ali želite nadaljevati? Boolean operation: Unknown check - Boolean operation: Unknown check + Logična operacija: neznana preveritev Boolean operation: Bad type - Boolean operation: Bad type + Logična operacija: napačna vrsta Boolean operation: Self-intersection found - Boolean operation: Self-intersection found + Logična operacija: odkrita samosečnost Boolean operation: Edge too small - Boolean operation: Edge too small + Logična operacija: prekratek rob Boolean operation: Non-recoverable face - Boolean operation: Non-recoverable face + Logična operacija: neobnovljiva ploskev Boolean operation: Incompatibility of vertex - Boolean operation: Incompatibility of vertex + Logična operacija: nezdružljivost oglišč Boolean operation: Incompatibility of edge - Boolean operation: Incompatibility of edge + Logična operacija: nezdružljivost robov Boolean operation: Incompatibility of face - Boolean operation: Incompatibility of face + Logična operacija: nezdružljivost ploskev Boolean operation: Aborted - Boolean operation: Aborted + Logična operacija: preklicana Boolean operation: GeomAbs_C0 - Boolean operation: GeomAbs_C0 + Logična operacija: GeomAbs_C0 Boolean operation: Invalid curve on surface - Boolean operation: Invalid curve on surface + Logična operacija: neveljavna krivulja na površju Boolean operation: Not valid - Boolean operation: Not valid + Logična operacija: neveljavna diff --git a/src/Mod/Part/Gui/Resources/translations/Part_sr-CS.ts b/src/Mod/Part/Gui/Resources/translations/Part_sr-CS.ts index 5f81bc8d51..812986c4e9 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_sr-CS.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_sr-CS.ts @@ -115,7 +115,7 @@ Solid Attacher reference type - Puno telo + Puno @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Part - - - + + + Box selection Pravougaoni izbor @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Part - + Check Geometry Proveri Geometriju - + Analyzes Geometry For Errors Analizira geometriju u potrazi za greškama @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Part - + Color per face Boja stranice - + Set the color of each individual face of the selected object. Ofarbaj pojedinačne stranice izabranog objekta. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Part - + Measure Angular Izmeri ugao - + Measure the angle between two edges. Izmeri ugao između dve ivice. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Part - + Clear All Obriši sve - + Clear all dimensions from the screen. Obriši sve mere sa ekrana. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Part - + Measure Linear Izmeri dužinu - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ ako su izabrane ivice ili stranice, merenje će biti CmdMeasureRefresh - + Part Part - + Refresh Osveži - + Recalculate the dimensions if the measured points have moved. Ponovo izračunajte dimenzije @@ -1279,17 +1279,17 @@ ako su se izmerene pomerene. CmdMeasureToggle3d - + Part Part - + Toggle 3D Sakrij/Prikaži 3D - + Toggle on and off all direct dimensions, including angular. Sakrij ili prikaži sve direktne kote rastojanja i uglova. @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Part - + Toggle All Sakrij/Prikaži sve - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Sakrij/Prikaži sve trenutno vidljive dimenzije, @@ -1318,17 +1318,17 @@ direktne, ortogonalne i ugaone. CmdMeasureToggleDelta - + Part Part - + Toggle Delta Sakrij/Prikaži Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1339,17 +1339,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartBoolean - + Part Part - + Boolean... Bulova... - + Run a boolean operation with two shapes selected Izvrši Bulovu operaciju ca dva izabrana oblika @@ -1413,17 +1413,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartBuilder - + Part Part - + Shape builder... Graditelj oblika... - + Advanced utility to create shapes Napredna alatka za pravljenje oblika @@ -1431,17 +1431,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartChamfer - + Part Part - + Chamfer... Obori ivice... - + Chamfer the selected edges of a shape Obori izabrane ivice oblika @@ -1449,17 +1449,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCommon - + Part Part - + Intersection Presek - + Make an intersection of two shapes Napravi presek dva oblika @@ -1467,17 +1467,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCompCompoundTools - + Part Part - + Compound tools Alatke za sastavljanje - + Compound tools: working with lists of shapes. Alatke za sastavljanje: rade sa listama oblika. @@ -1485,17 +1485,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCompJoinFeatures - + Part Part - + Join objects... Spoji objekte... - + Join walled objects Spoji objekte sa zidovima @@ -1503,17 +1503,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCompOffset - + Part Part - + Offset: Odmak: - + Tools to offset shapes (construct parallel shapes) Alati za odmicanje oblika (konstruisanje paralelnih oblika) @@ -1521,17 +1521,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCompSplitFeatures - + Part Part - + Split objects... Podeli objekte... - + Shape splitting and Compsolid creation tools. Alati za podelu objekata i pravljenje sastavljenih objekata. @@ -1539,17 +1539,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCompound - + Part Part - + Make compound Napravi sastavljeni objekat - + Make a compound of several shapes Napravi sastavljeni objekat od nekoliko oblika @@ -1577,17 +1577,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartCrossSections - + Part Part - + Cross-sections... Poprečni presek... - + Cross-sections Poprečni presek @@ -1669,17 +1669,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartExport - + Part Part - + Export CAD... Izvezi CAD... - + Exports to a CAD file Izvozi u CAD datoteku @@ -1687,17 +1687,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartExtrude - + Part Part - + Extrude... Izvlačenje... - + Extrude a selected sketch Izvuci izabranu skicu @@ -1705,17 +1705,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartFillet - + Part Part - + Fillet... Zaobljenje... - + Fillet the selected edges of a shape Zaobli izabrane ivice oblika @@ -1723,17 +1723,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartFuse - + Part Part - + Union Unija - + Make a union of several shapes Napravi uniju od više oblika @@ -1741,17 +1741,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartImport - + Part Part - + Import CAD... Uvezi CAD... - + Imports a CAD file Uvozi CAD datoteku @@ -1759,17 +1759,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartImportCurveNet - + Part Part - + Import curve network... Uvezi mrežu krivih... - + Import a curve network Uvezi mrežu krivih @@ -1777,17 +1777,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartLoft - + Part Part - + Loft... Kroz preseke... - + Utility to loft Napravi oblik pomoću dva preseka @@ -1795,17 +1795,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartMakeFace - + Part Part - + Make face from wires Napravi stranicu od žice - + Make face from set of wires (e.g. from a sketch) Napravi stranicu od skupa žica (npr. od skice) @@ -1813,17 +1813,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartMakeSolid - + Part Part - + Convert to solid Pretvori u puno telo - + Create solid from a shell or compound Napravi puno telo od ljuske ili sastavljenog objekta @@ -1831,17 +1831,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartMirror - + Part Part - + Mirroring... Simetrično preslikavanje... - + Mirroring a selected shape Simetrično preslikaj izabrani oblika @@ -1849,17 +1849,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartOffset - + Part Part - + 3D Offset... 3D odmak... - + Utility to offset in 3D Alatka za 3D odmicanje @@ -1867,17 +1867,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartOffset2D - + Part Part - + 2D Offset... 2D odmak... - + Utility to offset planar shapes Alatka za odmicanje ravanskih oblika @@ -1939,17 +1939,17 @@ t. j. X, Y i Z komponente direktnih kota. CmdPartProjectionOnSurface - + Part Part - + Create projection on surface... Projekcija na površinu... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1981,17 +1981,17 @@ projekcije. CmdPartReverseShape - + Part Part - + Reverse shapes Okreni oblik - + Reverse orientation of shapes Okreni orijentaciju oblika @@ -1999,17 +1999,17 @@ projekcije. CmdPartRevolve - + Part Part - + Revolve... Rotacija... - + Revolve a selected shape Rotiraj izabrani oblik @@ -2017,17 +2017,17 @@ projekcije. CmdPartRuledSurface - + Part Part - + Create ruled surface Ravna površina - + Create a ruled surface from either two Edges or two wires Napravi ravnu površinu ili od dve ivice ili od dve žice @@ -2035,17 +2035,17 @@ projekcije. CmdPartSection - + Part Part - + Section Presek - + Make a section of two shapes Napravi presek dva oblika @@ -2053,12 +2053,12 @@ projekcije. CmdPartSectionCut - + Persistent section cut Iseci presek - + Creates a persistent section cut of visible part objects Iseci trajni presek od vidljivih objekata @@ -2140,17 +2140,17 @@ projekcije. CmdPartSweep - + Part Part - + Sweep... Po putanji... - + Utility to sweep Napravi oblik izvlačenjem preseka po putanji @@ -2158,27 +2158,27 @@ projekcije. CmdPartThickness - + Part Part - + Thickness... Debljina... - + Utility to apply a thickness Napravi oblik dodavanjem debljine - + Wrong selection Pogrešan izbor - + Selected shape is not a solid Izabrani oblik nije puno telo @@ -2230,67 +2230,67 @@ projekcije. Napravi kutiju - + Part Cut Part isecanje - + Common Presek - + Fusion Unija - + Compound Sastavljeni objekat - + Section Presek - + Import Part Uvezi deo - + Part Import Curve Net Part Import Curve Net - + Reverse Obrnuto - + Make face Napravi stranicu - + Make Offset Napravi odmak - + Make 2D Offset Napravi 2D odmak - + Make Thickness Napravi debljinu - + Create ruled surface Ravna površina @@ -2358,7 +2358,7 @@ projekcije. Solid - Puno telo + Puno @@ -2602,32 +2602,32 @@ Napomena: Položaj je izražen u lokalnom koordinatnom sistemu objekta koji se p Zameni izbor - + Select a shape on the left side, first Izaberi prvo oblik sa leve strane - + Select a shape on the right side, first Izaberi prvo oblik sa desne strane - + Cannot perform a boolean operation with the same shape Nije moguće izvršiti Bulovu operaciju sa istim oblikom - + No active document available Nema dostupnog aktivnog dokumenta - + One of the selected objects doesn't exist anymore Jedan od izabranih objekata više ne postoji - + Performing union on non-solids is not possible Nije moguće izvođenje unije na objektima koja nisu puna tela @@ -2637,7 +2637,7 @@ Napomena: Položaj je izražen u lokalnom koordinatnom sistemu objekta koji se p Nije moguće izvođenje preseka na objektima koja nisu puna tela - + Performing difference on non-solids is not possible Nije moguće izvođenje razlike na objektima koja nisu puna tela @@ -3307,8 +3307,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Čekiraj ako neće da uveze nevidljive objekte. + Select this to import invisible objects. + Izaberi ovo ako hoćeš uvesti nevidljive objekte. @@ -5731,63 +5731,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Pogrešan izbor - + Select two shapes please. Izaberi dva oblika. - - - + + + Non-solids selected Izabran je objekat koji nije puno telo - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Upotreba objekata koja nisu puna tela za Bulove operacije može dovesti do neočekivanih rezultata. Da li želiš da nastaviš? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Za određivanje preklopa izaberi dva ili više oblika, izaberi jedno sastavljeno telo koje sadrži dva ili više oblika. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Za uniju izaberi dva ili više oblika, izaberi jedno sastavljeno telo koje sadrži dva ili više oblika. - + Select one shape or more, please. Izaberi jedan ili više oblika. - + All CAD Files Sve CAD datoteke - + All Files Sve datoteke - + You have to select either two edges or two wires. Morate izabrati ili dve ivice ili dve žice. @@ -5828,7 +5828,7 @@ Da li želiš da nastaviš? Solid - Puno telo + Puno diff --git a/src/Mod/Part/Gui/Resources/translations/Part_sr.ts b/src/Mod/Part/Gui/Resources/translations/Part_sr.ts index 40f6847d7e..dfcb0d0a99 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_sr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_sr.ts @@ -115,7 +115,7 @@ Solid Attacher reference type - Пуно тело + Пуно @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Part - - - + + + Box selection Правоугаони избор @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Part - + Check Geometry Провери Геометрију - + Analyzes Geometry For Errors Анализира геометрију у потрази за грешкама @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Part - + Color per face Боја странице - + Set the color of each individual face of the selected object. Офарбај појединачне странице изабраног објекта. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Part - + Measure Angular Измери угао - + Measure the angle between two edges. Измери угао између две ивице. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Part - + Clear All Обриши све - + Clear all dimensions from the screen. Обриши све мере са екрана. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Part - + Measure Linear Измери дужину - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Part - + Refresh Оcвежи - + Recalculate the dimensions if the measured points have moved. Поново израчунајте димензије @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Part - + Toggle 3D Сакриј/Прикажи 3Д - + Toggle on and off all direct dimensions, including angular. Сакриј или прикажи све директне коте растојања и углова. @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Part - + Toggle All Сакриј/Прикажи све - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Сакриј/Прикажи све тренутно видљиве димензије, @@ -1318,17 +1318,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Part - + Toggle Delta Сакриј/Прикажи Делта - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1339,17 +1339,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Part - + Boolean... Булова... - + Run a boolean operation with two shapes selected Изврши Булову операцију cа два одабрана облика @@ -1413,17 +1413,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Part - + Shape builder... Градитељ облика... - + Advanced utility to create shapes Напредна алатка за прављење облика @@ -1431,17 +1431,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Part - + Chamfer... Обори ивице... - + Chamfer the selected edges of a shape Обори изабране ивице облика @@ -1449,17 +1449,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Part - + Intersection Пресек - + Make an intersection of two shapes Направи преcек два облика @@ -1467,17 +1467,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Part - + Compound tools Алатке за састављање - + Compound tools: working with lists of shapes. Алатке за састављање: раде са листама облика. @@ -1485,17 +1485,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Part - + Join objects... Споји објекте... - + Join walled objects Споји објекте са зидовима @@ -1503,17 +1503,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Part - + Offset: Одмак: - + Tools to offset shapes (construct parallel shapes) Алати за одмицање облика (конструисање паралелних облика) @@ -1521,17 +1521,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Part - + Split objects... Подели објекте... - + Shape splitting and Compsolid creation tools. Алати за поделу објеката и прављење састављених објеката. @@ -1539,17 +1539,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Part - + Make compound Направи састављени објекат - + Make a compound of several shapes Направи састављени објекат од неколико облика @@ -1577,17 +1577,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Part - + Cross-sections... Попречни пресек... - + Cross-sections Попречни пресек @@ -1669,17 +1669,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Part - + Export CAD... Извези CAD... - + Exports to a CAD file Извози у CAD датотеку @@ -1687,17 +1687,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Part - + Extrude... Извлачење... - + Extrude a selected sketch Извуците изабрану скицу @@ -1705,17 +1705,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Part - + Fillet... Заобљење... - + Fillet the selected edges of a shape Заобли изабране ивице облика @@ -1723,17 +1723,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Part - + Union Унија - + Make a union of several shapes Направи унију од више облика @@ -1741,17 +1741,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Part - + Import CAD... Увези CAD... - + Imports a CAD file Увози CAD датотеку @@ -1759,17 +1759,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Part - + Import curve network... Увези мрежу кривих... - + Import a curve network Увези мрежу кривих @@ -1777,17 +1777,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Part - + Loft... Кроз пресеке... - + Utility to loft Направи облик помоћу два пресека @@ -1795,17 +1795,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Part - + Make face from wires Направи страницу од жице - + Make face from set of wires (e.g. from a sketch) Направи страницу од скупа жица (нпр. од скице) @@ -1813,17 +1813,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Part - + Convert to solid Претвори у пуно тело - + Create solid from a shell or compound Направи пуно тело од љуске или састављеног објекта @@ -1831,17 +1831,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Part - + Mirroring... Симетрично пресликавање... - + Mirroring a selected shape Симетрично пресликај изабрани облик @@ -1849,17 +1849,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Part - + 3D Offset... 3Д одмак... - + Utility to offset in 3D Алатка за 3Д одмицање @@ -1867,17 +1867,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Part - + 2D Offset... 2D одмак... - + Utility to offset planar shapes Алатка за одмицање раванских облика @@ -1939,17 +1939,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Part - + Create projection on surface... Пројекција на површину... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1981,17 +1981,17 @@ of projection. CmdPartReverseShape - + Part Part - + Reverse shapes Окрени облик - + Reverse orientation of shapes Окрени оријентацију облика @@ -1999,17 +1999,17 @@ of projection. CmdPartRevolve - + Part Part - + Revolve... Ротација... - + Revolve a selected shape Ротирај изабрани облик @@ -2017,17 +2017,17 @@ of projection. CmdPartRuledSurface - + Part Part - + Create ruled surface Равна површина - + Create a ruled surface from either two Edges or two wires Направи равну површину или од две ивице или од две жице @@ -2035,17 +2035,17 @@ of projection. CmdPartSection - + Part Part - + Section Пресек - + Make a section of two shapes Направи пресек два облика @@ -2053,12 +2053,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Исеци пресек - + Creates a persistent section cut of visible part objects Исеци трајни пресек од видљивих објеката @@ -2140,17 +2140,17 @@ of projection. CmdPartSweep - + Part Part - + Sweep... По путањи... - + Utility to sweep Направи облик извлачењем пресека по путањи @@ -2158,27 +2158,27 @@ of projection. CmdPartThickness - + Part Part - + Thickness... Дебљина... - + Utility to apply a thickness Направи облик додавањем дебљине - + Wrong selection Погрешан избор - + Selected shape is not a solid Изабрани облик није пуно тело @@ -2230,67 +2230,67 @@ of projection. Направи кутију - + Part Cut Part исецање - + Common Пресек - + Fusion Унија - + Compound Састављени објекат - + Section Пресек - + Import Part Увези део - + Part Import Curve Net Part Import Curve Net - + Reverse Обрнуто - + Make face Направи страницу - + Make Offset Направи одмак - + Make 2D Offset Направи 2D одмак - + Make Thickness Направи дебљину - + Create ruled surface Равна површина @@ -2358,7 +2358,7 @@ of projection. Solid - Пуно тело + Пуно @@ -2602,32 +2602,32 @@ Note: The placement is expressed in local space of object being attached.Замени избор - + Select a shape on the left side, first Изабери прво облик са леве стране - + Select a shape on the right side, first Изабери прво облик са десне стране - + Cannot perform a boolean operation with the same shape Није могуће извршити Булову операцију са истим обликом - + No active document available Нема доступног активног документа - + One of the selected objects doesn't exist anymore Један од изабраних објеката више не постоји - + Performing union on non-solids is not possible Није могуће извођење уније на објектима која нису пуна тела @@ -2637,7 +2637,7 @@ Note: The placement is expressed in local space of object being attached.Није могуће извођење пресека на објектима која нису пуна тела - + Performing difference on non-solids is not possible Није могуће извођење разлике на објектима која нису пуна тела @@ -3307,8 +3307,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Чекирај ако нећеш да увезеш невидљиве објекте. + Select this to import invisible objects. + Изабери ово ако хоћеш увести невидљиве објекте. @@ -5730,63 +5730,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Погрешан избор - + Select two shapes please. Изабери два облика. - - - + + + Non-solids selected Изабран је објекат који није пуно тело - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Употреба објеката која нису пуна тела за Булове операције може довести до неочекиваних резултата. Да ли желиш да наставиш? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. За одређивање преклопа изабери два или више облика, изабери једно састављено тело које садржи два или више облика. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. За унију изабери два или више облика, изабери једно састављено тело које садржи два или више облика. - + Select one shape or more, please. Изабери један или више облика. - + All CAD Files Све CAD датотеке - + All Files Све датотеке - + You have to select either two edges or two wires. Морате изабрати или две ивице или две жице. @@ -5827,7 +5827,7 @@ Do you want to continue? Solid - Пуно тело + Пуно diff --git a/src/Mod/Part/Gui/Resources/translations/Part_sv-SE.ts b/src/Mod/Part/Gui/Resources/translations/Part_sv-SE.ts index e261d9db63..24d52ed5b4 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_sv-SE.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_sv-SE.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Detalj - - - + + + Box selection Lådmarkering @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Detalj - + Check Geometry Kontrollera geometri - + Analyzes Geometry For Errors Analyserar geometri efter fel @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Detalj - + Color per face Färg per yta - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Detalj - + Measure Angular Mät vinkel - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Detalj - + Clear All Rensa allt - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Detalj - + Measure Linear Mät linjärt - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Detalj - + Refresh Uppdatera - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Detalj - + Toggle 3D Växla 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Detalj - + Toggle All Växla alla - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Detalj - + Toggle Delta Växla delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Detalj - + Boolean... Boolesk... - + Run a boolean operation with two shapes selected Kör en boolesk operation med två valda former @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Detalj - + Shape builder... form byggare ... - + Advanced utility to create shapes Avancerade verktyg för att skapa former @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Detalj - + Chamfer... Avfasning... - + Chamfer the selected edges of a shape Fasa av de markerade kanterna på en form @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Detalj - + Intersection Skärning - + Make an intersection of two shapes Gör en skärning mellan två former @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Detalj - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Kompositionsverktyg: arbeta med formlistor. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Detalj - + Join objects... Sammanfoga objekt... - + Join walled objects Sammanfoga objekt med väggar @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Detalj - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Verktyg för att förskjuta former (konstruera parallella former) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Detalj - + Split objects... Dela objekt... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Detalj - + Make compound Skapa komposition - + Make a compound of several shapes Skapa en komposition av flera former @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Detalj - + Cross-sections... Tvärsnitt... - + Cross-sections Tvärsnitt @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Detalj - + Export CAD... Exportera CAD ... - + Exports to a CAD file Exporterar till en CAD-fil @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Detalj - + Extrude... Extrudera... - + Extrude a selected sketch Extrudera en vald skiss @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Detalj - + Fillet... Fasning... - + Fillet the selected edges of a shape Fasa av de valda kanterna på en form @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Detalj - + Union Förening - + Make a union of several shapes Gör en förening av flera former @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Detalj - + Import CAD... Importera CAD... - + Imports a CAD file Importerar en CAD-fil @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Detalj - + Import curve network... Importera kurvnät... - + Import a curve network Importera ett kurvnät @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Detalj - + Loft... Loft ... - + Utility to loft Verktyg för svepning @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Detalj - + Make face from wires Skapa yta från trådar - + Make face from set of wires (e.g. from a sketch) Skapa yta från från en uppsättning trådar (t.ex. från en skiss) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Detalj - + Convert to solid Konvertera till solid - + Create solid from a shell or compound Skapa en solid från ett skal eller en sammansättning @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Detalj - + Mirroring... Spegling... - + Mirroring a selected shape Spegling av en markerad form @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Detalj - + 3D Offset... 3D-förskjutning... - + Utility to offset in 3D Verktyg för att göra en förskjutning i 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Detalj - + 2D Offset... 2D-förskjutning... - + Utility to offset planar shapes Verktyg för att göra en förskjutning av planära former @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Detalj - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Detalj - + Reverse shapes Omvända former - + Reverse orientation of shapes Omvänd orientering av former @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Detalj - + Revolve... Rotera... - + Revolve a selected shape Rotera en vald form @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Detalj - + Create ruled surface Skapa styrd yta - + Create a ruled surface from either two Edges or two wires Skapa en linjebyggd yta från antingen två kanter eller två trådar @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Detalj - + Section Sektionering - + Make a section of two shapes Gör ett tvärsnitt av två former @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Detalj - + Sweep... Svep... - + Utility to sweep Verktyg för svepning @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Detalj - + Thickness... Tjocklek... - + Utility to apply a thickness Verktyg för att tillämpa en tjocklek - + Wrong selection Fel val - + Selected shape is not a solid Markerad form är inte en solid @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Gemensam - + Fusion Fusion - + Compound Förening - + Section Sektionering - + Import Part Importera rapportvy - + Part Import Curve Net Part Import Curve Net - + Reverse Omvänd - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Skapa tjocklek - + Create ruled surface Skapa styrd yta @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Växla urval - + Select a shape on the left side, first Välj en form på vänster sida först - + Select a shape on the right side, first Välj en form till höger först - + Cannot perform a boolean operation with the same shape Kan inte utföra en boolesk operation med samma form - + No active document available Inget tillgängligt aktivt dokument - + One of the selected objects doesn't exist anymore Ett av de markerade objekten finns inte längre - + Performing union on non-solids is not possible Att utföra förening på icke-solider är inte möjligt @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Att utföra skärning på icke-solider är inte möjligt - + Performing difference on non-solids is not possible Att utföra skillnad på icke-solider är inte möjligt @@ -3311,8 +3311,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Markera för att importera osynliga objekt. @@ -5734,63 +5734,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Fel val - + Select two shapes please. Välj två former. - - - + + + Non-solids selected Icke-solider markerade - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Användandet av icke-solider för booleska operationer kan leda till oväntade resultat. Vill du fortsätta? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Vänligen markera två eller fler former. Eller välj en komposition som innehåller minst två former att beräkna korsning emellan. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Vänligen markera två eller fler former. Eller välj en komposition som innehåller minst två former att förena. - + Select one shape or more, please. Vänligen välj en eller fler former. - + All CAD Files Alla CAD-filer - + All Files Alla Filer - + You have to select either two edges or two wires. Du måste antingen välja två kanter eller två trådar. @@ -6593,7 +6593,7 @@ It will create a 'Compound Filter' for each shape. Wires - Wires + Trådar diff --git a/src/Mod/Part/Gui/Resources/translations/Part_tr.ts b/src/Mod/Part/Gui/Resources/translations/Part_tr.ts index 817d179732..09ec20b3d0 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_tr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_tr.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Parça - - - + + + Box selection Seçim kutusu @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Parça - + Check Geometry Geometriyi Kontrol Edin - + Analyzes Geometry For Errors Hatalar için Geometriyi Analiz Ediyor @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Parça - + Color per face Yüzey rengi - + Set the color of each individual face of the selected object. Seçili nesnenin her bir ayrı yüzünün rengini ayarla. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Parça - + Measure Angular Açısal Ölçüm - + Measure the angle between two edges. İki kenar arasındaki açıyı ölçün. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Parça - + Clear All Hepsini temizle - + Clear all dimensions from the screen. Tüm ölçüleri ekrandan temizle. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Parça - + Measure Linear Doğrusal Olarak Ölç - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ iki köşe noktası arası ölçülecektir. CmdMeasureRefresh - + Part Parça - + Refresh Yenile - + Recalculate the dimensions if the measured points have moved. Ölçülen noktalar taşınmışsa @@ -1279,17 +1279,17 @@ boyutları yeniden hesapla. CmdMeasureToggle3d - + Part Parça - + Toggle 3D 3B'ye geçiş yap - + Toggle on and off all direct dimensions, including angular. Yüzeye dik durmdaki tüm boyutları açıp kapatın, @@ -1299,17 +1299,17 @@ açısal dahil. CmdMeasureToggleAll - + Part Parça - + Toggle All Tümünü Aç / Kapat - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Şu anda görünür olan tüm dik, ortogonal ve açısal boyutları açıp kapatın. @@ -1318,17 +1318,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Parça - + Toggle Delta Delta'ya Geçiş Yap - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1338,17 +1338,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Parça - + Boolean... Mantıksal... - + Run a boolean operation with two shapes selected Seçilen iki şekille bir mantıksal işlem çalıştırın @@ -1412,17 +1412,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Parça - + Shape builder... Şekil oluşturucu... - + Advanced utility to create shapes Şekiller oluşturmak için gelişmiş yardımcı program @@ -1430,17 +1430,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Parça - + Chamfer... Pah... - + Chamfer the selected edges of a shape Şeklin seçilen kenarlarına pah kır @@ -1448,17 +1448,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Parça - + Intersection Kesişim - + Make an intersection of two shapes İki şeklin kesişimini oluştur @@ -1466,17 +1466,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Parça - + Compound tools Birleşik araçları - + Compound tools: working with lists of shapes. Bileşik araçlar: şekil listeleriyle çalışma. @@ -1484,17 +1484,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Parça - + Join objects... Nesnelere katıl... - + Join walled objects Duvarlı nesnelere katıl @@ -1502,17 +1502,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Parça - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Şekilleri dengelemek için kullanılan araçlar (paralel şekiller oluşturun) @@ -1520,17 +1520,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Parça - + Split objects... Nesneleri böl... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1538,17 +1538,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Parça - + Make compound Bileşik yap - + Make a compound of several shapes Birkaç şekilden oluşan bir bileşik yapın @@ -1576,17 +1576,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Parça - + Cross-sections... Kesitler... - + Cross-sections Kesit @@ -1668,17 +1668,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Parça - + Export CAD... CAD'ı dışarı aktar... - + Exports to a CAD file Bir CAD dosyasına aktarır @@ -1686,17 +1686,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Parça - + Extrude... Uzat... - + Extrude a selected sketch Seçili bir eskize kalınlık ver @@ -1704,17 +1704,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Parça - + Fillet... Dolgula... - + Fillet the selected edges of a shape Bir şeklin seçili kenarlarını dolgulayın @@ -1722,17 +1722,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Parça - + Union Birleştir - + Make a union of several shapes Çeşitli şekillerin birleşimini oluştur @@ -1740,17 +1740,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Parça - + Import CAD... CAD'i içeri aktar... - + Imports a CAD file Bir CAD dosyasını içeri aktarır @@ -1758,17 +1758,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Parça - + Import curve network... Eğri ağı içeri aktar... - + Import a curve network Eğri bir ağı içeri aktar @@ -1776,17 +1776,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Parça - + Loft... Çatıla... - + Utility to loft Çatılama için Yardımcı araçlar @@ -1794,17 +1794,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Parça - + Make face from wires Tellerden yüzey yap - + Make face from set of wires (e.g. from a sketch) Kablo kümelerinden yüzey oluştur (örneğin bir taslaktan) @@ -1812,17 +1812,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Parça - + Convert to solid Katı hale dönüştür - + Create solid from a shell or compound Bir kabuk veya bileşkeden katı cisim oluştur @@ -1830,17 +1830,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Parça - + Mirroring... Aynala... - + Mirroring a selected shape Seçili bir şekli aynala @@ -1848,17 +1848,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Parça - + 3D Offset... 3D Ofset... - + Utility to offset in 3D 3D konumlandırma için yardımcı araçlar @@ -1866,17 +1866,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Parça - + 2D Offset... 2D Ofset... - + Utility to offset planar shapes Düzlemsel şekilleri konumlandırmak için yardımcı araçlar @@ -1938,17 +1938,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Parça - + Create projection on surface... Yüzeyde izdüşüm oluşturun... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1978,17 +1978,17 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartReverseShape - + Part Parça - + Reverse shapes Şekilleri ters çevir - + Reverse orientation of shapes Şekillerin dizilimini ters çevir @@ -1996,17 +1996,17 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartRevolve - + Part Parça - + Revolve... Döndür... - + Revolve a selected shape Seçili bir şekli döndür @@ -2014,17 +2014,17 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartRuledSurface - + Part Parça - + Create ruled surface Düzenli yüzey oluştur - + Create a ruled surface from either two Edges or two wires İki Kenardan veya iki telden bir çizgili yüzey oluşturun @@ -2032,17 +2032,17 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartSection - + Part Parça - + Section Kesişim - + Make a section of two shapes İki şeklin kesişimini oluştur @@ -2050,12 +2050,12 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2137,17 +2137,17 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartSweep - + Part Parça - + Sweep... Süpür... - + Utility to sweep Süpürme yardımı @@ -2155,27 +2155,27 @@ Kamera görünümü, izdüşüm yönünü belirler. CmdPartThickness - + Part Parça - + Thickness... Kalınlık... - + Utility to apply a thickness Kalınlığı uygulamada yarar - + Wrong selection Yanlış seçim - + Selected shape is not a solid Seçilen şekil katı değil @@ -2227,67 +2227,67 @@ Kamera görünümü, izdüşüm yönünü belirler. Parça Kutusu Oluştur - + Part Cut Parça Kesme - + Common Ortak - + Fusion Kaynaşma - + Compound Bileşik - + Section Kesişim - + Import Part Parça İçe Aktar - + Part Import Curve Net Yerleştirilen Eğri Parçasının Neti - + Reverse Ters çevir - + Make face Yüz yapın - + Make Offset Öteleme Yap - + Make 2D Offset 2B Öteleme Yap - + Make Thickness Kalınlık Ver - + Create ruled surface Düzenli yüzey oluştur @@ -2599,32 +2599,32 @@ Not: Yerleşim, eklenen nesnenin yerel alanında ifade edilir. Seçimi değiştir - + Select a shape on the left side, first Sol tarafta bir şekil seçin, önce - + Select a shape on the right side, first Sağ tarafta bir şekil seçin, önce - + Cannot perform a boolean operation with the same shape Aynı şekille bir boolean işlemi gerçekleştirilemiyor - + No active document available Aktif bir doküman yok - + One of the selected objects doesn't exist anymore Seçilen nesnelerden biri artık mevcut değil - + Performing union on non-solids is not possible Katılar üzerinde birleştirme yapmak mümkün değildir @@ -2634,7 +2634,7 @@ Not: Yerleşim, eklenen nesnenin yerel alanında ifade edilir. Katı maddeler üzerinde kesişim gerçekleştirmek mümkün değildir - + Performing difference on non-solids is not possible Katı-olmayan maddeler üzerinde fark yaratmak mümkün değildir @@ -3298,8 +3298,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Görünmez nesneleri içe aktarmamak için bunu seçin. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5713,63 +5713,63 @@ bir veya daha fazla profil seçin ilave kenar veya tel seçin. - - - - - + + + + + Wrong selection Yanlış seçim - + Select two shapes please. İki şekli seçin lütfen. - - - + + + Non-solids selected Katılar seçilmedi - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Boole işlemleri için katı olmayanların kullanılması beklenmedik sonuçlara neden olabilir. Devam etmek istiyor musun? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. İki şekil seçin veya daha fazla, lütfen. Veya ortak arasında hesaplamak için iki veya daha fazla şekil içeren bir bileşik seçin. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. İki şekil seçin veya daha fazla, lütfen. Veya kaynaştırılacak iki veya daha fazla şekil içeren bir bileşik seçin. - + Select one shape or more, please. Bir şekil seçin veya daha fazla, lütfen. - + All CAD Files Tüm CAD Dosyaları - + All Files Tüm Dosyalar - + You have to select either two edges or two wires. İki kenarı veya iki çizgiyi seçtiniz. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_uk.ts b/src/Mod/Part/Gui/Resources/translations/Part_uk.ts index 2f2e0b00ae..ae3d2a6e17 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_uk.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_uk.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Деталь - - - + + + Box selection Виділити область @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Деталь - + Check Geometry Перевірка геометрії - + Analyzes Geometry For Errors Аналізує геометрію на наявність помилок @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Деталь - + Color per face Колір для грані - + Set the color of each individual face of the selected object. Встановлює колір кожної окремої грані виділеного обʼєкту. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Деталь - + Measure Angular Виміряти кут - + Measure the angle between two edges. Виміряє кут між двома ребрами. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Деталь - + Clear All Очистити все - + Clear all dimensions from the screen. Очищує всі розміри на екрані. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Деталь - + Measure Linear Виміряти відстань - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Деталь - + Refresh Оновити - + Recalculate the dimensions if the measured points have moved. Перераховує розміри, якщо точки вимірювання перемістилися. @@ -1278,17 +1278,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Деталь - + Toggle 3D Перемкнути 3D виміри - + Toggle on and off all direct dimensions, including angular. Показує чи приховує всі прямі розміри, @@ -1298,17 +1298,17 @@ including angular. CmdMeasureToggleAll - + Part Деталь - + Toggle All Перемкнути всі - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Показує чи приховує всі видимі на цей момент розміри, @@ -1318,17 +1318,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Деталь - + Toggle Delta Перемкнути Режим Дельти - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1340,17 +1340,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Деталь - + Boolean... Логічна Операція... - + Run a boolean operation with two shapes selected Виконує логічну операцію з двома виділеними фігурами @@ -1414,17 +1414,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Деталь - + Shape builder... Побудова фігур... - + Advanced utility to create shapes Додаткові утиліти для створення фігур @@ -1432,17 +1432,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Деталь - + Chamfer... Фаска... - + Chamfer the selected edges of a shape Створює фаску на виділених ребрах фігури @@ -1450,17 +1450,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Деталь - + Intersection Перетин - + Make an intersection of two shapes Створює перетин двох фігур @@ -1468,17 +1468,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Деталь - + Compound tools Інструменти складання - + Compound tools: working with lists of shapes. Інструменти складання: робота зі списками фігур. @@ -1486,17 +1486,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Деталь - + Join objects... Зʼєднати обʼєкти... - + Join walled objects Об’єднує огороджені об’єкти @@ -1504,17 +1504,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Деталь - + Offset: Зсув: - + Tools to offset shapes (construct parallel shapes) Інструменти для зсуву фігур (побудова паралельних фігур) @@ -1522,17 +1522,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Деталь - + Split objects... Розділити обʼєкти... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1540,17 +1540,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Деталь - + Make compound Поєднати фігури - + Make a compound of several shapes Поєднує декілька фігур @@ -1578,17 +1578,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Деталь - + Cross-sections... Поперечні перерізи... - + Cross-sections Створює поперечні перерізи @@ -1670,17 +1670,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Деталь - + Export CAD... Експортувати CAD... - + Exports to a CAD file Експортує до CAD файлу @@ -1688,17 +1688,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Деталь - + Extrude... Видавлювання... - + Extrude a selected sketch Видавлювання виділеного ескізу @@ -1706,17 +1706,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Деталь - + Fillet... Заокруглення... - + Fillet the selected edges of a shape Створює заокруглення виділених ребер фігури @@ -1724,17 +1724,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Деталь - + Union Об’єднання - + Make a union of several shapes Об’єднує декілька фігур @@ -1742,17 +1742,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Деталь - + Import CAD... Імпорт CAD ... - + Imports a CAD file Імпортує CAD файл @@ -1760,17 +1760,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Деталь - + Import curve network... Імпортувати мережу кривої... - + Import a curve network Імпортує мережу кривої @@ -1778,17 +1778,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Деталь - + Loft... Лофт... - + Utility to loft Утиліта для лофту @@ -1796,17 +1796,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Деталь - + Make face from wires Зробити грань з поліліній - + Make face from set of wires (e.g. from a sketch) Створює грань з набору полілінй (наприклад, з ескізу) @@ -1814,17 +1814,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Деталь - + Convert to solid Перетворити у тверде тіло - + Create solid from a shell or compound Створює суцільне тіло з оболонки чи складових @@ -1832,17 +1832,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Деталь - + Mirroring... Зеркальне Зображення... - + Mirroring a selected shape Створю дзеркальне зображення виділеної фігури @@ -1850,17 +1850,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Деталь - + 3D Offset... 3D зсув... - + Utility to offset in 3D Утиліта для зсуву в 3D @@ -1868,17 +1868,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Деталь - + 2D Offset... 2D зсув... - + Utility to offset planar shapes Утиліта для зсуву плоских фігур @@ -1940,17 +1940,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Деталь - + Create projection on surface... Створити проекцію на поверхню... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1979,17 +1979,17 @@ of projection. CmdPartReverseShape - + Part Деталь - + Reverse shapes Зворотня орієнтація фігури - + Reverse orientation of shapes Створює зворотню орієнтацію фігури @@ -1997,17 +1997,17 @@ of projection. CmdPartRevolve - + Part Деталь - + Revolve... Обертати... - + Revolve a selected shape Обертає виділену фігуру @@ -2015,17 +2015,17 @@ of projection. CmdPartRuledSurface - + Part Деталь - + Create ruled surface Створити прямокутну поверхню - + Create a ruled surface from either two Edges or two wires Створює прямокутну поверхню з двох ребер або двох поліліній @@ -2033,17 +2033,17 @@ of projection. CmdPartSection - + Part Деталь - + Section Розріз - + Make a section of two shapes Створює розріз двох фігур @@ -2051,12 +2051,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Постійний розріз секції - + Creates a persistent section cut of visible part objects Створює постійний розріз видимих ​​об'єктів деталі @@ -2138,17 +2138,17 @@ of projection. CmdPartSweep - + Part Деталь - + Sweep... Розгортка... - + Utility to sweep Утиліта для розгортки @@ -2156,27 +2156,27 @@ of projection. CmdPartThickness - + Part Деталь - + Thickness... Товщина... - + Utility to apply a thickness Утиліта для застосування товщини - + Wrong selection Невірний вибір - + Selected shape is not a solid Обрана фігура не є суцільним тілом @@ -2228,67 +2228,67 @@ of projection. Створити Деталь-Куб - + Part Cut Вирізати Деталь - + Common Перетин - + Fusion Об'єднання - + Compound З'єднання - + Section Розріз - + Import Part Імпортувати Деталь - + Part Import Curve Net Імпорт в Деталь Мережі Кривої - + Reverse Зворотній напрямок - + Make face Зробити грань - + Make Offset Створити зсув - + Make 2D Offset Створює 2D зсув - + Make Thickness Зробити Товщину - + Create ruled surface Створити прямокутну поверхню @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Замінити виділення - + Select a shape on the left side, first Спочатку виберіть фігуру на лівій стороні - + Select a shape on the right side, first Спочатку виберіть фігуру на правій стороні - + Cannot perform a boolean operation with the same shape Неможливо виконати логічну операцію з тією ж формою - + No active document available Немає активних документів - + One of the selected objects doesn't exist anymore Один із вибраних об'єктів більше не існує - + Performing union on non-solids is not possible Неможливо виконати об’єднання фігур, які не є суцільними тілами @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.Неможливо виконати перетин фігур, які не є суцільними тілами - + Performing difference on non-solids is not possible Неможливо визначити різницю для фігур, які не є суцільними тілами @@ -3312,8 +3312,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Оберіть це для імпорту невидимих об'єктів. @@ -5738,62 +5738,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Невірний вибір - + Select two shapes please. Виберіть дві форми, будь ласка. - - - + + + Non-solids selected Обрано не суцільні тіла - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? Застосування логічних операцій до не суцільних тіл може призвести до неочікуваних результатів. Бажаєте продовжити? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Будь ласка, виберіть дві або більше фігур. Або виділіть зʼєднання, яке також містить дві або більше фігур, для обчислення перетину між ними. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Будь ласка, виберіть дві або більше фігур. Або виділіть зʼєднання, що містить дві або більше фігур, для операції злиття. - + Select one shape or more, please. Виберіть одну або більше фігур. - + All CAD Files Всі CAD файли - + All Files Всі файли - + You have to select either two edges or two wires. Ви повинні вибрати або дві грані або дві струни. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_val-ES.ts b/src/Mod/Part/Gui/Resources/translations/Part_val-ES.ts index 3869fd2834..5a17944cf8 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_val-ES.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_val-ES.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part Peça - - - + + + Box selection Quadre de selecció @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part Peça - + Check Geometry Comprova la geometria - + Analyzes Geometry For Errors Busca errors de geometria @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part Peça - + Color per face Color per cara - + Set the color of each individual face of the selected object. Set the color of each individual face of the selected object. @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part Peça - + Measure Angular Mesura angular - + Measure the angle between two edges. Measure the angle between two edges. @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part Peça - + Clear All Neteja-ho tot - + Clear all dimensions from the screen. Clear all dimensions from the screen. @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part Peça - + Measure Linear Mesura lineal - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1259,17 +1259,17 @@ between two vertices of them. CmdMeasureRefresh - + Part Peça - + Refresh Actualitza - + Recalculate the dimensions if the measured points have moved. Recalculate the dimensions @@ -1279,17 +1279,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part Peça - + Toggle 3D Toggle 3D - + Toggle on and off all direct dimensions, including angular. Toggle on and off all direct dimensions, @@ -1299,17 +1299,17 @@ including angular. CmdMeasureToggleAll - + Part Peça - + Toggle All Commuta-ho tot - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. Toggle on and off all currently visible dimensions, @@ -1319,17 +1319,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part Peça - + Toggle Delta Commuta Delta - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1341,17 +1341,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part Peça - + Boolean... Booleà... - + Run a boolean operation with two shapes selected Executa una operació booleana amb dues formes seleccionades @@ -1415,17 +1415,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part Peça - + Shape builder... Generador de formes... - + Advanced utility to create shapes Utilitat avançada per a crear formes @@ -1433,17 +1433,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part Peça - + Chamfer... Xamfrà... - + Chamfer the selected edges of a shape Crea un xamfrà per a les vores seleccionades @@ -1451,17 +1451,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part Peça - + Intersection Intersecció - + Make an intersection of two shapes Crea una intersecció entre dues formes @@ -1469,17 +1469,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part Peça - + Compound tools Compound tools - + Compound tools: working with lists of shapes. Eines compostes: treballa amb llistes de formes. @@ -1487,17 +1487,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part Peça - + Join objects... Uneix objectes... - + Join walled objects Uneix objectes que tenen paret @@ -1505,17 +1505,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part Peça - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) Eines per a desplaçar formes (construeix formes paral·leles) @@ -1523,17 +1523,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part Peça - + Split objects... Divisió d'objectes... - + Shape splitting and Compsolid creation tools. Shape splitting and Compsolid creation tools. @@ -1541,17 +1541,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part Peça - + Make compound Crea un compost - + Make a compound of several shapes Crea un compost a partir de diverses formes @@ -1579,17 +1579,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part Peça - + Cross-sections... Seccions... - + Cross-sections Seccions @@ -1671,17 +1671,17 @@ into its X, Y, and Z components. CmdPartExport - + Part Peça - + Export CAD... Exporta a CAD... - + Exports to a CAD file Exporta a un fitxer de CAD @@ -1689,17 +1689,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part Peça - + Extrude... Extrusió... - + Extrude a selected sketch Extrusió d'un esbós seleccionat @@ -1707,17 +1707,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part Peça - + Fillet... Arredoniment... - + Fillet the selected edges of a shape Arredoneix les arestes seleccionades d'una forma @@ -1725,17 +1725,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part Peça - + Union Unió - + Make a union of several shapes Uneix diverses formes @@ -1743,17 +1743,17 @@ into its X, Y, and Z components. CmdPartImport - + Part Peça - + Import CAD... Importa CAD... - + Imports a CAD file Importa un fitxer de CAD @@ -1761,17 +1761,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part Peça - + Import curve network... Importa una xarxa de corbes... - + Import a curve network Importa una xarxa de corbes @@ -1779,17 +1779,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part Peça - + Loft... Projecció... - + Utility to loft Utilitats de projecció @@ -1797,17 +1797,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part Peça - + Make face from wires Crea una cara a partir de fils - + Make face from set of wires (e.g. from a sketch) Crea una cara a partir d'un conjunt de filferros (p ex. d'un esbós) @@ -1815,17 +1815,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part Peça - + Convert to solid Converteix a sòlid - + Create solid from a shell or compound Crea un sòlid a partir d'una closca o compost @@ -1833,17 +1833,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part Peça - + Mirroring... S'està duplicant... - + Mirroring a selected shape Duplicació d'una forma seleccionada @@ -1851,17 +1851,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part Peça - + 3D Offset... Desplaçament 3D... - + Utility to offset in 3D Utilitat per a separar en 3D @@ -1869,17 +1869,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part Peça - + 2D Offset... Desplaçament 2D... - + Utility to offset planar shapes Utilitat per a separar les formes d'un pla @@ -1941,17 +1941,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part Peça - + Create projection on surface... Create projection on surface... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1983,17 +1983,17 @@ of projection. CmdPartReverseShape - + Part Peça - + Reverse shapes Inverteix les formes - + Reverse orientation of shapes Inverteix l'orientació de les formes @@ -2001,17 +2001,17 @@ of projection. CmdPartRevolve - + Part Peça - + Revolve... Gira... - + Revolve a selected shape Gira una forma seleccionada @@ -2019,17 +2019,17 @@ of projection. CmdPartRuledSurface - + Part Peça - + Create ruled surface Crea una superfície reglada - + Create a ruled surface from either two Edges or two wires Crea una superfície reglada ja siga a partir de dues arestes o dos filferros @@ -2037,17 +2037,17 @@ of projection. CmdPartSection - + Part Peça - + Section Secció - + Make a section of two shapes Crea una secció de dues formes @@ -2055,12 +2055,12 @@ of projection. CmdPartSectionCut - + Persistent section cut Persistent section cut - + Creates a persistent section cut of visible part objects Creates a persistent section cut of visible part objects @@ -2142,17 +2142,17 @@ of projection. CmdPartSweep - + Part Peça - + Sweep... Escombratge... - + Utility to sweep Utilitat d'escombratge @@ -2160,27 +2160,27 @@ of projection. CmdPartThickness - + Part Peça - + Thickness... Gruix... - + Utility to apply a thickness Utilitat per a aplicar un gruix - + Wrong selection Selecció incorrecta - + Selected shape is not a solid La forma seleccionada no és un sòlid. @@ -2232,67 +2232,67 @@ of projection. Part Box Create - + Part Cut Part Cut - + Common Comú - + Fusion Fusion - + Compound Compost - + Section Secció - + Import Part Import Part - + Part Import Curve Net Part Import Curve Net - + Reverse Inverteix - + Make face Make face - + Make Offset Make Offset - + Make 2D Offset Make 2D Offset - + Make Thickness Make Thickness - + Create ruled surface Crea una superfície reglada @@ -2604,32 +2604,32 @@ Note: The placement is expressed in local space of object being attached.Intercanvia la selecció - + Select a shape on the left side, first Seleccioneu primer una forma de l'esquerra - + Select a shape on the right side, first Seleccioneu primer una forma de la dreta - + Cannot perform a boolean operation with the same shape No es pot realitzar una operació booleana amb la mateixa forma - + No active document available No hi ha cap document actiu disponible. - + One of the selected objects doesn't exist anymore Un dels objectes seleccionats ja no existeix. - + Performing union on non-solids is not possible No és possible fer la unió de formes no sòlides. @@ -2639,7 +2639,7 @@ Note: The placement is expressed in local space of object being attached.No és possible fer la intersecció de formes no sòlides. - + Performing difference on non-solids is not possible No és possible fer la resta de formes no sòlides. @@ -3308,8 +3308,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + Select this to import invisible objects. @@ -5727,62 +5727,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection Selecció incorrecta - + Select two shapes please. Seleccioneu dues formes - - - + + + Non-solids selected S'han seleccionat objectes no sòlids. - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? L'ús d'objectes no sòlids per a operacions booleanes pot causar resultats inesperats. Voleu continuar? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. Seleccioneu dues formes o més. O bé, seleccioneu un compost que conté dues o més formes per a calcular la part comuna entre aquestes. - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. Seleccioneu dues formes o més. O bé, seleccioneu un compost que conté dues o més formes per a fusionar-les. - + Select one shape or more, please. Seleccioneu una forma o més - + All CAD Files Tots els fitxers de CAD - + All Files Tots els fitxers - + You have to select either two edges or two wires. Heu de seleccionar dues arestes o dos fils. diff --git a/src/Mod/Part/Gui/Resources/translations/Part_zh-CN.ts b/src/Mod/Part/Gui/Resources/translations/Part_zh-CN.ts index 4d96bcedf2..5d1b87c926 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_zh-CN.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_zh-CN.ts @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part 零件 - - - + + + Box selection 框选 @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part 零件 - + Check Geometry 检查几何 - + Analyzes Geometry For Errors 分析几何错误 @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part 零件 - + Color per face 逐面着色 - + Set the color of each individual face of the selected object. 设置选中对象的每个面的颜色。 @@ -1201,17 +1201,17 @@ CmdMeasureAngular - + Part 零件 - + Measure Angular 角度测量 - + Measure the angle between two edges. 测量两个边之间的角度。 @@ -1219,17 +1219,17 @@ CmdMeasureClearAll - + Part 零件 - + Clear All 清除所有 - + Clear all dimensions from the screen. 清除屏幕上的所有尺寸。 @@ -1237,17 +1237,17 @@ CmdMeasureLinear - + Part 零件 - + Measure Linear 线性测量 - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. @@ -1258,17 +1258,17 @@ between two vertices of them. CmdMeasureRefresh - + Part 零件 - + Refresh 刷新 - + Recalculate the dimensions if the measured points have moved. 如果测量点移动,则重新计算尺寸。 @@ -1277,17 +1277,17 @@ if the measured points have moved. CmdMeasureToggle3d - + Part 零件 - + Toggle 3D 切换3D - + Toggle on and off all direct dimensions, including angular. 切换显示或关闭所有直接尺寸, @@ -1297,17 +1297,17 @@ including angular. CmdMeasureToggleAll - + Part 零件 - + Toggle All 切换所有 - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. 切换显示或关闭所有当前可见尺寸, @@ -1317,17 +1317,17 @@ direct, orthogonal, and angular. CmdMeasureToggleDelta - + Part 零件 - + Toggle Delta 切换增量 - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. @@ -1338,17 +1338,17 @@ into its X, Y, and Z components. CmdPartBoolean - + Part 零件 - + Boolean... 布尔运算... - + Run a boolean operation with two shapes selected 对所选的两个形状进行布尔运算 @@ -1412,17 +1412,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part 零件 - + Shape builder... 形体构建器... - + Advanced utility to create shapes 创建形体高级工具 @@ -1430,17 +1430,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part 零件 - + Chamfer... 倒角... - + Chamfer the selected edges of a shape 给所选形状的边缘倒角 @@ -1448,17 +1448,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part 零件 - + Intersection 交集 - + Make an intersection of two shapes 两形体求交集 @@ -1466,17 +1466,17 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part 零件 - + Compound tools 复合体工具 - + Compound tools: working with lists of shapes. 复合工具:使用形状列表。 @@ -1484,17 +1484,17 @@ into its X, Y, and Z components. CmdPartCompJoinFeatures - + Part 零件 - + Join objects... 合并目标 - + Join walled objects 组合墙面物件 @@ -1502,17 +1502,17 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part 零件 - + Offset: 偏移: - + Tools to offset shapes (construct parallel shapes) 用于偏移形状的工具 (构造并行形状) @@ -1520,17 +1520,17 @@ into its X, Y, and Z components. CmdPartCompSplitFeatures - + Part 零件 - + Split objects... 拆分目标 - + Shape splitting and Compsolid creation tools. 形状分割和复合体(Compsolid)创建工具。 @@ -1538,17 +1538,17 @@ into its X, Y, and Z components. CmdPartCompound - + Part 零件 - + Make compound 组合 - + Make a compound of several shapes 组合多个造型 @@ -1576,17 +1576,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part 零件 - + Cross-sections... 横截面... - + Cross-sections 横截面 @@ -1668,17 +1668,17 @@ into its X, Y, and Z components. CmdPartExport - + Part 零件 - + Export CAD... 导出CAD... - + Exports to a CAD file 导出至CAD文件 @@ -1686,17 +1686,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part 零件 - + Extrude... 拉伸... - + Extrude a selected sketch 拉伸选定的草图 @@ -1704,17 +1704,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part 零件 - + Fillet... 圆角... - + Fillet the selected edges of a shape 给选定形体的边倒圆角 @@ -1722,17 +1722,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part 零件 - + Union 并集 - + Make a union of several shapes 多形体求合集 @@ -1740,17 +1740,17 @@ into its X, Y, and Z components. CmdPartImport - + Part 零件 - + Import CAD... 导入CAD文件 ... - + Imports a CAD file 导入CAD文件 @@ -1758,17 +1758,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part 零件 - + Import curve network... 导入曲线网络... - + Import a curve network 导入曲线网络 @@ -1776,17 +1776,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part 零件 - + Loft... 放样... - + Utility to loft 放样工具 @@ -1794,17 +1794,17 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part 零件 - + Make face from wires 用线生成面 - + Make face from set of wires (e.g. from a sketch) 从一组线做面(如草图) @@ -1812,17 +1812,17 @@ into its X, Y, and Z components. CmdPartMakeSolid - + Part 零件 - + Convert to solid 转化成实体 - + Create solid from a shell or compound 从命令行或程序集创建实体 @@ -1830,17 +1830,17 @@ into its X, Y, and Z components. CmdPartMirror - + Part 零件 - + Mirroring... 镜像... - + Mirroring a selected shape 镜像选定的形状 @@ -1848,17 +1848,17 @@ into its X, Y, and Z components. CmdPartOffset - + Part 零件 - + 3D Offset... 3D偏移量... - + Utility to offset in 3D 3D 偏移工具 @@ -1866,17 +1866,17 @@ into its X, Y, and Z components. CmdPartOffset2D - + Part 零件 - + 2D Offset... 2D偏移量... - + Utility to offset planar shapes 偏移平面形状的工具 @@ -1938,17 +1938,17 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part 零件 - + Create projection on surface... 在表面创建投影... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction @@ -1979,17 +1979,17 @@ of projection. CmdPartReverseShape - + Part 零件 - + Reverse shapes 形状翻转 - + Reverse orientation of shapes 翻转形状 @@ -1997,17 +1997,17 @@ of projection. CmdPartRevolve - + Part 零件 - + Revolve... 旋转... - + Revolve a selected shape 旋转所选的形状 @@ -2015,17 +2015,17 @@ of projection. CmdPartRuledSurface - + Part 零件 - + Create ruled surface 创建直纹曲面 - + Create a ruled surface from either two Edges or two wires 从两条边或两条线创建一个直纹面 @@ -2033,17 +2033,17 @@ of projection. CmdPartSection - + Part 零件 - + Section 截面 - + Make a section of two shapes 创建两形体的交线 @@ -2051,12 +2051,12 @@ of projection. CmdPartSectionCut - + Persistent section cut 永久截面切割 - + Creates a persistent section cut of visible part objects 创建可视零件对象的永久截面切割 @@ -2138,17 +2138,17 @@ of projection. CmdPartSweep - + Part 零件 - + Sweep... 扫掠... - + Utility to sweep 扫掠程序 @@ -2156,27 +2156,27 @@ of projection. CmdPartThickness - + Part 零件 - + Thickness... 厚度... - + Utility to apply a thickness 抽壳程序 - + Wrong selection 选择错误 - + Selected shape is not a solid 所选形体并非实体 @@ -2228,67 +2228,67 @@ of projection. 零件 立方体 创建 - + Part Cut 零件 切割 - + Common 交集 - + Fusion 融合 - + Compound 组合 - + Section 截面 - + Import Part 导入部件 - + Part Import Curve Net 零件 导入 曲线 网线 - + Reverse 反转 - + Make face 造面 - + Make Offset 创造偏移 - + Make 2D Offset 设置二维偏移 - + Make Thickness 创造壁厚 - + Create ruled surface 创建直纹曲面 @@ -2600,32 +2600,32 @@ Note: The placement is expressed in local space of object being attached.切换选择 - + Select a shape on the left side, first 线选择左侧形状 - + Select a shape on the right side, first 先选择右侧形状 - + Cannot perform a boolean operation with the same shape 不能对同一形状作布尔操作 - + No active document available 无可用活动文档 - + One of the selected objects doesn't exist anymore 所选对象之一已不存在 - + Performing union on non-solids is not possible 无法对非实体执行并集操作 @@ -2635,7 +2635,7 @@ Note: The placement is expressed in local space of object being attached.无法对非实体进行交集操作 - + Performing difference on non-solids is not possible 无法对非实体进行差集操作 @@ -3305,8 +3305,8 @@ during file reading (slower but higher details). - Select this to not import any invisible objects. - 选择此选项以不导入任何隐藏物体。 + Select this to import invisible objects. + 选择此选项以导入不可见对象。 @@ -5725,62 +5725,62 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection 选择错误 - + Select two shapes please. 请选择两个形状. - - - + + + Non-solids selected 没有实体被选中 - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? 非实体布尔运算可能导致意外的结果。你想要继续吗? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. 请选择两个或多个形状。或者, 选择一个包含两个或多个要计算公用的形状的组合。 - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. 请选择两个或多个形状。或者, 选择一个包含两个或多个要计算公用的形状的组合。 - + Select one shape or more, please. 请选择一个或多个形状。 - + All CAD Files 所有CAD 文档 - + All Files 所有文件 - + You have to select either two edges or two wires. 你必须选择二条边或者二个线框. @@ -6583,7 +6583,7 @@ It will create a 'Compound Filter' for each shape. Wires - Wires + 线框 diff --git a/src/Mod/Part/Gui/Resources/translations/Part_zh-TW.ts b/src/Mod/Part/Gui/Resources/translations/Part_zh-TW.ts index d73d85cc1e..0895c22844 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_zh-TW.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_zh-TW.ts @@ -109,7 +109,7 @@ Object Attacher reference type - 物體 + 物件 @@ -190,7 +190,7 @@ Center of curvature AttachmentPoint mode caption - Center of curvature + 曲率中心 @@ -208,19 +208,19 @@ Center of mass of all references (equal densities are assumed). AttachmentPoint mode tooltip - Center of mass of all references (equal densities are assumed). + 所有參考的質心(假設密度相同)。 Intersection AttachmentPoint mode caption - 交錯 + 交集 Not implemented AttachmentPoint mode tooltip - Not implemented + 尚無實作 @@ -232,31 +232,31 @@ Put Datum point coincident with another vertex. AttachmentPoint mode tooltip - Put Datum point coincident with another vertex. + 將基準點與另一個頂點重合。 Proximity point 1 AttachmentPoint mode caption - Proximity point 1 + 接近點1 Point on first reference that is closest to second reference. AttachmentPoint mode tooltip - Point on first reference that is closest to second reference. + 第一個參考點距離第二個參考點最近的點。 Proximity point 2 AttachmentPoint mode caption - Proximity point 2 + 接近點2 Point on second reference that is closest to first reference. AttachmentPoint mode tooltip - Point on second reference that is closest to first reference. + 第二個參考點距離第一個參考點最近的點。 @@ -308,7 +308,7 @@ Axis of curvature AttachmentLine mode caption - Axis of curvature + 曲率軸 @@ -320,49 +320,49 @@ Directrix1 AttachmentLine mode caption - Directrix1 + 準線1 Directrix line for ellipse, parabola, hyperbola. AttachmentLine mode tooltip - Directrix line for ellipse, parabola, hyperbola. + 橢圓、拋物線、雙曲線的準線。 Directrix2 AttachmentLine mode caption - Directrix2 + 準線2 Second directrix line for ellipse and hyperbola. AttachmentLine mode tooltip - Second directrix line for ellipse and hyperbola. + 橢圓和雙曲線的第二條準線。 Asymptote1 AttachmentLine mode caption - Asymptote1 + 漸近線1 Asymptote of a hyperbola. AttachmentLine mode tooltip - Asymptote of a hyperbola. + 雙曲線的漸近線。 Asymptote2 AttachmentLine mode caption - Asymptote2 + 漸近線2 Second asymptote of hyperbola. AttachmentLine mode tooltip - Second asymptote of hyperbola. + 雙曲線的第二漸近線。 @@ -386,25 +386,25 @@ Align to N vector of Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. AttachmentLine mode tooltip - Align to N vector of Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. + 對曲緣的弗勒內-塞雷座標系統中的 N 向量進行對齊。可選的頂點連結定義位置。 Binormal AttachmentLine mode caption - 次法線 + 副法向量 Align to B vector of Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. AttachmentLine mode tooltip - Align to B vector of Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. + 對曲緣的弗勒內-塞雷座標系統中的 B 向量進行對齊。可選的頂點連結定義位置。 Tangent to surface (U) AttachmentLine mode caption - Tangent to surface (U) + 與表面相切 (U) @@ -417,43 +417,43 @@ Tangent to surface (V) AttachmentLine mode caption - Tangent to surface (V) + 與表面相切 (V) Through two points AttachmentLine mode caption - Through two points + 經過 2 個點 Line that passes through two vertices. AttachmentLine mode tooltip - Line that passes through two vertices. + 通過兩個頂點的直線。 Intersection AttachmentLine mode caption - 交錯 + 交集 Not implemented. AttachmentLine mode tooltip - Not implemented. + 未實作。 Proximity line AttachmentLine mode caption - Proximity line + 接近線 Line that spans the shortest distance between shapes. AttachmentLine mode tooltip - Line that spans the shortest distance between shapes. + 兩個形狀之間最短距離的線。 @@ -465,7 +465,7 @@ Line follows first principal axis of inertia. AttachmentLine mode tooltip - Line follows first principal axis of inertia. + 線條沿著慣性主軸的第一軸方向移動。 @@ -477,7 +477,7 @@ Line follows second principal axis of inertia. AttachmentLine mode tooltip - Line follows second principal axis of inertia. + 線條沿著慣性主軸的第二軸方向移動。 @@ -489,19 +489,19 @@ Line follows third principal axis of inertia. AttachmentLine mode tooltip - Line follows third principal axis of inertia. + 線條沿著慣性主軸的第三軸方向移動。 Normal to surface AttachmentLine mode caption - Normal to surface + 垂直於表面的法向量 Line perpendicular to surface at point set by vertex. AttachmentLine mode tooltip - Line perpendicular to surface at point set by vertex. + 在由頂點設定的點上,垂直於表面的直線。 @@ -570,13 +570,13 @@ Plane face AttachmentPlane mode caption - Plane face + 平面的表面 Plane is aligned to coincide planar face. AttachmentPlane mode tooltip - Plane is aligned to coincide planar face. + 平面被對齊到重合平面的表面。 @@ -588,7 +588,7 @@ Plane is made tangent to surface at vertex. AttachmentPlane mode tooltip - Plane is made tangent to surface at vertex. + 平面與曲面在頂點處相切。 @@ -600,13 +600,13 @@ Plane is made tangent to edge. Optional vertex link defines where. AttachmentPlane mode tooltip - Plane is made tangent to edge. Optional vertex link defines where. + 平面與邊相切。可選的頂點連結定義位置。 Frenet NB AttachmentPlane mode caption - Frenet NB + 弗勒內 NB @@ -614,55 +614,55 @@ Align to Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. AttachmentPlane mode tooltip - Align to Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. + 對齊到曲緣的弗勒內-塞雷座標系統。可選的頂點連結定義位置。 Frenet TN AttachmentPlane mode caption - Frenet TN + 弗勒內 TN Frenet TB AttachmentPlane mode caption - Frenet TB + 弗勒內 TB Concentric AttachmentPlane mode caption - Concentric + 同心 Align to plane to osculating circle of an edge. Origin is aligned to point of curvature. Optional vertex link defines where. AttachmentPlane mode tooltip - Align to plane to osculating circle of an edge. Origin is aligned to point of curvature. Optional vertex link defines where. + 將平面與邊的相切圓對齊。原點對齊於曲緣點。可選的頂點連結定義位置。 Revolution Section AttachmentPlane mode caption - Revolution Section + 旋轉剖面 Plane is perpendicular to edge, and Y axis is matched with axis of osculating circle. Optional vertex link defines where. AttachmentPlane mode tooltip - Plane is perpendicular to edge, and Y axis is matched with axis of osculating circle. Optional vertex link defines where. + 平面與邊垂直,且Y軸與相切圓的軸對齊。可選的頂點連結定義位置。 Plane by 3 points AttachmentPlane mode caption - Plane by 3 points + 由 3 點所構成的平面 Align plane to pass through three vertices. AttachmentPlane mode tooltip - Align plane to pass through three vertices. + 將平面對齊以通過三個頂點。 @@ -674,31 +674,31 @@ Plane will pass through first two vertices, and perpendicular to plane that passes through three vertices. AttachmentPlane mode tooltip - Plane will pass through first two vertices, and perpendicular to plane that passes through three vertices. + 平面將通過前兩個頂點,並垂直於通過三個頂點的平面。 Folding AttachmentPlane mode caption - Folding + 摺疊 Specialty mode for folding polyhedra. Select 4 edges in order: foldable edge, fold line, other fold line, other foldable edge. Plane will be aligned to folding the first edge. AttachmentPlane mode tooltip - Specialty mode for folding polyhedra. Select 4 edges in order: foldable edge, fold line, other fold line, other foldable edge. Plane will be aligned to folding the first edge. + 折疊多面體的特殊模式。按順序選擇4個邊:可摺疊邊、摺疊線、其他摺疊線、其他可摺疊邊。平面將與第一個邊的摺疊對齊。 Inertia 2-3 AttachmentPlane mode caption - Inertia 2-3 + 慣性的 2-3 軸 Plane constructed on second and third principal axes of inertia (passes through center of mass). AttachmentPlane mode tooltip - Plane constructed on second and third principal axes of inertia (passes through center of mass). + 以慣性的第二和第三主軸為基礎構建的平面(通過質心)。 @@ -767,19 +767,19 @@ XY on plane Attachment3D mode caption - XY on plane + 平面上的 XY X' Y' plane is aligned to coincide planar face. Attachment3D mode tooltip - X' Y' plane is aligned to coincide planar face. + X' Y' 平面被對齊到重合平面的表面。 XY tangent to surface Attachment3D mode caption - XY tangent to surface + XY 與表面相切 @@ -797,13 +797,13 @@ Z' axis is aligned to be tangent to edge. Optional vertex link defines where. Attachment3D mode tooltip - Z' axis is aligned to be tangent to edge. Optional vertex link defines where. + Z'軸對齊到相切於邊。可選的頂點連結定義位置。 Frenet NBT Attachment3D mode caption - Frenet NBT + 弗勒內 NBT @@ -811,225 +811,225 @@ Align to Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. Attachment3D mode tooltip - Align to Frenet-Serret coordinate system of curved edge. Optional vertex link defines where. + 對齊到曲緣的弗勒內-塞雷座標系統。可選的頂點連結定義位置。 Frenet TNB Attachment3D mode caption - Frenet TNB + 弗勒內 TNB Frenet TBN Attachment3D mode caption - Frenet TBN + 弗勒內 TBN Concentric Attachment3D mode caption - Concentric + 同心 Align XY plane to osculating circle of an edge. Optional vertex link defines where. Attachment3D mode tooltip - Align XY plane to osculating circle of an edge. Optional vertex link defines where. + 將XY平面對齊到邊緣的相切圓。可選的頂點連結定義位置。 Revolution Section Attachment3D mode caption - Revolution Section + 旋轉剖面 Align Y' axis to match axis of osculating circle of an edge. Optional vertex link defines where. Attachment3D mode tooltip - Align Y' axis to match axis of osculating circle of an edge. Optional vertex link defines where. + 將Y'軸對齊到與邊緣相切圓的軸線相符。可選的頂點連結定義位置。 XY plane by 3 points Attachment3D mode caption - XY plane by 3 points + 由 3 點所構成的 XY 平面 Align XY plane to pass through three vertices. Attachment3D mode tooltip - Align XY plane to pass through three vertices. + 將 XY 平面對齊以通過三個頂點。 XZ plane by 3 points Attachment3D mode caption - XZ plane by 3 points + 由 3 點所構成的 XZ 平面 Align XZ plane to pass through 3 points; X axis will pass through two first points. Attachment3D mode tooltip - Align XZ plane to pass through 3 points; X axis will pass through two first points. + 對齊 XZ 平面以通過三個點;X 軸將會通過前 2 個點。 Folding Attachment3D mode caption - Folding + 摺疊 Specialty mode for folding polyhedra. Select 4 edges in order: foldable edge, fold line, other fold line, other foldable edge. XY plane will be aligned to folding the first edge. Attachment3D mode tooltip - Specialty mode for folding polyhedra. Select 4 edges in order: foldable edge, fold line, other fold line, other foldable edge. XY plane will be aligned to folding the first edge. + 多面體摺疊的特殊模式。按照順序選擇4條邊:可摺疊邊、摺疊線、其他摺疊線、其他可摺疊邊。XY平面將對齊於第一條摺疊邊的摺疊方向。 Inertial CS Attachment3D mode caption - Inertial CS + 慣性座標系統 Inertial coordinate system, constructed on principal axes of inertia and center of mass. Attachment3D mode tooltip - Inertial coordinate system, constructed on principal axes of inertia and center of mass. + 慣性座標系統,以慣性主軸和質心為基礎構建。 Align O-Z-X Attachment3D mode caption - Align O-Z-X + 對齊 O-Z-X Match origin with first Vertex. Align Z' and X' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align Z' and X' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 Z' 和 X' 軸對準頂點/沿著線段對齊。 Align O-Z-Y Attachment3D mode caption - Align O-Z-Y + 對齊 O-Z-Y 軸 Match origin with first Vertex. Align Z' and Y' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align Z' and Y' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 Z' 和 Y' 軸對準頂點/沿著線段對齊。 Align O-X-Y Attachment3D mode caption - Align O-X-Y + 對齊 O-X-Y 軸 Match origin with first Vertex. Align X' and Y' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align X' and Y' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 X' 和 Y' 軸對準頂點/沿著線段對齊。 Align O-X-Z Attachment3D mode caption - Align O-X-Z + 對齊 O-X-Z 軸 Match origin with first Vertex. Align X' and Z' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align X' and Z' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 X' 和 Z' 軸對準頂點/沿著線段對齊。 Align O-Y-Z Attachment3D mode caption - Align O-Y-Z + 對齊 O-Y-Z 軸 Match origin with first Vertex. Align Y' and Z' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align Y' and Z' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 Y' 和 Z' 軸對準頂點/沿著線段對齊。 Align O-Y-X Attachment3D mode caption - Align O-Y-X + 對齊 O-Y-X 軸 Match origin with first Vertex. Align Y' and X' axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align Y' and X' axes towards vertex/along line. + 將原點與第一個頂點對齊。將 Y' 和 X' 軸對準頂點/沿著線段對齊。 Align O-N-X Attachment3D mode caption - Align O-N-X + 對齊 O-N-X 軸 Match origin with first Vertex. Align normal and horizontal plane axis towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align normal and horizontal plane axis towards vertex/along line. + 將原點與第一個頂點對齊。將法向量和水平平面軸對準頂點/沿著線段對齊。 Align O-N-Y Attachment3D mode caption - Align O-N-Y + 對齊 O-N-Y 軸 Match origin with first Vertex. Align normal and vertical plane axis towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align normal and vertical plane axis towards vertex/along line. + 將原點與第一個頂點對齊。將法向量和垂直平面軸對準頂點/沿著線段對齊。 Match origin with first Vertex. Align horizontal and vertical plane axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align horizontal and vertical plane axes towards vertex/along line. + 將原點與第一個頂點對齊。將水平和垂直平面軸對準頂點/沿著線段對齊。 Align O-X-N Attachment3D mode caption - Align O-X-N + 對齊 O-X-N 軸 Match origin with first Vertex. Align horizontal plane axis and normal towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align horizontal plane axis and normal towards vertex/along line. + 將原點與第一個頂點對齊。將水平平面軸和法向量對準頂點/沿著線段對齊。 Align O-Y-N Attachment3D mode caption - Align O-Y-N + 對齊 O-Y-N 軸 Match origin with first Vertex. Align vertical plane axis and normal towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align vertical plane axis and normal towards vertex/along line. + 將原點與第一個頂點對齊。將垂直平面軸和法向量對準頂點/沿著線段對齊。 Match origin with first Vertex. Align vertical and horizontal plane axes towards vertex/along line. Attachment3D mode tooltip - Match origin with first Vertex. Align vertical and horizontal plane axes towards vertex/along line. + 將原點與第一個頂點對齊。將垂直和水平平面軸對準頂點/沿著線段對齊。 @@ -1109,7 +1109,7 @@ Profile - 輪廓特徵 + 輪廓 @@ -1150,14 +1150,14 @@ CmdBoxSelection - + Part 零件 - - - + + + Box selection 拉框選擇 @@ -1165,17 +1165,17 @@ CmdCheckGeometry - + Part 零件 - + Check Geometry 檢查幾何 - + Analyzes Geometry For Errors 分析幾何錯誤 @@ -1183,17 +1183,17 @@ CmdColorPerFace - + Part 零件 - + Color per face 對每面上色 - + Set the color of each individual face of the selected object. 設定選取物件每個個別面的顏色。 @@ -1201,35 +1201,35 @@ CmdMeasureAngular - + Part 零件 - + Measure Angular - 角度测量 + 角度量測 - + Measure the angle between two edges. - Measure the angle between two edges. + 量測兩邊的夾角。 CmdMeasureClearAll - + Part 零件 - + Clear All 全部清除 - + Clear all dimensions from the screen. 從畫面上清除所有尺寸 @@ -1237,121 +1237,115 @@ CmdMeasureLinear - + Part 零件 - + Measure Linear 線性量測 - + Measure the linear distance between two points; if edges or faces are picked, it will measure between two vertices of them. - Measure the linear distance between two points; -if edges or faces are picked, it will measure -between two vertices of them. + 測量兩點之間的線性距離; +如果選擇的是邊線或面,則會測量它們之間的兩個頂點之間的距離。 CmdMeasureRefresh - + Part 零件 - + Refresh 重新運算 - + Recalculate the dimensions if the measured points have moved. - Recalculate the dimensions -if the measured points have moved. + 如果測量點移動就重新計算尺寸。 CmdMeasureToggle3d - + Part 零件 - + Toggle 3D 切換 3D - + Toggle on and off all direct dimensions, including angular. - Toggle on and off all direct dimensions, -including angular. + 切換開啟或關閉所有直接尺寸,包括角度尺寸。 CmdMeasureToggleAll - + Part 零件 - + Toggle All - 是否採用外部路徑及立體空間 + 切換全部 - + Toggle on and off all currently visible dimensions, direct, orthogonal, and angular. - Toggle on and off all currently visible dimensions, -direct, orthogonal, and angular. + 切換開啟或關閉所有目前可見的尺寸,包括直接尺寸、正交尺寸和角度尺寸。 CmdMeasureToggleDelta - + Part 零件 - + Toggle Delta 是否採用外部路徑 - + Toggle on and off all orthogonal dimensions, meaning that a direct dimension will be decomposed into its X, Y, and Z components. - Toggle on and off all orthogonal dimensions, -meaning that a direct dimension will be decomposed -into its X, Y, and Z components. + 切換開啟或關閉所有正交尺寸,這意味著直接尺寸將被拆解成其 X、Y 和 Z 組件。 CmdPartBoolean - + Part 零件 - + Boolean... 布林運算... - + Run a boolean operation with two shapes selected 將選定之兩個零件進行布林運算 @@ -1415,17 +1409,17 @@ into its X, Y, and Z components. CmdPartBuilder - + Part 零件 - + Shape builder... 造型產生器... - + Advanced utility to create shapes 進階圖形建立功能 @@ -1433,17 +1427,17 @@ into its X, Y, and Z components. CmdPartChamfer - + Part 零件 - + Chamfer... - Chamfer... + 倒角... - + Chamfer the selected edges of a shape 所選造型邊進行倒角 @@ -1451,17 +1445,17 @@ into its X, Y, and Z components. CmdPartCommon - + Part 零件 - + Intersection - 交錯 + 交集 - + Make an intersection of two shapes 產生兩造型之交集 @@ -1469,35 +1463,35 @@ into its X, Y, and Z components. CmdPartCompCompoundTools - + Part 零件 - + Compound tools - Compound tools + 組件工具 - + Compound tools: working with lists of shapes. - Compound tools: working with lists of shapes. + 組件工具:使用形狀列表進行操作。 CmdPartCompJoinFeatures - + Part 零件 - + Join objects... 組合物件... - + Join walled objects 組合牆面物件 @@ -1505,53 +1499,53 @@ into its X, Y, and Z components. CmdPartCompOffset - + Part 零件 - + Offset: Offset: - + Tools to offset shapes (construct parallel shapes) - Tools to offset shapes (construct parallel shapes) + 用於偏移形狀(構建平行形狀)的工具 CmdPartCompSplitFeatures - + Part 零件 - + Split objects... 分割物件... - + Shape splitting and Compsolid creation tools. - Shape splitting and Compsolid creation tools. + 形狀分割和組合實體創建工具 CmdPartCompound - + Part 零件 - + Make compound 組合 - + Make a compound of several shapes 組合數個造型 @@ -1579,17 +1573,17 @@ into its X, Y, and Z components. CmdPartCrossSections - + Part 零件 - + Cross-sections... 剖面... - + Cross-sections 剖面 @@ -1642,12 +1636,12 @@ into its X, Y, and Z components. Defeaturing - Defeaturing + 去除細節 Remove feature from a shape - Remove feature from a shape + 從形狀中移除特徵 @@ -1660,28 +1654,28 @@ into its X, Y, and Z components. Create shape element copy - Create shape element copy + 建立形狀元件的副本 Create a non-parametric copy of the selected shape element - Create a non-parametric copy of the selected shape element + 建立選定形狀元件的一個非參數化副本 CmdPartExport - + Part 零件 - + Export CAD... 匯出CAD... - + Exports to a CAD file 匯出為CAD檔 @@ -1689,17 +1683,17 @@ into its X, Y, and Z components. CmdPartExtrude - + Part 零件 - + Extrude... 拉伸... - + Extrude a selected sketch 拉伸選定之圖形 @@ -1707,17 +1701,17 @@ into its X, Y, and Z components. CmdPartFillet - + Part 零件 - + Fillet... 圓角... - + Fillet the selected edges of a shape 將選定之圖形邊倒圓角 @@ -1725,17 +1719,17 @@ into its X, Y, and Z components. CmdPartFuse - + Part 零件 - + Union 聯集 - + Make a union of several shapes 對多個造型做聯集 @@ -1743,17 +1737,17 @@ into its X, Y, and Z components. CmdPartImport - + Part 零件 - + Import CAD... 匯入CAD... - + Imports a CAD file 匯入CAD檔 @@ -1761,17 +1755,17 @@ into its X, Y, and Z components. CmdPartImportCurveNet - + Part 零件 - + Import curve network... 匯入曲線網... - + Import a curve network 匯入曲線網 @@ -1779,17 +1773,17 @@ into its X, Y, and Z components. CmdPartLoft - + Part 零件 - + Loft... 斷面混成... - + Utility to loft 斷面混成工具 @@ -1797,53 +1791,53 @@ into its X, Y, and Z components. CmdPartMakeFace - + Part 零件 - + Make face from wires - Make face from wires + 從線條建立面 - + Make face from set of wires (e.g. from a sketch) - Make face from set of wires (e.g. from a sketch) + 從一組線條建立面 (例如:從草圖) CmdPartMakeSolid - + Part 零件 - + Convert to solid 轉換為實體 - + Create solid from a shell or compound - 由殼或元件建立實體 + 由殼或組件建立實體 CmdPartMirror - + Part 零件 - + Mirroring... 鏡射... - + Mirroring a selected shape 對選定造型產生鏡射 @@ -1851,37 +1845,37 @@ into its X, Y, and Z components. CmdPartOffset - + Part 零件 - + 3D Offset... - 3D Offset... + 3D 偏移量... - + Utility to offset in 3D - Utility to offset in 3D + 用來作三維偏移的工具 CmdPartOffset2D - + Part 零件 - + 2D Offset... - 2D Offset... + 2D 偏移量... - + Utility to offset planar shapes - Utility to offset planar shapes + 偏移平面形狀的工具 @@ -1917,7 +1911,7 @@ into its X, Y, and Z components. Create selectable points object from selected geometric object - Create selectable points object from selected geometric object + 從選取的幾何物件中建立可選擇的點物件 @@ -1941,25 +1935,23 @@ into its X, Y, and Z components. CmdPartProjectionOnSurface - + Part 零件 - + Create projection on surface... - Create projection on surface... + 在表面建立投影... - + Project edges, wires, or faces of one object onto a face of another object. The camera view determines the direction of projection. - Project edges, wires, or faces of one object -onto a face of another object. -The camera view determines the direction -of projection. + 將一個物件的邊線、線條或面投影到另一個物件的面上。 +攝影機視圖決定投影方向。 @@ -1983,17 +1975,17 @@ of projection. CmdPartReverseShape - + Part 零件 - + Reverse shapes 反向造型 - + Reverse orientation of shapes 顛導造型之方向 @@ -2001,17 +1993,17 @@ of projection. CmdPartRevolve - + Part 零件 - + Revolve... 旋轉...... - + Revolve a selected shape 旋轉所選的造型 @@ -2019,17 +2011,17 @@ of projection. CmdPartRuledSurface - + Part 零件 - + Create ruled surface 建立直紋曲面 - + Create a ruled surface from either two Edges or two wires 由兩個邊或線建立直紋面 @@ -2037,17 +2029,17 @@ of projection. CmdPartSection - + Part 零件 - + Section 剖面 - + Make a section of two shapes 對兩造型做切面 @@ -2055,14 +2047,14 @@ of projection. CmdPartSectionCut - + Persistent section cut - Persistent section cut + 永久剖面切割 - + Creates a persistent section cut of visible part objects - Creates a persistent section cut of visible part objects + 建立可見部分物件的永久剖面切割 @@ -2142,17 +2134,17 @@ of projection. CmdPartSweep - + Part 零件 - + Sweep... 掃掠... - + Utility to sweep 掃掠功能 @@ -2160,27 +2152,27 @@ of projection. CmdPartThickness - + Part 零件 - + Thickness... 厚度... - + Utility to apply a thickness 薄殼功能 - + Wrong selection - 錯誤的選擇 + 錯誤的選取 - + Selected shape is not a solid 所選之造型非實體 @@ -2215,12 +2207,12 @@ of projection. Create transformed copy - Create transformed copy + 建立轉換副本 Create a non-parametric copy with transformed placement - Create a non-parametric copy with transformed placement + 以轉換後位置來建立一個非參數化副本 @@ -2229,82 +2221,82 @@ of projection. Part Box Create - Part Box Create + 建立盒子零件 - + Part Cut - Part Cut + 零件切割 - + Common 交集實體 - + Fusion - Fusion + 融合 - + Compound 複合 - + Section 剖面 - + Import Part - Import Part + 匯入零件 - + Part Import Curve Net - Part Import Curve Net + 零件匯入曲線網 - + Reverse 反向 - + Make face - Make face + 建立面 - + Make Offset - Make Offset + 建立偏移 - + Make 2D Offset - Make 2D Offset + 建立 2D 偏移 - + Make Thickness - Make Thickness + 建立厚度 - + Create ruled surface 建立直紋曲面 Create Part Cylinder - Create Part Cylinder + 建立圓柱零件 Points from geometry - Points from geometry + 幾何中的點 @@ -2314,22 +2306,22 @@ of projection. Defeaturing - Defeaturing + 去除細節 Convert mesh - Convert mesh + 轉換網格 Edit attachment - Edit attachment + 編輯附件 Change face colors - Change face colors + 改變面顏色 @@ -2370,7 +2362,7 @@ of projection. Edit Mirror - Edit Mirror + 編輯鏡像 @@ -2383,7 +2375,7 @@ of projection. Selection accepted - Selection accepted + 選擇已接受 @@ -2413,7 +2405,7 @@ of projection. Attachment Offset (in local coordinates): - Attachment Offset (in local coordinates): + 附件偏移(在本地座標): @@ -2425,7 +2417,7 @@ of projection. Note: The placement is expressed in local space of object being attached. - Note: The placement is expressed in local space of object being attached. + 注意:附加物件的放置位置以其本地座標系表示。 @@ -2446,8 +2438,8 @@ of projection. Rotation around the x-axis Note: The placement is expressed in local space of object being attached. - Rotation around the x-axis -Note: The placement is expressed in local space of object being attached. + 繞 X 軸旋轉 +注意:附加物件的放置位置以其本地座標系表示。 @@ -2458,8 +2450,8 @@ Note: The placement is expressed in local space of object being attached. Rotation around the y-axis Note: The placement is expressed in local space of object being attached. - Rotation around the y-axis -Note: The placement is expressed in local space of object being attached. + 繞 Y 軸旋轉 +注意:附加物件的放置位置以其本地座標系表示。 @@ -2470,8 +2462,8 @@ Note: The placement is expressed in local space of object being attached. Rotation around the z-axis Note: The placement is expressed in local space of object being attached. - Rotation around the z-axis -Note: The placement is expressed in local space of object being attached. + 繞 Z 軸旋轉 +注意:附加物件的放置位置以其本地座標系表示。 @@ -2557,7 +2549,7 @@ Note: The placement is expressed in local space of object being attached. Intersection - 交錯 + 交集 @@ -2585,7 +2577,7 @@ Note: The placement is expressed in local space of object being attached. Compounds - 元件 + 組件 @@ -2604,32 +2596,32 @@ Note: The placement is expressed in local space of object being attached.切換選項 - + Select a shape on the left side, first 先由左側選取造型 - + Select a shape on the right side, first 先由右側選取造型 - + Cannot perform a boolean operation with the same shape 無法於同一個圖形上進行布林運算 - + No active document available - 無可用之檔案 + 無可用之文件 - + One of the selected objects doesn't exist anymore 其中一個選定之物件已經不存在 - + Performing union on non-solids is not possible 無法對非實體進行聯集 @@ -2639,7 +2631,7 @@ Note: The placement is expressed in local space of object being attached.無法對非實體進行交集 - + Performing difference on non-solids is not possible 無法對非實體進行差集 @@ -2662,7 +2654,7 @@ Note: The placement is expressed in local space of object being attached. If not empty, field contents will be used in the STEP file header. - If not empty, field contents will be used in the STEP file header. + 如果不為空,則將使用欄位內容作為STEP檔案標頭。 @@ -2720,17 +2712,17 @@ Note: The placement is expressed in local space of object being attached. Write out curves in parametric space of surface - Write out curves in parametric space of surface + 在曲面的參數空間中寫出曲線 Uncheck this to skip invisible object when exporting, which is useful for CADs that do not support invisibility STEP styling. - Uncheck this to skip invisible object when exporting, which is useful for CADs that do not support invisibility STEP styling. + 取消勾選此項以在匯出時跳過不可視物件,這對於不支援不可視 STEP 樣式的 CAD 軟體來說很有用。 Export invisible objects - Export invisible objects + 匯出不可視物件 @@ -2738,20 +2730,17 @@ Note: The placement is expressed in local space of object being attached. - Check this option to keep the placement information when exporting -a single object. Please note that when import back the STEP file, the -placement will be encoded into the shape geometry, instead of keeping -it inside the Placement property. + 勾選此選項以在匯出單一物件時保留位置資訊。請注意,當重新匯入 STEP 檔案時,位置將被編碼到形狀幾何中,而不是保留在 Placement 屬性中。 Export single object placement - Export single object placement + 匯出單一物件的位置 Use legacy export function - Use legacy export function + 使用舊版的匯出功能 @@ -2763,9 +2752,7 @@ it inside the Placement property. This parameter indicates whether parametric curves (curves in parametric space of surface) should be written into the STEP file. This parameter can be set to off in order to minimize the size of the resulting STEP file. - This parameter indicates whether parametric curves (curves in parametric space of surface) -should be written into the STEP file. This parameter can be set to off in order to minimize -the size of the resulting STEP file. + 此參數指示是否將參數曲線(曲面參數空間中的曲線)寫入STEP檔案。為了最小化生成的STEP檔案大小,可以將此參數設置為關閉。 @@ -2783,7 +2770,7 @@ the size of the resulting STEP file. Extrude perpendicularly to plane of input shape. - Extrude perpendicularly to plane of input shape. + 垂直於輸入形狀平面的拉伸。 @@ -2793,7 +2780,7 @@ the size of the resulting STEP file. Set direction to match a direction of straight edge. Hint: to account for length of the edge too, set both lengths to zero. - Set direction to match a direction of straight edge. Hint: to account for length of the edge too, set both lengths to zero. + 設定方向以匹配一條直線邊的方向。提示:為了考慮邊的長度,將兩個長度都設置為零。 @@ -2803,7 +2790,7 @@ the size of the resulting STEP file. If checked, direction of extrusion is reversed. - If checked, direction of extrusion is reversed. + 如果勾選,則拉伸方向將會反轉。 @@ -2813,7 +2800,7 @@ the size of the resulting STEP file. Click to start selecting an edge in 3d view. - Click to start selecting an edge in 3d view. + 點擊以開始在3D視圖中選擇一個邊。 @@ -2824,12 +2811,12 @@ the size of the resulting STEP file. Specify direction manually using X,Y,Z values. - Specify direction manually using X,Y,Z values. + 使用 X、Y、Z 值來手動指定方向。 Custom direction: - Custom direction: + 自訂方向: @@ -2854,59 +2841,59 @@ the size of the resulting STEP file. Along: - Along: + 沿著: Length to extrude along direction (can be negative). If both lengths are zero, magnitude of direction is used. - Length to extrude along direction (can be negative). -If both lengths are zero, magnitude of direction is used. + 要相對於方向拉伸的長度(可以為負值)。 +如果兩個長度都為零,則使用方向的大小。 Against: - Against: + 靠著: Length to extrude against the direction (can be negative). - Length to extrude against the direction (can be negative). + 要相對於方向拉伸的長度(可以為負值)。 Distribute extrusion length equally to both sides. - Distribute extrusion length equally to both sides. + 將拉伸長度均等分配給兩側。 Symmetric - Symmetric + 對稱 Taper angle along - Taper angle along + 沿著錐形角 Taper (draft) angle along extrusion direction - Taper (draft) angle along extrusion direction + 沿著拉伸方向的錐形(草稿)角度 Taper angle against - Taper angle against + 逆錐形角 Taper (draft) angle against extrusion direction - Taper (draft) angle against extrusion direction + 逆錐形(草稿)角度 If checked, extruding closed wires will give solids, not shells. - If checked, extruding closed wires will give solids, not shells. + 如果勾選,則拉伸閉合線進將生成實體而非表殼。 @@ -2916,7 +2903,7 @@ If both lengths are zero, magnitude of direction is used. Select shape(s) that should be extruded - Select shape(s) that should be extruded + 選擇應該被拉伸的形狀 @@ -2938,56 +2925,55 @@ If both lengths are zero, magnitude of direction is used. Creating Extrusion failed. %1 - Creating Extrusion failed. + 建立拉伸失敗。 %1 Object not found: %1 - Object not found: %1 + 未發現物件:%1 No shapes selected for extrusion. Select some, first. - No shapes selected for extrusion. Select some, first. + 沒有選擇任何形狀進行拉伸。請先選擇一些形狀。 Unknown error - Unknown error + 未知錯誤 Extrusion direction link is invalid. %1 - Extrusion direction link is invalid. - + 拉伸方向連結無效。 %1 Direction mode is to use an edge, but no edge is linked. - Direction mode is to use an edge, but no edge is linked. + 方向模式是使用一個邊線,但沒有連結的邊線。 Can't determine normal vector of shape to be extruded. Please use other mode. (%1) - Can't determine normal vector of shape to be extruded. Please use other mode. + 無法確定要被拉伸的形狀的法向量。請使用其他模式。 (%1) Extrusion direction vector is zero-length. It must be non-zero. - Extrusion direction vector is zero-length. It must be non-zero. + 拉伸方向向量之長度為零。它必須不為零。 Total extrusion length is zero (length1 == -length2). It must be nonzero. - Total extrusion length is zero (length1 == -length2). It must be nonzero. + 總拉伸長度為零(length1 == -length2)。它必須不為零。 @@ -3209,7 +3195,7 @@ Please check one or more edge entities first. Solids and shells will be exported as trimmed surface - Solids and shells will be exported as trimmed surface + 實體和殼將以修剪曲面的形式匯出 @@ -3219,7 +3205,7 @@ Please check one or more edge entities first. Solids will be exported as manifold solid B-Rep object, shells as shell - Solids will be exported as manifold solid B-Rep object, shells as shell + 實體將以多面體實體 B-Rep 物件的形式匯出,外殼則以外殼形式匯出。 @@ -3234,7 +3220,7 @@ Please check one or more edge entities first. Blank entities will not be imported - Blank entities will not be imported + 空白實體將不會被匯入 @@ -3244,7 +3230,7 @@ Please check one or more edge entities first. If not empty, field contents will be used in the IGES file header - If not empty, field contents will be used in the IGES file header + 如果不為空,欄位內容將用於IGES檔案標頭 @@ -3291,69 +3277,68 @@ Please check one or more edge entities first. If checked, no Compound merge will be done during file reading (slower but higher details). - If checked, no Compound merge will be done -during file reading (slower but higher details). + 如果勾選,在讀取檔案時不會執行組件合併操作(速度較慢但細節較高)。 Enable STEP Compound merge - Enable STEP Compound merge + 啟用 STEP 組件合併 Select this to use App::LinkGroup as group container, or else use App::Part. - Select this to use App::LinkGroup as group container, or else use App::Part. + 選擇此項以使用 App::LinkGroup 作為群組容器,否則使用 App::Part。 Use LinkGroup - Use LinkGroup + 使用連結群組 - Select this to not import any invisible objects. - Select this to not import any invisible objects. + Select this to import invisible objects. + 選擇此選項以匯入不可視物件。 Import invisible objects - Import invisible objects + 匯入不可視物件 Reduce number of objects using Link array - Reduce number of objects using Link array + 使用連結陣列來減少物件的數量。 Reduce number of objects - Reduce number of objects + 減少物件數目 Expand compound shape with multiple solids - Expand compound shape with multiple solids + 展開具有多個實體的組件形狀 Expand compound shape - Expand compound shape + 展開組件形狀 Show progress bar when importing - Show progress bar when importing + 在匯入時顯示進度條 Do not use instance name. Useful for some legacy STEP file with non-meaningful auto generated instance names. - Do not use instance name. Useful for some legacy STEP file with non-meaningful auto generated instance names. + 請勿使用實例名稱。這對於某些具有非具意義的自動生成實例名稱的舊版 STEP 檔案很有用。 Ignore instance names - Ignore instance names + 忽略實例名稱 @@ -3363,27 +3348,27 @@ during file reading (slower but higher details). Single document - 單一文件 + Single document Assembly per document - Assembly per document + 每個文件的組合 Assembly per document in sub-directory - Assembly per document in sub-directory + 每個子目錄中的文件組合 Object per document - Object per document + 每個文件的物件 Object per document in sub-directory - Object per document in sub-directory + 每個子目錄中的文件對應一個物件 @@ -3421,7 +3406,7 @@ during file reading (slower but higher details). Size: - 大小: + 尺寸: @@ -3680,7 +3665,7 @@ during file reading (slower but higher details). Angle in first direction: - 第一方向之角度: + 第一方向之角度: @@ -3692,7 +3677,7 @@ during file reading (slower but higher details). Angle in second direction: - 第二方向之角度: + 第二方向之角度: @@ -3703,7 +3688,7 @@ during file reading (slower but higher details). Rotation angle: - 旋轉角度: + 旋轉角度: @@ -3723,18 +3708,18 @@ during file reading (slower but higher details). Angle: - 角度: + 角度: U parameter: - 繞指定軸角度: + 繞指定軸角度: V parameters: - 與指定軸之夾角: + 與指定軸之夾角: @@ -3745,12 +3730,12 @@ during file reading (slower but higher details). V parameter: - 與指定軸之夾角: + 與指定軸之夾角: U Parameter: - 繞指定軸角度: + 繞指定軸角度: @@ -3762,7 +3747,7 @@ during file reading (slower but higher details). Circumradius: - 外接圓: + 外接圓 @@ -3792,12 +3777,12 @@ during file reading (slower but higher details). Pitch: - 俯仰: + 俯仰: Coordinate system: - 座標系統: + 座標系統: @@ -3812,24 +3797,24 @@ during file reading (slower but higher details). Growth: - 增長: + 成長: Number of rotations: - 迴旋數量: + 迴旋數量: Angle 1: - 角度 1: + 角度 1: Angle 2: - 角度 2: + 角度 2: @@ -3839,12 +3824,12 @@ during file reading (slower but higher details). Major radius: - 主半徑: + 主半徑: Minor radius: - 次要半徑: + 次要半徑: @@ -3867,12 +3852,12 @@ during file reading (slower but higher details). Start point - 起點 + 起始點 End point - 終點 + 最末點 @@ -3890,7 +3875,7 @@ during file reading (slower but higher details). No active document - 未選擇文件 + 無可用文件 @@ -3903,12 +3888,12 @@ during file reading (slower but higher details). Projection on surface - Projection on surface + 在表面投影 Select projection surface - Select projection surface + 選擇投影表面 @@ -3918,7 +3903,7 @@ during file reading (slower but higher details). Add wire - Add wire + 添加線 @@ -3928,12 +3913,12 @@ during file reading (slower but higher details). Show all - 顯示全部 + Show all Show faces - Show faces + 顯示面 @@ -3943,12 +3928,12 @@ during file reading (slower but higher details). Extrude height - Extrude height + 拉伸高度 Solid depth - Solid depth + 實體深度 @@ -3958,7 +3943,7 @@ during file reading (slower but higher details). Get current camera direction - Get current camera direction + 取得目前相機方向 @@ -3978,17 +3963,17 @@ during file reading (slower but higher details). Projection Object - Projection Object + 投影物件 Have no active document!!! - Have no active document!!! + 沒有可用文件!!! Can not create a projection object!!! - Can not create a projection object!!! + 無法建立一個投影物件!!! @@ -4006,69 +3991,69 @@ during file reading (slower but higher details). Revolution axis - Revolution axis + 旋轉軸 Center X: - Center X: + 中心 X 座標: Center Y: - Center Y: + 中心 Y 座標: Center Z: - Center Z: + 中心 Z 座標: Click to set this as axis - Click to set this as axis + 點擊以設定此為軸 Dir. X: - Dir. X: + X 方向: Dir. Y: - Dir. Y: + Y 方向: Dir. Z: - Dir. Z: + Z 方向: Select reference - Select reference + 選取參考 Angle: - 角度: + 角度: If checked, revolution will extend forwards and backwards by half the angle. - If checked, revolution will extend forwards and backwards by half the angle. + 如果勾選,旋轉將向前和向後延伸一半的角度。 Symmetric angle - Symmetric angle + 對稱角度 If checked, revolving wires will produce solids. If not, revolving a wire yields a shell. - If checked, revolving wires will produce solids. If not, revolving a wire yields a shell. + 如果勾選,旋轉線將會建立實體。反之,旋轉線將會產生外殼。 @@ -4078,7 +4063,7 @@ during file reading (slower but higher details). Object not found: %1 - Object not found: %1 + 未發現物件:%1 @@ -4092,24 +4077,23 @@ during file reading (slower but higher details). Revolution axis link is invalid. %1 - Revolution axis link is invalid. - + 旋轉軸連結是無效的。 %1 Unknown error - Unknown error + 未知錯誤 Revolution axis direction is zero-length. It must be non-zero. - Revolution axis direction is zero-length. It must be non-zero. + 旋轉軸方向長度為零。它必須不為零。 Revolution angle span is zero. It must be non-zero. - Revolution angle span is zero. It must be non-zero. + 旋轉角度跨度為零,它必須不為零。 @@ -4117,14 +4101,13 @@ during file reading (slower but higher details). Creating Revolve failed. %1 - Creating Revolve failed. - + 建立旋轉造型失敗。 %1 Selecting... (line or arc) - Selecting... (line or arc) + 正在選擇...(線或弧) @@ -4218,22 +4201,22 @@ during file reading (slower but higher details). Measurement settings - Measurement settings + 量測設定 3D color - 3D color + 3D 顏色 Delta color - Delta color + 增量顏色 Angular color - Angular color + 角度顏色 @@ -4253,7 +4236,7 @@ during file reading (slower but higher details). defaultFont - defaultFont + 預設字型 @@ -4263,7 +4246,7 @@ during file reading (slower but higher details). Refresh existing measurements - Refresh existing measurements + 更新現存的量測 @@ -4276,12 +4259,12 @@ during file reading (slower but higher details). Default Shape view properties - Default Shape view properties + 預設形狀視圖屬性 Shape color - 形狀色彩 + Shape color @@ -4291,12 +4274,12 @@ during file reading (slower but higher details). Use random color instead - Use random color instead + 改用隨機顏色 Random - Random + 隨機 @@ -4306,7 +4289,7 @@ during file reading (slower but higher details). The default transparency for new shapes - The default transparency for new shapes + 新形狀的預設透明度 @@ -4342,17 +4325,17 @@ during file reading (slower but higher details). The default color for new vertices - The default color for new vertices + 新頂點的預設顏色 Vertex size - Vertex size + 頂點大小 The default size for new vertices - The default size for new vertices + 新頂點的預設大小 @@ -4367,12 +4350,12 @@ during file reading (slower but higher details). Bounding box font size - Bounding box font size + 邊界框字體大小 The font size of bounding boxes in the 3D view - The font size of bounding boxes in the 3D view + 3D 視圖中邊界框的字體大小 @@ -4380,10 +4363,10 @@ during file reading (slower but higher details). If not checked, it depends on the option "Backlight color" (preferences section Display -> 3D View); either the backlight color will be used or black. - Bottom side of surface will be rendered the same way than top. -If not checked, it depends on the option "Backlight color" -(preferences section Display -> 3D View); either the backlight color -will be used or black. + 表面的底部將以與頂部相同的方式進行算繪。 +如果未勾選,則取決於「背景燈光顏色」選項 +(在偏好設定的「顯示」->「3D視圖」部分); +可以使用背景燈光顏色或黑色。 @@ -4393,7 +4376,7 @@ will be used or black. Default Annotation color - Default Annotation color + 預設註解顏色 @@ -4403,7 +4386,7 @@ will be used or black. Text color for document annotations - Text color for document annotations + 文件註解的文字顏色 @@ -4442,13 +4425,13 @@ will be used or black. Use custom vector for pad direction otherwise the sketch plane's normal vector will be used - Use custom vector for pad direction otherwise -the sketch plane's normal vector will be used + 使用自定向量作為填充方向, +否則使用草圖平面的法線向量 Rotation axis - Rotation axis + 旋轉軸 @@ -4491,12 +4474,12 @@ the sketch plane's normal vector will be used Available profiles - Available profiles + 可用的輪廓 Selected profiles - Selected profiles + 選定的輪廓 @@ -4618,12 +4601,12 @@ the sketch plane's normal vector will be used Permanent Section Cutting - Permanent Section Cutting + 永久切割剖面 Cutting X - Cutting X + 切割 X @@ -4642,23 +4625,23 @@ the sketch plane's normal vector will be used Cutting Y - Cutting Y + 切割 Y Cutting Z - Cutting Z + 切割 Z Cut face - Cut face + 切割面 Color of cut face - Color of cut face + 切割面的顏色 @@ -4673,10 +4656,7 @@ the sketch plane's normal vector will be used will be taken from the cut objects. Works only properly if all objects have the same values. - If checked, the color and transparency -will be taken from the cut objects. -Works only properly if all objects -have the same values. + 如果勾選,顏色和透明度將從切割物件中獲取。只有在所有物件具有相同值的情況下才能正常運作。 @@ -4688,7 +4668,7 @@ have the same values. Transparency of cut face - Transparency of cut face + 切割面的透明度 @@ -4701,46 +4681,43 @@ have the same values. Allows to cut objects intersecting each other for the price that all cut objects will get the same color - Allows to cut objects intersecting each other -for the price that all cut objects -will get the same color + 允許將相互交叉的物件進行切割,其代價是所有被切割的物件將獲得相同的顏色。 Cut intersecting objects - Cut intersecting objects + 切割相互交叉的物件 Color for all objects - Color for all objects + 所有物件的顏色 Refreshes the list of visible objects - Refreshes the list of visible objects + 更新可見物件的列表 Refresh view - Refresh view + 更新視圖 When the dialog is closed, only created cuts will be visible - When the dialog is closed, -only created cuts will be visible + 當此對話框關閉時,只有建立的切割部份可視。 Keep only cuts visible when closing - Keep only cuts visible when closing + 在關閉時只保留可視切割 Sliders are disabled for assemblies - Sliders are disabled for assemblies + 組件中的滑桿被禁用 @@ -4748,12 +4725,12 @@ only created cuts will be visible Unsupported - Unsupported + 不支援 Box selection for shells is not supported - Box selection for shells is not supported + 不支援對外殼進行拉框選擇 @@ -4764,7 +4741,7 @@ only created cuts will be visible Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -4829,12 +4806,12 @@ only created cuts will be visible Shape from mesh - Shape from mesh + 由網格所構成之形狀 Sew shape - Sew shape + 連接形狀 @@ -4847,12 +4824,12 @@ only created cuts will be visible Available profiles - Available profiles + 可用的輪廓 Selected profiles - Selected profiles + 選定的輪廓 @@ -4877,7 +4854,7 @@ only created cuts will be visible Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -4932,7 +4909,7 @@ only created cuts will be visible Selection accepted - Selection accepted + 選擇已接受 @@ -4963,7 +4940,7 @@ only created cuts will be visible Attachment Offset (in local coordinates): - Attachment Offset (in local coordinates): + 附件偏移(在本地座標): @@ -4976,8 +4953,7 @@ only created cuts will be visible Note: The placement is expressed in local coordinate system of object being attached. - Note: The placement is expressed in local coordinate system -of object being attached. + 注意:附加對象的位置是以其本地座標系統表示的。 @@ -4999,9 +4975,8 @@ of object being attached. Rotation around the x-axis Note: The placement is expressed in local coordinate system of object being attached. - Rotation around the x-axis -Note: The placement is expressed in local coordinate system -of object being attached. + 繞 X 軸旋轉 +注意:附加對象的位置是以其本地座標系統表示的。 @@ -5013,9 +4988,8 @@ of object being attached. Rotation around the y-axis Note: The placement is expressed in local coordinate system of object being attached. - Rotation around the y-axis -Note: The placement is expressed in local coordinate system -of object being attached. + 繞 Y 軸旋轉 +注意:附加對象的位置是以其本地座標系統表示的。 @@ -5027,14 +5001,13 @@ of object being attached. Rotation around the z-axis Note: The placement is expressed in local coordinate system of object being attached. - Rotation around the z-axis -Note: The placement is expressed in local coordinate system -of object being attached. + 繞 Z 軸旋轉 +注意:附加對象的位置是以其本地座標系統表示的。 Flip side of attachment and offset - Flip side of attachment and offset + 翻轉附件的一側並偏移 @@ -5044,12 +5017,12 @@ of object being attached. OCC error: %1 - OCC error: %1 + OCC 錯誤:%1 unknown error - unknown error + 未知錯誤 @@ -5094,12 +5067,12 @@ of object being attached. Reference%1 - Reference%1 + 參考%1 Not editable because rotation of AttachmentOffset is bound by expressions. - Not editable because rotation of AttachmentOffset is bound by expressions. + 因為AttachmentOffset的旋轉受到表達式的約束,所以無法編輯。 @@ -5109,12 +5082,12 @@ of object being attached. %1 (add %2) - %1 (add %2) + %1(加 %2) %1 (add more references) - %1 (add more references) + %1 (加更多參考) @@ -5138,26 +5111,24 @@ of object being attached. Skip this settings page and run the geometry check automatically. - Skip this settings page and run the geometry check automatically. + 跳過此設定頁面並自動運行幾何檢查。 Default: false - Default: false + 預設值:false Run boolean operation check - Run boolean operation check + 執行布林運算檢查 Extra boolean operations check that can sometimes find errors that the standard BRep geometry check misses. These errors do not always mean the checked object is unusable. Default: false - Extra boolean operations check that can sometimes find errors that -the standard BRep geometry check misses. These errors do not always -mean the checked object is unusable. Default: false + 額外的布林運算檢查,有時可以發現標準 BRep 幾何檢查所忽略的錯誤。這些錯誤並不一定意味著檢查的物件無法使用。預設值為 false。 @@ -5168,18 +5139,17 @@ mean the checked object is unusable. Default: false Run the geometry check in a single thread. This is slower, but more stable. Default: false - Run the geometry check in a single thread. This is slower, -but more stable. Default: false + 以單線程執行幾何檢查。這樣做會慢一些,但更穩定。預設值:false Log errors - Log errors + 紀錄錯誤 Log errors to report view. Default: true - Log errors to report view. Default: true + 將錯誤記錄到報告視圖中。預設值:true @@ -5190,47 +5160,45 @@ but more stable. Default: false Expand shape content. Changes will take effect next time you use the check geometry tool. Default: false - Expand shape content. Changes will take effect next time you use -the check geometry tool. Default: false + 擴展形狀內容。更改將在下次使用檢查幾何工具時生效。預設值:false Advanced shape content - Advanced shape content + 進階形狀內容 Show advanced shape content. Changes will take effect next time you use the check geometry tool. Default: false - Show advanced shape content. Changes will take effect next time you use -the check geometry tool. Default: false + 顯示進階形狀內容。更改將在下次使用檢查幾何工具時生效。預設值:false Individual boolean operation checks: - -Individual boolean operation checks: + +個別布林運算檢查: Bad type - Bad type + 錯誤類型 Self-intersect - Self-intersect + 自我交叉 Too small edge - Too small edge + 太小的邊 Nonrecoverable face - Nonrecoverable face + 不可恢復的面 @@ -5240,37 +5208,37 @@ Individual boolean operation checks: Incompatibility of face - Incompatibility of face + 不相容的面 Incompatibility of vertex - Incompatibility of vertex + 不相容的頂點 Incompatibility of edge - Incompatibility of edge + 不相容的邊 Invalid curve on surface - Invalid curve on surface + 表面的無效曲線 Check for bad argument types. Default: true - Check for bad argument types. Default: true + 檢查錯誤的參數類型。預設值:true Check for self-intersections. Default: true - Check for self-intersections. Default: true + 檢視是否自我交叉。預設值:true Check for edges that are too small. Default: true - Check for edges that are too small. Default: true + 檢查是否存在太小的邊。預設值:true。 @@ -5280,37 +5248,37 @@ Individual boolean operation checks: Check for continuity. Default: true - Check for continuity. Default: true + 檢查連續性。預設值:true Check for incompatible faces. Default: true - Check for incompatible faces. Default: true + 檢查不相容的面。預設值:true Check for incompatible vertices. Default: true - Check for incompatible vertices. Default: true + 檢查不相容的頂點。預設值:true Check for incompatible edges. Default: true - Check for incompatible edges. Default: true + 檢查是否存在不相容的邊。預設值:true。 Check for invalid curves on surfaces. Default: true - Check for invalid curves on surfaces. Default: true + 檢查表面的無效曲線。預設值:true Run check - Run check + 執行檢查 Results - Results + 結果 @@ -5328,7 +5296,7 @@ Individual boolean operation checks: Boolean operation check... - Boolean operation check... + 布林運算檢查... @@ -5344,24 +5312,24 @@ Individual boolean operation checks: Checking - Checking + 檢查中 %1 processed out of %2 selected - %1 processed out of %2 selected + 已處理了 %2 選擇中的 %1 %n invalid shapes. - - %n invalid shapes. + + %n 無效形狀。 Checked object - Checked object + 已勾選物件 @@ -5411,8 +5379,7 @@ Individual boolean operation checks: When checked, the you can select multiple faces by dragging a selection rectangle in the 3D view - When checked, the you can select multiple faces -by dragging a selection rectangle in the 3D view + 當勾選時,您可以在3D視圖中拖動選擇框來選擇多個面。 @@ -5464,7 +5431,7 @@ by dragging a selection rectangle in the 3D view Pipe - 貫穿 + @@ -5479,7 +5446,7 @@ by dragging a selection rectangle in the 3D view Arc - 圓弧 + @@ -5490,7 +5457,7 @@ by dragging a selection rectangle in the 3D view Intersection - 交錯 + 交集 @@ -5510,7 +5477,7 @@ by dragging a selection rectangle in the 3D view Update view - 更新檢視 + 更新視圖 @@ -5597,7 +5564,7 @@ by dragging a selection rectangle in the 3D view Frenet - 弗倫內公式(Frenet) + 弗勒內公式(Frenet) @@ -5664,42 +5631,42 @@ in the 3D view for the sweep path. Bull's-eye facemaker - Bull's-eye facemaker + 靶心面生成器 Supports making planar faces with holes with islands. - Supports making planar faces with holes with islands. + 支援在平面上建立帶有孔洞和島嶼的面。 Simple - Simple + 簡單 Makes separate plane face from every wire independently. No support for holes; wires can be on different planes. - Makes separate plane face from every wire independently. No support for holes; wires can be on different planes. + 從每個獨立的線生成單獨的平面面。不支援孔洞;線可以在不同的平面上。 Cheese facemaker - Cheese facemaker + 起司面生成器 Supports making planar faces with holes, but no islands inside holes. - Supports making planar faces with holes, but no islands inside holes. + 支援在平面上創建具有孔洞但沒有孔洞內部島嶼的面。 Part Extrude facemaker - Part Extrude facemaker + 部件拉伸面生成器 Supports making faces with holes, does not support nesting. - Supports making faces with holes, does not support nesting. + 支援製作帶有孔洞的面,但不支援巢狀孔洞。 @@ -5715,7 +5682,7 @@ in the 3D view for the sweep path. Part and Part Design workbench - Part and Part Design workbench + Part 與 Part Design 工作台 @@ -5723,7 +5690,7 @@ in the 3D view for the sweep path. Part/Part Design - Part/Part Design + Part/Part Design @@ -5733,63 +5700,63 @@ in the 3D view for the sweep path. - - - - - + + + + + Wrong selection - 錯誤的選擇 + 錯誤的選取 - + Select two shapes please. 請選擇兩個造型 - - - + + + Non-solids selected 選取非實體 - - - + + + The use of non-solids for boolean operations may lead to unexpected results. Do you want to continue? 對非實體進行布林運算可能導致非預期結果 您想要繼續嗎? - + Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. - Select two shapes or more, please. Or, select one compound containing two or more shapes to compute common between. + 請選擇兩個或更多形狀,或者選擇一個包含兩個或更多形狀的組件以計算它們的共同部分。 - + Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. - Select two shapes or more, please. Or, select one compound containing two or more shapes to be fused. + 請選擇兩個或更多形狀,或者選擇一個包含兩個或更多形狀的組件以進行融合。 - + Select one shape or more, please. 請選擇一個或更多的造型 - + All CAD Files 所有 CAD 檔 - + All Files 所有檔案 - + You have to select either two edges or two wires. 您必須選擇兩個邊或兩條線 @@ -5900,17 +5867,17 @@ Do you want to continue? Invalid Same Range Flag - Invalid Same Range Flag + 無效的相同範圍旗標 Invalid Same Parameter Flag - Invalid Same Parameter Flag + 無效的相同參數旗標 Invalid Degenerated Flag - Invalid Degenerated Flag + 無效的退化旗標 @@ -5920,7 +5887,7 @@ Do you want to continue? Invalid MultiConnexity - Invalid MultiConnexity + 無效的多連通性 @@ -5930,7 +5897,7 @@ Do you want to continue? Empty Wire - Empty Wire + 空的線 @@ -5965,12 +5932,12 @@ Do you want to continue? Invalid Imbrication Of Wires - Invalid Imbrication Of Wires + 無效的線段壘蓋 Empty Shell - Empty Shell + 空的殼 @@ -5995,7 +5962,7 @@ Do you want to continue? Sub Shape Not In Shape - Sub Shape Not In Shape + 子形狀不在形狀中 @@ -6005,7 +5972,7 @@ Do you want to continue? Bad Orientation Of Sub Shape - Bad Orientation Of Sub Shape + 子形狀的方向錯誤 @@ -6025,67 +5992,67 @@ Do you want to continue? Out Of Enum Range: - Out Of Enum Range: + 超出列舉範圍: Boolean operation: Unknown check - Boolean operation: Unknown check + 布林運算:未知的檢查 Boolean operation: Bad type - Boolean operation: Bad type + 布林運算:類型錯誤 Boolean operation: Self-intersection found - Boolean operation: Self-intersection found + 布林運算:發現自我交叉 Boolean operation: Edge too small - Boolean operation: Edge too small + 布林運算:太小的邊 Boolean operation: Non-recoverable face - Boolean operation: Non-recoverable face + 布林運算:無法復原的面 Boolean operation: Incompatibility of vertex - Boolean operation: Incompatibility of vertex + 布林運算:不相容的頂點 Boolean operation: Incompatibility of edge - Boolean operation: Incompatibility of edge + 布林運算:不相容的邊 Boolean operation: Incompatibility of face - Boolean operation: Incompatibility of face + 布林運算:不相容的面 Boolean operation: Aborted - Boolean operation: Aborted + 布林運算:已中止 Boolean operation: GeomAbs_C0 - Boolean operation: GeomAbs_C0 + 布林運算:GeomAbs_C0 Boolean operation: Invalid curve on surface - Boolean operation: Invalid curve on surface + 布林運算:表面上的無效曲線 Boolean operation: Not valid - Boolean operation: Not valid + 布林運算:無效的 @@ -6172,12 +6139,12 @@ Do you want to continue? Create tube - Create tube + 建立管件 Distance in parameter space - Distance in parameter space + 參數空間中的距離 @@ -6230,7 +6197,7 @@ Do you want to continue? Split - 分割 + Split @@ -6253,12 +6220,12 @@ Do you want to continue? Create tube - Create tube + 建立管件 Creates a tube - Creates a tube + 建立一個管件 @@ -6266,12 +6233,12 @@ Do you want to continue? Computing the result failed with an error: - Computing the result failed with an error: + 計算結果失敗,出現錯誤: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + 點擊「繼續」以建立該特徵,或點擊「中止」以取消。 @@ -6279,27 +6246,27 @@ Do you want to continue? Bad selection - Bad selection + 錯誤選擇 Continue - 繼續 + Continue Select at least two objects, or one or more compounds - Select at least two objects, or one or more compounds + 請至少選擇兩個物件或一個以上的組件 Select base object, then the object to embed, and then invoke this tool. - Select base object, then the object to embed, and then invoke this tool. + 選擇基底物件,然後選擇要嵌入的物件,然後調用此工具。 Select the object to make a cutout in, then the object that should fit into the cutout, and then invoke this tool. - Select the object to make a cutout in, then the object that should fit into the cutout, and then invoke this tool. + 選擇要進行切割的物件,然後選擇應該符合切割區域的物件,然後調用此工具。 @@ -6307,12 +6274,12 @@ Do you want to continue? Connect objects - Connect objects + 連接物件 Fuses objects, taking care to preserve voids. - Fuses objects, taking care to preserve voids. + 融合物件,注意保留空洞。 @@ -6320,12 +6287,12 @@ Do you want to continue? Embed object - Embed object + 嵌入物件 Fuses one object into another, taking care to preserve voids. - Fuses one object into another, taking care to preserve voids. + 融合一物件到另一個物件,注意保留空洞。 @@ -6333,12 +6300,12 @@ Do you want to continue? Cutout for object - Cutout for object + 物件的切除部分 Makes a cutout in one object to fit another object. - Makes a cutout in one object to fit another object. + 在一個物件中製作一個切口以符合另一個物件。 @@ -6348,14 +6315,14 @@ Do you want to continue? Computing the result failed with an error: - Computing the result failed with an error: + 計算結果失敗,出現錯誤: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + 點擊「繼續」以建立該特徵,或點擊「中止」以取消。 @@ -6366,7 +6333,7 @@ Do you want to continue? Bad selection - Bad selection + 錯誤選擇 @@ -6374,19 +6341,19 @@ Do you want to continue? Continue - 繼續 + Continue Select at least two objects, or one or more compounds. If only one compound is selected, the compounded shapes will be intersected between each other (otherwise, compounds with self-intersections are invalid). - Select at least two objects, or one or more compounds. If only one compound is selected, the compounded shapes will be intersected between each other (otherwise, compounds with self-intersections are invalid). + 請選擇至少兩個物件,或者一個或多個組件。如果只選擇一個組件,則組件中的形狀將彼此交叉(否則,具有自我交叉的組件是無效的)。 Select at least two objects. The first one is the object to be sliced; the rest are objects to slice with. - Select at least two objects. The first one is the object to be sliced; the rest are objects to slice with. + 請至少選擇兩個物件。第一個物件是要切割的物件,其他物件則是用來切割的物件。 @@ -6402,31 +6369,29 @@ Do you want to continue? area, or length, or by choosing specific items. If a second object is selected, it will be used as reference, for example, for collision or distance filtering. - Filter out objects from a selected compound by characteristics like volume, -area, or length, or by choosing specific items. -If a second object is selected, it will be used as reference, for example, -for collision or distance filtering. + 從所選組件中根據體積、面積、長度或選擇特定項目的特徵來過濾物件。 +如果選擇了第二個物件,它將用作參考,例如用於碰撞或距離過濾。 First select a shape that is a compound. If a second object is selected (optional) it will be treated as a stencil. - First select a shape that is a compound. If a second object is selected (optional) it will be treated as a stencil. + 首先選擇一個組件的形狀。如果選擇了第二個物體(可選),它將被視為模板。 Bad selection - Bad selection + 錯誤選擇 Computing the result failed with an error: - Computing the result failed with an error: + 計算結果失敗,出現錯誤: Click 'Continue' to create the feature anyway, or 'Abort' to cancel. - Click 'Continue' to create the feature anyway, or 'Abort' to cancel. + 點擊「繼續」以建立該特徵,或點擊「中止」以取消。 @@ -6434,24 +6399,23 @@ for collision or distance filtering. Explode compound - Explode compound + 拆解組件 Split up a compound of shapes into separate objects. It will create a 'Compound Filter' for each shape. - Split up a compound of shapes into separate objects. -It will create a 'Compound Filter' for each shape. + 將組件的形狀分割成單獨的物件。它將為每個形狀創建一個「組件過濾器」。 First select a shape that is a compound. - First select a shape that is a compound. + 首先選擇一個組件形狀。 Bad selection - Bad selection + 錯誤選擇 @@ -6459,22 +6423,22 @@ It will create a 'Compound Filter' for each shape. No object named {} - No object named {} + 沒有名為 {} 的物件 Failed to parse link (more than one colon encountered) - Failed to parse link (more than one colon encountered) + 剖析鏈結失敗(遇到超過一個冒號) Object {} is neither movable nor attachable, can't edit attachment - Object {} is neither movable nor attachable, can't edit attachment + 物件 {} 是無法移動也不能附加,無法編輯附件 {} is not attachable. You can still use attachment editor dialog to align the object, but the attachment won't be parametric. - {} is not attachable. You can still use attachment editor dialog to align the object, but the attachment won't be parametric. + {} 是不可附加。您仍可以使用附件編輯器對話方塊來對齊物件,但是附件不會被參數化。 @@ -6485,33 +6449,33 @@ It will create a 'Compound Filter' for each shape. Continue - 繼續 + Continue Edit attachment of {} - Edit attachment of {} + 編輯 {} 的附件 Ignored. Can't attach object to itself! - Ignored. Can't attach object to itself! + 忽略。無法將物件附加到自身! {} depends on object being attached, can't use it for attachment - {} depends on object being attached, can't use it for attachment + {} 相依於附加的物件,無法使用它來當附件。 {} (add {}) - {} (add {}) + {} (新增 {}) {} (add more references) - {} (add more references) + {} (新增更多參考) @@ -6521,7 +6485,7 @@ It will create a 'Compound Filter' for each shape. Reference{} - Reference{} + 參考{} @@ -6531,7 +6495,7 @@ It will create a 'Compound Filter' for each shape. Failed to resolve links. {} - Failed to resolve links. {} + 無法解析連結。{} @@ -6541,17 +6505,17 @@ It will create a 'Compound Filter' for each shape. Attached with mode {} - Attached with mode {} + 以模式 {} 附加 Error: {} - Error: {} + 錯誤: {} Attachment Offset (in local coordinates): - Attachment Offset (in local coordinates): + 附件偏移(在本地座標): @@ -6564,12 +6528,12 @@ It will create a 'Compound Filter' for each shape. Attachment... - Attachment... + 附件... Edit attachment of selected object. - Edit attachment of selected object. + 編輯選擇物件的附件。 @@ -6577,7 +6541,7 @@ It will create a 'Compound Filter' for each shape. Shape type - Shape type + 形狀類型 @@ -6587,12 +6551,12 @@ It will create a 'Compound Filter' for each shape. Edges - 邊緣 + Edges Wires - + Wires @@ -6612,12 +6576,12 @@ It will create a 'Compound Filter' for each shape. CompSolids - CompSolids + 複合實體 Compounds - 元件 + 組件 @@ -6627,7 +6591,7 @@ It will create a 'Compound Filter' for each shape. Area - Area + Area @@ -6652,7 +6616,7 @@ It will create a 'Compound Filter' for each shape. Curve center - Curve center + 曲線中點 @@ -6667,7 +6631,7 @@ It will create a 'Compound Filter' for each shape. Is closed - Is closed + 是關閉的 @@ -6677,17 +6641,17 @@ It will create a 'Compound Filter' for each shape. Global center of mass - Global center of mass + 整體質心 Global placement - Global placement + 全域位置 Placement - 放置位置 + 佈置 @@ -6695,7 +6659,7 @@ It will create a 'Compound Filter' for each shape. Boolean fragments - Boolean fragments + 布林碎片 @@ -6704,11 +6668,7 @@ or from the shapes inside a compound. This is a boolean union which is then sliced at the intersections of the original shapes. A 'Compound Filter' can be used to extract the individual slices. - Create a 'Boolean Fragments' object from two or more selected objects, -or from the shapes inside a compound. -This is a boolean union which is then sliced at the intersections -of the original shapes. -A 'Compound Filter' can be used to extract the individual slices. + 從選定的兩個或多個物件或從複合體內的形狀中創建一個「布林碎片」物件。這是一個布林聯集,然後在原始形狀的交點處進行切割。可以使用「組件過濾器」提取個別的切片。 @@ -6716,16 +6676,14 @@ A 'Compound Filter' can be used to extract the individual slices. Slice to compound - Slice to compound + 切割成組件 Slice a selected object by using other objects as cutting tools. The resulting pieces will be stored in a compound. A 'Compound Filter' can be used to extract the individual slices. - Slice a selected object by using other objects as cutting tools. -The resulting pieces will be stored in a compound. -A 'Compound Filter' can be used to extract the individual slices. + 使用其他物件作為切割工具,將所選物件進行切割。切割後的片段將被存儲在一個複合體中。可以使用「組件過濾器」來提取單獨的切片。 @@ -6733,14 +6691,13 @@ A 'Compound Filter' can be used to extract the individual slices. Slice apart - Slice apart + 分割成片 Slice a selected object by other objects, and split it apart. It will create a 'Compound Filter' for each slice. - Slice a selected object by other objects, and split it apart. -It will create a 'Compound Filter' for each slice. + 使用其他物件對所選物件進行切割,將其分割成多個部分。對於每個切片,將創建一個「組件過濾器」。 @@ -6748,7 +6705,7 @@ It will create a 'Compound Filter' for each slice. Boolean XOR - Boolean XOR + 布林互斥或 @@ -6756,10 +6713,7 @@ It will create a 'Compound Filter' for each slice. or with the shapes inside a compound. This means the overlapping volumes of the shapes will be removed. A 'Compound Filter' can be used to extract the remaining pieces. - Perform an 'exclusive OR' boolean operation with two or more selected objects, -or with the shapes inside a compound. -This means the overlapping volumes of the shapes will be removed. -A 'Compound Filter' can be used to extract the remaining pieces. + 對於兩個或多個選定的物件,或者組件中的形狀,執行「互斥或」布林運算。這意味著形狀之間重疊的區域將被移除。可以使用「組件過濾器」來提取剩餘的部分。 diff --git a/src/Mod/Part/Gui/SoBrepFaceSet.cpp b/src/Mod/Part/Gui/SoBrepFaceSet.cpp index 979e4b24ec..b87a5c905b 100644 --- a/src/Mod/Part/Gui/SoBrepFaceSet.cpp +++ b/src/Mod/Part/Gui/SoBrepFaceSet.cpp @@ -170,7 +170,7 @@ SoBrepFaceSet::SoBrepFaceSet() selContext2 = std::make_shared(); packedColor = 0; - pimpl.reset(new VBO); + pimpl = std::make_unique(); } SoBrepFaceSet::~SoBrepFaceSet() diff --git a/src/Mod/Part/Gui/TaskAttacher.cpp b/src/Mod/Part/Gui/TaskAttacher.cpp index 27f74c185a..4d6dce0c0a 100644 --- a/src/Mod/Part/Gui/TaskAttacher.cpp +++ b/src/Mod/Part/Gui/TaskAttacher.cpp @@ -55,7 +55,7 @@ using namespace PartGui; using namespace Gui; using namespace Attacher; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR PartDesignGui::TaskAttacher */ @@ -224,9 +224,11 @@ TaskAttacher::TaskAttacher(Gui::ViewProviderDocumentObject *ViewProvider, QWidge selectMapMode(eMapMode(pcAttach->MapMode.getValue())); updatePreview(); + //NOLINTBEGIN // connect object deletion with slot - auto bnd1 = boost::bind(&TaskAttacher::objectDeleted, this, bp::_1); - auto bnd2 = boost::bind(&TaskAttacher::documentDeleted, this, bp::_1); + auto bnd1 = std::bind(&TaskAttacher::objectDeleted, this, sp::_1); + auto bnd2 = std::bind(&TaskAttacher::documentDeleted, this, sp::_1); + //NOLINTEND Gui::Document* document = Gui::Application::Instance->getDocument(ViewProvider->getObject()->getDocument()); connectDelObject = document->signalDeletedObject.connect(bnd1); connectDelDocument = document->signalDeleteDocument.connect(bnd2); diff --git a/src/Mod/Part/Gui/TaskAttacher.h b/src/Mod/Part/Gui/TaskAttacher.h index 4c230380dc..49a0de4ea8 100644 --- a/src/Mod/Part/Gui/TaskAttacher.h +++ b/src/Mod/Part/Gui/TaskAttacher.h @@ -61,7 +61,7 @@ public: QString text = QString::fromLatin1("Attachment"), VisibilityFunction func = 0); ~TaskAttacher() override; - bool getFlip(void) const; + bool getFlip() const; /** * @brief getActiveMapMode returns either the default mode for selected @@ -89,7 +89,7 @@ private Q_SLOTS: void onButtonRef2(const bool checked = true); void onButtonRef3(const bool checked = true); void onButtonRef4(const bool checked = true); - void onModeSelect(void); + void onModeSelect(); void visibilityAutomation(bool opening_not_closing); protected: @@ -168,11 +168,11 @@ public: /// is called by the framework if the dialog is rejected (Cancel) bool reject() override; /// is called by the framework if the user presses the help button - bool isAllowedAlterDocument(void) const override + bool isAllowedAlterDocument() const override { return false; } /// returns for Close and Help button - QDialogButtonBox::StandardButtons getStandardButtons(void) const override + QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Ok|QDialogButtonBox::Cancel; } protected: diff --git a/src/Mod/Part/Gui/TaskDimension.cpp b/src/Mod/Part/Gui/TaskDimension.cpp index cf3fee50d6..ece7bd274d 100644 --- a/src/Mod/Part/Gui/TaskDimension.cpp +++ b/src/Mod/Part/Gui/TaskDimension.cpp @@ -79,7 +79,7 @@ #include "TaskDimension.h" -namespace bp = boost::placeholders; +namespace sp = std::placeholders; static bool _MeasureInfoInited; @@ -94,7 +94,9 @@ struct MeasureInfo { { if(!_MeasureInfoInited) { _MeasureInfoInited = true; - App::GetApplication().signalDeleteDocument.connect(boost::bind(slotDeleteDocument, bp::_1)); + //NOLINTBEGIN + App::GetApplication().signalDeleteDocument.connect(std::bind(slotDeleteDocument, sp::_1)); + //NOLINTEND } } }; diff --git a/src/Mod/Part/Gui/TaskFaceColors.cpp b/src/Mod/Part/Gui/TaskFaceColors.cpp index dd191f7e8c..16a371112b 100644 --- a/src/Mod/Part/Gui/TaskFaceColors.cpp +++ b/src/Mod/Part/Gui/TaskFaceColors.cpp @@ -61,7 +61,7 @@ using namespace PartGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; namespace PartGui { class FaceSelection : public Gui::SelectionFilterGate @@ -251,12 +251,14 @@ FaceColors::FaceColors(ViewProviderPartExt* vp, QWidget* parent) FaceSelection* gate = new FaceSelection(d->vp->getObject()); Gui::Selection().addSelectionGate(gate); - d->connectDelDoc = Gui::Application::Instance->signalDeleteDocument.connect(boost::bind - (&FaceColors::slotDeleteDocument, this, bp::_1)); - d->connectDelObj = Gui::Application::Instance->signalDeletedObject.connect(boost::bind - (&FaceColors::slotDeleteObject, this, bp::_1)); - d->connectUndoDoc = d->doc->signalUndoDocument.connect(boost::bind - (&FaceColors::slotUndoDocument, this, bp::_1)); + //NOLINTBEGIN + d->connectDelDoc = Gui::Application::Instance->signalDeleteDocument.connect(std::bind + (&FaceColors::slotDeleteDocument, this, sp::_1)); + d->connectDelObj = Gui::Application::Instance->signalDeletedObject.connect(std::bind + (&FaceColors::slotDeleteObject, this, sp::_1)); + d->connectUndoDoc = d->doc->signalUndoDocument.connect(std::bind + (&FaceColors::slotUndoDocument, this, sp::_1)); + //NOLINTEND } FaceColors::~FaceColors() diff --git a/src/Mod/Part/Gui/ViewProvider.h b/src/Mod/Part/Gui/ViewProvider.h index 8e224b8a3c..d5f294e41d 100644 --- a/src/Mod/Part/Gui/ViewProvider.h +++ b/src/Mod/Part/Gui/ViewProvider.h @@ -51,7 +51,7 @@ public: ViewProviderPart(); /// destructor ~ViewProviderPart() override; - bool doubleClicked(void) override; + bool doubleClicked() override; protected: void applyColor(const Part::ShapeHistory& hist, diff --git a/src/Mod/Part/Gui/ViewProviderAttachExtension.cpp b/src/Mod/Part/Gui/ViewProviderAttachExtension.cpp index b2b6d48d6f..0113f87c1c 100644 --- a/src/Mod/Part/Gui/ViewProviderAttachExtension.cpp +++ b/src/Mod/Part/Gui/ViewProviderAttachExtension.cpp @@ -118,7 +118,9 @@ void ViewProviderAttachExtension::extensionSetupContextMenu(QMenu* menu, QObject QAction* act = menu->addAction(QObject::tr("Attachment editor")); if (Gui::Control().activeDialog()) act->setDisabled(true); - func->trigger(act, std::bind(&ViewProviderAttachExtension::showAttachmentEditor, this)); + func->trigger(act, [this](){ + this->showAttachmentEditor(); + }); } } diff --git a/src/Mod/Part/Gui/ViewProviderCircleParametric.h b/src/Mod/Part/Gui/ViewProviderCircleParametric.h index 3800065666..4a1c5df693 100644 --- a/src/Mod/Part/Gui/ViewProviderCircleParametric.h +++ b/src/Mod/Part/Gui/ViewProviderCircleParametric.h @@ -46,7 +46,7 @@ public: /// destructor ~ViewProviderCircleParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; protected: diff --git a/src/Mod/Part/Gui/ViewProviderCompound.cpp b/src/Mod/Part/Gui/ViewProviderCompound.cpp index 7504eed898..d7969a1aae 100644 --- a/src/Mod/Part/Gui/ViewProviderCompound.cpp +++ b/src/Mod/Part/Gui/ViewProviderCompound.cpp @@ -46,7 +46,7 @@ ViewProviderCompound::~ViewProviderCompound() { } -std::vector ViewProviderCompound::claimChildren(void) const +std::vector ViewProviderCompound::claimChildren() const { return static_cast(getObject())->Links.getValues(); } diff --git a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp index ec08316a3b..cb6ec08dd2 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.cpp +++ b/src/Mod/Part/Gui/ViewProviderExt.cpp @@ -951,7 +951,19 @@ void ViewProviderPartExt::updateVisual() // create or use the mesh on the data structure Standard_Real AngDeflectionRads = AngularDeflection.getValue() / 180.0 * M_PI; + +#if OCC_VERSION_HEX >= 0x070500 + IMeshTools_Parameters meshParams; + meshParams.Deflection = deflection; + meshParams.Relative = Standard_False; + meshParams.Angle = AngDeflectionRads; + meshParams.InParallel = Standard_True; + meshParams.AllowQualityDecrease = Standard_True; + + BRepMesh_IncrementalMesh(cShape, meshParams); +#else BRepMesh_IncrementalMesh(cShape, deflection, Standard_False, AngDeflectionRads, Standard_True); +#endif // We must reset the location here because the transformation data // are set in the placement property @@ -1278,6 +1290,11 @@ void ViewProviderPartExt::updateVisual() (void)numEdges; # endif VisualTouched = false; + + // The material has to be checked again + setHighlightedFaces(DiffuseColor.getValues()); + setHighlightedEdges(LineColorArray.getValues()); + setHighlightedPoints(PointColorArray.getValue()); } void ViewProviderPartExt::forceUpdate(bool enable) { diff --git a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h index 01b75aaa2a..bdd044e6fb 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.h +++ b/src/Mod/Part/Gui/ViewProviderExt.h @@ -92,7 +92,7 @@ public: void attach(App::DocumentObject *) override; void setDisplayMode(const char* ModeName) override; /// returns a list of all possible modes - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; /// Update the view representation void reload(); /// If no other task is pending it opens a dialog to allow to change face colors @@ -107,7 +107,7 @@ public: */ //@{ /// indicates if the ViewProvider use the new Selection model - bool useNewSelectionModel(void) const override {return true;} + bool useNewSelectionModel() const override {return true;} /// return a hit element to the selection path or 0 std::string getElement(const SoDetail*) const override; SoDetail* getDetail(const char*) const override; diff --git a/src/Mod/Part/Gui/ViewProviderExtrusion.h b/src/Mod/Part/Gui/ViewProviderExtrusion.h index d8e2816e0b..44ca9b538d 100644 --- a/src/Mod/Part/Gui/ViewProviderExtrusion.h +++ b/src/Mod/Part/Gui/ViewProviderExtrusion.h @@ -40,7 +40,7 @@ public: ~ViewProviderExtrusion() override; /// grouping handling - std::vector claimChildren(void)const override; + std::vector claimChildren() const override; }; } // namespace PartGui diff --git a/src/Mod/Part/Gui/ViewProviderGridExtension.h b/src/Mod/Part/Gui/ViewProviderGridExtension.h index 08517cd999..872b62ac78 100644 --- a/src/Mod/Part/Gui/ViewProviderGridExtension.h +++ b/src/Mod/Part/Gui/ViewProviderGridExtension.h @@ -79,7 +79,7 @@ protected: void setGridLineColor(const App::Color & color); void setGridDivLineColor(const App::Color & color); - virtual bool extensionHandleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop) override; + bool extensionHandleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop) override; private: diff --git a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp index 6f5b9553e1..4ebb9a9562 100644 --- a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp +++ b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp @@ -46,7 +46,7 @@ ViewProviderHelixParametric::~ViewProviderHelixParametric() } -std::vector ViewProviderHelixParametric::getDisplayModes(void) const +std::vector ViewProviderHelixParametric::getDisplayModes() const { // add your own modes std::vector StrList; @@ -77,7 +77,7 @@ ViewProviderSpiralParametric::~ViewProviderSpiralParametric() } -std::vector ViewProviderSpiralParametric::getDisplayModes(void) const +std::vector ViewProviderSpiralParametric::getDisplayModes() const { // add your own modes std::vector StrList; diff --git a/src/Mod/Part/Gui/ViewProviderHelixParametric.h b/src/Mod/Part/Gui/ViewProviderHelixParametric.h index 368c954be7..8a567ed0a3 100644 --- a/src/Mod/Part/Gui/ViewProviderHelixParametric.h +++ b/src/Mod/Part/Gui/ViewProviderHelixParametric.h @@ -39,7 +39,7 @@ public: ViewProviderHelixParametric(); /// destructor ~ViewProviderHelixParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; void setupContextMenu(QMenu*, QObject*, const char*) override; private: @@ -55,7 +55,7 @@ public: ViewProviderSpiralParametric(); /// destructor ~ViewProviderSpiralParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; void setupContextMenu(QMenu*, QObject*, const char*) override; private: diff --git a/src/Mod/Part/Gui/ViewProviderLineParametric.h b/src/Mod/Part/Gui/ViewProviderLineParametric.h index 2c1b8406fb..ca4c8117f5 100644 --- a/src/Mod/Part/Gui/ViewProviderLineParametric.h +++ b/src/Mod/Part/Gui/ViewProviderLineParametric.h @@ -46,7 +46,7 @@ public: /// destructor ~ViewProviderLineParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; protected: diff --git a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp index 018ac6dd88..668f938a88 100644 --- a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp +++ b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp @@ -55,7 +55,9 @@ void ViewProviderPrimitive::setupContextMenu(QMenu* menu, QObject* receiver, con Gui::ActionFunction* func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue()))); act->setData(QVariant((int)ViewProvider::Default)); - func->trigger(act, std::bind(&ViewProviderPrimitive::startDefaultEditMode, this)); + func->trigger(act, [this](){ + this->startDefaultEditMode(); + }); ViewProviderPart::setupContextMenu(menu, receiver, member); } diff --git a/src/Mod/Part/Gui/ViewProviderReference.h b/src/Mod/Part/Gui/ViewProviderReference.h index b7a0219b3b..1707d9b250 100644 --- a/src/Mod/Part/Gui/ViewProviderReference.h +++ b/src/Mod/Part/Gui/ViewProviderReference.h @@ -29,6 +29,7 @@ #include #include #include +#include #include class TopoDS_Shape; @@ -51,13 +52,13 @@ namespace PartGui { class PartGuiExport ViewProviderPartReference : public Gui::ViewProviderGeometryObject { - PROPERTY_HEADER(PartGui::ViewProviderPartReference); + PROPERTY_HEADER_WITH_OVERRIDE(PartGui::ViewProviderPartReference); public: /// constructor ViewProviderPartReference(); /// destructor - virtual ~ViewProviderPartReference(); + ~ViewProviderPartReference() override; // Display properties //App::PropertyFloatConstraint LineWidth; @@ -70,18 +71,18 @@ public: //App::PropertyEnumeration Lighting; - virtual void attach(App::DocumentObject *); - virtual void setDisplayMode(const char* ModeName); + void attach(App::DocumentObject *) override; + void setDisplayMode(const char* ModeName) override; /// returns a list of all possible modes - virtual std::vector getDisplayModes(void) const; + std::vector getDisplayModes() const override; /// Update the view representation void reload(); - virtual void updateData(const App::Property*); + void updateData(const App::Property*) override; protected: /// get called by the container whenever a property has been changed - virtual void onChanged(const App::Property* prop); + void onChanged(const App::Property* prop) override; //bool loadParameter(); // nodes for the data representation diff --git a/src/Mod/Part/Gui/ViewProviderRuledSurface.h b/src/Mod/Part/Gui/ViewProviderRuledSurface.h index c8ce24edf4..a0ddd06913 100644 --- a/src/Mod/Part/Gui/ViewProviderRuledSurface.h +++ b/src/Mod/Part/Gui/ViewProviderRuledSurface.h @@ -39,7 +39,7 @@ public: /// destructor ~ViewProviderRuledSurface() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; std::vector claimChildren() const override; void updateData(const App::Property*) override; bool onDelete(const std::vector &) override; diff --git a/src/Mod/Part/Gui/ViewProviderSphereParametric.h b/src/Mod/Part/Gui/ViewProviderSphereParametric.h index fd4968bec9..08cc382e63 100644 --- a/src/Mod/Part/Gui/ViewProviderSphereParametric.h +++ b/src/Mod/Part/Gui/ViewProviderSphereParametric.h @@ -38,7 +38,7 @@ public: /// destructor ~ViewProviderSphereParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; protected: @@ -53,7 +53,7 @@ public: ViewProviderEllipsoid(); /// destructor ~ViewProviderEllipsoid() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; }; } // namespace PartGui diff --git a/src/Mod/Part/Gui/ViewProviderSpline.cpp b/src/Mod/Part/Gui/ViewProviderSpline.cpp index 5e747dce35..1a03deac65 100644 --- a/src/Mod/Part/Gui/ViewProviderSpline.cpp +++ b/src/Mod/Part/Gui/ViewProviderSpline.cpp @@ -68,7 +68,7 @@ ViewProviderSpline::~ViewProviderSpline() { } -QIcon ViewProviderSpline::getIcon(void) const +QIcon ViewProviderSpline::getIcon() const { return Gui::BitmapFactory().pixmap(sPixmap); } @@ -97,7 +97,9 @@ void ViewProviderSplineExtension::extensionSetupContextMenu(QMenu* menu, QObject QAction* act = menu->addAction(QObject::tr("Show control points")); act->setCheckable(true); act->setChecked(ControlPoints.getValue()); - func->toggle(act, std::bind(&ViewProviderSplineExtension::toggleControlPoints, this, sp::_1)); + func->toggle(act, [this](bool on) { + this->toggleControlPoints(on); + }); } void ViewProviderSplineExtension::extensionUpdateData(const App::Property* prop) diff --git a/src/Mod/Part/Gui/ViewProviderTorusParametric.cpp b/src/Mod/Part/Gui/ViewProviderTorusParametric.cpp index 7c2ed137ba..451613a6d1 100644 --- a/src/Mod/Part/Gui/ViewProviderTorusParametric.cpp +++ b/src/Mod/Part/Gui/ViewProviderTorusParametric.cpp @@ -48,7 +48,7 @@ ViewProviderTorusParametric::~ViewProviderTorusParametric() // ********************************************************************************** -std::vector ViewProviderTorusParametric::getDisplayModes(void) const +std::vector ViewProviderTorusParametric::getDisplayModes() const { // get the modes of the father std::vector StrList; diff --git a/src/Mod/Part/Gui/ViewProviderTorusParametric.h b/src/Mod/Part/Gui/ViewProviderTorusParametric.h index 836b8c0f7b..fe50673567 100644 --- a/src/Mod/Part/Gui/ViewProviderTorusParametric.h +++ b/src/Mod/Part/Gui/ViewProviderTorusParametric.h @@ -46,7 +46,7 @@ public: /// destructor ~ViewProviderTorusParametric() override; - std::vector getDisplayModes(void) const override; + std::vector getDisplayModes() const override; protected: diff --git a/src/Mod/Part/TestPartApp.py b/src/Mod/Part/TestPartApp.py index d77d3cd7ee..55e91375b2 100644 --- a/src/Mod/Part/TestPartApp.py +++ b/src/Mod/Part/TestPartApp.py @@ -831,3 +831,43 @@ class PartTestShapeFix(unittest.TestCase): fix.fixGap3d(1, False) fix.fixGap2d(1, False) fix.fixTails() + +class PartBOPTestContainer(unittest.TestCase): + def setUp(self): + self.Doc = FreeCAD.newDocument() + + def testMakeFuse(self): + box = self.Doc.addObject("Part::Box", "Box") + cyl = self.Doc.addObject("Part::Cylinder", "Cylinder") + part = self.Doc.addObject("App::Part", "Part") + part.addObject(box) + part.addObject(cyl) + from BOPTools import BOPFeatures + bp = BOPFeatures.BOPFeatures(self.Doc) + fuse = bp.make_multi_fuse([cyl.Name, box.Name]) + self.assertEqual(part, fuse.getParent()) + + def testMakeCut(self): + box = self.Doc.addObject("Part::Box", "Box") + cyl = self.Doc.addObject("Part::Cylinder", "Cylinder") + part = self.Doc.addObject("App::Part", "Part") + part.addObject(box) + part.addObject(cyl) + from BOPTools import BOPFeatures + bp = BOPFeatures.BOPFeatures(self.Doc) + fuse = bp.make_cut([cyl.Name, box.Name]) + self.assertEqual(part, fuse.getParent()) + + def testMakeCommon(self): + box = self.Doc.addObject("Part::Box", "Box") + cyl = self.Doc.addObject("Part::Cylinder", "Cylinder") + part = self.Doc.addObject("App::Part", "Part") + part.addObject(box) + part.addObject(cyl) + from BOPTools import BOPFeatures + bp = BOPFeatures.BOPFeatures(self.Doc) + fuse = bp.make_multi_common([cyl.Name, box.Name]) + self.assertEqual(part, fuse.getParent()) + + def tearDown(self): + FreeCAD.closeDocument(self.Doc.Name) diff --git a/src/Mod/Part/TestPartGui.py b/src/Mod/Part/TestPartGui.py index 4b9175ba1a..9527da2fbe 100644 --- a/src/Mod/Part/TestPartGui.py +++ b/src/Mod/Part/TestPartGui.py @@ -43,6 +43,7 @@ def findDockWidget(name): # define the test cases to test the FreeCAD Part module #--------------------------------------------------------------------------- """ +from parttests.ColorPerFaceTest import ColorPerFaceTest #class PartGuiTestCases(unittest.TestCase): diff --git a/src/Mod/Part/parttests/ColorPerFaceTest.py b/src/Mod/Part/parttests/ColorPerFaceTest.py new file mode 100644 index 0000000000..57fd54d587 --- /dev/null +++ b/src/Mod/Part/parttests/ColorPerFaceTest.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# test to check color per face when after restore + +import FreeCAD as App +import Part +import os +import tempfile +import unittest +from pivy import coin + +class ColorPerFaceTest(unittest.TestCase): + def setUp(self): + TempPath = tempfile.gettempdir() + self.fileName = TempPath + os.sep + "ColorPerFaceTest.FCStd" + self.doc = App.newDocument() + + def tearDown(self): + App.closeDocument(self.doc.Name) + + def testBox(self): + box = self.doc.addObject("Part::Box","Box") + self.doc.recompute() + + box.ViewObject.DiffuseColor = [(1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,1.,0.,0.), + (1.,1.,0.,0.)] + + box.Visibility = False + self.doc.recompute() + + self.doc.saveAs(self.fileName) + App.closeDocument(self.doc.Name) + + self.doc = App.openDocument(self.fileName) + box = self.doc.Box + box.Visibility = True + self.assertEqual(len(box.ViewObject.DiffuseColor), 6) + + sa = coin.SoSearchAction() + sa.setType(coin.SoMaterial.getClassTypeId()) + # We need an easier way to access nodes of a display mode + sa.setInterest(coin.SoSearchAction.ALL) + sa.apply(box.ViewObject.RootNode) + paths = sa.getPaths() + + mat = paths.get(2).getTail() + self.assertEqual(mat.diffuseColor.getNum(), 6) + + def testBoxAndLink(self): + box = self.doc.addObject("Part::Box","Box") + self.doc.recompute() + + box.ViewObject.DiffuseColor = [(1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,0.,0.,0.), + (1.,1.,0.,0.), + (1.,1.,0.,0.)] + + link = self.doc.addObject('App::Link','Link') + link.setLink(box) + box.Visibility = False + self.doc.recompute() + + self.doc.saveAs(self.fileName) + App.closeDocument(self.doc.Name) + + self.doc = App.openDocument(self.fileName) + box = self.doc.Box + box.Visibility = True + self.assertEqual(len(box.ViewObject.DiffuseColor), 6) + + sa = coin.SoSearchAction() + sa.setType(coin.SoMaterial.getClassTypeId()) + # We need an easier way to access nodes of a display mode + sa.setInterest(coin.SoSearchAction.ALL) + sa.apply(box.ViewObject.RootNode) + paths = sa.getPaths() + + mat = paths.get(2).getTail() + self.assertEqual(mat.diffuseColor.getNum(), 6) diff --git a/src/Mod/Part/parttests/TopoShapeListTest.py b/src/Mod/Part/parttests/TopoShapeListTest.py index 3ad1b24422..22c93decb2 100644 --- a/src/Mod/Part/parttests/TopoShapeListTest.py +++ b/src/Mod/Part/parttests/TopoShapeListTest.py @@ -58,4 +58,5 @@ class TopoShapeListTest(unittest.TestCase): doc.undo() self.assertEqual(len(obj.Shapes), 3, "TopoShapeList has wrong entry count (2): {0}".format(len(obj.Shapes))) + App.closeDocument(doc.Name) diff --git a/src/Mod/PartDesign/App/Body.h b/src/Mod/PartDesign/App/Body.h index 6964159fe0..fbb8ae879b 100644 --- a/src/Mod/PartDesign/App/Body.h +++ b/src/Mod/PartDesign/App/Body.h @@ -61,7 +61,7 @@ public: /** * Add the feature into the body at the current insert point. - * The insertion poin is the before next solid after the Tip feature + * The insertion point is the before next solid after the Tip feature */ std::vector addObject(App::DocumentObject*) override; std::vector< DocumentObject* > addObjects(std::vector< DocumentObject* > obj) override; diff --git a/src/Mod/PartDesign/App/FeatureAddSub.cpp b/src/Mod/PartDesign/App/FeatureAddSub.cpp index a5e21257ed..4c3581369e 100644 --- a/src/Mod/PartDesign/App/FeatureAddSub.cpp +++ b/src/Mod/PartDesign/App/FeatureAddSub.cpp @@ -97,10 +97,10 @@ void FeatureAddSub::getAddSubShape(Part::TopoShape &addShape, Part::TopoShape &s namespace App { /// @cond DOXERR PROPERTY_SOURCE_TEMPLATE(PartDesign::FeatureAddSubPython, PartDesign::FeatureAddSub) -template<> const char* PartDesign::FeatureAddSubPython::getViewProviderName(void) const { +template<> const char* PartDesign::FeatureAddSubPython::getViewProviderName() const { return "PartDesignGui::ViewProviderPython"; } -template<> PyObject* PartDesign::FeatureAddSubPython::getPyObject(void) { +template<> PyObject* PartDesign::FeatureAddSubPython::getPyObject() { if (PythonObject.is(Py::_None())) { // ref counter is set to 1 PythonObject = Py::Object(new FeaturePythonPyT(this),true); diff --git a/src/Mod/PartDesign/App/FeatureBase.cpp b/src/Mod/PartDesign/App/FeatureBase.cpp index 06306141f6..d7fc21cb66 100644 --- a/src/Mod/PartDesign/App/FeatureBase.cpp +++ b/src/Mod/PartDesign/App/FeatureBase.cpp @@ -73,18 +73,22 @@ App::DocumentObjectExecReturn* FeatureBase::execute() { return StdReturn; } +void FeatureBase::trySetBaseFeatureOfBody() +{ + if (auto body = getFeatureBody()) { + if (BaseFeature.getValue() + && body->BaseFeature.getValue() + && body->BaseFeature.getValue() != BaseFeature.getValue()) { + body->BaseFeature.setValue(BaseFeature.getValue()); + } + } +} + void FeatureBase::onChanged(const App::Property* prop) { // the BaseFeature property should track the Body BaseFeature and vice-versa if (prop == &BaseFeature) { - - auto body = getFeatureBody(); - if(!body) - return; - - if (BaseFeature.getValue() && body->BaseFeature.getValue() != BaseFeature.getValue()) { - body->BaseFeature.setValue(BaseFeature.getValue()); - } + trySetBaseFeatureOfBody(); } Part::Feature::onChanged(prop); diff --git a/src/Mod/PartDesign/App/FeatureBase.h b/src/Mod/PartDesign/App/FeatureBase.h index 28812af885..4be140d44d 100644 --- a/src/Mod/PartDesign/App/FeatureBase.h +++ b/src/Mod/PartDesign/App/FeatureBase.h @@ -48,6 +48,9 @@ public: void onChanged(const App::Property* prop) override; App::DocumentObjectExecReturn* execute() override; void onDocumentRestored() override; + +private: + void trySetBaseFeatureOfBody(); }; } //namespace PartDesign diff --git a/src/Mod/PartDesign/App/FeatureExtrude.cpp b/src/Mod/PartDesign/App/FeatureExtrude.cpp index 2fde0dcfd2..abd1ba0b98 100644 --- a/src/Mod/PartDesign/App/FeatureExtrude.cpp +++ b/src/Mod/PartDesign/App/FeatureExtrude.cpp @@ -177,7 +177,7 @@ void FeatureExtrude::generatePrism(TopoDS_Shape& prism, // see e.g. https://forum.freecad.org/viewtopic.php?p=560785#p560785 // It is better not to use BRepFeat_MakePrism here even if we have a support because the // resulting shape creates problems with Pocket - BRepPrimAPI_MakePrism PrismMaker(from, Ltotal * gp_Vec(direction), 0, 1); // finite prism + BRepPrimAPI_MakePrism PrismMaker(from, Ltotal * gp_Vec(direction), Standard_False, Standard_True); // finite prism if (!PrismMaker.IsDone()) throw Base::RuntimeError("ProfileBased: Length: Could not extrude the sketch!"); prism = PrismMaker.Shape(); diff --git a/src/Mod/PartDesign/App/FeatureFillet.h b/src/Mod/PartDesign/App/FeatureFillet.h index a1f37d0eea..0bc2f54157 100644 --- a/src/Mod/PartDesign/App/FeatureFillet.h +++ b/src/Mod/PartDesign/App/FeatureFillet.h @@ -44,10 +44,10 @@ public: /** @name methods override feature */ //@{ /// recalculate the feature - App::DocumentObjectExecReturn *execute(void) override; + App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; /// returns the type name of the view provider - const char* getViewProviderName(void) const override { + const char* getViewProviderName() const override { return "PartDesignGui::ViewProviderFillet"; } //@} diff --git a/src/Mod/PartDesign/App/FeatureHelix.cpp b/src/Mod/PartDesign/App/FeatureHelix.cpp index b35c805da5..9efc0d4544 100644 --- a/src/Mod/PartDesign/App/FeatureHelix.cpp +++ b/src/Mod/PartDesign/App/FeatureHelix.cpp @@ -594,7 +594,7 @@ void Helix::proposeParameters(bool force) Pitch.setValue(pitch); Height.setValue(pitch * 3.0); - HasBeenEdited.setValue(1); + HasBeenEdited.setValue(true); } } diff --git a/src/Mod/PartDesign/App/FeatureHole.cpp b/src/Mod/PartDesign/App/FeatureHole.cpp index ec0b981e3c..d7c7614e0f 100644 --- a/src/Mod/PartDesign/App/FeatureHole.cpp +++ b/src/Mod/PartDesign/App/FeatureHole.cpp @@ -1260,9 +1260,9 @@ void Hole::onChanged(const App::Property* prop) CustomThreadClearance.setReadOnly(true); ThreadDepth.setReadOnly(true); ThreadDepthType.setReadOnly(true); - Threaded.setValue(0); - ModelThread.setValue(0); - UseCustomThreadClearance.setValue(0); + Threaded.setValue(false); + ModelThread.setValue(false); + UseCustomThreadClearance.setValue(false); } else if (type == "ISOMetricProfile") { ThreadSize.setEnums(ThreadSize_ISOmetric_Enums); diff --git a/src/Mod/PartDesign/App/FeatureHole.h b/src/Mod/PartDesign/App/FeatureHole.h index acf56a7e31..fa51e14ee0 100644 --- a/src/Mod/PartDesign/App/FeatureHole.h +++ b/src/Mod/PartDesign/App/FeatureHole.h @@ -86,22 +86,22 @@ public: //@} short mustExecute() const override; - typedef struct { + using ThreadDescription = struct { const char * designation; double diameter; double pitch; double CoreHole; - } ThreadDescription; + }; static const ThreadDescription threadDescription[][171]; static const double metricHoleDiameters[36][4]; - typedef struct { + using UTSClearanceDefinition = struct { std::string designation; double close; double normal; double loose; - } UTSClearanceDefinition; + }; static const UTSClearanceDefinition UTSHoleDiameters[22]; void Restore(Base::XMLReader & reader) override; diff --git a/src/Mod/PartDesign/App/FeatureMirrored.h b/src/Mod/PartDesign/App/FeatureMirrored.h index 3e1d66a306..597845a84c 100644 --- a/src/Mod/PartDesign/App/FeatureMirrored.h +++ b/src/Mod/PartDesign/App/FeatureMirrored.h @@ -32,7 +32,7 @@ namespace PartDesign class PartDesignExport Mirrored : public PartDesign::Transformed { - PROPERTY_HEADER(PartDesign::Mirrored); + PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Mirrored); public: Mirrored(); @@ -41,10 +41,10 @@ public: /** @name methods override feature */ //@{ - short mustExecute() const; + short mustExecute() const override; /// returns the type name of the view provider - const char* getViewProviderName() const { + const char* getViewProviderName() const override { return "PartDesignGui::ViewProviderMirrored"; } //@} @@ -55,7 +55,7 @@ public: * If MirrorPlane contains a feature and a face name, then the mirror plane will be * the given face, which must be planar */ - const std::list getTransformations(const std::vector); + const std::list getTransformations(const std::vector) override; }; } //namespace PartDesign diff --git a/src/Mod/PartDesign/App/FeaturePyImp.cpp b/src/Mod/PartDesign/App/FeaturePyImp.cpp index 639154fb5b..d010a57c0b 100644 --- a/src/Mod/PartDesign/App/FeaturePyImp.cpp +++ b/src/Mod/PartDesign/App/FeaturePyImp.cpp @@ -30,7 +30,7 @@ using namespace PartDesign; // returns a string which represent the object e.g. when printed in python -std::string FeaturePy::representation(void) const +std::string FeaturePy::representation() const { App::DocumentObject* object = this->getFeaturePtr(); std::stringstream str; diff --git a/src/Mod/PartDesign/App/FeatureSketchBased.cpp b/src/Mod/PartDesign/App/FeatureSketchBased.cpp index 7f9c848764..8619cf7ece 100644 --- a/src/Mod/PartDesign/App/FeatureSketchBased.cpp +++ b/src/Mod/PartDesign/App/FeatureSketchBased.cpp @@ -453,6 +453,7 @@ void ProfileBased::getUpToFace(TopoDS_Face& upToFace, const std::string& method, const gp_Dir& dir) { + if ((method == "UpToLast") || (method == "UpToFirst")) { // Check for valid support object if (support.IsNull()) @@ -522,6 +523,8 @@ void ProfileBased::getUpToFace(TopoDS_Face& upToFace, // Check that the upToFace is either not parallel to the extrusion direction // and that upToFace is not too near + if (upToFace.IsNull()) + throw Base::ValueError("SketchBased: The UpTo-Face is null!"); BRepAdaptor_Surface upToFaceSurface(TopoDS::Face(upToFace)); BRepExtrema_DistShapeShape distSS(sketchshape, upToFace); if (upToFaceSurface.GetType() == GeomAbs_Plane) { diff --git a/src/Mod/PartDesign/App/ShapeBinder.cpp b/src/Mod/PartDesign/App/ShapeBinder.cpp index 209b84f7cf..b7e2325cc3 100644 --- a/src/Mod/PartDesign/App/ShapeBinder.cpp +++ b/src/Mod/PartDesign/App/ShapeBinder.cpp @@ -51,7 +51,7 @@ FC_LOG_LEVEL_INIT("PartDesign",true,true) #endif using namespace PartDesign; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; // ============================================================================ @@ -257,8 +257,10 @@ void ShapeBinder::onSettingDocument() { App::Document* document = getDocument(); if (document) { - this->connectDocumentChangedObject = document->signalChangedObject.connect(boost::bind - (&ShapeBinder::slotChangedObject, this, bp::_1, bp::_2)); + //NOLINTBEGIN + this->connectDocumentChangedObject = document->signalChangedObject.connect(std::bind + (&ShapeBinder::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND } } @@ -833,9 +835,11 @@ void SubShapeBinder::onChanged(const App::Property* prop) { else if (contextDoc != Context.getValue()->getDocument() || !connRecomputedObj.connected()) { + //NOLINTBEGIN contextDoc = Context.getValue()->getDocument(); connRecomputedObj = contextDoc->signalRecomputedObject.connect( - boost::bind(&SubShapeBinder::slotRecomputedObject, this, bp::_1)); + std::bind(&SubShapeBinder::slotRecomputedObject, this, sp::_1)); + //NOLINTEND } } else if (!isRestoring()) { diff --git a/src/Mod/PartDesign/App/json.hpp b/src/Mod/PartDesign/App/json.hpp index dbbe68458d..5b82283623 100644 --- a/src/Mod/PartDesign/App/json.hpp +++ b/src/Mod/PartDesign/App/json.hpp @@ -6367,7 +6367,7 @@ struct wide_string_input_helper } }; -// Wraps another input apdater to convert wide character types into individual bytes. +// Wraps another input adapter to convert wide character types into individual bytes. template class wide_string_input_adapter { diff --git a/src/Mod/PartDesign/Gui/AppPartDesignGui.cpp b/src/Mod/PartDesign/Gui/AppPartDesignGui.cpp index 4a66c9be08..573b30823d 100644 --- a/src/Mod/PartDesign/Gui/AppPartDesignGui.cpp +++ b/src/Mod/PartDesign/Gui/AppPartDesignGui.cpp @@ -64,9 +64,9 @@ // use a different name to CreateCommand() -void CreatePartDesignCommands(void); -void CreatePartDesignBodyCommands(void); -void CreatePartDesignPrimitiveCommands(void); +void CreatePartDesignCommands(); +void CreatePartDesignBodyCommands(); +void CreatePartDesignPrimitiveCommands(); void loadPartDesignResource() { diff --git a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp index e2e91e8fd9..560ca9e2d5 100644 --- a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp +++ b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp @@ -137,7 +137,7 @@ void CmdPrimtiveCompAdditive::activated(int iMsg) PartDesignGui::setEdit(prm,pcActiveBody); } -Gui::Action * CmdPrimtiveCompAdditive::createAction(void) +Gui::Action * CmdPrimtiveCompAdditive::createAction() { Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow()); pcAction->setDropDownMenu(true); @@ -229,7 +229,7 @@ void CmdPrimtiveCompAdditive::languageChange() arc8->setStatusTip(arc8->toolTip()); } -bool CmdPrimtiveCompAdditive::isActive(void) +bool CmdPrimtiveCompAdditive::isActive() { return (hasActiveDocument() && !Gui::Control().activeDialog()); } @@ -293,7 +293,7 @@ void CmdPrimtiveCompSubtractive::activated(int iMsg) PartDesignGui::setEdit(Feat,pcActiveBody); } -Gui::Action * CmdPrimtiveCompSubtractive::createAction(void) +Gui::Action * CmdPrimtiveCompSubtractive::createAction() { Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow()); pcAction->setDropDownMenu(true); @@ -385,7 +385,7 @@ void CmdPrimtiveCompSubtractive::languageChange() arc8->setStatusTip(arc8->toolTip()); } -bool CmdPrimtiveCompSubtractive::isActive(void) +bool CmdPrimtiveCompSubtractive::isActive() { return (hasActiveDocument() && !Gui::Control().activeDialog()); } @@ -394,7 +394,7 @@ bool CmdPrimtiveCompSubtractive::isActive(void) // Initialization //=========================================================================== -void CreatePartDesignPrimitiveCommands(void) +void CreatePartDesignPrimitiveCommands() { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); diff --git a/src/Mod/PartDesign/Gui/PreCompiled.h b/src/Mod/PartDesign/Gui/PreCompiled.h index 4065daab5c..29ac54ca4a 100644 --- a/src/Mod/PartDesign/Gui/PreCompiled.h +++ b/src/Mod/PartDesign/Gui/PreCompiled.h @@ -32,6 +32,8 @@ #ifdef _PreComp_ #ifdef FC_OS_WIN32 +# undef NOMINMAX +# define NOMINMAX # include #endif diff --git a/src/Mod/PartDesign/Gui/ReferenceSelection.h b/src/Mod/PartDesign/Gui/ReferenceSelection.h index e760e68804..ae402f85a8 100644 --- a/src/Mod/PartDesign/Gui/ReferenceSelection.h +++ b/src/Mod/PartDesign/Gui/ReferenceSelection.h @@ -52,7 +52,7 @@ public: * Allow the user to pick only edges or faces (or both) from the defined support * Optionally restrict the selection to planar edges/faces */ - bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName); + bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName) override; private: PartDesign::Body* getBody() const; diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign.ts index 2f519930ca..113b373317 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign.ts @@ -2613,12 +2613,12 @@ measured along the specified direction - + Section orientation - + Remove @@ -2677,23 +2677,23 @@ measured along the specified direction - + Pipe parameters - + Remove - - + + Input error - + No active body @@ -2736,12 +2736,12 @@ measured along the specified direction - + Section transformation - + Remove @@ -3766,39 +3766,39 @@ This may lead to unexpected results. - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. - + Active Body Required - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. - + Feature is not in a body - + In order to use this feature it needs to belong to a body object in the document. - + Feature is not in a part - + In order to use this feature it needs to belong to a part object in the document. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_be.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_be.ts index 42016a0a2a..9a3d4059c0 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_be.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_be.ts @@ -2632,12 +2632,12 @@ measured along the specified direction Z - + Section orientation Арыентацыя перасеку - + Remove Выдаліць @@ -2696,23 +2696,23 @@ measured along the specified direction Выдаліць рабро - + Pipe parameters Налады траекторыі - + Remove Выдаліць - - + + Input error Input error - + No active body Без бягучага цела @@ -2755,12 +2755,12 @@ measured along the specified direction Спіс можна парадкаваць перацягваннем - + Section transformation Пераўтварэнне перасеку - + Remove Выдаліць @@ -3793,7 +3793,7 @@ This may lead to unexpected results. Грань - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3802,32 +3802,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Калі ў вас ёсць дакумент з аб'ектамі Дызайну Дэталі без цела, ужывайце функцыю міграцыі ў Дызайн Дэталі, каб змясціць іх у Цела. - + Active Body Required Неабходна бягучае Цела - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Каб стварыць новы аб'ект Праектавання дэталі, у дакуменце павінен быць бягучы аб'ект Цела. Калі ласка, зрабіце адзін бягучым (падвоеная пстрычка), альбо стварыце новае Цела. - + Feature is not in a body Элемент не знаходзіцца ў целе - + In order to use this feature it needs to belong to a body object in the document. Каб ужыць гэты элемент, ён павінен належаць да аб'екту цела ў дакуменце. - + Feature is not in a part Элемент не знаходзіцца ў дэталі - + In order to use this feature it needs to belong to a part object in the document. Каб ужыць гэты элемент, ён павінен належаць да аб'екту дэталі ў дакуменце. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ca.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ca.ts index dfc75adeb2..841056f666 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ca.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ca.ts @@ -83,47 +83,47 @@ de manera que s'evita l'autointersecció. Number of gear teeth - Number of gear teeth + Nombre de dents de l'engranatge Modules of the gear - Modules of the gear + Mòdul de l'engranatge Pressure angle of gear teeth - Pressure angle of gear teeth + Angle de pressió de l'engranatge True=2 curves with each 3 control points False=1 curve with 4 control points. - True=2 curves with each 3 control points False=1 curve with 4 control points. + Cert=2 corbes amb 3 punts de control cadascuna Fals=1 corba amb 4 punts de control. True=external Gear False=internal Gear - True=external Gear False=internal Gear + Cert=Engranatge extern Fals=Engranatge intern The height of the tooth from the pitch circle up to its tip, normalized by the module. - The height of the tooth from the pitch circle up to its tip, normalized by the module. + L'alçada de la dent des del cercle de pas fins a la seva punta, normalitzada pel mòdul. The height of the tooth from the pitch circle down to its root, normalized by the module. - The height of the tooth from the pitch circle down to its root, normalized by the module. + L'alçada de la dent des del cercle de pas fins a la seva arrel, normalitzada pel mòdul. The radius of the fillet at the root of the tooth, normalized by the module. - The radius of the fillet at the root of the tooth, normalized by the module. + El radi del filet a l'arrel de la dent, normalitzat pel mòdul. The distance by which the reference profile is shifted outwards, normalized by the module. - The distance by which the reference profile is shifted outwards, normalized by the module. + La distància a la qual el perfil de referència es desplaça cap a fora, normalitzada pel mòdul. @@ -1063,22 +1063,22 @@ de manera que s'evita l'autointersecció. Addendum Coefficient - Addendum Coefficient + Coeficient a afegir Dedendum Coefficient - Dedendum Coefficient + Coeficient a sostreure Root Fillet Coefficient - Root Fillet Coefficient + Coeficient de filet d'origen Profile Shift Coefficient - Profile Shift Coefficient + Coeficient de desplaçament de perfil @@ -1573,7 +1573,7 @@ clica altre cop per finalitzar la selecció Empty chamfer created ! - Empty chamfer created ! + S'ha creat un xamfrà buit! @@ -1674,7 +1674,7 @@ clica altre cop per finalitzar la selecció Empty draft created ! - Empty draft created ! + S'ha creat un dibuix buit! @@ -1743,7 +1743,7 @@ clica altre cop per finalitzar la selecció Click on a face in the model - Click on a face in the model + Clica en una cara del model @@ -1879,7 +1879,7 @@ clica altre cop per finalitzar la selecció Empty fillet created ! - Empty fillet created ! + S'ha creat un filet buit! @@ -2030,12 +2030,12 @@ clica altre cop per finalitzar la selecció Warning: helix might be self intersecting - Warning: helix might be self intersecting + Atenció: l'hèlix pot ser autointerferent Error: helix touches itself - Error: helix touches itself + Error: l'hèlix es toca a si mateixa @@ -2058,7 +2058,7 @@ clica altre cop per finalitzar la selecció Counterdrill - Counterdrill + Aixamfranat @@ -2373,7 +2373,7 @@ clica altre cop per finalitzar la selecció To last - To last + Al darrer @@ -2543,7 +2543,7 @@ mesurada al llarg de la direcció especificada Select face - Select face + Selecciona una cara @@ -2634,12 +2634,12 @@ mesurada al llarg de la direcció especificada Z - + Section orientation Orientació de la secció - + Remove Elimina @@ -2698,23 +2698,23 @@ mesurada al llarg de la direcció especificada Treure vora - + Pipe parameters Paràmetres del tub - + Remove Elimina - - + + Input error Error d'entrada - + No active body Cap cos actiu @@ -2757,12 +2757,12 @@ mesurada al llarg de la direcció especificada La llista es pot reordenar arrossegant - + Section transformation Transformació de la secció - + Remove Elimina @@ -3113,7 +3113,7 @@ clica altre cop per finalitzar la selecció Empty thickness created ! - Empty thickness created ! + S'ha creat un gruix buit! @@ -3794,7 +3794,7 @@ Això pot portar a resultats inesperats. Cara - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3803,32 +3803,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Si teniu un document antic amb objectes PartDesign sense cos, utilitzeu la funció de migrar a PartDesign per a posar-los en un cos. - + Active Body Required Es requereix un cos actiu - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Per a crear un nou objecte PartDesign, ha d'haver un cos actiu en el document. Activeu-ne un (doble clic) o creeu-ne un de nou. - + Feature is not in a body El perfil no és en un cos - + In order to use this feature it needs to belong to a body object in the document. Per utilitzar aquesta característica cal que pertanyen a un objecte del cos del document. - + Feature is not in a part El Perfil no és en una zona - + In order to use this feature it needs to belong to a part object in the document. Per utilitzar aquesta característica cal que pertanyen a un objecte de part del document. @@ -4001,42 +4001,42 @@ Tot i que podreu migrar en qualsevol moment més tard amb 'Disseny de peces -> Edit chamfer - Edit chamfer + Edita el xamfrà Edit draft - Edit draft + Edita el dibuix Edit fillet - Edit fillet + Edita filet Edit linear pattern - Edit linear pattern + Edita el patró lineal Edit mirrored - Edit mirrored + Edita la simetria Edit multi-transform - Edit multi-transform + Edita la multi-transformació Edit polar pattern - Edit polar pattern + Edita el patró polar Edit scaled - Edit scaled + Edita l'escalat @@ -4561,8 +4561,7 @@ Només disponible per a forats sense rosca For countersinks this is the depth of the screw's top below the surface - For countersinks this is the depth of -the screw's top below the surface + Per forats aixamfranats és la profunditat entre la cara superior del cap del cargol i la superfície @@ -4740,7 +4739,7 @@ més de 90: radi de forat més gran a la part inferior Creates or edit the involute gear definition. - Creates or edit the involute gear definition. + Crea o edita la definició de l'evolvent de l'engranatge. @@ -4753,7 +4752,7 @@ més de 90: radi de forat més gran a la part inferior Creates or edit the sprocket definition. - Creates or edit the sprocket definition. + Crea o edita la definició del pinyó. @@ -4761,67 +4760,67 @@ més de 90: radi de forat més gran a la part inferior Length [mm] - Length [mm] + Longitud [mm] Diameter [mm] - Diameter [mm] + Diàmetre [mm] Inner diameter [mm] - Inner diameter [mm] + Diàmetre interior [mm] Constraint type - Constraint type + Tipus de restricció Start edge type - Start edge type + Tipus d'aresta inicial Start edge size - Start edge size + Mida d'aresta inicial End edge type - End edge type + Tipus d'aresta final End edge size - End edge size + Mida d'aresta final Shaft wizard - Shaft wizard + Assistent d'eixos Section 1 - Section 1 + Secció 1 Section 2 - Section 2 + Secció 2 Add column - Add column + Afegeix una columna Section %s - Section %s + Secció %s @@ -4834,12 +4833,12 @@ més de 90: radi de forat més gran a la part inferior Missing module - Missing module + Falta mòdul You may have to install the Plot add-on - You may have to install the Plot add-on + És possible que hagis d'instal·lar el complement Plot @@ -4847,12 +4846,12 @@ més de 90: radi de forat més gran a la part inferior Shaft design wizard... - Shaft design wizard... + Assistent pel disseny d'eixos... Start the shaft design wizard - Start the shaft design wizard + Inicia l'assistent de disseny d'eixos @@ -4860,12 +4859,12 @@ més de 90: radi de forat més gran a la part inferior Shaft design wizard... - Shaft design wizard... + Assistent pel disseny d'eixos... Start the shaft design wizard - Start the shaft design wizard + Inicia l'assistent de disseny d'eixos @@ -4873,7 +4872,7 @@ més de 90: radi de forat més gran a la part inferior Linked object is not a PartDesign feature - Linked object is not a PartDesign feature + L'objecte vinculat no és una característica de Disseny de peces diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_cs.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_cs.ts index 2c66d3ad43..453d1b111a 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_cs.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_cs.ts @@ -2634,12 +2634,12 @@ měřena ve stanoveném směru Z - + Section orientation Orientace průřezu - + Remove Odstranit @@ -2698,23 +2698,23 @@ měřena ve stanoveném směru Odebrat hranu - + Pipe parameters Parametry potrubí - + Remove Odstranit - - + + Input error Chyba zadání - + No active body Žádné aktivní tělo @@ -2757,12 +2757,12 @@ měřena ve stanoveném směru Seznam lze přeřadit přetažením - + Section transformation Transformace průřezů - + Remove Odstranit @@ -3796,7 +3796,7 @@ To může vést k neočekávaným výsledkům. Plocha - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Pokud máte starší dokument s objekty PartDesignu bez Těla, použijte funkci pro migraci, která je umístí do Těla. - + Active Body Required Je potřeba aktivní Tělo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Pro vytvoření nového PartDesign objektu musí být v dokumentu aktivní objekt Tělo. Aktivujte prosím jeden (dvojklikem) nebo vytvořte nové Tělo. - + Feature is not in a body Prvek není tělo - + In order to use this feature it needs to belong to a body object in the document. Pro použití tohoto prvku je potřebné, aby patřil k objektu těla v dokumentu. - + Feature is not in a part Prvek není díl - + In order to use this feature it needs to belong to a part object in the document. Pro použití tohoto prvku je potřebné, aby patřil k objektu díl v dokumentu. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts index 8a7873224c..60e3d333fc 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts @@ -2633,12 +2633,12 @@ entlang der angegebenen Richtung gemessen Z - + Section orientation Ausrichtung des Abschnitts - + Remove Entfernen @@ -2697,23 +2697,23 @@ entlang der angegebenen Richtung gemessen Kante entfernen - + Pipe parameters Rohr-Parameter - + Remove Entfernen - - + + Input error Eingabefehler - + No active body Kein aktiver Körper @@ -2756,12 +2756,12 @@ entlang der angegebenen Richtung gemessen Die Liste kann durch Ziehen neu sortiert werden - + Section transformation Abschnitt Transformation - + Remove Entfernen @@ -3793,7 +3793,7 @@ This may lead to unexpected results. Fläche - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3802,33 +3802,33 @@ If you have a legacy document with PartDesign objects without Body, use the migr Wenn ein älteres Dokument mit PartDesign-Objekten ohne Körper vorliegt, wird die PartDesign-Funktion Migrieren verwendet, um sie in einen Körper abzulegen. - + Active Body Required Aktiver Körper erforderlich - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Um ein neues PartDesign-Objekt zu erstellen, muss ein aktiver Körper in diesem Dokument vorhanden sein. Bitte aktivieren (Doppelklick) Sie einen oder erstellen einen neuen Körper. - + Feature is not in a body Objekt ist nicht Teil eines Körpers - + In order to use this feature it needs to belong to a body object in the document. Um diese Funktion verwenden zu können, muss es Teil eines Körpers im Dokument sein. - + Feature is not in a part Objekt ist nicht Teil einer Baugruppe - + In order to use this feature it needs to belong to a part object in the document. Um diese Funktion verwenden zu können, muss es Teil einer Baugruppe im Dokument sein. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_el.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_el.ts index e5413c2564..b65d065957 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_el.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_el.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation Προσανατολισμός τομής - + Remove Αφαίρεση @@ -2697,23 +2697,23 @@ measured along the specified direction Αφαιρέστε Ακμή - + Pipe parameters Παράμετροι αντικειμένων χωρίς πάτωμα και οροφή - + Remove Αφαίρεση - - + + Input error Σφάλμα εισαγωγής - + No active body No active body @@ -2756,12 +2756,12 @@ measured along the specified direction Η λίστα μπορεί να αναδιαταχθεί με σύρσιμο - + Section transformation Μετατόπιση τμήματος - + Remove Αφαίρεση @@ -3795,7 +3795,7 @@ This may lead to unexpected results. Όψη - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3804,32 +3804,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. - + Active Body Required Απαιτείται Ενεργό Σώμα - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Για να δημιουργήσετε ένα νέο αντικείμενο ΣχεδίασηςΕξαρτήματος, θα πρέπει να υπάρχει ένα ενεργό Σώμα στο έγγραφο. Παρακαλώ ενεργοποιήστε κάποιο (κάνοντας διπλό κλικ) ή δημιουργήστε ένα νέο Σώμα. - + Feature is not in a body Το χαρακτηριστικό δεν βρίσκεται σε κάποιο σώμα - + In order to use this feature it needs to belong to a body object in the document. Προκειμένου να χρησιμοποιήσετε αυτό το χαρακτηριστικό θα πρέπει να ανήκει σε κάποιο σώμα που βρίσκεται στο έγγραφο. - + Feature is not in a part Το χαρακτηριστικό δεν βρίσκεται σε κάποιο εξάρτημα - + In order to use this feature it needs to belong to a part object in the document. Προκειμένου να χρησιμοποιήσετε αυτό το χαρακτηριστικό θα πρέπει να ανήκει σε κάποιο εξάρτημα που βρίσκεται στο έγγραφο. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-AR.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-AR.ts index d7b2aad1cc..b6bdb5a2e2 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-AR.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-AR.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation Orientación de la sección - + Remove Eliminar @@ -2697,23 +2697,23 @@ measured along the specified direction Eliminar Arista - + Pipe parameters Parámetros de barrido - + Remove Eliminar - - + + Input error Error de entrada - + No active body Ningún cuerpo activo @@ -2756,12 +2756,12 @@ measured along the specified direction La lista puede ser reordenada arrastrando - + Section transformation Transformación de sección - + Remove Eliminar @@ -3795,7 +3795,7 @@ Esto puede conducir a resultados inesperados. Cara - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3804,32 +3804,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Si tienes un documento heredado con objetos DiseñoDePieza sin un Cuerpo, utiliza la función de migración en DiseñoDePieza para ponerlos en un Cuerpo. - + Active Body Required Cuerpo Activo Requerido - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Para crear un nuevo objeto de DiseñoDePieza, debe haber un objeto activo del cuerpo en el documento. Por favor active (doble clic) o cree un nuevo cuerpo. - + Feature is not in a body Operación no está en un cuerpo - + In order to use this feature it needs to belong to a body object in the document. Para poder utilizar esta operación debe pertenecer a un objeto del cuerpo en el documento. - + Feature is not in a part La operación no está en una pieza - + In order to use this feature it needs to belong to a part object in the document. Para poder utilizar esta operación necesita pertenecer a un objeto de pieza en el documento. @@ -3963,7 +3963,7 @@ This feature is broken and can't be edited. The document "%1" you are editing was designed with an old version of PartDesign workbench. - El documento "%1" que está editando fue diseñado con una versión antigua del entorno de trabajo DiseñoDePieza. + El documento "%1" que está editando fue diseñado con una versión antigua del banco de trabajo DiseñoDePieza. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-ES.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-ES.ts index 3d6d62e079..048d374442 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-ES.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es-ES.ts @@ -537,7 +537,7 @@ para que se evite la auto intersección. Pad a selected sketch - Extruir un croquis seleccionado + Extruir croquis seleccionado @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation Orientación de la sección - + Remove Quitar @@ -2697,23 +2697,23 @@ measured along the specified direction Quitar arista - + Pipe parameters Parámetros del tubo - + Remove Quitar - - + + Input error Error de entrada - + No active body Ningún cuerpo activo @@ -2756,12 +2756,12 @@ measured along the specified direction La lista puede ser reordenada arrastrando - + Section transformation Transformación de la sección - + Remove Quitar @@ -3791,7 +3791,7 @@ This may lead to unexpected results. Cara - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3800,32 +3800,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Si tienes un documento heredado con objetos PartDesign sin un Cuerpo, utiliza la función de migración en PartDesign para ponerlos en un Cuerpo. - + Active Body Required Se requiere Cuerpo Activo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Para crear un nuevo objeto de PartDesign, debe haber un objeto activo del cuerpo en el documento. Por favor active (doble click) o cree un nuevo cuerpo. - + Feature is not in a body Función no está en un cuerpo - + In order to use this feature it needs to belong to a body object in the document. Para poder utilizar esta operación debe pertenecer a un objeto del cuerpo en el documento. - + Feature is not in a part Función no está en una pieza - + In order to use this feature it needs to belong to a part object in the document. Para poder usar esta operación debe pertenecer a una pieza objeto en el documento. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_eu.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_eu.ts index 3e637e6f19..679f4f6440 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_eu.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_eu.ts @@ -2633,12 +2633,12 @@ zehaztutako norabidean Z - + Section orientation Sekzio-orientazioa - + Remove Kendu @@ -2697,23 +2697,23 @@ zehaztutako norabidean Kendu ertza - + Pipe parameters Hodi-parametroak - + Remove Kendu - - + + Input error Sarrera-errorea - + No active body Ez dago gorputz aktiborik @@ -2756,12 +2756,12 @@ zehaztutako norabidean Zerrenda ordenatzeko, arrastatu elementuak - + Section transformation Sekzioaren transformazioa - + Remove Kendu @@ -3793,7 +3793,7 @@ Espero ez diren emaitzak gerta daitezke. Aurpegia - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3802,32 +3802,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Bertsio zaharragoan dagoen dokumentu bat baduzu eta gorputzik gabeko PartDesign objektuak baditu, erabili PartDesign-en migrazio-funtzioa haiek gorputz batean sartzeko. - + Active Body Required Gorputz aktiboa behar da - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. PartDesign objektu berria sortzeko, gorputz-objektu aktibo bat egon behar du dokumentuan. Aktibatu gorputz bat (klik bikoitza) edo sortu gorputz berria. - + Feature is not in a body Elementua ez dago gorputz batean - + In order to use this feature it needs to belong to a body object in the document. Ezaugarri hau erabili ahal izateko, dokumentuko groputz-objektu batekoa izan behar du. - + Feature is not in a part Elementua ez dago pieza batean - + In order to use this feature it needs to belong to a part object in the document. Ezaugarri hau erabili ahal izateko, dokumentuko pieza-objektu batekoa izan behar du. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts index f06a212554..94c2a352e8 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Osion orientaatio - + Remove Poista @@ -2698,23 +2698,23 @@ measured along the specified direction Poista särmä - + Pipe parameters Putken parametrit - + Remove Poista - - + + Input error Syötteen virhe - + No active body No active body @@ -2757,12 +2757,12 @@ measured along the specified direction List can be reordered by dragging - + Section transformation Osioiden välinen muunnos - + Remove Poista @@ -3796,7 +3796,7 @@ Tämä voi johtaa odottamattomiin tuloksiin. Tahko - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Jos asiakirja on vanhentunutta tyyppiä OsanSuunnittelu-objekteilla ilman kappaleita, valitse muunnostoiminto OsanSuunnittelussa ja sijoita objektit kappaleeseen. - + Active Body Required Tarvitaan aktiivinen kappale - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Jotta uudeen OsanSuunnittelu-objektin voisi luoda, asiakirjassa pitäisi olla aktiivinen kappale. Tee kappaleesta aktiivinen (tuplaklikkaus) tai luo uusi. - + Feature is not in a body Piirre ei ole kappaleessa - + In order to use this feature it needs to belong to a body object in the document. Jotta tätä piirrettä voitaisiin käyttää, sen pitäisi kuulua asiakirjaan sisältyvään kappale-objektiin. - + Feature is not in a part Piirre ei kuulu osaan - + In order to use this feature it needs to belong to a part object in the document. Jotta tätä piirrettä voitaisiin käyttää, sen pitäisi kuulua asiakirjaan sisältyvään osa-objektiin. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts index 447c81a464..e42815a60d 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts @@ -587,12 +587,12 @@ False=engrenage interne Create a datum point - Créez un point de référence + Créer un point de référence Create a new datum point - Créez un nouveau point de référence + Créer un nouveau point de référence @@ -1298,12 +1298,12 @@ If zero, it is equal to Radius2 Right-handed - Main droite + Pas à droite Left-handed - Main gauche + Pas à gauche @@ -1450,7 +1450,7 @@ If zero, it is equal to Radius2 Remove - Enlever + Supprimer @@ -1700,7 +1700,7 @@ click again to end selection Remove - Enlever + Supprimer @@ -2147,7 +2147,7 @@ click again to end selection Remove - Enlever + Supprimer @@ -2210,7 +2210,7 @@ click again to end selection Remove - Enlever + Supprimer @@ -2253,7 +2253,7 @@ click again to end selection Remove - Enlever + Supprimer @@ -2296,7 +2296,7 @@ click again to end selection Remove - Enlever + Supprimer @@ -2326,7 +2326,7 @@ click again to end selection Add scaled transformation - Ajouter une transformation de mise à échelle + Ajouter une transformation de mise à l'échelle @@ -2630,14 +2630,14 @@ mesurée dans la direction spécifiée Z - + Section orientation Orientation de la section - + Remove - Enlever + Supprimer @@ -2694,23 +2694,23 @@ mesurée dans la direction spécifiée Enlever une arête - + Pipe parameters Paramètres de balayage - + Remove - Enlever + Supprimer - - + + Input error Erreur de saisie - + No active body Aucun corps actif @@ -2753,14 +2753,14 @@ mesurée dans la direction spécifiée La liste peut être réordonnée en faisant glisser - + Section transformation Transformation de section - + Remove - Enlever + Supprimer @@ -2861,7 +2861,7 @@ mesurée dans la direction spécifiée Remove - Enlever + Supprimer @@ -2989,7 +2989,7 @@ mesurée dans la direction spécifiée Remove - Enlever + Supprimer @@ -3022,7 +3022,7 @@ mesurée dans la direction spécifiée Remove - Enlever + Supprimer @@ -3263,7 +3263,7 @@ click again to end selection Scaled parameters - Paramètres d'échelle + Paramètres de la mise à l'échelle @@ -3476,7 +3476,7 @@ click again to end selection Please create a plane first or select a face to sketch on - Veuillez d'abord créer un plan, ou choisissez une face sur laquelle appliquer l'esquisse + Créer d'abord un plan ou choisir une face sur laquelle appliquer l'esquisse @@ -3784,7 +3784,7 @@ This may lead to unexpected results. Face - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3793,32 +3793,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Si vous avez un vieux document avec des objets PartDesign sans corps, utilisez la fonction de migration sous PartDesign pour les inclure dans un corps. - + Active Body Required Corps actif requis - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Pour créer un nouvel objet de PartDesign, il doit y avoir un corps actif dans le document. Veuillez en activer un (par double clic) ou créer un nouveau corps. - + Feature is not in a body La fonction ne fait pas partie d'un corps - + In order to use this feature it needs to belong to a body object in the document. Pour utiliser cette fonction, elle doit appartenir à un corps dans le document. - + Feature is not in a part La fonction ne fait pas partie d'une pièce - + In order to use this feature it needs to belong to a part object in the document. Afin d'utiliser cette fonction, elle doit appartenir à un objet pièce dans le document. @@ -4015,7 +4015,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Edit multi-transform - Modifier plusieurs transformations + Modifier la transformation multiple @@ -4814,7 +4814,7 @@ plus de 90 : rayon du trou plus grand à la base All - Tous + Tout diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_gl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_gl.ts index 835ed1661a..bebb5770ff 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_gl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_gl.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Orientación da sección - + Remove Rexeitar @@ -2698,23 +2698,23 @@ measured along the specified direction Rexeitar aresta - + Pipe parameters Parámetros do tubo - + Remove Rexeitar - - + + Input error Input error - + No active body No active body @@ -2757,12 +2757,12 @@ measured along the specified direction List can be reordered by dragging - + Section transformation Transformación da sección - + Remove Rexeitar @@ -3796,7 +3796,7 @@ Esto pode levar a resultados inexperados. Face - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Se tes un antigo documento con obxectos PartDesign sen Corpo, usa a función migrar en PartDesign poñéndoa dentro do Corpo. - + Active Body Required Require Corpo Activo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Para crear un novo obxecto PartDesign, debe haber un obxecto Corpo activo no documento. Por favor, faga un activo (doble clic) ou cre un novo Corpo. - + Feature is not in a body O recurso non está nun corpo - + In order to use this feature it needs to belong to a body object in the document. Para usar este recurso é preciso que pertenza a un obxecto corpo no documento. - + Feature is not in a part O recurso non está nunha peza - + In order to use this feature it needs to belong to a part object in the document. Para usar este recurso é preciso que pertenza a un obxecto peza no documento. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts index 5247cee502..96ae624a65 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts @@ -123,7 +123,7 @@ tako da je izbjegnuto samopresjecanje. The distance by which the reference profile is shifted outwards, normalized by the module. - The distance by which the reference profile is shifted outwards, normalized by the module. + Udaljenost do koje je referentni profil pomaknut prema van, normalizirana modulom. @@ -1078,7 +1078,7 @@ tako da je izbjegnuto samopresjecanje. Profile Shift Coefficient - Profile Shift Coefficient + Koeficijent pomeranja profila @@ -1571,8 +1571,7 @@ kliknite ponovno za završetak odabira Empty chamfer created ! - Empty chamfer created ! - + Napravljen je prazan tipski žlijeb ! @@ -1672,8 +1671,7 @@ kliknite ponovno za završetak odabira Empty draft created ! - Empty draft created ! - + Napravljen je prazan tipski nacrt ! @@ -1877,8 +1875,7 @@ kliknite ponovno za završetak odabira Empty fillet created ! - Empty fillet created ! - + Napravljen je prazan tipski obrub ! @@ -2028,12 +2025,12 @@ kliknite ponovno za završetak odabira Warning: helix might be self intersecting - Warning: helix might be self intersecting + Upozorenje: spirala možda presjeca sama sebe Error: helix touches itself - Error: helix touches itself + Upozorenje: spirala dodiruje sama sebe @@ -2634,12 +2631,12 @@ mjereno duž navedenog smjera Z - + Section orientation Odjeljak orijentacija - + Remove Ukloniti @@ -2698,23 +2695,23 @@ mjereno duž navedenog smjera Ukloni rub - + Pipe parameters Parametari cijevi - + Remove Ukloniti - - + + Input error Pogreška na ulazu - + No active body Nema aktivnog tijela @@ -2757,12 +2754,12 @@ mjereno duž navedenog smjera Popis se može promijeniti povlačenjem - + Section transformation Transformacija odjeljka - + Remove Ukloniti @@ -3115,8 +3112,7 @@ kliknite ponovno za završetak odabira Empty thickness created ! - Empty thickness created ! - + Napravljena je prazna tipska debljina ! @@ -3800,7 +3796,7 @@ To može dovesti do neočekivanih rezultata. Površina - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3809,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Ako imate naslijeđeni dokument sa PartDesign objektom bez tijela koristite funkciju transfera u modulu PartDesign da bi ste ga stavili u tijelo. - + Active Body Required Zahtijeva aktivno tijelo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Za stvaranje novog PartDesign objekta, morate imati aktivno tijelo objekta u dokumentu. Aktivirati jedno tijelo (dupli klik) ili stvorite novo tijelo. - + Feature is not in a body Element nije u tijelu - + In order to use this feature it needs to belong to a body object in the document. Da biste mogli koristiti ovu značajku ona mora pripadati objektu tijela u dokumentu. - + Feature is not in a part Element nije u dijelu - + In order to use this feature it needs to belong to a part object in the document. Da biste mogli koristiti ovu značajku ona mora pripadati objektu dio u dokumentu. @@ -4007,42 +4003,42 @@ Iako ćete moći migrirati u bilo svakom trenutku kasnije s 'Dizajn dijela -> Edit chamfer - Edit chamfer + Uredi žlijeb Edit draft - Edit draft + Uredi nacrt Edit fillet - Edit fillet + Uredi obrub Edit linear pattern - Edit linear pattern + Uredi pravocrtni uzorak Edit mirrored - Edit mirrored + Uredi zrcaljenje Edit multi-transform - Edit multi-transform + Uredi višestruku transformaciju Edit polar pattern - Edit polar pattern + Uredi kružni uzorak Edit scaled - Edit scaled + Uredi skaliranje @@ -4569,8 +4565,8 @@ Dubina rupe For countersinks this is the depth of the screw's top below the surface - For countersinks this is the depth of -the screw's top below the surface + Za konusno upušten otvor ovo je +dubina vijka ispod kosine upuštanja @@ -4814,27 +4810,27 @@ preko 90: veći polumjer rupe na dnu Shaft wizard - Shaft wizard + Kreator osovina Section 1 - Section 1 + Odjeljak 1 Section 2 - Section 2 + Odjeljak 2 Add column - Add column + Dodaj stupac Section %s - Section %s + Odjeljak %s @@ -4847,12 +4843,12 @@ preko 90: veći polumjer rupe na dnu Missing module - Missing module + Nedostaje modul You may have to install the Plot add-on - You may have to install the Plot add-on + Morate možda instalirati dodatak Plot @@ -4886,63 +4882,63 @@ preko 90: veći polumjer rupe na dnu Linked object is not a PartDesign feature - Linked object is not a PartDesign feature + Objekt koji je povezan nije značajka modula Oblikovanje tijela Tip shape is empty - Tip shape is empty + Krajnji oblik je prazan BaseFeature link is not set - BaseFeature link is not set + Poveznica na Osnovni Oblik nije postavljena BaseFeature must be a Part::Feature - BaseFeature must be a Part::Feature + BaznaZnačajka mora biti Komponenta::Značajka BaseFeature has an empty shape - BaseFeature has an empty shape + BaznaZnačajka ima prazan oblik Cannot do boolean cut without BaseFeature - Cannot do boolean cut without BaseFeature + Ne može se izvršiti rez bulovom operacijom bez BaznaZnačajka Cannot do boolean with anything but Part::Feature and its derivatives - Cannot do boolean with anything but Part::Feature and its derivatives + Ne može se izvršiti booleova opercija za sve osim za Komponenta::Značajka i njene izvedenice Cannot do boolean operation with invalid base shape - Cannot do boolean operation with invalid base shape + Ne može se izvršiti booleova operacija sa neispravnim baznim oblikom Cannot do boolean on feature which is not in a body - Cannot do boolean on feature which is not in a body + Ne može se izvršiti booleova operacija na značajki koja nije tijelo Base shape is null - Base shape is null + Bazni oblik je prazan Tool shape is null - Tool shape is null + Oblik je prazan Fusion of tools failed - Fusion of tools failed + Spajanje Alata nije uspjelo @@ -4957,17 +4953,17 @@ preko 90: veći polumjer rupe na dnu Resulting shape is not a solid - Resulting shape is not a solid + Stvoreni oblik nije volumen tijelo Cut out failed - Cut out failed + Izrez nije uspjeo Common operation failed - Common operation failed + Uobičajena operacija nije uspjela @@ -4987,65 +4983,65 @@ preko 90: veći polumjer rupe na dnu Result has multiple solids: that is not currently supported. - Result has multiple solids: that is not currently supported. + Rezultat ima više volumenskih tijela: ovo trenutno nije podržano. Failed to create chamfer - Failed to create chamfer + Nije uspjelo stvaranje žlijeba Resulting shape is null - Resulting shape is null + Stvoreni oblik je prazan Resulting shape is invalid - Resulting shape is invalid + Stvoreni oblik je neispravan Size must be greater than zero - Size must be greater than zero + Veličina mora biti veća od 0 Size2 must be greater than zero - Size2 must be greater than zero + Veličina2 mora biti veća od 0 Angle must be greater than 0 and less than 180 - Angle must be greater than 0 and less than 180 + Kut mora biti veći od 0 i manji od 180 Failed to create draft - Failed to create draft + Nije uspjelo stvaranje nacrta Fillet radius must be greater than zero - Fillet radius must be greater than zero + Polumjer obruba mora biti veća od 0 Failed to create fillet - Failed to create fillet + Nije uspjelo stvaranje obruba Angle of groove too large - Angle of groove too large + Kut utora prevelik Angle of groove too small - Angle of groove too small + Kut utora premali @@ -5063,60 +5059,60 @@ preko 90: veći polumjer rupe na dnu Creating a face from sketch failed - Creating a face from sketch failed + Stvaranje lice od skice nije uspjelo Revolve axis intersects the sketch - Revolve axis intersects the sketch + Os zaokreta presjeca skicu Cut out of base feature failed - Cut out of base feature failed + Izrez baznog elementa nije uspjelo Could not revolve the sketch! - Could not revolve the sketch! + Nije moguće zavrtiti skicu! Could not create face from sketch. Intersecting sketch entities in a sketch are not allowed. - Could not create face from sketch. -Intersecting sketch entities in a sketch are not allowed. + Nije moguće napraviti površinu pomoću skice. +Nije dozvoljeno presjecanje elemenata na skici. Error: Pitch too small - Error: Pitch too small + Greška: Otklon je premali Error: height too small! - Error: height too small! + Greška: Visina je premala! Error: pitch too small! - Error: pitch too small! + Greška: Otklon je premali! Error: turns too small! - Error: turns too small! + Greška: Broj zaokreta je premali! Error: either height or growth must not be zero! - Error: either height or growth must not be zero! + Greška: ili visina ili rast ne smiju biti 0 ! @@ -5126,17 +5122,17 @@ Intersecting sketch entities in a sketch are not allowed. Error: No valid sketch or face - Error: No valid sketch or face + Greška: nema valjane skice ili površine Error: Face must be planar - Error: Face must be planar + Greška: Površina mora biti ravna Error: Could not build - Error: Could not build + Greška: nije moguće napraviti Heliks @@ -5144,534 +5140,536 @@ Intersecting sketch entities in a sketch are not allowed. Error: Result is not a solid - Error: Result is not a solid + Greška: Rezultat nije volumensko tijelo Error: There is nothing to subtract - Error: There is nothing to subtract + Greška: nema ničega za oduzimanje Error: Result has multiple solids - Error: Result has multiple solids + Greška: Rezultat ima višestruka volumenska tijela Error: Adding the helix failed - Error: Adding the helix failed + Greška: Dodavanje heliksa nije uspjelo Error: Intersecting the helix failed - Error: Intersecting the helix failed + Greška: presjecanje sa heliksom nije uspjelo Error: Subtracting the helix failed - Error: Subtracting the helix failed + Greška: Oduzimanje heliksa nije uspjelo Error: Could not create face from sketch - Error: Could not create face from sketch + Greška: nije moguće napraviti površinu iz skice Hole error: Creating a face from sketch failed - Hole error: Creating a face from sketch failed + Greška provrta: napraviti površinu iz skice nije uspjelo Hole error: Unsupported length specification - Hole error: Unsupported length specification + Greška provrta: Nepodržana specifikacija dužine Hole error: Invalid hole depth - Hole error: Invalid hole depth + Greška provrta: Neispravna dubina rupe Hole error: Invalid taper angle - Hole error: Invalid taper angle + Greška provrta: Pogrešan kut konusa Hole error: Hole cut diameter too small - Hole error: Hole cut diameter too small + Greška provrta: Promjer rezanog otvora je premali Hole error: Hole cut depth must be less than hole depth - Hole error: Hole cut depth must be less than hole depth + Greška provrta: Dubina rezanog otvora mora biti manja od dubine rupe Hole error: Hole cut depth must be greater or equal to zero - Hole error: Hole cut depth must be greater or equal to zero + Greška provrta: Dubina rezanog otvora mora biti veća ili jednaka 0 Hole error: Invalid countersink - Hole error: Invalid countersink + Greška provrta: Pogrešano upuštanje kose rupe Hole error: Invalid drill point angle - Hole error: Invalid drill point angle + Greška provrta: Pogrešan kut mjesta bušenja Hole error: Invalid drill point - Hole error: Invalid drill point + Greška provrta: Pogrešano mjesto bušenja Hole error: Could not revolve sketch - Hole error: Could not revolve sketch + Greška provrta: Rotacija skice nije uspjela Hole error: Resulting shape is empty - Hole error: Resulting shape is empty + Greška provrta: Rezultat je prazna figura Error: Adding the thread failed - Error: Adding the thread failed + Greška: Dodaj navoj nije uspjelo Boolean operation failed - Boolean operation failed + Booleanska operacija nije uspjela + Could not create face from sketch. Intersecting sketch entities or multiple faces in a sketch are not allowed for making a pocket up to a face. - Could not create face from sketch. -Intersecting sketch entities or multiple faces in a sketch are not allowed for making a pocket up to a face. + Nije moguće napraviti površinu pomoću skice. +Ukrštanje elemenata skice ili više površina u skici nije dozvoljeno za izradu utora do plohe. Thread type out of range - Thread type out of range + Vrsta navoja izvan dometa Thread size out of range - Thread size out of range + Veličina navoja izvan dometa Error: Thread could not be built - Error: Thread could not be built + Greška: navoj nije moguće napraviti Loft: At least one section is needed - Loft: At least one section is needed + Izvuci profil: Potreban je barem jedna presjek. Loft: Could not obtain profile shape - Loft: Could not obtain profile shape + Izvučeni oblik presjeka: Nije moguće dobiti oblik profila Loft: When using points for profile/sections, the sketch should have a single point - Loft: When using points for profile/sections, the sketch should have a single point + Izvučeni oblik presjeka: Kada koristite točke za profil/odjeljake, skica bi trebala imati samo jednu točku. Loft: All sections need to be part features - Loft: All sections need to be part features + Izvučeni oblik presjeka: Svi dijelovi moraju biti dio značajke. Loft: Could not obtain section shape - Loft: Could not obtain section shape + Izvučeni oblik presjeka: Nije moguće dobiti odjeljak profila Loft: A section doesn't contain any wires nor is a single vertex - Loft: A section doesn't contain any wires nor is a single vertex + Izvučeni oblik presjeka: Odjeljak ne sadrži niti jednu žicu niti je pojedinačna tjemena točka. Loft: Only the profile and the last section can be vertices - Loft: Only the profile and the last section can be vertices + Izvučeni oblik presjeka: Samo profili i zadnje sjecište mogu biti vrhovi Loft: For closed lofts only the profile can be a vertex - Loft: For closed lofts only the profile can be a vertex + Izvučeni oblik presjeka: Za zatvorene izvučene djelove samo profil može biti vrh. Loft: all loft sections need to have the same amount of inner wires - Loft: all loft sections need to have the same amount of inner wires + Izvučeni oblik presjeka: svi presjeci izvučenog djela trebaju imati isti broj poveznih žica Loft could not be built - Loft could not be built + Izvučeni oblik presjeka ne može se napraviti Loft: Result is not a solid - Loft: Result is not a solid + Izvučeni oblik presjeka: Rezultat nije volumensko tijelo Loft: There is nothing to subtract from - Loft: There is nothing to subtract from + Izvučeni oblik presjeka: nema ničega za oduzimanje od Loft: Adding the loft failed - Loft: Adding the loft failed + Izvučeni oblik presjeka: Dodaj izvučeni oblik nije uspjelo Loft: Subtracting the loft failed - Loft: Subtracting the loft failed + Izvučeni oblik presjeka: Oduzmi izvučeni oblik nije uspjelo Loft: A fatal error occurred when making the loft - Loft: A fatal error occurred when making the loft + Izvučeni oblik presjeka: Došlo je do fatalne pogreške pri izradi izvučenog oblika Pad: Creation failed because direction is orthogonal to sketch's normal vector - Pad: Creation failed because direction is orthogonal to sketch's normal vector + +izvlačenje: Kreiranje nije uspjelo jer je smjer ortogonalan na normalu vektora skice. Pad: Creating a face from sketch failed - Pad: Creating a face from sketch failed + Izvlačenje: Pravljenje površine iz skice nije uspjelo Pad: Resulting shape is empty - Pad: Resulting shape is empty + Izvlačenje: Dobijeni oblik je prazan Pad: Fusion with base feature failed - Pad: Fusion with base feature failed + Izvlačenje: Spajanje sa baznom značajkom nije uspjelo Could not create face from sketch. Intersecting sketch entities or multiple faces in a sketch are not allowed. - Could not create face from sketch. -Intersecting sketch entities or multiple faces in a sketch are not allowed. + Nije moguće napraviti površinu pomoću skice. +Nije dozvoljeno presjecanje elemenata ili višestruke površine na skici. Pipe: Could not obtain profile shape - Pipe: Could not obtain profile shape + Izvlačenje po putanji: Nije moguće dobiti oblik profila No spine linked - No spine linked + Vodilna krivulja nije povezana No auxiliary spine linked. - No auxiliary spine linked. + Pomoćna vodilna krivulja nije povezana Pipe: Only one isolated point is needed if using a sketch with isolated points for section - Pipe: Only one isolated point is needed if using a sketch with isolated points for section + Izvlačenje po putanji: Samo jedna izolirana točka je potrebna ako koristite skicu sa izoliranim točkama za sjecište Pipe: At least one section is needed when using a single point for profile - Pipe: At least one section is needed when using a single point for profile + Izvlačenje po putanji: Ako koristite tačku za profil onda vam je potreban barem još jedan presjek Pipe: All sections need to be part features - Pipe: All sections need to be part features + Izvlačenje po putanji: Svi dijelovi moraju biti dio značajke. Pipe: Could not obtain section shape - Pipe: Could not obtain section shape + Izvlačenje po putanji: Nije moguće dobiti oblik po presjeku Pipe: Only the profile and last section can be vertices - Pipe: Only the profile and last section can be vertices + Izvlačenje po putanji: Samo profili i zadnje sjecište mogu biti vrhovi Multisections need to have the same amount of inner wires as the base section - Multisections need to have the same amount of inner wires as the base section + Višesjeci moraju imati isti broj unutarnjih žica kao osnovni odjeljak. Path must not be a null shape - Path must not be a null shape + Putanja vodilja ne smije da bude bez elemenata Pipe could not be built - Pipe could not be built + Izvlačenje po putanji se ne može napraviti Result is not a solid - Result is not a solid + Rezultat nije volumensko tijelo Pipe: There is nothing to subtract from - Pipe: There is nothing to subtract from + Izvlačenje po putanji: nema ničega za oduzimanje od Adding the pipe failed - Adding the pipe failed + Nije uspjelo dodati cijev Subtracting the pipe failed - Subtracting the pipe failed + Nije uspjelo oduzeti cijev A fatal error occurred when making the pipe - A fatal error occurred when making the pipe + Došlo je do fatalne pogreške pri izradi cijevi Invalid element in spine. - Invalid element in spine. + Neispravni element u Vodilnoj krivulji Element in spine is neither an edge nor a wire. - Element in spine is neither an edge nor a wire. + Element u Vodilnoj krivulji nije ni rub ni žica Spine is not connected. - Spine is not connected. + Vodilna krivulja nije povezana. Spine is neither an edge nor a wire. - Spine is neither an edge nor a wire. + Vodilna krivulja nije ni rub ni žica Invalid spine. - Invalid spine. + Ne važeća vodilna krivulja Pocket: Creation failed because direction is orthogonal to sketch's normal vector - Pocket: Creation failed because direction is orthogonal to sketch's normal vector + Utor: Kreiranje nije uspjelo jer je smjer ortogonalan na normalu vektora skice. Pocket: Creating a face from sketch failed - Pocket: Creating a face from sketch failed + Utor: Pravljenje površine iz skice nije uspjelo Pocket: Extruding up to a face is only possible if the sketch is located on a face - Pocket: Extruding up to a face is only possible if the sketch is located on a face + Utor: Izduženje do plohe je samo moguće ako je skica smještena na plohi. Pocket: Up to face: Could not get SubShape! - Pocket: Up to face: Could not get SubShape! + Utor: Do površine: Nije moguće dobiti podoblik Pocket: Resulting shape is empty - Pocket: Resulting shape is empty + Utor: Dobijeni oblik je prazan Pocket: Cut out of base feature failed - Pocket: Cut out of base feature failed + Utor: Izrez baznog elementa nije uspjelo Cannot subtract primitive feature without base feature - Cannot subtract primitive feature without base feature + Nemoguće odrediti razliku primitivnog elementa bez baznog elementa Adding the primitive failed - Adding the primitive failed + Nije uspjelo dodati primitiv Subtracting the primitive failed - Subtracting the primitive failed + Nije uspjelo oduzeti primitiv Length of box too small - Length of box too small + Dužina kutije je premala Width of box too small - Width of box too small + Širina kutije je premala Height of box too small - Height of box too small + Visina kutije je premala Radius of cylinder too small - Radius of cylinder too small + Polumjer cilindra je premali Height of cylinder too small - Height of cylinder too small + Visina cilindra je premala Rotation angle of cylinder too small - Rotation angle of cylinder too small + Kut rotacije cilindra je premali Radius of sphere too small - Radius of sphere too small + Polumjer kugle je premali Radius of cone cannot be negative - Radius of cone cannot be negative + Polumjer stožca ne može biti negativan The radii for cones must not be equal - The radii for cones must not be equal + Polumjeri stošca ne smiju biti isti Height of cone too small - Height of cone too small + Visina stožca je premala Radius of ellipsoid too small - Radius of ellipsoid too small + Polumjer elipsoida je premali Radius of torus too small - Radius of torus too small + Polumjer torusa je premali Polygon of prism is invalid, must have 3 or more sides - Polygon of prism is invalid, must have 3 or more sides + Višekutnik prizme neispravan, mora imati 3 ili više strana Circumradius of the polygon, of the prism, is too small - Circumradius of the polygon, of the prism, is too small + Polumjer opsega višekutnika prizme je premali Height of prism is too small - Height of prism is too small + Visina prizme je premala delta x of wedge too small - delta x of wedge too small + delta x od klina premala delta y of wedge too small - delta y of wedge too small + delta y od klina premala delta z of wedge too small - delta z of wedge too small + delta z od klina premala delta z2 of wedge is negative - delta z2 of wedge is negative + delta z2 od klina je negativna delta x2 of wedge is negative - delta x2 of wedge is negative + delta x2 od klina je negativna Angle of revolution too large - Angle of revolution too large + Kut zakretanja prevelik Angle of revolution too small - Angle of revolution too small + Kut zakretanja premali Fusion with base feature failed - Fusion with base feature failed + Spajanje sa baznom značajkom nije uspjelo Transformation feature Linked object is not a Part object - Transformation feature Linked object is not a Part object + Transformacija povezanog objekta nije dio objekta komponente No originals linked to the transformed feature. - No originals linked to the transformed feature. + Transformirana značajka ne sadrži izvornike. Cannot transform invalid support shape - Cannot transform invalid support shape + Transformacija neispravnog oblika potpore nije moguća. Transformation failed - Transformation failed + Transformacija nije uspjela Shape of additive/subtractive feature is empty - Shape of additive/subtractive feature is empty + Oblik dodavajuće/ oduzimajuće značajke je prazan Only additive and subtractive features can be transformed - Only additive and subtractive features can be transformed + Samo dodavajuće i oduzimajuće značajke mogu biti transformirane diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts index 3dd234bcdb..3249bdb9c8 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts @@ -2630,12 +2630,12 @@ measured along the specified direction Z - + Section orientation Szakasz tájolás - + Remove Törlés @@ -2694,23 +2694,23 @@ measured along the specified direction Él eltávolítás - + Pipe parameters Cső paraméterek - + Remove Törlés - - + + Input error Bemeneti hiba - + No active body Nincs aktív test @@ -2753,12 +2753,12 @@ measured along the specified direction A lista húzással átrendezhető - + Section transformation Szakasz átalakítás - + Remove Törlés @@ -3789,7 +3789,7 @@ Ez nem várt eredményekhez vezethet. Felület - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3798,32 +3798,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Ha van egy örökölt dokumentum AlkatrészTervezés objektummal Test nélkül, használja az áttelepítés funkciót az AlkatrészTervezésben ahhoz, hogy a Testbe helyezze azokat. - + Active Body Required Aktív test szükséges - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Egy új AlkatrészTervezés objektum létrehozásához ott kell lennie egy aktív Test objektumnak a dokumentumban. Kérjük aktiváljon egyet (dupla kattintással), vagy hozzon létre egy új Testet. - + Feature is not in a body Tulajdonság nem a testen van - + In order to use this feature it needs to belong to a body object in the document. Funkció használatához szükséges, hogy az egy test objektumhoz tartozzon a dokumentumban. - + Feature is not in a part Tulajdonság nem egy részben van - + In order to use this feature it needs to belong to a part object in the document. Funkció használatához szükséges, hogy az egy alkatrész objektumhoz tartozzon a dokumentumban. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts index 370eebe4a4..e9c7d4b041 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts @@ -2634,12 +2634,12 @@ misurata lungo la direzione specificata Z - + Section orientation Orientamento della sezione - + Remove Rimuovi @@ -2698,23 +2698,23 @@ misurata lungo la direzione specificata Rimuovi bordo - + Pipe parameters Parametri di sweep - + Remove Rimuovi - - + + Input error Errore di input - + No active body Nessun corpo attivo @@ -2757,12 +2757,12 @@ misurata lungo la direzione specificata La lista può essere riordinata trascinando - + Section transformation Trasformazione della sezione - + Remove Rimuovi @@ -3790,39 +3790,39 @@ This may lead to unexpected results. Faccia - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. Per poter utilizzare PartDesign è necessario che nel documento ci sia un oggetto Corpo attivo. Si prega di renderne uno attivo (doppio clic) o di crearne uno. Se si dispone di un vecchio documento con oggetti PartDesign senza corpo, utilizzare la funzione di migrazione in PartDesign per inserirli in un corpo. - + Active Body Required È richiesto un corpo attivo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Per creare un nuovo oggetto di PartDesign, nel documento deve essere attivo un oggetto corpo. Si prega di attivarne uno (doppio clic) o di crearne uno nuovo. - + Feature is not in a body La funzione non è in un corpo - + In order to use this feature it needs to belong to a body object in the document. Per poter utilizzare questa funzione essa deve appartenere a un oggetto corpo nel documento. - + Feature is not in a part La funzione non è in una parte - + In order to use this feature it needs to belong to a part object in the document. Per poter utilizzare questa funzione essa deve appartenere a un oggetto parte del documento. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts index b1e9998d14..8fc7a934db 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts @@ -2632,12 +2632,12 @@ measured along the specified direction Z - + Section orientation 選択方向 - + Remove 削除 @@ -2696,23 +2696,23 @@ measured along the specified direction エッジを削除 - + Pipe parameters パイプパラメーター - + Remove 削除 - - + + Input error 入力エラー - + No active body アクティブなボディーがありません。 @@ -2755,12 +2755,12 @@ measured along the specified direction リストをドラッグして並べ替えることができます - + Section transformation 断面変換 - + Remove 削除 @@ -3660,7 +3660,7 @@ This may lead to unexpected results. Body - ボディ|体 + Body @@ -3790,7 +3790,7 @@ This may lead to unexpected results. - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3799,32 +3799,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr ボディーの無い PartDesign オブジェクトを含む古い形式のドキュメントの場合は PartDesign の移行機能を使用してそれらをボディーに配置してください。 - + Active Body Required アクティブなボディーが必要です。 - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. 新しいPartDesignオブジェクトを作成するためにはドキュメント内にアクティブなボディーがなければなりません。どれかをアクティブにするか(ダブルクリック)、新しいボディーを作成してください。 - + Feature is not in a body フィーチャーがボディー内にありません。 - + In order to use this feature it needs to belong to a body object in the document. このフィーチャーを使用するためにはそれがドキュメント内のボディーオブジェクトに属している必要があります。 - + Feature is not in a part フィーチャーがパーツ内にありません。 - + In order to use this feature it needs to belong to a part object in the document. このフィーチャーを使用するためにはそれがドキュメント内のパーツオブジェクトに属している必要があります。 diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ka.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ka.ts index e5ef925048..49625e904f 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ka.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ka.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation კვეთის ორიენტაცია - + Remove მოცილება @@ -2697,23 +2697,23 @@ measured along the specified direction წიბოს მოცილება - + Pipe parameters ტრაექტორიის მორგება - + Remove მოცილება - - + + Input error Input error - + No active body აქტიური სხეულის გარეშე @@ -2756,12 +2756,12 @@ measured along the specified direction სიის გადალაგება შეგიძლიათ გადათრევით - + Section transformation კვეთის გარდაქმნა - + Remove მოცილება @@ -3795,7 +3795,7 @@ This may lead to unexpected results. სიბრტყე - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3804,32 +3804,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr თუ თქვენ გაქვთ მოძველებული დოკუმენტი PartDesign ობიექტებით სხეულის გარეშე, გამოიყენეთ მიგრაციის ფუნქცია PartDesign-ში მათი სხეულში ჩასადებად. - + Active Body Required საჭიროა აქტიური სხეული - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. ახალი ნაწილის დიზაინის ობიექტის შესაქმნელად, დოკუმენტში უნდა იყოს აქტიური სხეულის ობიექტი. გთხოვთ, გახადოთ ერთი აქტიური (ორმაგი დაწკაპუნებით) ან შექმენით ახალი სხეული. - + Feature is not in a body თვისება სხეულში არაა - + In order to use this feature it needs to belong to a body object in the document. ამ თვისების გამოსაყენებლად ის დოკუმენტში სხეულის ობიექტს უნდა ეკუთვნოდეს. - + Feature is not in a part თვისება არ წარმოადგენს ნაწილს - + In order to use this feature it needs to belong to a part object in the document. ამ თვისების გამოსაყენებლად ის დოკუმენტში ნაწლის ობიექტს უნდა ეკუთვნოდეს. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ko.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ko.ts index f939f0256e..087a4eb345 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ko.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ko.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Section orientation - + Remove 제거 @@ -2698,23 +2698,23 @@ measured along the specified direction 모서리 제거 - + Pipe parameters Pipe parameters - + Remove 제거 - - + + Input error 입력 오류 - + No active body No active body @@ -2757,12 +2757,12 @@ measured along the specified direction 드래그하여 목록을 재정렬할 수 있습니다. - + Section transformation Section transformation - + Remove 제거 @@ -3796,7 +3796,7 @@ This may lead to unexpected results. 면 선택 - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Body가 없는 PartDesign 개체가 있는 레거시 문서가 있는 경우 PartDesign의 마이그레이션 기능을 사용하여 Body에 넣습니다. - + Active Body Required 작업 바디(Body)가 필요합니다. - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. 새로운 부품설계(PartDesign) 객체를 생성하기 위해서, 문서에 활성화된 바디(Body)가 있어야 합니다. 하나의 바디(Body)를 더블 클릭하여 활성화하거나 새로운 바디(Body)를 생성하세요. - + Feature is not in a body 바디(Body)에 피처가 없습니다. - + In order to use this feature it needs to belong to a body object in the document. 이 피처를 사용하기 위해서는, 피처가 현재 문서에 있는 바디(Body) 객체에 속해야 합니다. - + Feature is not in a part 피처가 파트에 없습니다. - + In order to use this feature it needs to belong to a part object in the document. 이 피처를 사용하기 위해서는, 피처가 현재 문서에 있는 파트 객체에 속해야 합니다. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts index 62b2fe8537..6217f7ddcc 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts @@ -2632,12 +2632,12 @@ gemeten in de opgegeven richting Z - + Section orientation Orientatie selectie - + Remove Verwijderen @@ -2696,23 +2696,23 @@ gemeten in de opgegeven richting Verwijder rand - + Pipe parameters Pijp parameters - + Remove Verwijderen - - + + Input error Invoerfout - + No active body Geen actief lichaam @@ -2755,12 +2755,12 @@ gemeten in de opgegeven richting Lijst kan worden gesorteerd door te slepen - + Section transformation Selectie Transformatie - + Remove Verwijderen @@ -3794,7 +3794,7 @@ Dit kan tot onverwachte resultaten leiden. Vlak - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3803,32 +3803,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Als u een ouder document met PartDesign objecten zonder een lichaam hebt, gebruik dan de overdrachtsfunctie in PartDesign om hen in een lichaam te zetten. - + Active Body Required Actief lichaam benodigd - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Om een nieuw PartDesign object te maken moet er een actief lichaam object aanwezig zijn in het document. Maak een lichaam actief (dubbel klik) of maak een nieuw lichaam. - + Feature is not in a body Functie is niet in een lichaam - + In order to use this feature it needs to belong to a body object in the document. Om deze functie te gebruiken moet deze tot een onderdeel object behoren in het document. - + Feature is not in a part Functie is niet in een onderdeel - + In order to use this feature it needs to belong to a part object in the document. Om deze functie te gebruiken moet deze tot een onderdeel object behoren in het document. @@ -4220,7 +4220,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi 0 in - 0 in + 0 inch @@ -4716,7 +4716,7 @@ boven de 90: groter gat straal aan de onderkant Toggle 3D - Toggle 3D + 3D aan/uit @@ -5085,7 +5085,7 @@ Intersecting sketch entities in a sketch are not allowed. Error: height too small! - Error: height too small! + Fout: hoogte te klein! @@ -5097,7 +5097,7 @@ Intersecting sketch entities in a sketch are not allowed. Error: turns too small! - Error: turns too small! + Fout: draai te klein! @@ -5529,38 +5529,38 @@ Intersecting sketch entities or multiple faces in a sketch are not allowed. Radius of cylinder too small - Radius of cylinder too small + Straal van cilinder te klein Height of cylinder too small - Height of cylinder too small + Hoogte van cilinder te klein Rotation angle of cylinder too small - Rotation angle of cylinder too small + Rotatiehoek van cilinder te klein Radius of sphere too small - Radius of sphere too small + Straal van de bol te klein Radius of cone cannot be negative - Radius of cone cannot be negative + Straal van kegel mag niet negatief zijn The radii for cones must not be equal - The radii for cones must not be equal + De stralen van kegels mogen niet gelijk zijn Height of cone too small - Height of cone too small + Hoogte van kegel te klein @@ -5587,7 +5587,7 @@ Intersecting sketch entities or multiple faces in a sketch are not allowed. Height of prism is too small - Height of prism is too small + Hoogte van het prisma is te klein @@ -5647,7 +5647,7 @@ Intersecting sketch entities or multiple faces in a sketch are not allowed. Transformation failed - Transformation failed + Transformatie mislukt diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts index a42b944729..e4edfb3a83 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts @@ -71,7 +71,7 @@ tzn. przeciwny do ruchu wskazówek zegara, poruszając się wzdłuż osi. If set, the result will be the intersection of the profile and the preexisting body. - Jeśli wybrane, wynikiem będzie część wspólna profilu i istniejącej już zawartości. + Jeśli opcja jest wybrana, wynikiem będzie część wspólna profilu i istniejącej już zawartości. @@ -246,7 +246,7 @@ wartość Fałsz = uzębienie wewnętrzne Chamfer - Fazka + Sfazowanie @@ -426,7 +426,7 @@ wartość Fałsz = uzębienie wewnętrzne Mirrored - Odbicie lustrzane + Transformacja odbicia lustrzanego @@ -444,7 +444,7 @@ wartość Fałsz = uzębienie wewnętrzne Move object to other body - Przesuń obiekt do innej zawartości + Przesuń cechę do innej zawartości @@ -462,7 +462,7 @@ wartość Fałsz = uzębienie wewnętrzne Move object after other object - Przesuń obiekt za inny obiekt + Przesuń cechę @@ -498,7 +498,7 @@ wartość Fałsz = uzębienie wewnętrzne Create MultiTransform - Utwórz wielokrotną transformację + Utwórz transformację wielokrotną @@ -606,7 +606,7 @@ wartość Fałsz = uzębienie wewnętrzne PolarPattern - Szyk kołowy + Transformacja szyku kołowego @@ -642,7 +642,7 @@ wartość Fałsz = uzębienie wewnętrzne Scaled - Skalowane + Transformacja zmiany skali @@ -939,12 +939,12 @@ wartość Fałsz = uzębienie wewnętrzne Move an object inside tree - Przesuń obiekt wewnątrz drzewa + Przesuń cechę wewnątrz drzewa Mirrored - Odbicie lustrzane + Transformacja odbicia lustrzanego @@ -954,12 +954,12 @@ wartość Fałsz = uzębienie wewnętrzne PolarPattern - Szyk kołowy + Transformacja szyku kołowego Scaled - Skalowane + Transformacja zmiany skali @@ -1113,7 +1113,7 @@ Please select a body from below, or create a new body. Geometric Primitives - Pierwotne bryły geometryczne + Pierwotna bryła geometryczna @@ -1515,7 +1515,7 @@ kliknij ponownie, aby zakończyć wybór Select - Wybierz + Dodaj @@ -1856,7 +1856,7 @@ kliknij ponownie, aby zakończyć wybór Select - Wybierz + Dodaj @@ -2305,7 +2305,7 @@ kliknij ponownie, aby zakończyć wybór Edit - Edycja + Edytuj @@ -2315,22 +2315,22 @@ kliknij ponownie, aby zakończyć wybór Add mirrored transformation - Dodaj transformację w odbiciu lustrzanym + Dodaj transformację odbicia lustrzanego Add linear pattern - Dodaj szyk liniowy + Dodaj transformację szyku liniowego Add polar pattern - Dodaj szyk kołowy + Dodaj transformację szyku kołowego Add scaled transformation - Dodaj transformację w zmienionej skali + Dodaj transformację zmiany skali @@ -2634,12 +2634,12 @@ mierzona wzdłuż podanego kierunku Z - + Section orientation Kierunek sekcji profilu - + Remove Usuń @@ -2698,23 +2698,23 @@ mierzona wzdłuż podanego kierunku Usuń krawędź - + Pipe parameters Parametry wyciągnięcia - + Remove Usuń - - + + Input error Błąd danych wejściowych - + No active body Brak aktywnej zawartości @@ -2757,12 +2757,12 @@ mierzona wzdłuż podanego kierunku Lista może zostać uporządkowana poprzez przeciąganie - + Section transformation Przekształcenie sekcji - + Remove Usuń @@ -3293,7 +3293,7 @@ kliknij ponownie, aby zakończyć wybór Create an additive box by its width, height, and length - Tworzenie addytywnego prostopadłościanu przez podanie szerokości, wysokości i długości + Tworzy addytywny prostopadłościan przez podanie szerokości, wysokości i długości @@ -3336,7 +3336,7 @@ kliknij ponownie, aby zakończyć wybór Create a subtractive box by its width, height and length - Tworzenie subtraktywnego prostopadłościanu podając jego szerokość, wysokość i długość + Tworzy subtraktywny prostopadłościan podając jego szerokość, wysokość i długość @@ -3732,7 +3732,7 @@ Może to prowadzić do nieoczekiwanych rezultatów. There are no other bodies to move to - Nie istnieją inne zawartości aby do nich przejść + Nie istnieją inne zawartości, do których można przenieść cechę @@ -3796,7 +3796,7 @@ Może to prowadzić do nieoczekiwanych rezultatów. Powierzchnia - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Jeśli masz starszy dokument z obiektami środowiska pracy Projekt Części bez obiektu Zawartości, użyj funkcji migracji w środowisku pracy Projekt Części, aby umieścić je w obiekcie Zawartość. - + Active Body Required Wymagana jest aktywna zawartość - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Aby utworzyć nowy obiekt Projektu Części, w dokumencie musi być aktywny obiekt Zawartość. Uaktywnij jeden (podwójnym kliknięciem) lub utwórz nową Zawartość. - + Feature is not in a body Funkcja nie jest w korpusie - + In order to use this feature it needs to belong to a body object in the document. Ta cecha musi przynależeć do zawartości w danym dokumencie, by można ją było wykorzystać. - + Feature is not in a part Funkcja nie jest w części - + In order to use this feature it needs to belong to a part object in the document. Ta cecha musi przynależeć do obiektu części w danym dokumencie, by można ją było wykorzystać. @@ -4698,7 +4698,7 @@ powyżej 90°: większy promień otworu u dołu Involute gear... - Przekładnia ewolwentowa ... + Koło zębate ewolwentowe ... @@ -4708,7 +4708,7 @@ powyżej 90°: większy promień otworu u dołu Measure - Wymiarowanie + Pomiary @@ -4718,7 +4718,7 @@ powyżej 90°: większy promień otworu u dołu Toggle 3D - Przełącz widok 3D + Włącz / wyłącz widok pomiarów 3D @@ -4736,7 +4736,7 @@ powyżej 90°: większy promień otworu u dołu Involute gear... - Przekładnia ewolwentowa ... + Koło zębate ewolwentowe ... @@ -4777,7 +4777,7 @@ powyżej 90°: większy promień otworu u dołu Constraint type - Typ wiązania + Typ obciążenia @@ -5516,12 +5516,12 @@ Przecinające się elementy szkicu lub wiele ścian w szkicu nie są dozwolone.< Length of box too small - Długość prostopadłościanu zbyt mała + Długość prostopadłościanu jest zbyt mała Width of box too small - Szerokość prostopadłościanu zbyt mała + Szerokość prostopadłościanu jest zbyt mała diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-BR.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-BR.ts index 560baa3ffa..5a81c0a251 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-BR.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-BR.ts @@ -83,17 +83,17 @@ so that self intersection is avoided. Number of gear teeth - Number of gear teeth + Número de dentes da engrenagem Modules of the gear - Modules of the gear + Módulos da engrenagem Pressure angle of gear teeth - Pressure angle of gear teeth + Ângulo de pressão dos dentes da engrenagem @@ -1736,7 +1736,7 @@ clique novamente para terminar a seleção Custom direction - Custom direction + Direção personalizada @@ -2446,12 +2446,12 @@ from the model as reference Custom direction - Custom direction + Direção personalizada Show direction - Show direction + Mostrar direção @@ -2541,7 +2541,7 @@ medido ao longo da direção especificada Select face - Select face + Selecionar face @@ -2632,12 +2632,12 @@ medido ao longo da direção especificada Z - + Section orientation Orientação de secção - + Remove Remover @@ -2696,23 +2696,23 @@ medido ao longo da direção especificada Remover aresta - + Pipe parameters Parâmetros do tubo - + Remove Remover - - + + Input error Erro de entrada - + No active body Nenhum corpo ativo @@ -2755,12 +2755,12 @@ medido ao longo da direção especificada Lista pode ser reordenada arrastando - + Section transformation Transformação da secção - + Remove Remover @@ -3790,7 +3790,7 @@ This may lead to unexpected results. Face - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3799,32 +3799,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Se você tiver um documento antigo com objetos do PartDesign sem corpo, use a função de migração do PartDesign para colocá-los em um corpo. - + Active Body Required Corpo ativo necessário - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Para criar um novo objeto de PartDesign, deve haver um corpo ativo no documento. Por favor, ative (duplo clique) ou crie um novo corpo. - + Feature is not in a body O objeto não está num corpo - + In order to use this feature it needs to belong to a body object in the document. Para utilizar este objeto ele precisa pertencer a um corpo do documento. - + Feature is not in a part O objeto não está numa peça - + In order to use this feature it needs to belong to a part object in the document. Para utilizar este objeto ele precisa pertencer a uma peça do documento. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-PT.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-PT.ts index 4d2f67c405..6a224ad38a 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-PT.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt-PT.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Orientação de secção - + Remove Remover @@ -2698,23 +2698,23 @@ measured along the specified direction Remover aresta - + Pipe parameters Parâmetros do tubo - + Remove Remover - - + + Input error Erro de Inserção - + No active body No active body @@ -2757,12 +2757,12 @@ measured along the specified direction List can be reordered by dragging - + Section transformation Transformação da secção - + Remove Remover @@ -3792,39 +3792,39 @@ This may lead to unexpected results. Face - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. Para usar PartDesign, é necessário um objeto corpo ativo no documento. Por favor, ative (duplo clique) ou crie um. Se tiver um documento antigo com objetos de PartDesign sem corpo, use a função migrar em PartDesign para colocá-los num corpo. - + Active Body Required Corpo ativo necessário - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Para criar um novo objeto de PartDesign, deve haver um objeto corpo ativo no documento. Por favor, ative (duplo clique) ou crie um novo corpo. - + Feature is not in a body O objeto não está num corpo - + In order to use this feature it needs to belong to a body object in the document. Para utilizar este objeto ele precisa de pertencer a um do corpo do documento. - + Feature is not in a part O objeto não está numa peça - + In order to use this feature it needs to belong to a part object in the document. Para utilizar este objeto ele precisa de pertencer a uma peça do documento. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ro.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ro.ts index c7739c0f10..4838ea2b60 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ro.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ro.ts @@ -2636,12 +2636,12 @@ măsurată de-a lungul direcției specificate Z - + Section orientation Orientarea Secțiunii - + Remove Elimină @@ -2700,23 +2700,23 @@ măsurată de-a lungul direcției specificate Eliminați muchia - + Pipe parameters Parametrii ţevii - + Remove Elimină - - + + Input error Eroare de intrare - + No active body Nici un corp activ @@ -2759,12 +2759,12 @@ măsurată de-a lungul direcției specificate Lista poate fi reordonată prin tragere - + Section transformation Transformarea Secţiunii - + Remove Elimină @@ -3793,39 +3793,39 @@ This may lead to unexpected results. Faţă - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. Pentru a utiliza PartDesign aveți nevoie de un obiect Body activ în document. Vă rugăm să activați unul (dublu clic) sau să creați unul. - + Active Body Required Corp activ necesar - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Pentru a crea un nou obiect PartDesign, trebuie să existe un corp activ în document. Activați unul (faceți dublu clic) sau creați un nou corp. - + Feature is not in a body Funcția nu face parte dintr-un corp - + In order to use this feature it needs to belong to a body object in the document. Pentru a utiliza această caracteristică, ea trebuie să aparțină unui corp din document. - + Feature is not in a part Caracteristica nu este de la o piesă/Part - + In order to use this feature it needs to belong to a part object in the document. Pentru a utiliza această funcție, ea trebuie să aparțină unei piese din document. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts index aed5909ee0..76d0615b2b 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts @@ -2632,12 +2632,12 @@ measured along the specified direction Z - + Section orientation Ориентация сечения - + Remove Удалить @@ -2696,23 +2696,23 @@ measured along the specified direction Удалить ребро - + Pipe parameters Параметры траектории - + Remove Удалить - - + + Input error Ошибка ввода - + No active body Нет активного Тела @@ -2755,12 +2755,12 @@ measured along the specified direction Список может быть переупорядочен перетаскиванием - + Section transformation Преобразование сечения - + Remove Удалить @@ -3794,7 +3794,7 @@ This may lead to unexpected results. Грань - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3803,32 +3803,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Если у Вас устаревший документ, содержащий объекты PartDesign без Тела, тогда используйте функцию Миграция в меню "PartDesign", чтобы вложить объекты в Тело. - + Active Body Required Требуется активное тело - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Что бы создать новый объект в верстаке "Проектирование детали", в документе должно быть активное Тело. Сделайте тело активным (двойным щелчком) или создайте новое Тело. - + Feature is not in a body Элемент вне тела - + In order to use this feature it needs to belong to a body object in the document. Чтобы использовать этот элемент, он должен принадлежать объекту тело в документе. - + Feature is not in a part Элемент вне детали - + In order to use this feature it needs to belong to a part object in the document. Для того, чтобы использовать этот элемент, он должен являться объектом типа деталь в документе. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sl.ts index aca922b7fc..66a2b09a2b 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sl.ts @@ -108,12 +108,12 @@ da se izogne samosečnosti. The height of the tooth from the pitch circle up to its tip, normalized by the module. - The height of the tooth from the pitch circle up to its tip, normalized by the module. + Višina zoba od delilnega kroga do temena, upraviljena na korak. The height of the tooth from the pitch circle down to its root, normalized by the module. - The height of the tooth from the pitch circle down to its root, normalized by the module. + Višina zoba od delilnega kroga do korena, upraviljena na korak. @@ -123,7 +123,7 @@ da se izogne samosečnosti. The distance by which the reference profile is shifted outwards, normalized by the module. - The distance by which the reference profile is shifted outwards, normalized by the module. + Dolžina profilnega premika navzven, upravíljena na korak. @@ -131,7 +131,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -149,7 +149,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -159,7 +159,7 @@ da se izogne samosečnosti. Loft a selected profile through other profile sections - Ostreši izbran prerez preko ostalih prerezov + Navleci izbrani prerez preko ostalih prerezov @@ -167,7 +167,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -177,7 +177,7 @@ da se izogne samosečnosti. Sweep a selected sketch along a path or to other profiles - Povleči izbrano skico vzdolž poti ali do drugih prerezov + Vzdolži izbrani očrt ob poti ali do drugih prerezov @@ -185,7 +185,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -203,7 +203,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -221,7 +221,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -239,7 +239,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -257,7 +257,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -275,7 +275,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -293,7 +293,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -311,7 +311,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -329,7 +329,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -347,7 +347,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -365,7 +365,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -383,7 +383,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -401,7 +401,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -411,7 +411,7 @@ da se izogne samosečnosti. Migrate document to the modern PartDesign workflow - Preseli dokument v sodobni PartDesignov delotok + Preseli dokument v sodobni delotok Snovalnika delov (PartDesgin) @@ -419,7 +419,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -437,7 +437,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -455,7 +455,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -473,7 +473,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -491,7 +491,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -509,7 +509,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -527,7 +527,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -545,7 +545,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -563,7 +563,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -581,7 +581,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -599,7 +599,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -617,7 +617,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -635,7 +635,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -653,7 +653,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -671,7 +671,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -685,7 +685,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -703,17 +703,17 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov Subtractive loft - Odvzemno ostrešje + Odvzemni navleček Loft a selected profile through other profile sections and remove it from the body - Ostreši izbran prerez preko drugih prerezov in ga odstrani iz telesa + Navleci izbran prerez preko drugih prerezov in ga odstrani iz telesa @@ -721,7 +721,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -739,7 +739,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -757,7 +757,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -811,7 +811,7 @@ da se izogne samosečnosti. PartDesign - PartDesign + Snovalnik delov @@ -917,7 +917,7 @@ da se izogne samosečnosti. Migrate legacy part design features to Bodies - Preseli podedovane zmožnosti oblikovanja delov v Telesa + Preseli podedovane značilnosti snovalnika delov v Telesa @@ -927,7 +927,7 @@ da se izogne samosečnosti. Duplicate a PartDesign object - Podvoji predmet NačrtovanjeDela (PartDesign) + Podvoji predmet Snovalnika delov (PartDesign) @@ -1078,7 +1078,7 @@ da se izogne samosečnosti. Profile Shift Coefficient - Profile Shift Coefficient + Količnik profilnega premika @@ -1093,9 +1093,9 @@ da se izogne samosečnosti. To create a new PartDesign object, there must be an active Body object in the document. Please select a body from below, or create a new body. - Če želite ustvariti nov predmet v OblikovanjeDelov (PartDesign), mora biti v dokumentu dejavno telo. + Če želite ustvariti nov predmet v Snovalniku delov (PartDesign), mora biti v dokumentu dejavno telo. -Izberite telo izmed spodnjih ali ustvarite novega. +Izberite med spodnjimi telesi ali ustvarite novega. @@ -2030,12 +2030,12 @@ s ponovnim klikom pa zaključite izbiranje Warning: helix might be self intersecting - Warning: helix might be self intersecting + Pozor: vijačnica lahko seka samo sebe Error: helix touches itself - Error: helix touches itself + Napaka: vijačnica se dotika sama sebe @@ -2126,7 +2126,7 @@ s ponovnim klikom pa zaključite izbiranje Reverse direction - Reverse direction + Nasprotna smer @@ -2189,12 +2189,12 @@ s ponovnim klikom pa zaključite izbiranje Add Section - Dodaj Prerez + Dodaj presek Remove Section - Odstrani Prerez + Odstrani presek @@ -2373,7 +2373,7 @@ s ponovnim klikom pa zaključite izbiranje To last - To last + Do zadnjega @@ -2634,12 +2634,12 @@ merjena vzdolž določene smeri Z - + Section orientation Usmerjenost preseka - + Remove Odstrani @@ -2685,7 +2685,7 @@ merjena vzdolž določene smeri Path to sweep along - Pot vzdolž katere povleči + Pot ob kateri se vzdolži @@ -2698,23 +2698,23 @@ merjena vzdolž določene smeri Odstrani rob - + Pipe parameters Določilke cevi - + Remove Odstrani - - + + Input error Napaka vnosa - + No active body Nobenega dejavnega telesa @@ -2744,12 +2744,12 @@ merjena vzdolž določene smeri Add Section - Dodaj Prerez + Dodaj presek Remove Section - Odstrani Prerez + Odstrani presek @@ -2757,12 +2757,12 @@ merjena vzdolž določene smeri Zaporedje v seznamu lahko spreminjate z vlečenjem - + Section transformation Preoblikovanje preseka - + Remove Odstrani @@ -2840,7 +2840,7 @@ merjena vzdolž določene smeri Reverse direction - Reverse direction + Nasprotna smer @@ -3211,12 +3211,12 @@ s ponovnim klikom pa zaključite izbiranje Datum Line parameters - Določilke osnovne črte + Določilke sklicne črte Datum Point parameters - Določilke osnovne točke + Določilke sklicne točke @@ -3613,7 +3613,7 @@ s ponovnim klikom pa zaključite izbiranje Body can't be based on a PartDesign feature. - Telo ne more biti osnovano na PartDesign značilnosti. + Telo ne more biti osnovano na značilnosti Snovalnika delov. @@ -3676,7 +3676,7 @@ To lahko pripelje do nepričakovanih rezultatov. No PartDesign features found that don't belong to a body. Nothing to migrate. - Ni bilo mogoče najti nobene značilnosti Oblikovanja delov (PartDesigna), ki ne bi pripadala telesu. Ni kaj seliti. + Ni bilo mogoče najti nobene značilnosti Snovalnika delov (PartDesign), ki ne bi pripadala telesu. Ni kaj seliti. @@ -3700,7 +3700,7 @@ To lahko pripelje do nepričakovanih rezultatov. Select exactly one PartDesign feature or a body. - Izberi natanko eno PartDesign značilnost ali telo. + Izberi natanko eno značilnost Snovalnika delov (PartDesign) ali telo. @@ -3796,41 +3796,41 @@ To lahko pripelje do nepričakovanih rezultatov. Ploskev - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. - Če želite uporabljati PartDesign, potrebujete v dokumentu dejavno Telo. Naredite enega dejavnega (dvoklik) ali ga ustvarite. + Če želite uporabljati Snovalnik delov (PartDesign), potrebujete dejavno Telo iz dokumenta. Naredite enega dejavnega (dvoklik) ali ga ustvarite. -Če je vaš dokument podedovan in ima PartDesign predmete brez Teles, uporabitete PartDesighnovo zmožnost pretvorbe, da jih spremenite v Telo. +Če je vaš dokument podedovan in ima predmete Snovalanika delov (PartDesign) brez Teles, uporabitete Snovalnikovo zmožnost pretvorbe, da jih spremenite v Telesa. - + Active Body Required Potrebno dejavno Telo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. - Če želite ustvariti nov PartDesign predmet, mora biti v dokumentu dejavno telo. Naredite enega dejavnega (dvoklik) ali ustvarite novega. + Če želite ustvariti nov predmet Snovalnika delov, mora biti v dokumentu dejavno telo. Naredite enega dejavnega (dvoklik) ali ustvarite novega. - + Feature is not in a body Značilnost ni v telesu - + In order to use this feature it needs to belong to a body object in the document. Če želite uporabiti to značilnost, mora pripradati telesu v dokumentu. - + Feature is not in a part Značilnost ni v delu - + In order to use this feature it needs to belong to a part object in the document. Če želite uporabiti to značilnost, mora pripadati delu v dokumentu. @@ -3878,7 +3878,7 @@ If you have a legacy document with PartDesign objects without Body, use the migr Edit datum - Uredi osnovne mere + Uredi sklicnost @@ -3905,7 +3905,7 @@ Ta značilnost je pokvarjena in je ni mogoče urejati. Edit loft - Uredi ostrešje + Uredi navleček @@ -3965,17 +3965,17 @@ Ta značilnost je pokvarjena in je ni mogoče urejati. The document "%1" you are editing was designed with an old version of PartDesign workbench. - Dokument "%1", ki ga urejate, je bil narejen v starejši različici delavnega okolja PartDesign. + Dokument "%1", ki ga urejate, je bil narejen v starejši različici delavnega okolja Snovalnik delov (PartDesign). Do you want to migrate in order to use modern PartDesign features? - Želite preseliti, da bi lahko uporabljali nove zmožnosti PartDesigna? + Želite preseliti, da bi lahko uporabljali zmožnosti novega Snovalnika delov? The document "%1" seems to be either in the middle of the migration process from legacy PartDesign or have a slightly broken structure. - Kaže, da je dokument "%1" bodisi sredi selitve iz podedovanega PartDesigna, bodisi ima malo pokvarjeno zasnovo. + Kaže, da je dokument "%1" bodisi sredi selitve iz podedovanega Snovalnika delova, bodisi ima malo okvarjeno zasnovo. @@ -3988,8 +3988,8 @@ Ta značilnost je pokvarjena in je ni mogoče urejati. If you refuse to migrate you won't be able to use new PartDesign features like Bodies and Parts. As a result you also won't be able to use your parts in the assembly workbench. Although you will be able to migrate any moment later with 'Part Design -> Migrate'. Opomba: Če se odločite za selitev, datoteke ne boste mogli več urejati s starejšimi različicami FreeCADa. -Če zavrnete selitev, ne boste mogli uporabljati novih zmožnosti PartDesigna, kot so Telesa in Deli. Posledično, ne bo mogoče uporabljati vaših delov v sestavljalnem delavnem okolju. -Neglede na to je selitev v bodoče z "Oblikovanje delov -> Preseli" mogoča kadarkoli. +Če zavrnete selitev, ne boste mogli uporabljati zmožnosti Snovalnika delov (PartDesign), kot so Telesa in Deli. Posledično, ne bo mogoče uporabljati vaših delov v sestavljalnem delavnem okolju. +Neglede na to je selitev v bodoče z "Snovanje delov -> Preseli" mogoča kadarkoli. @@ -4004,42 +4004,42 @@ Neglede na to je selitev v bodoče z "Oblikovanje delov -> Preseli" mogoča k Edit chamfer - Edit chamfer + Uredi prisekavo Edit draft - Edit draft + Uredi nagib Edit fillet - Edit fillet + Uredi zaokrožitev Edit linear pattern - Edit linear pattern + Uredi premočrtni vzorec Edit mirrored - Edit mirrored + Uredi zrcaljeno Edit multi-transform - Edit multi-transform + Uredi večkratno preoblikovanje Edit polar pattern - Edit polar pattern + Uredi krožni vzorec Edit scaled - Edit scaled + Uredi prevelikosteno @@ -4663,12 +4663,12 @@ nad 90: v spodnjem delu večji premer luknje &Part Design - Oblikovanje &delov + &Snovanje delov Create a datum - Ustvari sklicni predmet + Ustvari sklicnost @@ -4723,7 +4723,7 @@ nad 90: v spodnjem delu večji premer luknje Part Design Helper - Pomočnik za oblikovanje delov + Pomočnik za snovanje delov @@ -4802,22 +4802,22 @@ nad 90: v spodnjem delu večji premer luknje Shaft wizard - Shaft wizard + Čarovnik gredi Section 1 - Section 1 + Razdelek 1 Section 2 - Section 2 + Razdelek 2 Add column - Add column + Dodaj stolpec @@ -4835,12 +4835,12 @@ nad 90: v spodnjem delu večji premer luknje Missing module - Missing module + Manjkajoči modul You may have to install the Plot add-on - You may have to install the Plot add-on + Morda boste morali namestiti dodatek Plot @@ -4874,7 +4874,7 @@ nad 90: v spodnjem delu večji premer luknje Linked object is not a PartDesign feature - Povezani predmet ni zmožnost Oblikovanja delov (PartDesign) + Povezani predmet ni značilnost v okolju Snovanje delov (PartDesign) @@ -4975,7 +4975,7 @@ nad 90: v spodnjem delu večji premer luknje Result has multiple solids: that is not currently supported. - Result has multiple solids: that is not currently supported. + Dobljenih je več teles, kar pa trenutno ni podprto. @@ -5242,130 +5242,130 @@ Sekajoče se prvine očrta niso dovoljene. Could not create face from sketch. Intersecting sketch entities or multiple faces in a sketch are not allowed for making a pocket up to a face. - Could not create face from sketch. -Intersecting sketch entities or multiple faces in a sketch are not allowed for making a pocket up to a face. + Iz očrta ni bilo mogoče ustvariti ploskve. +Sekanje enot očrta ali več ploskev v očrtu ni dopustno pri izdelavi ugreza v ploskev. Thread type out of range - Thread type out of range + Vrsta navoja izven obsega Thread size out of range - Thread size out of range + Velikost navoja izven obsega Error: Thread could not be built - Error: Thread could not be built + Napak: navoja ni bilo mogoče izvesti Loft: At least one section is needed - Loft: At least one section is needed + Navleček: potreben je vsaj en presek Loft: Could not obtain profile shape - Loft: Could not obtain profile shape + Navleček: oblike preseka ni mogoče pridobiti Loft: When using points for profile/sections, the sketch should have a single point - Loft: When using points for profile/sections, the sketch should have a single point + Navleček: če se za presek/prereze uporablja točke, naj ima očrt le eno točko Loft: All sections need to be part features - Loft: All sections need to be part features + Navleček: vsi preseki morajo biti značilnosti dela Loft: Could not obtain section shape - Loft: Could not obtain section shape + Navleček: oblike preseka ni mogoče pridobiti Loft: A section doesn't contain any wires nor is a single vertex - Loft: A section doesn't contain any wires nor is a single vertex + Navleček: presek ne vsebuje črtovja, niti posamičnega oglišča Loft: Only the profile and the last section can be vertices - Loft: Only the profile and the last section can be vertices + Navleček: le prvi in zadnji presek sta lahko oglišči Loft: For closed lofts only the profile can be a vertex - Loft: For closed lofts only the profile can be a vertex + Navleček: pri zaprtih navlečkih more le presek biti oglišče Loft: all loft sections need to have the same amount of inner wires - Loft: all loft sections need to have the same amount of inner wires + Navleček: vsi preseki navlečka morajo imeti enako število notranjih črtovij Loft could not be built - Loft could not be built + Navlečka ni bilo mogoče narediti Loft: Result is not a solid - Loft: Result is not a solid + Navleček: dobljeno ni telo Loft: There is nothing to subtract from - Loft: There is nothing to subtract from + Navleček: od ničesar ni mogoče odvzeti Loft: Adding the loft failed - Loft: Adding the loft failed + Navleček: dodajanje navlečka spodletelo Loft: Subtracting the loft failed - Loft: Subtracting the loft failed + Navleček: odvzemanje navlečka spodletelo Loft: A fatal error occurred when making the loft - Loft: A fatal error occurred when making the loft + Navleček: pri navlačenju je prišlo do usodne napake Pad: Creation failed because direction is orthogonal to sketch's normal vector - Pad: Creation failed because direction is orthogonal to sketch's normal vector + Izboklina: ustvarjanje je spodletelo, ker je smer pravokotna na normalo očrta Pad: Creating a face from sketch failed - Pad: Creating a face from sketch failed + Izboklina: ustvarjanje ploskve iz očrta spodletelo Pad: Resulting shape is empty - Pad: Resulting shape is empty + Izboklina: dobljena oblika je prazna Pad: Fusion with base feature failed - Pad: Fusion with base feature failed + Izboklina: združitev z izhodiščno značilnostjo spodletela Could not create face from sketch. Intersecting sketch entities or multiple faces in a sketch are not allowed. - Could not create face from sketch. -Intersecting sketch entities or multiple faces in a sketch are not allowed. + Iz očrta ni bilo mogoče ustvariti ploskve. +Sekajočih se prvin očrta ali več ploskev v očrtu ne sme biti. Pipe: Could not obtain profile shape - Pipe: Could not obtain profile shape + Cev: oblike preseka ni mogoče pridobiti @@ -5593,42 +5593,42 @@ Intersecting sketch entities or multiple faces in a sketch are not allowed. delta x of wedge too small - delta x of wedge too small + sprememba x-a klina premajhna delta y of wedge too small - delta y of wedge too small + sprememba y-a klina premajhna delta z of wedge too small - delta z of wedge too small + sprememba z-ja klina premajhna delta z2 of wedge is negative - delta z2 of wedge is negative + sprememba klinovega z-ja 2 je negativna delta x2 of wedge is negative - delta x2 of wedge is negative + sprememba klinovega x-a 2 je negativna Angle of revolution too large - Angle of revolution too large + Kot zvrtenja prevelik Angle of revolution too small - Angle of revolution too small + Kot zvrtenja premajhen Fusion with base feature failed - Fusion with base feature failed + Združitev z izhodiščno značilnostjo spodletela @@ -5638,27 +5638,27 @@ Intersecting sketch entities or multiple faces in a sketch are not allowed. No originals linked to the transformed feature. - No originals linked to the transformed feature. + Nobenega na preoblikovano značilnost vezanega izvirnika ni. Cannot transform invalid support shape - Cannot transform invalid support shape + Neveljavne podporne oblike ni mogoče preoblikovati Transformation failed - Transformation failed + Preoblikovanje spodletelo Shape of additive/subtractive feature is empty - Shape of additive/subtractive feature is empty + Oblika dodajne/odvzemne značilnosti je prazna Only additive and subtractive features can be transformed - Only additive and subtractive features can be transformed + Preoblikovati je mogoče le dodajne in odvzemne značilnosti diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr-CS.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr-CS.ts index fe737bc44f..f8a9db2d81 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr-CS.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr-CS.ts @@ -2634,12 +2634,12 @@ merena duž zadatog pravca Z - + Section orientation Orijentacija preseka - + Remove Ukloni @@ -2698,23 +2698,23 @@ merena duž zadatog pravca Ukloni ivicu - + Pipe parameters Parametri izvlačenja po putanji - + Remove Ukloni - - + + Input error Input error - + No active body Nema aktivnog tela @@ -2757,12 +2757,12 @@ merena duž zadatog pravca Lista se može reorganizovati prevlačenjem - + Section transformation Transformisanje preseka - + Remove Ukloni @@ -3796,7 +3796,7 @@ Ovo može dovesti do neočekivanih rezultata. Stranica - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Ako imaš nasleđeni dokument sa PartDesign objektima bez tela, koristi funkciju migracije u PartDesign-u da bi ih stavio u telo. - + Active Body Required Potrebno je aktivno telo - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Da bi napravio novi Part Design objekat, u dokumentu mora postojati aktivno telo. Aktiviraj jedno (dvostruki klik) ili ga napravi. - + Feature is not in a body Tipski oblik nije unutar tela - + In order to use this feature it needs to belong to a body object in the document. Da bi koristio ovaj tipski oblik, on mora da pripada telu u dokumentu. - + Feature is not in a part Tipski oblik nije unutar dela - + In order to use this feature it needs to belong to a part object in the document. Da bi koristio ovaj tipski oblik, on mora da pripada delu u dokumentu. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr.ts index deb1d4b711..64e52bf914 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sr.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Оријентација пресека - + Remove Уклони @@ -2698,23 +2698,23 @@ measured along the specified direction Уклони ивицу - + Pipe parameters Параметри извлачења по путањи - + Remove Уклони - - + + Input error Грешка приликом уноса - + No active body Нема активног тела @@ -2757,12 +2757,12 @@ measured along the specified direction Листа се може реорганизовати превлачењем - + Section transformation Трансформисање пресека - + Remove Уклони @@ -3796,7 +3796,7 @@ This may lead to unexpected results. Страница - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Ако имаш наслеђени документ са PartDesign објектима без тела, користи функцију миграције у PartDesign-у да би их ставио у тело. - + Active Body Required Потребно је активно тело - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Да би направио нови Part Design објекат, у документу мора постојати активно тело. Активирај једно (двоструки клик) или га направи. - + Feature is not in a body Типски облик није унутар тела - + In order to use this feature it needs to belong to a body object in the document. Да би користио овај типски облик, он мора да припада телу у документу. - + Feature is not in a part Типски облик није унутар дела - + In order to use this feature it needs to belong to a part object in the document. Да би користио овај типски облик, он мора да припада делу у документу. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sv-SE.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sv-SE.ts index 7470aadf51..1458dcf05b 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sv-SE.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_sv-SE.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation Snittriktning - + Remove Ta bort @@ -2697,23 +2697,23 @@ measured along the specified direction Ta bort kant - + Pipe parameters Rörparametrar - + Remove Ta bort - - + + Input error Inmatningsfel - + No active body No active body @@ -2756,12 +2756,12 @@ measured along the specified direction List can be reordered by dragging - + Section transformation Snittomvandling - + Remove Ta bort @@ -3791,7 +3791,7 @@ This may lead to unexpected results. Yta - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3800,32 +3800,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Om du har ett utdaterat dokument med Part Design-objekt utan kropp, använd migrationsfunktionen i Part Design för att lägga till dem i en kropp. - + Active Body Required En aktiv kropp krävs - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. För att skapa ett nyttPart Design-objekt, måste det finnas en aktiv kropp i dokumentet. Vänligen gör en kropp aktiv (dubbelklick) eller skapa en ny kropp. - + Feature is not in a body Funktionen är inte i en kropp - + In order to use this feature it needs to belong to a body object in the document. För att kunna använda denna funktion måste den tillhöra en kropp i dokumentet. - + Feature is not in a part Funktionen är inte i en del - + In order to use this feature it needs to belong to a part object in the document. För att kunna använda denna funktion måste den tillhöra en del i dokumentet. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_tr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_tr.ts index 71a89239a9..6d41a9fc20 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_tr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_tr.ts @@ -6,17 +6,17 @@ The center point of the helix' start; derived from the reference axis. - The center point of the helix' start; derived from the reference axis. + Helis başlangıcı merkez noktası; referans eksenden türetildi. The helix' direction; derived from the reference axis. - The helix' direction; derived from the reference axis. + Helis yönü; referans eksenden türetildi. The reference axis of the helix. - The reference axis of the helix. + Helis referans ekseni. @@ -1573,7 +1573,7 @@ seçimi bitirmek için tekrar basın Empty chamfer created ! - Empty chamfer created ! + Ek bir düz pah yaratıldı! @@ -1674,7 +1674,7 @@ seçimi bitirmek için tekrar basın Empty draft created ! - Empty draft created ! + Boş bir taslak yaratıldı! @@ -1879,7 +1879,7 @@ seçimi bitirmek için tekrar basın Empty fillet created ! - Empty fillet created ! + Ek bir yuvarlama yaratıldı ! @@ -2035,7 +2035,7 @@ seçimi bitirmek için tekrar basın Error: helix touches itself - Error: helix touches itself + Hata: Helis kendisi ile kesişiyor @@ -2634,12 +2634,12 @@ belirlenen yön boyunca ölçülecek Z - + Section orientation Bölüm yönlendirmesi - + Remove Kaldır @@ -2698,23 +2698,23 @@ belirlenen yön boyunca ölçülecek Kenarı Kaldır - + Pipe parameters Boru parametreleri - + Remove Kaldır - - + + Input error Girdi hatası - + No active body Etkin gövde yok @@ -2757,12 +2757,12 @@ belirlenen yön boyunca ölçülecek Liste, sürüklenerek tekrar sıralanabilir - + Section transformation Bölüm dönüşümü - + Remove Kaldır @@ -3113,7 +3113,7 @@ seçimi bitirmek için tekrar basın Empty thickness created ! - Empty thickness created ! + Boş bir kalınlık yaratıldı! @@ -3229,7 +3229,7 @@ seçimi bitirmek için tekrar basın Draft parameters - Draft parameters + Taslak parametreleri @@ -3796,7 +3796,7 @@ Bu, beklenmedik sonuçlara neden olabilir. Yüz - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3805,32 +3805,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Gövdeye sahip olmayan nesneler içeren eski bir belgeniz varsa, bunları bir gövde içine almak için ParçaTasarımı'ndaki geçiş (migrate) işlevini kullanın. - + Active Body Required Aktif Vücut Gerekli - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Yeni bir PartDesign nesnesi oluşturmak için belgede etkin bir Body nesnesi olmalıdır. Lütfen birini aktif hale getirin (çift tıklama) veya yeni bir Beden oluşturun. - + Feature is not in a body Özellik bir vücutta değil - + In order to use this feature it needs to belong to a body object in the document. Bu özelliği kullanmak için belgede bir gövde nesnesine ait olması gerekir. - + Feature is not in a part Özellik bir parçası değil - + In order to use this feature it needs to belong to a part object in the document. Bu özelliği kullanmak için belgedeki bir parçaya ait olması gerekir. @@ -4004,27 +4004,27 @@ Buna karşın, daha sonra istediğiniz an 'ParçaTasarımı->Geçiş...' 'Par Edit chamfer - Edit chamfer + Pahı düzenle Edit draft - Edit draft + Taslağı düzenle Edit fillet - Edit fillet + Yuvarlamayı düzenle Edit linear pattern - Edit linear pattern + Doğrusal çoğaltmayı düzenle Edit mirrored - Edit mirrored + Aynalamayı düzenle @@ -4034,12 +4034,12 @@ Buna karşın, daha sonra istediğiniz an 'ParçaTasarımı->Geçiş...' 'Par Edit polar pattern - Edit polar pattern + Dairesel çoğaltmayı düzenle Edit scaled - Edit scaled + Oranlamayı düzenle @@ -4801,17 +4801,17 @@ over 90: larger hole radius at the bottom Shaft wizard - Shaft wizard + Şaft sihirbazı Section 1 - Section 1 + Seçim 1 Section 2 - Section 2 + Seçim 2 @@ -4979,60 +4979,60 @@ over 90: larger hole radius at the bottom Failed to create chamfer - Failed to create chamfer + Pah oluşturma hatası Resulting shape is null - Resulting shape is null + Sonuç şekil tanımsız Resulting shape is invalid - Resulting shape is invalid + Sonuç şekil geçersiz Size must be greater than zero - Size must be greater than zero + Ölçü sıfırdan büyük olmalı Size2 must be greater than zero - Size2 must be greater than zero + Ölçü 2 sıfırdan büyük olmalı Angle must be greater than 0 and less than 180 - Angle must be greater than 0 and less than 180 + Açı sıfır dereceden büyük ve 180 dereceden küçük olmalı Failed to create draft - Failed to create draft + Taslak oluşturma hatası Fillet radius must be greater than zero - Fillet radius must be greater than zero + Yuvarlama yarıçapı sıfırdan büyük olmalı Failed to create fillet - Failed to create fillet + Yuvarlama oluşturma hatası Angle of groove too large - Angle of groove too large + Oluk açısı çok geniş Angle of groove too small - Angle of groove too small + Oluk açısı çok dar @@ -5050,13 +5050,13 @@ over 90: larger hole radius at the bottom Creating a face from sketch failed - Creating a face from sketch failed + Taslakdan yüzey yaratma hatası Revolve axis intersects the sketch - Revolve axis intersects the sketch + Çevirme ekseni taslak ile kesizşiyor @@ -5086,19 +5086,19 @@ Intersecting sketch entities in a sketch are not allowed. Error: height too small! - Error: height too small! + Hata: yükseklik çok düşük! Error: pitch too small! - Error: pitch too small! + Hata: adım çok küçük! Error: turns too small! - Error: turns too small! + Hata: tur sayısı çok az! @@ -5113,12 +5113,12 @@ Intersecting sketch entities in a sketch are not allowed. Error: No valid sketch or face - Error: No valid sketch or face + Hata: geçerli bir taslak veya yüzey yok Error: Face must be planar - Error: Face must be planar + Hata: yüzey düzlemsel olmalı diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts index 73a44a9a59..5fcfbbeafa 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation Орієнтація перетину - + Remove Видалити @@ -2697,23 +2697,23 @@ measured along the specified direction Видалити ребро - + Pipe parameters Параметри траєкторії - + Remove Видалити - - + + Input error Помилка вводу - + No active body Немає активного тіла @@ -2756,12 +2756,12 @@ measured along the specified direction Список можна змінити шляхом перетягування - + Section transformation Перетворення розрізу - + Remove Видалити @@ -3795,7 +3795,7 @@ This may lead to unexpected results. Грань - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3804,32 +3804,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Якщо у вас є застарілий документ з обʼєктами ДизайнуДеталі без Тіла, використайте функцію міграції ДизайнуДеталі для введення їх в Тіло. - + Active Body Required Необхідне Активне Тіло - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Щоб створити новий об’єкт ДизайнуДеталі, у документі має бути активний об’єкт Тіло. Активуйте (подвійник клац) або створіть нове Тіло. - + Feature is not in a body Елемент за межами тіла - + In order to use this feature it needs to belong to a body object in the document. Щоб використовувати цей елемент, він повинен належати обʼєкту Тіло в документі. - + Feature is not in a part Елемент за межами деталі - + In order to use this feature it needs to belong to a part object in the document. Щоб використовувати цю функцію, вона повина належати обʼєкту Деталь в документі. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_val-ES.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_val-ES.ts index 3d868a0442..d01d7870c7 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_val-ES.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_val-ES.ts @@ -2634,12 +2634,12 @@ measured along the specified direction Z - + Section orientation Orientació de la secció - + Remove Elimina @@ -2698,23 +2698,23 @@ measured along the specified direction Elimina l'aresta - + Pipe parameters Paràmetres del tub - + Remove Elimina - - + + Input error Input error - + No active body No active body @@ -2757,12 +2757,12 @@ measured along the specified direction List can be reordered by dragging - + Section transformation Transformació de la secció - + Remove Elimina @@ -3794,7 +3794,7 @@ Això pot portar a resultats inesperats. Cara - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3803,32 +3803,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr Si teniu un document antic amb objectes PartDesign sense cos, utilitzeu la funció de migrar a PartDesign per a posar-los en un cos. - + Active Body Required Es requereix un cos actiu - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. Per a crear un nou objecte PartDesign, ha d'haver un cos actiu en el document. Activeu-ne un (doble clic) o creeu-ne un de nou. - + Feature is not in a body La funció no forma part d'un cos. - + In order to use this feature it needs to belong to a body object in the document. Per a utilitzar aquesta característica ha de pertànyer a un objecte cos del document. - + Feature is not in a part La funció no forma part d'una peça. - + In order to use this feature it needs to belong to a part object in the document. Per a utilitzar aquesta característica ha de pertànyer a un objecte peça del document. diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-CN.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-CN.ts index a8188449a8..53ed06560d 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-CN.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-CN.ts @@ -2633,12 +2633,12 @@ measured along the specified direction Z - + Section orientation 截面方向 - + Remove 删除 @@ -2697,23 +2697,23 @@ measured along the specified direction 删除边 - + Pipe parameters 管参数 - + Remove 删除 - - + + Input error 输入错误 - + No active body 没有活动的实体 @@ -2756,12 +2756,12 @@ measured along the specified direction 列表可以通过拖动重新排序 - + Section transformation 截面变换 - + Remove 删除 @@ -3795,7 +3795,7 @@ This may lead to unexpected results. - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. @@ -3804,32 +3804,32 @@ If you have a legacy document with PartDesign objects without Body, use the migr 如果您的旧版文档中存在没有实体的零件设计工作台对象, 请使用零件设计工作台中的迁移功能将它们放入一个实体中。 - + Active Body Required 需要激活状态的实体 - + To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. 要创建新的 PartDesign 对象, 文档中必须有一个激活状态的实体。请 (双击) 激活或创建一个新的实体。 - + Feature is not in a body 特征不在实体内 - + In order to use this feature it needs to belong to a body object in the document. 要使用此特征, 它需隶属于文档中的实体对象。 - + Feature is not in a part 特征不在零件内 - + In order to use this feature it needs to belong to a part object in the document. 要使用此特征, 它需隶属于文档中的零件对象。 diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-TW.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-TW.ts index d39b77faae..bef17de885 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-TW.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh-TW.ts @@ -6,79 +6,79 @@ The center point of the helix' start; derived from the reference axis. - 螺旋線起點的中心點;從參考軸導出. + 螺旋線起點的中心點;從參考軸導出。 The helix' direction; derived from the reference axis. - 螺旋線的方向;從參考軸導出. + 螺旋線的方向;從參考軸導出。 The reference axis of the helix. - 螺旋線的參考軸. + 螺旋線的參考軸。 The helix input mode specifies which properties are set by the user. Dependent properties are then calculated. - 螺旋線輸入模式指定使用者來設定哪些屬性. -相關屬性之後將被計算. + 螺旋線輸入模式指定使用者來設定哪些屬性。 +相關屬性之後將被計算。 The axial distance between two turns. - 兩圈之間的軸向距離. + 兩圈之間的軸向距離。 The height of the helix' path, not accounting for the extent of the profile. - 螺旋路徑的高度,不考慮輪廓的範圍. + 螺旋路徑的高度,不考慮輪廓的範圍。 The number of turns in the helix. - 螺旋線的圈數. + 螺旋線的圈數。 The angle of the cone that forms a hull around the helix. Non-zero values turn the helix into a conical spiral. Positive values make the radius grow, nevatige shrink. - 圍繞螺旋線形成外殼的圓錐的角度. -非零值將螺旋線變成錐形螺旋線. -正值使半徑增大,負值縮小. + 圍繞螺旋線形成外殼的圓錐的角度。 +非零值將螺旋線變成錐形螺旋線。 +正值使半徑增大,負值縮小。 The growth of the helix' radius per turn. Non-zero values turn the helix into a conical spiral. - 每圈螺旋半徑的增長. -非零值將螺旋線變成錐形螺旋線. + 每圈螺旋半徑的增長。 +非零值將螺旋線變成錐形螺旋線。 Sets the turning direction to left handed, i.e. counter-clockwise when moving along its axis. - 將轉向方向設定為左手, -也就是說以逆時針方向沿著軸移動. + 將轉向方向設置為左手, +也就是說以逆時針方向沿著軸移動。 Determines whether the helix points in the opposite direction of the axis. - 確定螺旋線是否指向與軸相反的方向. + 確定螺旋線是否指向與軸相反的方向。 If set, the result will be the intersection of the profile and the preexisting body. - 如果設定,其結果將是輪廓和預先存在的主體的交集. + 如果設定,其結果將是輪廓和預先存在的主體的交集。 If false, the tool will propose an initial value for the pitch based on the profile bounding box, so that self intersection is avoided. 如果為 false,該工具將根據輪廓邊界框建議間距的初始值, -從而避免自我相交. +從而避免自相交。 @@ -195,7 +195,7 @@ so that self intersection is avoided. Create a new body and make it active - 建立一個實體並且啟用它 + 新增一個實體並使激活它 @@ -262,12 +262,12 @@ so that self intersection is avoided. Create a clone - 建立一個複製體 + 建立一個副本 Create a new clone - 建立一個新的複製體 + 建立一個副本 @@ -298,12 +298,12 @@ so that self intersection is avoided. Duplicate selected object - 複製選定物體 + 複製選定物件 Duplicates the selected object and adds it to the active body - 複製已選物體加至已啟用之實體 + 複製已選物件加至已激活之實體 @@ -411,7 +411,7 @@ so that self intersection is avoided. Migrate document to the modern PartDesign workflow - 移動文件至零件設計工作台 + 移動文件至PartDesign工作區 @@ -442,12 +442,12 @@ so that self intersection is avoided. Move object to other body - 移動物體至其他物體 + 移動物件至其他物體 Moves the selected object to another body - 移動物體至另一物體 + 移動物件至另一物體 @@ -460,12 +460,12 @@ so that self intersection is avoided. Move object after other object - 移動物體至後 + 移動物件至後 Moves the selected object and insert it after another object - 插入物體至物體之後 + 插入物件至物體之後 @@ -519,7 +519,7 @@ so that self intersection is avoided. Create a new sketch - 建立一個新的草圖 + 建立一個新的sketch @@ -677,7 +677,7 @@ so that self intersection is avoided. Create a sub-object(s) shape binder - 建立子物體形狀粘合 + 建立子物件形狀粘合劑 @@ -763,7 +763,7 @@ so that self intersection is avoided. Create an additive primitive - 建立一個附加的基本物體 + 建立一個附加的基本物件 @@ -793,7 +793,7 @@ so that self intersection is avoided. Additive Torus - 增加中空環型體 + 添加中空環型體 @@ -870,23 +870,23 @@ so that self intersection is avoided. Create ShapeBinder - 建立形狀粘合 + 建立形狀粘合劑 Create SubShapeBinder - 編輯子形狀粘合 + 編輯子形狀粘合劑 Create Clone - 建立一個複製體 + 建立一個副本 Make copy - 製作複製體 + 製作拷貝 @@ -927,17 +927,17 @@ so that self intersection is avoided. Duplicate a PartDesign object - 複製一個零件設計物體 + 複製一個 PartDesign 物件 Move an object - 移動物體 + 移動物件 Move an object inside tree - 將一個物體移至樹中 + 將一個物件移至樹中 @@ -975,7 +975,7 @@ so that self intersection is avoided. No wire in sketch - 草圖找不到線段 + 草圖找不到路徑 @@ -1026,12 +1026,12 @@ so that self intersection is avoided. Number of teeth: - 齒數: + 齒數: Module: - 模組: + 模組: @@ -1086,15 +1086,15 @@ so that self intersection is avoided. Active Body Required - 需要啟用的實體 + 需要激活的實體 To create a new PartDesign object, there must be an active Body object in the document. Please select a body from below, or create a new body. - 要建立新的零件設計物體,文件中必須有一個啟用的實體物體. -請由下選擇一個實體,或建立一個新的實體. + 要建立新的 PartDesign 物件,文件中必須有一個激活的實體物件。 +請由下選擇一個實體,或建立一個新的實體。 @@ -1148,7 +1148,7 @@ Please select a body from below, or create a new body. Angle in first direction: - 第一方向之角度: + 第一方向之角度: @@ -1160,7 +1160,7 @@ Please select a body from below, or create a new body. Angle in second direction: - 第二方向之角度: + 第二方向之角度: @@ -1171,7 +1171,7 @@ Please select a body from below, or create a new body. Rotation angle: - 旋轉角度: + 旋轉角度: @@ -1191,18 +1191,18 @@ Please select a body from below, or create a new body. Angle: - 角度: + 角度: U parameter: - 繞指定軸角度: + 繞指定軸角度: V parameters: - 與指定軸之夾角: + 與指定軸之夾角: @@ -1230,7 +1230,7 @@ If zero, it is equal to Radius2 V parameter: - 與指定軸之夾角: + 與指定軸之夾角: @@ -1245,7 +1245,7 @@ If zero, it is equal to Radius2 U Parameter: - 繞指定軸角度: + 繞指定軸角度: @@ -1257,7 +1257,7 @@ If zero, it is equal to Radius2 Circumradius: - 外接圓: + 外接圓 @@ -1287,12 +1287,12 @@ If zero, it is equal to Radius2 Pitch: - 俯仰: + 俯仰: Coordinate system: - 座標系統: + 座標系統: @@ -1307,24 +1307,24 @@ If zero, it is equal to Radius2 Growth: - 增長: + 成長: Number of rotations: - 迴旋數量: + 迴旋數量: Angle 1: - 角度 1: + 角度 1: Angle 2: - 角度 2: + 角度 2: @@ -1334,12 +1334,12 @@ If zero, it is equal to Radius2 Major radius: - 主半徑: + 主半徑: Minor radius: - 次要半徑: + 次要半徑: @@ -1365,12 +1365,12 @@ If zero, it is equal to Radius2 Start point - 起點 + 起始點 End point - 終點 + 最末點 @@ -1383,7 +1383,7 @@ If zero, it is equal to Radius2 You selected geometries which are not part of the active body. Please define how to handle those selections. If you do not want those references, cancel the command. - 你所選之幾何物並非啟用中實體之一部份,請定義如何處理這些選擇. 如果你不想要這些參考的話請取消此指令. + 你所選之幾何物並非活躍實體之一部份,請定義如何處理這些選擇。如果你不想要這些參考的話請取消此指令。 @@ -1406,7 +1406,7 @@ If zero, it is equal to Radius2 Selecting this will cause circular dependency. - 選擇這個可能導致循環依賴. + 挑選這個可能導致循環參照 @@ -1508,8 +1508,7 @@ If zero, it is equal to Radius2 Click button to enter selection mode, click again to end selection - 點擊按鍵以進入選擇模式, -再點擊以結束選擇 + 點擊按鍵以進入選擇模式,再點擊以結束選擇。 @@ -1520,8 +1519,8 @@ click again to end selection - select an item to highlight it - double-click on an item to see the chamfers - - 選擇一個項目以高亮顯示它 -- 雙擊一個項目以檢視倒角 + - 選擇一個項目以突出顯示它 +- 雙擊一個項目以查看倒角 @@ -1581,7 +1580,7 @@ click again to end selection Empty body list - 清空實體清單 + 清空本體清單 @@ -1591,7 +1590,7 @@ click again to end selection Boolean: Accept: Input error - 布林值: 接受: 輸入錯誤 + 布林值: 接受: 輸出錯誤 @@ -1599,12 +1598,12 @@ click again to end selection Incompatible reference set - 不相容的參考集合合 + 不相容的參照集 There is no attachment mode that fits the current set of references. If you choose to continue, the feature will remain where it is now, and will not be moved as the references change. Continue? - 沒有適合目前參考集合的附件模式. 如果您選擇繼續,該特徵將保留在它現在的位置,並且不會隨著參考的變化而移動. 是否繼續? + 沒有適合當前參考集的附件模式。如果您選擇繼續,該特徵將保留在它現在的位置,並且不會隨著參考的變化而移動。是否繼續 ? @@ -1634,8 +1633,7 @@ click again to end selection Click button to enter selection mode, click again to end selection - 點擊按鍵以進入選擇模式, -再點擊以結束選擇 + 點擊按鍵以進入選擇模式,再點擊以結束選擇。 @@ -1646,8 +1644,8 @@ click again to end selection - select an item to highlight it - double-click on an item to see the drafts - - 選擇一個項目以高亮顯示它 -- 雙擊一個項目以檢視草稿 + - 選擇一個項目以突出顯示它 +- 雙擊一個項目以查看草稿 @@ -1691,7 +1689,7 @@ click again to end selection Add all edges - 增加所有邊線 + 添加所有邊線 @@ -1799,7 +1797,7 @@ click again to end selection No wire in sketch - 草圖找不到線段 + 草圖找不到路徑 @@ -1848,8 +1846,7 @@ click again to end selection Click button to enter selection mode, click again to end selection - 點擊按鍵以進入選擇模式, -再點擊以結束選擇 + 點擊按鍵以進入選擇模式,再點擊以結束選擇。 @@ -1860,8 +1857,8 @@ click again to end selection - select an item to highlight it - double-click on an item to see the fillets - - 選擇一個項目以高亮顯示它 -- 雙擊一個項目以檢視其圓角 + - 選擇一個項目以突出顯示它 +- 雙擊一個項目以查看其圓角 @@ -1901,25 +1898,25 @@ click again to end selection Axis: - 軸: + 軸: Base X axis - 物體原點的 X軸 + 基本 X 軸 Base Y axis - 物體原點的 Y軸 + 物體原點的Y軸 Base Z axis - 物體原點的 Z軸 + Z 軸 @@ -1948,12 +1945,12 @@ click again to end selection Mode: - 模式: + 模式: Pitch-Height-Angle - 間距-高度-角度 + 俯仰高度角 @@ -1968,12 +1965,12 @@ click again to end selection Height-Turns-Growth - 高度-轉角-增長 + 高度-轉圈數-增長 Pitch: - 俯仰: + 俯仰: @@ -1983,22 +1980,22 @@ click again to end selection Turns: - 轉角: + 圈數: Cone angle: - 錐角: + 錐角: Radial growth: - 徑向增長: + 徑向增長: Left handed - 左手系統 + 左撇子 @@ -2013,7 +2010,7 @@ click again to end selection Update view - 更新檢視 + 更新視圖 @@ -2023,7 +2020,7 @@ click again to end selection Construction line %1 - 結構線 %1 + 結構線 %1: @@ -2038,7 +2035,7 @@ click again to end selection Error: unsupported mode - 錯誤: 不支援的模式 + 錯誤:不支援的模式 @@ -2056,7 +2053,7 @@ click again to end selection Counterdrill - 沉頭鑽 + Counterdrill @@ -2076,22 +2073,22 @@ click again to end selection ISO metric fine profile - ISO 公制細牙 + ISO公制細牙 UTS coarse profile - UTS 統一英制粗牙 + UTS統一英制粗牙 UTS fine profile - UTS 統一英制細牙 + UTS統一英制細牙 UTS extra fine profile - UTS 統一英制特細牙 + UTS統一英制特細牙 @@ -2124,7 +2121,7 @@ click again to end selection Reverse direction - Reverse direction + 反轉方向 @@ -2144,7 +2141,7 @@ click again to end selection Update view - 更新檢視 + 更新視圖 @@ -2177,12 +2174,12 @@ click again to end selection Profile - 輪廓特徵 + 輪廓 Object - 物體 + 物件 @@ -2202,7 +2199,7 @@ click again to end selection Update view - 更新檢視 + 更新視圖 @@ -2250,7 +2247,7 @@ click again to end selection Update view - 更新檢視 + 更新視圖 @@ -2293,7 +2290,7 @@ click again to end selection Update view - 更新檢視 + 更新視圖 @@ -2313,7 +2310,7 @@ click again to end selection Add mirrored transformation - 加入鏡像效果 + 加入鏡射效果 @@ -2361,7 +2358,7 @@ click again to end selection Reverses pad direction - 反向填充方向 + 相反填充方向 @@ -2424,7 +2421,7 @@ click again to end selection Direction/edge: - 方向/邊: + 方向/邊: @@ -2456,8 +2453,7 @@ from the model as reference Use custom vector for pad direction, otherwise the sketch plane's normal vector will be used - 使用自定向量作為填充方向, -否則使用草圖平面的法線來填充厚度 + 使用自定向量作為填充方向,否則使用草圖平面的法線來長厚度 @@ -2503,7 +2499,7 @@ measured along the specified direction Applies length symmetrically to sketch plane - 將長度對稱地套用於草圖平面 + 將長度對稱地應用於草圖平面 @@ -2544,7 +2540,7 @@ measured along the specified direction Update view - 更新檢視 + 更新視圖 @@ -2572,7 +2568,7 @@ measured along the specified direction Frenet - 弗倫內公式(Frenet) + 弗勒內公式(Frenet) @@ -2582,7 +2578,7 @@ measured along the specified direction Binormal - 次法線 + 副法向量 @@ -2592,12 +2588,12 @@ measured along the specified direction Profile - 輪廓特徵 + 輪廓 Object - 物體 + 物件 @@ -2612,7 +2608,7 @@ measured along the specified direction Set the constant binormal vector used to calculate the profiles orientation - 設定用於計算輪廓方向的恆定次法線 + 設定用於計算輪廓方向的恆定副法向量 @@ -2630,12 +2626,12 @@ measured along the specified direction Z - + Section orientation 輪廓圖方向 - + Remove 移除 @@ -2650,13 +2646,13 @@ measured along the specified direction Profile - 輪廓特徵 + 輪廓 Object - 物體 + 物件 @@ -2694,25 +2690,25 @@ measured along the specified direction 移除邊界 - + Pipe parameters 管件參數 - + Remove 移除 - - + + Input error 輸入錯誤 - + No active body - 沒有啟用中的實體 + 沒有活躍的實體 @@ -2753,12 +2749,12 @@ measured along the specified direction 清單可以通過拖曳來重新排序 - + Section transformation 輪廓圖轉換 - + Remove 移除 @@ -2831,12 +2827,12 @@ measured along the specified direction Axis - 軸座標 + Reverse direction - Reverse direction + 反轉方向 @@ -2856,7 +2852,7 @@ measured along the specified direction Update view - 更新檢視 + 更新視圖 @@ -2887,25 +2883,25 @@ measured along the specified direction Axis: - 軸: + 軸: Base X axis - 物體原點的 X軸 + 基本 X 軸 Base Y axis - 物體原點的 Y軸 + 物體原點的Y軸 Base Z axis - 物體原點的 Z軸 + Z 軸 @@ -2926,7 +2922,7 @@ measured along the specified direction Angle: - 角度: + 角度: @@ -2941,7 +2937,7 @@ measured along the specified direction Update view - 更新檢視 + 更新視圖 @@ -2984,7 +2980,7 @@ measured along the specified direction Update view - 更新檢視 + 更新視圖 @@ -3002,7 +2998,7 @@ measured along the specified direction Object - 物體 + 物件 @@ -3044,8 +3040,7 @@ measured along the specified direction Click button to enter selection mode, click again to end selection - 點擊按鍵以進入選擇模式, -再點擊以結束選擇 + 點擊按鍵以進入選擇模式,再點擊以結束選擇。 @@ -3056,8 +3051,8 @@ click again to end selection - select an item to highlight it - double-click on an item to see the features - - 選擇一個項目以高亮顯示它 -- 雙擊一個項目以檢視其特徵 + - 選擇一個項目以突出顯示它 +- 雙擊一個項目以查看其特徵 @@ -3082,7 +3077,7 @@ click again to end selection Recto Verso - 正反面 + 方向 @@ -3142,22 +3137,22 @@ click again to end selection Construction line %1 - 結構線 %1 + 結構線 %1: Base X axis - 物體原點的 X軸 + 基本 X 軸 Base Y axis - 物體原點的 Y軸 + 物體原點的Y軸 Base Z axis - 物體原點的 Z軸 + Z 軸 @@ -3168,17 +3163,17 @@ click again to end selection Base XY plane - 物體原點的 XY 平面 + XY 平面 Base YZ plane - 物體原點的 YZ 平面 + YZ 平面 Base XZ plane - 物體原點的 XZ 平面 + XZ 平面 @@ -3186,7 +3181,7 @@ click again to end selection Toggle active body - 切換啟用中的實體 + 切換激活的實體 @@ -3403,7 +3398,7 @@ click again to end selection The moved feature appears after the currently set tip. - 移動特徵出現在目前設定的尖點之後. + 移動特徵出現在當前設置的尖點之後。 @@ -3421,7 +3416,7 @@ click again to end selection There are no attachment modes that fit selected objects. Select something else. - 沒有適合選定物體的附件模式. 選擇其它東西. + 沒有適合選定物件的附件模式。選擇其它東西。 @@ -3433,12 +3428,12 @@ click again to end selection There is no active body. Please make a body active before inserting a datum entity. - 目前沒有啟用中實體,請在插入基準個體前設定一個啟用中的實體. + 目前沒有活躍實體,請在插入基準個體前設定一個活躍的實體。 Sub-Shape Binder - 子形狀粘合 + 子形狀粘合劑 @@ -3473,12 +3468,12 @@ click again to end selection No valid planes in this document - 在此文件的非法平面 + 在本文件的非法平面 Please create a plane first or select a face to sketch on - 請先建立一個平面或選擇要在其上繪製草圖的面 + 請先創建一個平面或選擇要在其上繪製草圖的面 @@ -3514,17 +3509,17 @@ click again to end selection Ensure that the body contains a feature before attempting a subtractive command. - 在嘗試除料命令之前,請確保實體包含特徵. + 在嘗試除料命令之前,請確保實體包含特徵。 Cannot use selected object. Selected object must belong to the active body - 無法使用選定的物體. 選定物體必須屬於啟用中實體 + 無法使用選定的物件。選定物件必須屬於活動實體 Consider using a ShapeBinder or a BaseFeature to reference external geometry in a body. - 考慮使用 形狀粘合劑 或 基礎特徵 來引用實體中的外部幾何體. + 考慮使用 ShapeBinder 或 BaseFeature 來引用實體中的外部幾何體。 @@ -3545,18 +3540,18 @@ click again to end selection Select an edge, face, or body from a single body. - 自單一實體中選擇一個邊、面或是實體. + 自單一實體中選擇一個邊、面或是實體 Selection is not in Active Body - 選擇不在一個啟用中的實體中 + 選擇不在一個活躍的實體中 Select an edge, face, or body from an active body. - 自一個啟用中實體中選擇一個邊、面或是實體. + 自一個活躍實體中選擇一個邊、面或是實體 @@ -3566,7 +3561,7 @@ click again to end selection %1 works only on parts. - %1 僅能用於零件上. + %1 僅能用於零件上 @@ -3581,22 +3576,22 @@ click again to end selection Please create a feature first. - 請先建立一個特徵. + 請先建立一個特徵。 Please select only one feature in an active body. - 請在一個啟用中實體中只選擇一個特徵. + 請在一個活躍實體中只選擇一個特徵 Part creation failed - 零件建立失敗 + 新增零件失敗 Failed to create a part object. - 建立一個零件物體失敗. + 建立一個part物件失敗 @@ -3604,22 +3599,22 @@ click again to end selection Bad base feature - 壞的基礎特性 + 壞掉的基礎特性 Body can't be based on a PartDesign feature. - 實體不能建構於零件設計特徵上. + 實體不能建構於 PartDesign 特徵上 %1 already belongs to a body, can't use it as base feature for another body. - %1 已經屬於某個實體,不能用在另一個實體的基礎特徵上. + %1 已經屬於某個實體,不能用在另一個實體的基本特徵上 Base feature (%1) belongs to other part. - 基礎特徵 (%1) 屬於其他零件. + 基本特徵 (%1) 屬於其他部分。 @@ -3632,15 +3627,15 @@ This may lead to unexpected results. The selected shape consists of multiple shells. This may lead to unexpected results. - 選定的形狀由多個外殼組成. -這可能導致無法預測的結果. + 選定的形狀由多個殼組成。 +這可能導致無法預測的結果。 The selected shape consists of only a shell. This may lead to unexpected results. - 選定的形狀只由一個外殼組成. -這可能導致無法預測的結果. + 選定的形狀只由一個殼組成。 +這可能導致無法預測的結果。 @@ -3652,12 +3647,12 @@ This may lead to unexpected results. Base feature - 基礎特徵 + 基本特性 Body may be based on no more than one feature. - 實體可能基於不超過一個特徵. + 實體可能基於不超過一個特徵 @@ -3672,7 +3667,7 @@ This may lead to unexpected results. No PartDesign features found that don't belong to a body. Nothing to migrate. - 未找到不屬於實體的零件設計特徵. 沒有什麼東西可以遷移. + 未找到不屬於實體的 PartDesign 特徵。沒有什麼東西可以遷移。 @@ -3682,7 +3677,7 @@ This may lead to unexpected results. Please edit '%1' and redefine it to use a Base or Datum plane as the sketch plane. - 請編輯 '%1' 並重新定義它以使用基礎或基準平面作為草圖平面. + 請編輯 '%1' 並重新定義它以使用 Base 或 Datum 平面作為草圖平面。 @@ -3696,12 +3691,12 @@ This may lead to unexpected results. Select exactly one PartDesign feature or a body. - 選擇正好一個零件設計特徵或是一個實體. + 選擇正好一個 PartDesign 特徵或是一個實體 Couldn't determine a body for the selected feature '%s'. - 無法決定所選特徵之實體. + 無法決定所選特徵之實體 @@ -3733,12 +3728,12 @@ This may lead to unexpected results. Impossible to move the base feature of a body. - 不可能移動實體的基礎特徵. + 不可能移動實體的基礎特徵 Select one or more features from the same body. - 選擇相同實體的一個或更多個特徵. + 選擇相同實體的一個或更多個特徵 @@ -3755,9 +3750,7 @@ This may lead to unexpected results. Early feature must not depend on later feature. - 較早的特徵不可以相依在較晚的特徵. - - + 較早的特徵不可以相依在較晚的特徵。 @@ -3767,7 +3760,7 @@ This may lead to unexpected results. It is not possible to create a subtractive feature without a base feature available - 如果沒有可用的基礎特徵,則無法建立除料特徵 + 如果沒有可用的基本特徵,則無法創建除料特徵 @@ -3784,7 +3777,7 @@ This may lead to unexpected results. Construction line %1 - 結構線 %1 + 結構線 %1: @@ -3792,43 +3785,43 @@ This may lead to unexpected results. - + In order to use PartDesign you need an active Body object in the document. Please make one active (double click) or create one. If you have a legacy document with PartDesign objects without Body, use the migrate function in PartDesign to put them into a Body. - 要使用零件設計物體,文件中必須有一個啟用的實體物體. 請雙擊啟用一個實體,或建立一個新的實體. -如果您使用舊版文件其零件設計物體沒有實體的話,使用零件設計中之遷移功能將他們搬到一個實體中. + 要使用 PartDesign 物件,文件中必須有一個激活的實體物件。請雙擊激活一個實體,或建立一個新的實體。 +如果您使用舊版文件其 PartDesign 物件沒有實體的話,使用 PartDesign 中之遷移功能將他們搬到一個實體中。 + + + + Active Body Required + 需要激活的實體 - Active Body Required - 需要啟用的實體 - - - To create a new PartDesign object, there must be an active Body object in the document. Please make one active (double click) or create a new Body. - 要建立新的零件設計物體,文件中必須有一個啟用的實體物體. -請雙擊啟用一個實體,或建立一個新的實體. + 要建立新的 PartDesign 物件,文件中必須有一個激活的實體物件。 +請雙擊激活一個實體,或建立一個新的實體。 - + Feature is not in a body 特徵不在實體中 - + In order to use this feature it needs to belong to a body object in the document. - 為了使用此特徵,它需要屬於文件中的實體物體. + 為了使用此特徵,它需要屬於文件中的實體物件。 - + Feature is not in a part 特徵不在零件中 - + In order to use this feature it needs to belong to a part object in the document. - 為了使用此特徵,它需要屬於文件中的一個零件物體. + 為了使用此特徵,它需要屬於文件中的一個零件物件。 @@ -3869,7 +3862,7 @@ If you have a legacy document with PartDesign objects without Body, use the migr Coordinate System - 座標系統 + 座標系 @@ -3931,7 +3924,7 @@ This feature is broken and can't be edited. Edit shape binder - 編輯形狀粘合 + 編輯形狀粘合劑 @@ -3941,7 +3934,7 @@ This feature is broken and can't be edited. Select bound object - 選擇綁定物體 + 選擇綁定物件 @@ -3961,17 +3954,17 @@ This feature is broken and can't be edited. The document "%1" you are editing was designed with an old version of PartDesign workbench. - 您所編輯的文件 "%1" 是由舊版的零件設計工作台所設計. + 您所編輯的文件 "%1" 是由舊版的 PartDesign 工作台所設計。 Do you want to migrate in order to use modern PartDesign features? - 您要遷移以使用新版零件設計功能嗎? + 您要遷移以使用現代 PartDesign 功能嗎? The document "%1" seems to be either in the middle of the migration process from legacy PartDesign or have a slightly broken structure. - 文件 "%1" 似乎正處於從舊零件設計遷移過程的中間,或者具有輕微損壞的結構. + 文檔 "%1" 似乎正處於從舊 PartDesign 遷移過程的中間,或者具有輕微損壞的結構。 @@ -3983,9 +3976,9 @@ This feature is broken and can't be edited. Note: If you choose to migrate you won't be able to edit the file with an older FreeCAD version. If you refuse to migrate you won't be able to use new PartDesign features like Bodies and Parts. As a result you also won't be able to use your parts in the assembly workbench. Although you will be able to migrate any moment later with 'Part Design -> Migrate'. - 注意: 如果您選擇遷移,您將無法使用舊版 FreeCAD 編輯文件. -如果您拒絕遷移,您將無法使用新的零件設計功能,例如實體和零件. 因此,您也將無法在零件組合工作台中使用您的零件. -儘管您稍後可以使用'零件設計 -> 遷移'進行遷移. + 注意:如果您選擇遷移,您將無法使用舊版 FreeCAD 編輯文件。 +如果您拒絕遷移,您將無法使用新的 PartDesign 功能,例如實體和零件。因此,您也將無法在 assembly 工作台中使用您的零件。 +儘管您稍後可以使用“零件設計 -> 遷移”進行遷移。 @@ -4048,17 +4041,17 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Sprocket parameter - 齒輪參數 + 鏈輪參數 Number of teeth: - 齒數: + 齒數: Sprocket Reference - 齒輪參考 + 鏈輪參考 @@ -4213,7 +4206,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Chain Pitch: - 鏈節距: + 鏈節距: @@ -4268,7 +4261,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Through - 貫穿 + 穿過 @@ -4327,7 +4320,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Custom thread length - 自訂螺紋長度 + 自訂螺紋長度 @@ -4375,7 +4368,7 @@ Although you will be able to migrate any moment later with 'Part Design -> Mi Profile - 輪廓特徵 + 輪廓 @@ -4407,7 +4400,7 @@ Note that the calculation can take some time Update view - 更新檢視 + 更新視圖 @@ -4610,9 +4603,9 @@ account for the depth of blind holes under 90: smaller hole radius at the bottom over 90: larger hole radius at the bottom 孔錐角 -90度: 直孔 -低於90: 底部的孔半徑較小 -超過90: 底部孔半徑較大 +90度:直孔 +低於 90:底部的孔半徑較小 +超過 90:底部孔半徑較大 @@ -4653,12 +4646,12 @@ over 90: larger hole radius at the bottom &Sketch - 草圖(&S) + &草圖 &Part Design - 零件設計(&P) + &零件設計 @@ -4668,7 +4661,7 @@ over 90: larger hole radius at the bottom Create an additive feature - 建立可增加特徵 + 建立可添加特徵 @@ -4683,12 +4676,12 @@ over 90: larger hole radius at the bottom Apply a dress-up feature - 套用 外觀裝飾 特徵 + 應用 dress-up 功能 Sprocket... - 齒輪... + 鏈輪... @@ -4736,7 +4729,7 @@ over 90: larger hole radius at the bottom Creates or edit the involute gear definition. - 建立或編輯漸開線齒輪定義. + Creates or edit the involute gear definition. @@ -4744,12 +4737,12 @@ over 90: larger hole radius at the bottom Sprocket... - 齒輪... + 鏈輪... Creates or edit the sprocket definition. - 建立或編輯齒輪定義. + Creates or edit the sprocket definition. @@ -4757,42 +4750,42 @@ over 90: larger hole radius at the bottom Length [mm] - 長度[mm] + Length [mm] Diameter [mm] - 直徑[mm] + Diameter [mm] Inner diameter [mm] - 內徑[mm] + Inner diameter [mm] Constraint type - 拘束類型 + Constraint type Start edge type - 開始邊類型 + Start edge type Start edge size - 開始邊尺寸 + Start edge size End edge type - 結束邊類型 + End edge type End edge size - 結束邊尺寸 + End edge size @@ -4843,12 +4836,12 @@ over 90: larger hole radius at the bottom Shaft design wizard... - 軸設計精靈... + Shaft design wizard... Start the shaft design wizard - 啟動軸設計精靈 + Start the shaft design wizard @@ -4856,12 +4849,12 @@ over 90: larger hole radius at the bottom Shaft design wizard... - 軸設計精靈... + Shaft design wizard... Start the shaft design wizard - 啟動軸設計精靈 + Start the shaft design wizard @@ -5037,9 +5030,9 @@ over 90: larger hole radius at the bottom - the active Body does not contain a base shape, so there is no material to be removed; - the selected sketch does not belong to the active Body. - 要求之特徵無法建立,可能的原因有: - - 啟用中實體不包含一個基礎形狀,所以沒有可移除之材料; - - 所選擇的草圖不屬於啟用中實體. + 要求之特徵無法建立,可能的原因有: + - 活躍實體不包含一個基礎形狀,所以沒有可移除之材料; + - 所選擇的草圖不屬於活躍實體。 @@ -5103,7 +5096,7 @@ Intersecting sketch entities in a sketch are not allowed. Error: unsupported mode - 錯誤: 不支援的模式 + 錯誤:不支援的模式 diff --git a/src/Mod/PartDesign/Gui/TaskBooleanParameters.cpp b/src/Mod/PartDesign/Gui/TaskBooleanParameters.cpp index 8da1456d6e..766886d2c9 100644 --- a/src/Mod/PartDesign/Gui/TaskBooleanParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskBooleanParameters.cpp @@ -235,7 +235,7 @@ void TaskBooleanParameters::onTypeChanged(int index) pcBoolean->getDocument()->recomputeFeature(pcBoolean); } -const std::vector TaskBooleanParameters::getBodies(void) const +const std::vector TaskBooleanParameters::getBodies() const { std::vector result; for (int i = 0; i < ui->listWidgetBodies->count(); i++) @@ -243,12 +243,12 @@ const std::vector TaskBooleanParameters::getBodies(void) const return result; } -int TaskBooleanParameters::getType(void) const +int TaskBooleanParameters::getType() const { return ui->comboType->currentIndex(); } -void TaskBooleanParameters::onBodyDeleted(void) +void TaskBooleanParameters::onBodyDeleted() { PartDesign::Boolean* pcBoolean = static_cast(BooleanView->getObject()); std::vector bodies = pcBoolean->Group.getValues(); diff --git a/src/Mod/PartDesign/Gui/TaskChamferParameters.h b/src/Mod/PartDesign/Gui/TaskChamferParameters.h index 41b8b10e76..0d93bf3c21 100644 --- a/src/Mod/PartDesign/Gui/TaskChamferParameters.h +++ b/src/Mod/PartDesign/Gui/TaskChamferParameters.h @@ -50,8 +50,8 @@ private Q_SLOTS: void onSize2Changed(double); void onAngleChanged(double); void onFlipDirection(bool); - void onRefDeleted(void) override; - void onAddAllEdges(void); + void onRefDeleted() override; + void onAddAllEdges(); void onCheckBoxUseAllEdgesToggled(bool checked); protected: @@ -60,11 +60,11 @@ protected: void changeEvent(QEvent *e) override; void onSelectionChanged(const Gui::SelectionChanges& msg) override; - int getType(void) const; - double getSize(void) const; - double getSize2(void) const; - double getAngle(void) const; - bool getFlipDirection(void) const; + int getType() const; + double getSize() const; + double getSize2() const; + double getAngle() const; + bool getFlipDirection() const; private: void setUpUI(PartDesign::Chamfer* pcChamfer); diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp index 513201ebcd..4ad7a6b010 100644 --- a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp @@ -196,7 +196,7 @@ void TaskDraftParameters::onButtonLine(bool checked) } } -void TaskDraftParameters::onRefDeleted(void) +void TaskDraftParameters::onRefDeleted() { TaskDressUpParameters::deleteRef(ui->listWidgetReferences); } @@ -230,7 +230,7 @@ void TaskDraftParameters::onAngleChanged(double angle) hideOnError(); } -double TaskDraftParameters::getAngle(void) const +double TaskDraftParameters::getAngle() const { return ui->draftAngle->value().getValue(); } @@ -245,7 +245,7 @@ void TaskDraftParameters::onReversedChanged(const bool on) { hideOnError(); } -bool TaskDraftParameters::getReversed(void) const +bool TaskDraftParameters::getReversed() const { return ui->checkReverse->isChecked(); } diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp index be09cb2e22..ea8f5cd362 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp @@ -362,7 +362,7 @@ void TaskDressUpParameters::showObject() } } -Part::Feature* TaskDressUpParameters::getBase(void) const +Part::Feature* TaskDressUpParameters::getBase() const { PartDesign::DressUp* pcDressUp = static_cast(DressUpView->getObject()); // Unlikely but this may throw an exception in case we are started to edit an object which base feature diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.h b/src/Mod/PartDesign/Gui/TaskDressUpParameters.h index 0803ed7321..06ec92173f 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.h +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.h @@ -49,8 +49,8 @@ public: TaskDressUpParameters(ViewProviderDressUp *DressUpView, bool selectEdges, bool selectFaces, QWidget* parent = nullptr); ~TaskDressUpParameters() override; - const std::vector getReferences(void) const; - Part::Feature *getBase(void) const; + const std::vector getReferences() const; + Part::Feature *getBase() const; void hideObject(); void showObject(); @@ -68,7 +68,7 @@ protected Q_SLOTS: void doubleClicked(QListWidgetItem* item); void setSelection(QListWidgetItem* current); void itemClickedTimeout(); - virtual void onRefDeleted(void) = 0; + virtual void onRefDeleted() = 0; void createDeleteAction(QListWidget* parentList); void createAddAllEdgesAction(QListWidget* parentList); diff --git a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.h b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.h index 80baa86212..062030cd52 100644 --- a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.h +++ b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.h @@ -102,24 +102,24 @@ protected: App::PropertyLinkSub* propReferenceAxis; void getReferenceAxis(App::DocumentObject*& obj, std::vector& sub) const; - double getOffset(void) const; - bool getAlongSketchNormal(void) const; - bool getCustom(void) const; - std::string getReferenceAxis(void) const; - double getXDirection(void) const; - double getYDirection(void) const; - double getZDirection(void) const; - bool getReversed(void) const; - bool getMidplane(void) const; - int getMode(void) const; - QString getFaceName(void) const; + double getOffset() const; + bool getAlongSketchNormal() const; + bool getCustom() const; + std::string getReferenceAxis() const; + double getXDirection() const; + double getYDirection() const; + double getZDirection() const; + bool getReversed() const; + bool getMidplane() const; + int getMode() const; + QString getFaceName() const; void onSelectionChanged(const Gui::SelectionChanges& msg) override; virtual void translateModeList(int index); virtual void updateUI(int index); - void updateDirectionEdits(void); + void updateDirectionEdits(); void setDirectionMode(int index); - void handleLineFaceNameClick(void); - void handleLineFaceNameNo(void); + void handleLineFaceNameClick(); + void handleLineFaceNameNo(); private: void tryRecomputeFeature(); diff --git a/src/Mod/PartDesign/Gui/TaskFeaturePick.h b/src/Mod/PartDesign/Gui/TaskFeaturePick.h index 4f3e991c22..23734959d1 100644 --- a/src/Mod/PartDesign/Gui/TaskFeaturePick.h +++ b/src/Mod/PartDesign/Gui/TaskFeaturePick.h @@ -123,13 +123,13 @@ public: /// is called by the framework if the dialog is rejected (Cancel) bool reject() override; /// is called by the framework if the user presses the help button - bool isAllowedAlterDocument(void) const override + bool isAllowedAlterDocument() const override { return false; } void showExternal(bool val); /// returns for Close and Help button - QDialogButtonBox::StandardButtons getStandardButtons(void) const override + QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Ok|QDialogButtonBox::Cancel; } diff --git a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp index c9d4fa60f2..a7cedbba43 100644 --- a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp @@ -37,7 +37,7 @@ using namespace PartDesignGui; using namespace Gui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR PartDesignGui::TaskHoleParameters */ @@ -250,8 +250,10 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare ui->ThreadDepth->bind(pcHole->ThreadDepth); ui->CustomThreadClearance->bind(pcHole->CustomThreadClearance); + //NOLINTBEGIN connectPropChanged = App::GetApplication().signalChangePropertyEditor.connect( - boost::bind(&TaskHoleParameters::changedObject, this, bp::_1, bp::_2)); + std::bind(&TaskHoleParameters::changedObject, this, sp::_1, sp::_2)); + //NOLINTEND this->groupLayout()->addWidget(proxy); } diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 7ff72735e3..dade40b34f 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -359,7 +359,7 @@ void TaskLinearPatternParameters::onUpdateView(bool on) } } -void TaskLinearPatternParameters::onFeatureDeleted(void) +void TaskLinearPatternParameters::onFeatureDeleted() { PartDesign::Transformed* pcTransformed = getObject(); std::vector originals = pcTransformed->Originals.getValues(); @@ -382,17 +382,17 @@ void TaskLinearPatternParameters::getDirection(App::DocumentObject*& obj, std::v sub = lnk.getSubValues(); } -bool TaskLinearPatternParameters::getReverse(void) const +bool TaskLinearPatternParameters::getReverse() const { return ui->checkReverse->isChecked(); } -double TaskLinearPatternParameters::getLength(void) const +double TaskLinearPatternParameters::getLength() const { return ui->spinLength->value().getValue(); } -unsigned TaskLinearPatternParameters::getOccurrences(void) const +unsigned TaskLinearPatternParameters::getOccurrences() const { return ui->spinOccurrences->value(); } diff --git a/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp b/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp index 8b8d8f1abe..489cd286a6 100644 --- a/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp @@ -24,7 +24,6 @@ #ifndef _PreComp_ # include -# include # include # include #endif @@ -591,7 +590,7 @@ TaskPipeOrientation::TaskPipeOrientation(ViewProviderPipe* PipeView, bool /*newO // should be called after panel has become visible QMetaObject::invokeMethod(this, "updateUI", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,pipe->Mode.getValue())); + Q_ARG(int,pipe->Mode.getValue())); this->blockSelection(false); } @@ -846,7 +845,7 @@ TaskPipeScaling::TaskPipeScaling(ViewProviderPipe* PipeView, bool /*newObj*/, QW // should be called after panel has become visible QMetaObject::invokeMethod(this, "updateUI", Qt::QueuedConnection, - QGenericReturnArgument(), Q_ARG(int,pipe->Transformation.getValue())); + Q_ARG(int,pipe->Transformation.getValue())); this->blockSelection(false); } diff --git a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp index c565ecf839..5e4837dac6 100644 --- a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp @@ -358,7 +358,7 @@ void TaskPolarPatternParameters::onUpdateView(bool on) } } -void TaskPolarPatternParameters::onFeatureDeleted(void) +void TaskPolarPatternParameters::onFeatureDeleted() { PartDesign::Transformed* pcTransformed = getObject(); std::vector originals = pcTransformed->Originals.getValues(); @@ -381,17 +381,17 @@ void TaskPolarPatternParameters::getAxis(App::DocumentObject*& obj, std::vector< sub = lnk.getSubValues(); } -bool TaskPolarPatternParameters::getReverse(void) const +bool TaskPolarPatternParameters::getReverse() const { return ui->checkReverse->isChecked(); } -double TaskPolarPatternParameters::getAngle(void) const +double TaskPolarPatternParameters::getAngle() const { return ui->polarAngle->value().getValue(); } -unsigned TaskPolarPatternParameters::getOccurrences(void) const +unsigned TaskPolarPatternParameters::getOccurrences() const { return ui->spinOccurrences->value(); } diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index 1d4d915383..7c0424b205 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -961,7 +961,7 @@ bool TaskPrimitiveParameters::reject() return true; } -QDialogButtonBox::StandardButtons TaskPrimitiveParameters::getStandardButtons(void) const { +QDialogButtonBox::StandardButtons TaskPrimitiveParameters::getStandardButtons() const { return Gui::TaskView::TaskDialog::getStandardButtons(); } diff --git a/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp b/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp index 6d6f5553ef..320af9d228 100644 --- a/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskScaledParameters.cpp @@ -208,7 +208,7 @@ void TaskScaledParameters::onUpdateView(bool on) } } -void TaskScaledParameters::onFeatureDeleted(void) +void TaskScaledParameters::onFeatureDeleted() { PartDesign::Transformed* pcTransformed = getObject(); std::vector originals = pcTransformed->Originals.getValues(); @@ -223,12 +223,12 @@ void TaskScaledParameters::onFeatureDeleted(void) recomputeFeature(); } -double TaskScaledParameters::getFactor(void) const +double TaskScaledParameters::getFactor() const { return ui->spinFactor->value().getValue(); } -unsigned TaskScaledParameters::getOccurrences(void) const +unsigned TaskScaledParameters::getOccurrences() const { return ui->spinOccurrences->value(); } diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index 668fc3663f..b866fb728e 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -211,7 +211,7 @@ QString TaskSketchBasedParameters::getFaceReference(const QString& obj, const QS if (o.isEmpty()) return QString(); - return QString::fromLatin1("(App.getDocument(\"%1\").%2, [\"%3\"])") + return QString::fromLatin1(R"((App.getDocument("%1").%2, ["%3"]))") .arg(QString::fromLatin1(doc->getName()), o, sub); } diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp index 2841d519ac..4b608b3ce6 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp @@ -134,7 +134,7 @@ void TaskThicknessParameters::setButtons(const selectionModes mode) ui->buttonRefSel->setText(mode == refSel ? btnPreviewStr() : btnSelectStr()); } -void TaskThicknessParameters::onRefDeleted(void) +void TaskThicknessParameters::onRefDeleted() { TaskDressUpParameters::deleteRef(ui->listWidgetReferences); } @@ -172,7 +172,7 @@ void TaskThicknessParameters::onModeChanged(int mode) { hideOnError(); } -double TaskThicknessParameters::getValue(void) const +double TaskThicknessParameters::getValue() const { return ui->Value->value().getValue(); } @@ -187,7 +187,7 @@ void TaskThicknessParameters::onReversedChanged(const bool on) { hideOnError(); } -bool TaskThicknessParameters::getReversed(void) const +bool TaskThicknessParameters::getReversed() const { return ui->checkReverse->isChecked(); } @@ -201,17 +201,17 @@ void TaskThicknessParameters::onIntersectionChanged(const bool on) { hideOnError(); } -bool TaskThicknessParameters::getIntersection(void) const +bool TaskThicknessParameters::getIntersection() const { return ui->checkIntersection->isChecked(); } -int TaskThicknessParameters::getJoinType(void) const { +int TaskThicknessParameters::getJoinType() const { return ui->joinComboBox->currentIndex(); } -int TaskThicknessParameters::getMode(void) const { +int TaskThicknessParameters::getMode() const { return ui->modeComboBox->currentIndex(); } diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.h b/src/Mod/PartDesign/Gui/TaskThicknessParameters.h index a94a09bcf5..7d16706a98 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.h +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.h @@ -41,11 +41,11 @@ public: void apply() override; - double getValue(void) const; - bool getReversed(void) const; - bool getIntersection(void) const; - int getMode(void) const; - int getJoinType(void) const; + double getValue() const; + bool getReversed() const; + bool getIntersection() const; + int getMode() const; + int getJoinType() const; private Q_SLOTS: void onValueChanged(double angle); @@ -53,7 +53,7 @@ private Q_SLOTS: void onJoinTypeChanged(int join); void onReversedChanged(bool reversed); void onIntersectionChanged(bool intersection); - void onRefDeleted(void) override; + void onRefDeleted() override; protected: void setButtons(const selectionModes mode) override; diff --git a/src/Mod/PartDesign/Gui/TaskTransformedMessages.cpp b/src/Mod/PartDesign/Gui/TaskTransformedMessages.cpp index db5b6ebbe7..002eb9a65c 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedMessages.cpp +++ b/src/Mod/PartDesign/Gui/TaskTransformedMessages.cpp @@ -31,7 +31,7 @@ using namespace PartDesignGui; using namespace Gui::TaskView; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; TaskTransformedMessages::TaskTransformedMessages(ViewProviderTransformed *transformedView_) : TaskBox(Gui::BitmapFactory().pixmap("document-new"), tr("Transformed feature messages"), true, nullptr) @@ -49,7 +49,11 @@ TaskTransformedMessages::TaskTransformedMessages(ViewProviderTransformed *transf this->groupLayout()->addWidget(proxy); ui->labelTransformationStatus->setText(transformedView->getMessage()); - connectionDiagnosis = transformedView->signalDiagnosis.connect(boost::bind(&PartDesignGui::TaskTransformedMessages::slotDiagnosis, this, bp::_1)); + //NOLINTBEGIN + connectionDiagnosis = transformedView->signalDiagnosis.connect( + std::bind(&PartDesignGui::TaskTransformedMessages::slotDiagnosis, this, sp::_1) + ); + //NOLINTEND } TaskTransformedMessages::~TaskTransformedMessages() diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h index d474b7c0a1..0513d3fce5 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h @@ -98,7 +98,7 @@ public: */ int setCurrentLink(const App::PropertyLinkSub &lnk); - QComboBox& combo(void) const {assert(_combo); return *_combo;} + QComboBox& combo() const {assert(_combo); return *_combo;} ~ComboLinks() {_combo = nullptr; clear();} private: @@ -129,7 +129,7 @@ public: ~TaskTransformedParameters() override; /// Returns the originals property of associated top feeature object - const std::vector & getOriginals(void) const; + const std::vector & getOriginals() const; /// Get the TransformedFeature object associated with this task // Either through the ViewProvider or the currently active subFeature of the parentTask @@ -177,7 +177,7 @@ protected Q_SLOTS: virtual void onSubTaskButtonOK() {} void onButtonAddFeature(const bool checked); void onButtonRemoveFeature(const bool checked); - virtual void onFeatureDeleted(void)=0; + virtual void onFeatureDeleted() = 0; void indexesMoved(); protected: diff --git a/src/Mod/PartDesign/Gui/Utils.cpp b/src/Mod/PartDesign/Gui/Utils.cpp index 0337b048f4..158caaf9ae 100644 --- a/src/Mod/PartDesign/Gui/Utils.cpp +++ b/src/Mod/PartDesign/Gui/Utils.cpp @@ -89,10 +89,9 @@ bool setEdit(App::DocumentObject *obj, PartDesign::Body *body) { return false; App::DocumentObject *parent = nullptr; std::string subname; - auto activeBody = activeView->getActiveObject(PDBODYKEY,&parent,&subname); + auto activeBody = activeView->getActiveObject(PDBODYKEY); if (activeBody != body) { parent = obj; - subname.clear(); } else { parent = getParent(obj, subname); @@ -181,7 +180,7 @@ PartDesign::Body * makeBodyActive(App::DocumentObject *body, App::Document *doc, return dynamic_cast(body); } -void needActiveBodyError(void) +void needActiveBodyError() { QMessageBox::warning( Gui::getMainWindow(), QObject::tr("Active Body Required"), @@ -280,7 +279,7 @@ void fixSketchSupport (Sketcher::SketchObject* sketch) return; // Sketch is on a face of a solid, do nothing const App::Document* doc = sketch->getDocument(); - PartDesign::Body *body = getBodyFor(sketch, /*messageIfNot*/ 0); + PartDesign::Body *body = getBodyFor(sketch, /*messageIfNot*/ false); if (!body) { throw Base::RuntimeError ("Couldn't find body for the sketch"); } diff --git a/src/Mod/PartDesign/Gui/ViewProvider.h b/src/Mod/PartDesign/Gui/ViewProvider.h index 2896b75948..02004503ff 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.h +++ b/src/Mod/PartDesign/Gui/ViewProvider.h @@ -48,7 +48,7 @@ public: /// destructor ~ViewProvider() override; - bool doubleClicked(void) override; + bool doubleClicked() override; void updateData(const App::Property*) override; void onChanged(const App::Property* prop) override; @@ -68,7 +68,7 @@ public: //Returns the ViewProvider of the body the feature belongs to, or NULL, if not in a body ViewProviderBody* getBodyViewProvider(); - PyObject* getPyObject(void) override; + PyObject* getPyObject() override; QIcon mergeColorfulOverlayIcons (const QIcon & orig) const override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 28171545a0..19313c0003 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -55,7 +55,7 @@ using namespace PartDesignGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; const char* PartDesignGui::ViewProviderBody::BodyModeEnum[] = {"Through","Tip",nullptr}; @@ -91,11 +91,13 @@ void ViewProviderBody::attach(App::DocumentObject *pcFeat) assert ( adoc ); assert ( gdoc ); + //NOLINTBEGIN connectChangedObjectApp = adoc->signalChangedObject.connect ( - boost::bind ( &ViewProviderBody::slotChangedObjectApp, this, bp::_1, bp::_2) ); + std::bind ( &ViewProviderBody::slotChangedObjectApp, this, sp::_1, sp::_2) ); connectChangedObjectGui = gdoc->signalChangedObject.connect ( - boost::bind ( &ViewProviderBody::slotChangedObjectGui, this, bp::_1, bp::_2) ); + std::bind ( &ViewProviderBody::slotChangedObjectGui, this, sp::_1, sp::_2) ); + //NOLINTEND } // TODO on activating the body switch to the "Through" mode (2015-09-05, Fat-Zer) @@ -131,7 +133,9 @@ void ViewProviderBody::setupContextMenu(QMenu* menu, QObject* receiver, const ch Q_UNUSED(member); Gui::ActionFunction* func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(tr("Toggle active body")); - func->trigger(act, std::bind(&ViewProviderBody::doubleClicked, this)); + func->trigger(act, [this]() { + this->doubleClicked(); + }); Gui::ViewProviderGeometryObject::setupContextMenu(menu, receiver, member); // clazy:exclude=skipped-base-method } diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.h b/src/Mod/PartDesign/Gui/ViewProviderBody.h index b7208836e8..dc55944c2c 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.h @@ -56,10 +56,10 @@ public: void attach(App::DocumentObject *) override; - bool doubleClicked(void) override; + bool doubleClicked() override; void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; - std::vector< std::string > getDisplayModes(void) const override; + std::vector< std::string > getDisplayModes() const override; void setDisplayMode(const char* ModeName) override; void setOverrideMode(const std::string& mode) override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderDatum.h b/src/Mod/PartDesign/Gui/ViewProviderDatum.h index 76af19a279..8187d00ab2 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDatum.h +++ b/src/Mod/PartDesign/Gui/ViewProviderDatum.h @@ -54,14 +54,14 @@ public: void attach(App::DocumentObject *) override; bool onDelete(const std::vector &) override; - bool doubleClicked(void) override; - std::vector getDisplayModes(void) const override; + bool doubleClicked() override; + std::vector getDisplayModes() const override; void setDisplayMode(const char* ModeName) override; /// indicates if the ViewProvider use the new Selection model - bool useNewSelectionModel(void) const override { return true; } + bool useNewSelectionModel() const override { return true; } /// indicates if the ViewProvider can be selected - bool isSelectable(void) const override; + bool isSelectable() const override; /// return a hit element to the selection path or 0 std::string getElement(const SoDetail *) const override; SoDetail* getDetail(const char*) const override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderHelix.cpp b/src/Mod/PartDesign/Gui/ViewProviderHelix.cpp index 79c2fbc6ed..2a78f12a09 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderHelix.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderHelix.cpp @@ -61,7 +61,7 @@ TaskDlgFeatureParameters *ViewProviderHelix::getEditDialog() return new TaskDlgHelixParameters( this ); } -QIcon ViewProviderHelix::getIcon(void) const { +QIcon ViewProviderHelix::getIcon() const { QString str = QString::fromLatin1("PartDesign_"); auto* prim = static_cast(getObject()); if(prim->getAddSubType() == PartDesign::FeatureAddSub::Additive) @@ -90,7 +90,7 @@ void ViewProviderHelix::unsetEdit(int ModNum) PartDesignGui::ViewProvider::unsetEdit(ModNum); } -std::vector ViewProviderHelix::claimChildren(void) const { +std::vector ViewProviderHelix::claimChildren() const { std::vector temp; App::DocumentObject* sketch = static_cast(getObject())->Profile.getValue(); if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) diff --git a/src/Mod/PartDesign/Gui/ViewProviderHelix.h b/src/Mod/PartDesign/Gui/ViewProviderHelix.h index 716fdfc6ed..675e49f603 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderHelix.h +++ b/src/Mod/PartDesign/Gui/ViewProviderHelix.h @@ -42,12 +42,12 @@ public: void setupContextMenu(QMenu*, QObject*, const char*) override; /// grouping handling - std::vector claimChildren(void)const override; + std::vector claimChildren() const override; bool onDelete(const std::vector &) override; protected: - QIcon getIcon(void) const override; + QIcon getIcon() const override; /// Returns a newly created TaskDlgHelixParameters TaskDlgFeatureParameters *getEditDialog() override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderLoft.h b/src/Mod/PartDesign/Gui/ViewProviderLoft.h index 6f89b3d134..56dc3fb9e6 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderLoft.h +++ b/src/Mod/PartDesign/Gui/ViewProviderLoft.h @@ -45,7 +45,7 @@ public: ~ViewProviderLoft() override; /// grouping handling - std::vector claimChildren(void)const override; + std::vector claimChildren() const override; void setupContextMenu(QMenu*, QObject*, const char*) override; bool onDelete(const std::vector &) override; @@ -54,7 +54,7 @@ public: void highlightReferences(Reference mode, bool on); protected: - QIcon getIcon(void) const override; + QIcon getIcon() const override; bool setEdit(int ModNum) override; void unsetEdit(int ModNum) override; TaskDlgFeatureParameters* getEditDialog() override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h index e381c1c1c1..337d7a2988 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h +++ b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h @@ -42,7 +42,7 @@ public: void updateData(const App::Property*) override; protected: - QIcon getIcon(void) const override; + QIcon getIcon() const override; void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; bool setEdit(int ModNum) override; void unsetEdit(int ModNum) override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.cpp b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.cpp index 3cef2ae9c4..31a77cf361 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.cpp @@ -402,7 +402,7 @@ void ViewProviderSubShapeBinder::updatePlacement(bool transaction) { App::GetApplication().closeActiveTransaction(true); } -std::vector ViewProviderSubShapeBinder::claimChildren(void) const { +std::vector ViewProviderSubShapeBinder::claimChildren() const { std::vector ret; auto self = Base::freecad_dynamic_cast(getObject()); if (self && self->ClaimChildren.getValue() && self->Support.getValue()) { diff --git a/src/Mod/PartDesign/Gui/Workbench.cpp b/src/Mod/PartDesign/Gui/Workbench.cpp index 46f13bd72c..361f609610 100644 --- a/src/Mod/PartDesign/Gui/Workbench.cpp +++ b/src/Mod/PartDesign/Gui/Workbench.cpp @@ -37,7 +37,7 @@ #include "WorkflowManager.h" using namespace PartDesignGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; #if 0 // needed for Qt's lupdate utility qApp->translate("Workbench", "&Sketch"); @@ -442,11 +442,13 @@ void Workbench::activated() if(App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/PartDesign")->GetBool("SwitchToTask", true)) Gui::Control().showTaskView(); + //NOLINTBEGIN // Let us be notified when a document is activated, so that we can update the ActivePartObject - activeDoc = Gui::Application::Instance->signalActiveDocument.connect(boost::bind(&Workbench::slotActiveDocument, this, bp::_1)); - createDoc = App::GetApplication().signalNewDocument.connect(boost::bind(&Workbench::slotNewDocument, this, bp::_1)); - finishDoc = App::GetApplication().signalFinishRestoreDocument.connect(boost::bind(&Workbench::slotFinishRestoreDocument, this, bp::_1)); - deleteDoc = App::GetApplication().signalDeleteDocument.connect(boost::bind(&Workbench::slotDeleteDocument, this, bp::_1)); + activeDoc = Gui::Application::Instance->signalActiveDocument.connect(std::bind(&Workbench::slotActiveDocument, this, sp::_1)); + createDoc = App::GetApplication().signalNewDocument.connect(std::bind(&Workbench::slotNewDocument, this, sp::_1)); + finishDoc = App::GetApplication().signalFinishRestoreDocument.connect(std::bind(&Workbench::slotFinishRestoreDocument, this, sp::_1)); + deleteDoc = App::GetApplication().signalDeleteDocument.connect(std::bind(&Workbench::slotDeleteDocument, this, sp::_1)); + //NOLINTEND } void Workbench::deactivated() diff --git a/src/Mod/PartDesign/Gui/WorkflowManager.cpp b/src/Mod/PartDesign/Gui/WorkflowManager.cpp index 6277f5c8fa..83ffff7592 100644 --- a/src/Mod/PartDesign/Gui/WorkflowManager.cpp +++ b/src/Mod/PartDesign/Gui/WorkflowManager.cpp @@ -38,7 +38,7 @@ using namespace PartDesignGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; WorkflowManager * WorkflowManager::_instance = nullptr; @@ -48,12 +48,14 @@ WorkflowManager::WorkflowManager() { slotFinishRestoreDocument ( *doc ); } + //NOLINTBEGIN connectNewDocument = App::GetApplication().signalNewDocument.connect( - boost::bind( &WorkflowManager::slotNewDocument, this, bp::_1 ) ); + std::bind( &WorkflowManager::slotNewDocument, this, sp::_1 ) ); connectFinishRestoreDocument = App::GetApplication().signalFinishRestoreDocument.connect( - boost::bind( &WorkflowManager::slotFinishRestoreDocument, this, bp::_1 ) ); + std::bind( &WorkflowManager::slotFinishRestoreDocument, this, sp::_1 ) ); connectDeleteDocument = App::GetApplication().signalDeleteDocument.connect( - boost::bind( &WorkflowManager::slotDeleteDocument, this, bp::_1 ) ); + std::bind( &WorkflowManager::slotDeleteDocument, this, sp::_1 ) ); + //NOLINTEND } WorkflowManager::~WorkflowManager() { diff --git a/src/Mod/PartDesign/TestPartDesignGui.py b/src/Mod/PartDesign/TestPartDesignGui.py index ab8ee68d41..0bf2acaa07 100644 --- a/src/Mod/PartDesign/TestPartDesignGui.py +++ b/src/Mod/PartDesign/TestPartDesignGui.py @@ -142,7 +142,7 @@ class PartDesignGuiTestCases(unittest.TestCase): cobj = CallableCheckWarning(self) QtCore.QTimer.singleShot(500, cobj) Gui.runCommand('PartDesign_MoveFeature') - #assert depenedencies of the Sketch + #assert dependencies of the Sketch self.assertEqual(len(self.BodySource.Group), 3, "Source body feature count is wrong") self.assertEqual(len(self.BodyTarget.Group), 0, "Target body feature count is wrong") @@ -195,7 +195,7 @@ class PartDesignGuiTestCases(unittest.TestCase): cobj = CallableComboBox(self) QtCore.QTimer.singleShot(500, cobj) Gui.runCommand('PartDesign_MoveFeature') - #assert depenedencies of the Sketch + #assert dependencies of the Sketch self.Doc.recompute() self.assertFalse(self.Sketch.Support[0][0] in self.BodySource.Origin.OriginFeatures) diff --git a/src/Mod/Path/App/Area.cpp b/src/Mod/Path/App/Area.cpp index 2f1b78caeb..15ac2c8507 100644 --- a/src/Mod/Path/App/Area.cpp +++ b/src/Mod/Path/App/Area.cpp @@ -188,7 +188,7 @@ Area::Area(const Area& other, bool deep_copy) if (!deep_copy || !other.isBuilt()) return; if (other.myArea) - myArea.reset(new CArea(*other.myArea)); + myArea = std::make_unique(*other.myArea); myShapePlane = other.myShapePlane; myShape = other.myShape; myShapeDone = other.myShapeDone; @@ -1637,8 +1637,8 @@ void Area::build() { getPlane(&trsf); try { - myArea.reset(new CArea()); - myAreaOpen.reset(new CArea()); + myArea = std::make_unique(); + myAreaOpen = std::make_unique(); CAreaConfig conf(myParams); CArea areaClip; @@ -2203,7 +2203,7 @@ TopoDS_Shape Area::toShape(const CCurve& _c, const gp_Trsf* trsf, int reorient) double r = center.Distance(pt); double r2 = center.Distance(pnext); bool fix_arc = fabs(r - r2) > Precision::Confusion(); - while (1) { + while (true) { if (fix_arc) { double d = pt.Distance(pnext); double rr = r * r; diff --git a/src/Mod/Path/App/Command.h b/src/Mod/Path/App/Command.h index a2cde1f8bc..bbd1301657 100644 --- a/src/Mod/Path/App/Command.h +++ b/src/Mod/Path/App/Command.h @@ -29,28 +29,29 @@ #include #include #include +#include namespace Path { /** The representation of a cnc command in a path */ class PathExport Command : public Base::Persistence { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: //constructors Command(); Command(const char* name, const std::map& parameters); - ~Command(); + ~Command() override; // from base class - virtual unsigned int getMemSize (void) const; - virtual void Save (Base::Writer &/*writer*/) const; - virtual void Restore(Base::XMLReader &/*reader*/); + unsigned int getMemSize () const override; + void Save (Base::Writer &/*writer*/) const override; + void Restore(Base::XMLReader &/*reader*/) override; // specific methods Base::Placement getPlacement (const Base::Vector3d pos = Base::Vector3d()) const; // returns a placement from the x,y,z,a,b,c parameters - Base::Vector3d getCenter (void) const; // returns a 3d vector from the i,j,k parameters + Base::Vector3d getCenter () const; // returns a 3d vector from the i,j,k parameters void setCenter(const Base::Vector3d&, bool clockwise=true); // sets the center coordinates and the command name std::string toGCode (int precision=6, bool padzero=true) const; // returns a GCode string representation of the command void setFromGCode (const std::string&); // sets the parameters from the contents of the given GCode string diff --git a/src/Mod/Path/App/FeaturePath.h b/src/Mod/Path/App/FeaturePath.h index 298077ffcd..a82a3b2884 100644 --- a/src/Mod/Path/App/FeaturePath.h +++ b/src/Mod/Path/App/FeaturePath.h @@ -35,29 +35,29 @@ namespace Path class PathExport Feature : public App::GeoFeature { - PROPERTY_HEADER(Path::Feature); + PROPERTY_HEADER_WITH_OVERRIDE(Path::Feature); public: /// Constructor - Feature(void); - virtual ~Feature(); + Feature(); + ~Feature() override; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "PathGui::ViewProviderPath"; } - virtual App::DocumentObjectExecReturn *execute(void) { + App::DocumentObjectExecReturn *execute() override { return App::DocumentObject::StdReturn; } - virtual short mustExecute(void) const; - virtual PyObject *getPyObject(void); + short mustExecute() const override; + PyObject *getPyObject() override; PropertyPath Path; protected: /// get called by the container when a property has changed - virtual void onChanged (const App::Property* prop); + void onChanged (const App::Property* prop) override; }; diff --git a/src/Mod/Path/App/FeaturePathCompound.h b/src/Mod/Path/App/FeaturePathCompound.h index 3fa2330bae..5345436116 100644 --- a/src/Mod/Path/App/FeaturePathCompound.h +++ b/src/Mod/Path/App/FeaturePathCompound.h @@ -33,21 +33,21 @@ namespace Path class PathExport FeatureCompound : public Path::Feature { - PROPERTY_HEADER(Path::Feature); + PROPERTY_HEADER_WITH_OVERRIDE(Path::Feature); public: /// Constructor - FeatureCompound(void); - virtual ~FeatureCompound(); + FeatureCompound(); + ~FeatureCompound() override; App::PropertyLinkList Group; App::PropertyBool UsePlacements; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "PathGui::ViewProviderPathCompound"; } - virtual App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute() override; /// Checks whether the object \a obj is part of this group. bool hasObject(const DocumentObject* obj) const; @@ -55,7 +55,7 @@ public: void addObject(DocumentObject* obj); /// Removes an object from this group. void removeObject(DocumentObject* obj); - virtual PyObject *getPyObject(void); + PyObject *getPyObject() override; }; diff --git a/src/Mod/Path/App/FeaturePathShape.h b/src/Mod/Path/App/FeaturePathShape.h index 6f995a45b9..2fa1101388 100644 --- a/src/Mod/Path/App/FeaturePathShape.h +++ b/src/Mod/Path/App/FeaturePathShape.h @@ -37,12 +37,12 @@ namespace Path class PathExport FeatureShape : public Path::Feature { - PROPERTY_HEADER(Path::FeatureShape); + PROPERTY_HEADER_WITH_OVERRIDE(Path::FeatureShape); public: /// Constructor FeatureShape(); - virtual ~FeatureShape(); + ~FeatureShape() override; // Part::PropertyPartShape Shape; App::PropertyLinkList Sources; @@ -52,17 +52,17 @@ public: //@{ /// recalculate the feature - virtual App::DocumentObjectExecReturn *execute(); + App::DocumentObjectExecReturn *execute() override; //@} /// returns the type name of the ViewProvider - virtual const char* getViewProviderName() const { + const char* getViewProviderName() const override { return "PathGui::ViewProviderPathShape"; } protected: /// get called by the container when a property has changed - //virtual void onChanged (const App::Property* prop); + //void onChanged (const App::Property* prop) override; }; diff --git a/src/Mod/Path/App/ParamsHelper.h b/src/Mod/Path/App/ParamsHelper.h index e5f5436a8b..df49eb5d03 100644 --- a/src/Mod/Path/App/ParamsHelper.h +++ b/src/Mod/Path/App/ParamsHelper.h @@ -48,7 +48,7 @@ * Extensive use of macros has one noticeable disadvantage, though. If some thing * goes wrong, the compiler error message is kind of cryptic. If so, first * double check your macro definition of the parameter is correctly, not missing - * or having extra parathesis or comma. Then, you can use the CMake + * or having extra parenthesis or comma. Then, you can use the CMake * intermediate file target to get the preprocessor output for checking. For * example, for a file located at \c src/Mod/Path/App/Area.cpp, * \code{.sh} @@ -89,7 +89,7 @@ * (a,b,c ...) * \endcode * - * This is why the parameter definition requires a double parathesis, as shown + * This is why the parameter definition requires a double parenthesis, as shown * in the following section. * * \section Library Overview @@ -427,8 +427,8 @@ * * This macro is used by #PARAM_ENUM_CONVERT to convert each parameter, but * you can use it directly for a single parameter. Check #PARAM_NUM_CONVERT - * for more detail. Make sure the outer parathesis of \c _param is stripped, - * i.e. not double but single parathesis + * for more detail. Make sure the outer parenthesis of \c _param is stripped, + * i.e. not double but single parenthesis */ #define PARAM_ENUM_CONVERT_SINGLE(_src,_dst,_default,_param) \ PARAM_FENUM_TYPE(_param) _dst(_param);\ diff --git a/src/Mod/Path/App/Path.h b/src/Mod/Path/App/Path.h index 28321f906d..e9b8264584 100644 --- a/src/Mod/Path/App/Path.h +++ b/src/Mod/Path/App/Path.h @@ -37,37 +37,37 @@ namespace Path class PathExport Toolpath : public Base::Persistence { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: Toolpath(); Toolpath(const Toolpath&); - ~Toolpath(); + ~Toolpath() override; Toolpath &operator=(const Toolpath&); // from base class - virtual unsigned int getMemSize (void) const; - virtual void Save (Base::Writer &/*writer*/) const; - virtual void Restore(Base::XMLReader &/*reader*/); - void SaveDocFile (Base::Writer &writer) const; - void RestoreDocFile(Base::Reader &reader); + unsigned int getMemSize () const override; + void Save (Base::Writer &/*writer*/) const override; + void Restore(Base::XMLReader &/*reader*/) override; + void SaveDocFile (Base::Writer &writer) const override; + void RestoreDocFile(Base::Reader &reader) override; // interface - void clear(void); // clears the internal data + void clear(); // clears the internal data void addCommand(const Command &Cmd); // adds a command at the end void insertCommand(const Command &Cmd, int); // inserts a command void deleteCommand(int); // deletes a command - double getLength(void); // return the Length (mm) of the Path + double getLength(); // return the Length (mm) of the Path double getCycleTime(double, double, double, double); // return the Cycle Time (s) of the Path - void recalculate(void); // recalculates the points + void recalculate(); // recalculates the points void setFromGCode(const std::string); // sets the path from the contents of the given GCode string - std::string toGCode(void) const; // gets a gcode string representation from the Path - Base::BoundBox3d getBoundBox(void) const; + std::string toGCode() const; // gets a gcode string representation from the Path + Base::BoundBox3d getBoundBox() const; // shortcut functions - unsigned int getSize(void) const { return vpcCommands.size(); } - const std::vector &getCommands(void) const { return vpcCommands; } + unsigned int getSize() const { return vpcCommands.size(); } + const std::vector &getCommands() const { return vpcCommands; } const Command &getCommand(unsigned int pos) const { return *vpcCommands[pos]; } // support for rotation diff --git a/src/Mod/Path/App/PropertyPath.h b/src/Mod/Path/App/PropertyPath.h index 16021ba43a..e34621c93e 100644 --- a/src/Mod/Path/App/PropertyPath.h +++ b/src/Mod/Path/App/PropertyPath.h @@ -34,36 +34,36 @@ namespace Path /** The path property class. */ class PathExport PropertyPath : public App::Property { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyPath(); - ~PropertyPath(); + ~PropertyPath() override; /** @name Getter/setter */ //@{ /// set the part shape void setValue(const Toolpath&); /// get the part shape - const Toolpath &getValue(void) const; + const Toolpath &getValue() const; //@} /** @name Python interface */ //@{ - PyObject* getPyObject(void); - void setPyObject(PyObject *value); + PyObject* getPyObject() override; + void setPyObject(PyObject *value) override; //@} /** @name Save/restore */ //@{ - void Save (Base::Writer &writer) const; - void Restore(Base::XMLReader &reader); - void SaveDocFile (Base::Writer &writer) const; - void RestoreDocFile(Base::Reader &reader); + void Save (Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; + void SaveDocFile (Base::Writer &writer) const override; + void RestoreDocFile(Base::Reader &reader) override; - App::Property *Copy(void) const; - void Paste(const App::Property &from); - unsigned int getMemSize (void) const; + App::Property *Copy() const override; + void Paste(const App::Property &from) override; + unsigned int getMemSize () const override; //@} private: diff --git a/src/Mod/Path/App/Voronoi.h b/src/Mod/Path/App/Voronoi.h index 98a8a8c779..48d0fa9578 100644 --- a/src/Mod/Path/App/Voronoi.h +++ b/src/Mod/Path/App/Voronoi.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -43,12 +44,12 @@ namespace Path class PathExport Voronoi : public Base::BaseClass { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: //constructors Voronoi(); - ~Voronoi(); + ~Voronoi() override; using color_type = std::size_t; static const int InvalidIndex = INT_MAX; diff --git a/src/Mod/Path/App/VoronoiCell.h b/src/Mod/Path/App/VoronoiCell.h index da759b1204..bce5cb85f4 100644 --- a/src/Mod/Path/App/VoronoiCell.h +++ b/src/Mod/Path/App/VoronoiCell.h @@ -33,14 +33,14 @@ class Voronoi; class PathExport VoronoiCell : public Base::BaseClass { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: VoronoiCell(Voronoi::diagram_type *dia = nullptr, long index = Voronoi::InvalidIndex); VoronoiCell(Voronoi::diagram_type *dia, const Voronoi::diagram_type::cell_type *cell); - ~VoronoiCell(); + ~VoronoiCell() override; - bool isBound(void) const; + bool isBound() const; Voronoi::point_type sourcePoint() const; Voronoi::segment_type sourceSegment() const; diff --git a/src/Mod/Path/App/VoronoiEdge.h b/src/Mod/Path/App/VoronoiEdge.h index 7416853fac..30c4f2a910 100644 --- a/src/Mod/Path/App/VoronoiEdge.h +++ b/src/Mod/Path/App/VoronoiEdge.h @@ -35,14 +35,14 @@ class Voronoi; class PathExport VoronoiEdge : public Base::BaseClass { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: VoronoiEdge(Voronoi::diagram_type *dia = nullptr, long index = Voronoi::InvalidIndex); VoronoiEdge(Voronoi::diagram_type *dia, const Voronoi::diagram_type::edge_type *edge); - ~VoronoiEdge(); + ~VoronoiEdge() override; - bool isBound(void) const; + bool isBound() const; Base::Reference dia; long index; diff --git a/src/Mod/Path/App/VoronoiVertex.h b/src/Mod/Path/App/VoronoiVertex.h index fad9422267..fb83d87d08 100644 --- a/src/Mod/Path/App/VoronoiVertex.h +++ b/src/Mod/Path/App/VoronoiVertex.h @@ -35,14 +35,14 @@ class Voronoi; class PathExport VoronoiVertex : public Base::BaseClass { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: VoronoiVertex(Voronoi::diagram_type *dia = nullptr, long index = Voronoi::InvalidIndex); VoronoiVertex(Voronoi::diagram_type *dia, const Voronoi::diagram_type::vertex_type *v); - ~VoronoiVertex(); + ~VoronoiVertex() override; - bool isBound(void) const; + bool isBound() const; Base::Reference dia; long index; diff --git a/src/Mod/Path/Gui/Resources/translations/Path.ts b/src/Mod/Path/Gui/Resources/translations/Path.ts index 2eab9b405a..443d4bbf71 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path.ts @@ -4377,7 +4377,7 @@ For example: - + Choose a Path Job @@ -5155,7 +5155,7 @@ For example: - + The G-code to be inserted @@ -6887,17 +6887,17 @@ For example: - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8075,12 +8075,12 @@ Aborting op creation Path_Post - + Post Process - + Post Process the selected Job @@ -8273,4 +8273,27 @@ Aborting op creation + + PathCustom + + + Text + + + + + File + + + + + Custom file %s could not be found. + + + + + Invalid Gcode line: %s + + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_be.ts b/src/Mod/Path/Gui/Resources/translations/Path_be.ts index acbb303e34..746000629e 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_be.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_be.ts @@ -3138,7 +3138,7 @@ Should multiple tools or tool shapes with the same name exist in different direc <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> - <html><head/><body><p>Абярыце пажаданы стыль афармлення аздаблення:</p><p><span style=" font-weight:600; font-style:italic;">Форма косткі</span> ... абярыце самую кароткую траекторыю, каб пакрыць кут,</p><p><span style=" font-weight:600; font-style:italic;">Т-вобразная костка</span> ... выцягвайце ў пэўным напрамку, пакуль кут не будзе пакрыты</p></body></html> + <html><head/><body><p>Абярыце патрэбны стыль афармлення аздаблення:</p><p><span style=" font-weight:600; font-style:italic;">Форма косткі</span> ... абярыце самую кароткую траекторыю, каб пакрыць кут,</p><p><span style=" font-weight:600; font-style:italic;">Т-вобразная костка</span> ... выцягвайце ў пэўным напрамку, пакуль кут не будзе пакрыты</p></body></html> @@ -4544,7 +4544,7 @@ For example: - + Choose a Path Job Абраць шлях да задання @@ -5322,14 +5322,14 @@ For example: Спіс выключаных характарыстык - + The G-code to be inserted G-код, які будзе ўстаўлены The desired width of the chamfer - Жаданая шырыня фаскі + Патрэбная шырыня фаскі @@ -6586,7 +6586,7 @@ For example: <b>Note</b>: This dialog shows Path Commands in FreeCAD base units (mm/s). Values will be converted to the desired unit during post processing. <b>Заўвага</b>: У дыялогавым акне паказваюцца каманды вызначэння шляху ў асноўных адзінках FreeCAD (мм/с). -Значэнні будуць пераўтвораныя ў пажаданыя адзінкі вымярэння падчас пасляапрацоўкі. +Значэнні будуць пераўтвораныя ў патрэбныя адзінкі вымярэння падчас пасляапрацоўкі. @@ -7064,17 +7064,17 @@ For example: Кант - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. Абраныя рэбры недаступныя. Калі іх некалькі, можа спрацаваць змена парадку выбару. - + Unable to create path for face(s). Не атрымалася стварыць траекторыю для граняў. - + Check edge selection and Final Depth requirements for profiling open edge(s). Праверыць выбар рабра і патрабаванні да канчатковай глыбіні для апрацоўкі разамкнутых рэбраў. @@ -8254,12 +8254,12 @@ Aborting op creation Path_Post - + Post Process Пасляапрацоўка - + Post Process the selected Job Пасляапрацоўка абранага задання @@ -8454,4 +8454,27 @@ Aborting op creation %s не мае ўласцівасці %s (%s) + + PathCustom + + + Text + Тэкст + + + + File + Файл + + + + Custom file %s could not be found. + Карыстальніцкі файл %s не знойдзены. + + + + Invalid Gcode line: %s + Хібны радок gcode: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ca.ts b/src/Mod/Path/Gui/Resources/translations/Path_ca.ts index 032dc20b26..2c2de0bddb 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ca.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ca.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -6855,7 +6855,7 @@ For example: Adaptive - Adaptable + Adaptatiu @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Text + + + + File + Fitxer + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_cs.ts b/src/Mod/Path/Gui/Resources/translations/Path_cs.ts index fc72cf60a3..502b048823 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_cs.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_cs.ts @@ -4323,7 +4323,7 @@ For example: Warning - Warning + Varování @@ -4503,7 +4503,7 @@ For example: - + Choose a Path Job Vyberte si úlohu cesty @@ -5281,7 +5281,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -6426,7 +6426,7 @@ For example: Warning - Warning + Varování @@ -7018,17 +7018,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Zkontrolujte výběr hran a požadavky na konečnou hloubku pro profilování otevřených hran. @@ -8208,12 +8208,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8408,4 +8408,27 @@ Aborting op creation %s nemá žádnou vlastnost %s (%s) + + PathCustom + + + Text + Text + + + + File + Soubor + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_de.ts b/src/Mod/Path/Gui/Resources/translations/Path_de.ts index 3f4594f487..1d9abe8510 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_de.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_de.ts @@ -223,26 +223,26 @@ Alle Werte der Einrichtungstabelle, die sich von den Standardwerten unterscheide This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. - If enabled the creation of stock is included in the template. If a template does not include a stock definition the default stock creation algorithm will be used (creation from the Base object's bounding box). + Wenn diese Option aktiviert ist, wird die Erstellung des Rohmaterials in die Vorlage aufgenommen. Wenn eine Vorlage keine Rohmaterial enthält, wird der Standardalgorithmus zur Erstellung des Rohmaterials verwendet (Erstellung aus dem Begrenzungsrahmen des Basisobjekts). -This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. +Diese Option ist besonders nützlich, wenn das Rohmaterial ein Kasten oder ein Zylinder ist oder wenn die Maschine eine Standardplatzierung für die Bearbeitung hat. -Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. +Beachten Sie, dass diese Option deaktiviert ist, wenn ein Rohmaterial-Objekt aus einem bestehenden Körper im Auftrag verwendet wird - diese können nicht in einer Vorlage gespeichert werden. Hint about the current stock extent setting. - Hint about the current stock extent setting. + Hinweis auf die aktuelle Einstellung des Rohmaterials. If enabled the current placement of the stock solid is stored in the template. - If enabled the current placement of the stock solid is stored in the template. + Wenn aktiviert, wird die aktuelle Platzierung des Rohmaterials im Template gespeichert. Hint about the current stock placement. - Hint about the current stock placement. + Hinweis auf die aktuelle Platzierung des Rohmaterials. @@ -275,11 +275,11 @@ Beachten Sie, dass nur Operationen, die derzeit Konfigurationswerte haben, aufge For Box and Cylinder stocks this means the actual size of the stock solid being created. For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. - If enabled the current size settings for the stock object are included in the template. + Wenn diese Option aktiviert ist, werden die aktuellen Größeneinstellungen des Rohmaterials in die Vorlage übernommen. -For Box and Cylinder stocks this means the actual size of the stock solid being created. +Bei Quader- und Zylinderkörpern ist dies die tatsächliche Größe des zu erstellenden Körpers. -For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. +Für das Standard Rohmaterial aus dem Begrenzungsrahmen des Basisobjekts bedeutet dies das zusätzliche Material in allen Richtungen. Das Rohmaterial, das mit einer solchen Vorlage erzeugt wird, erhält seine Grundgröße vom Basisobjekt des neuen Auftrags und wendet die gespeicherten Einstellungen an. @@ -304,7 +304,7 @@ For stock from the Base object's bounding box it means the extra material in all Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. - Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. + Wählen Sie einen der Postprozessoren aus. FreeCAD wird standardmäßig mit mehreren Postprozessoren ausgeliefert. Bitte stellen Sie sicher, dass mindestens eines davon in den Einstellungen ausgewählt/aktiviert ist. @@ -384,27 +384,27 @@ For stock from the Base object's bounding box it means the extra material in all Name of property. Can only contain letters, numbers, and underscores. MixedCase names will display with spaces "Mixed Case" - Name of property. Can only contain letters, numbers, and underscores. MixedCase names will display with spaces "Mixed Case" + Name der Eigenschaft. Darf nur Buchstaben, Ziffern und Unterstriche enthalten. Namen mit gemischter Groß- und Kleinschreibung werden mit Leerzeichen angezeigt The category group the property belongs to. - The category group the property belongs to. + Die Kategoriegruppe, zu der die Eigenschaft gehört. The type of the property value. - The type of the property value. + Der Typ des Eigenschaftswerts. ToolTip to be displayed when user hovers mouse over property. - ToolTip to be displayed when user hovers mouse over property. + ToolTip Text, der angezeigt wird, wenn der Benutzer mit der Maus über die Eigenschaft fährt. Check if you want to create several properties in a batch. - Check if you want to create several properties in a batch. + Prüfen Sie, ob Sie mehrere Eigenschaften in einem Stapel erstellen möchten. @@ -449,17 +449,17 @@ For stock from the Base object's bounding box it means the extra material in all Add existing Tool Bit to this library. - Add existing Tool Bit to this library. + Bestehendes Werkzeug-Bit zu dieser Bibliothek hinzufügen. Delete selected Tool Bit(s) from the library. - Delete selected Tool Bit(s) from the library. + Ausgewählte Werkzeugbit(s) aus der Bibliothek löschen. Select a working path for the tool library editor. - Select a working path for the tool library editor. + Wählen Sie einen Arbeitspfad für den Editor der Werkzeugbibliothek. @@ -469,12 +469,12 @@ For stock from the Base object's bounding box it means the extra material in all Save the selected library with a new name or export to another format - Save the selected library with a new name or export to another format + Die ausgewählte Bibliothek unter neuem Namen abspeichern oder in ein anderes Format exportieren Table of Tool Bits of the library. - Table of Tool Bits of the library. + Tabelle der Werkzeug-Bits der Bibliothek. @@ -582,7 +582,7 @@ For stock from the Base object's bounding box it means the extra material in all Select what type of shape to use to constrain the underlying Path. - Select what type of shape to use to constrain the underlying Path. + Wählen Sie, welche Form verwendet werden soll, um den zugrunde liegenden Pfad einzuschränken. @@ -602,7 +602,7 @@ For stock from the Base object's bounding box it means the extra material in all Select the body to be used to constrain the underlying Path. - Select the body to be used to constrain the underlying Path. + Bitte wählen Sie den Körper, welcher zur Einschränkung des zugrundeliegenden Pfads genutzt werden soll. @@ -612,12 +612,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinX - Extension of bounding box's MinX + Erweiterung der MinX der Begrenzungsbox Extension of bounding box's MaxX - Extension of bounding box's MaxX + Erweiterung der MaxX der Begrenzungsbox @@ -627,12 +627,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinY - Extension of bounding box's MinY + Erweiterung der MinY der Begrenzungsbox Extension of bounding box's MaxY - Extension of bounding box's MaxY + Erweiterung der MaxY der Begrenzungsbox @@ -642,12 +642,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinZ - Extension of bounding box's MinZ + Erweiterung der MinZ der Begrenzungsbox Extension of bounding box's MaxZ - Extension of bounding box's MaxZ + Erweiterung der MaxZ der Begrenzungsbox @@ -677,7 +677,7 @@ For stock from the Base object's bounding box it means the extra material in all If checked the path is constrained by the solid. Otherwise the volume of the solid describes a 'keep out' zone - If checked the path is constrained by the solid. Otherwise the volume of the solid describes a 'keep out' zone + Wenn aktiviert, wird der Pfad durch den Körper eingeschränkt. Andernfalls beschreibt das Volumen des Körpers eine 'Sperrzone' Zone @@ -713,7 +713,7 @@ For stock from the Base object's bounding box it means the extra material in all List of operations with Base Geometry in current Job - List of operations with Base Geometry in current Job + Liste der Operationen mit Basisgeometrie im aktuellen Job @@ -723,22 +723,22 @@ For stock from the Base object's bounding box it means the extra material in all Select one or more features in the 3d view and press 'Add' to add them as the base items for this operation. Selected features can be deleted entirely. - Select one or more features in the 3d view and press 'Add' to add them as the base items for this operation. Selected features can be deleted entirely. + Wählen Sie eine oder mehrere Funktionen in der 3D-Ansicht aus und drücken Sie 'Hinzufügen', um sie als Basiselemente für diesen Vorgang hinzuzufügen. Ausgewählte Objekte können vollständig gelöscht werden. Add selected features to the list of base geometries for this operation - Add selected features to the list of base geometries for this operation + Ausgewählte Objekte zur Liste der Basisgeometrien für diesen Vorgang hinzufügen Remove the selected list items from the list of base geometries. The operation will not be applied to them. - Remove the selected list items from the list of base geometries. The operation will not be applied to them. + Entfernen Sie die ausgewählten Listenelemente aus der Liste der Basisgeometrien. Die Operation wird nicht auf sie angewendet. Clears list of base geometries - Clears list of base geometries + Löscht die Liste der Basisgeometrien @@ -768,16 +768,16 @@ For stock from the Base object's bounding box it means the extra material in all You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. - Table of hole features and the determined radius of the associated hole. + Tabelle der Locheigenschaften und des ermittelten Radius des zugehörigen Lochs. -You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. +Sie können eine Funktion zur Verarbeitung hinzufügen, indem Sie diese auswählen und dann Hinzufügen drücken. Wird eine Funktion versehentlich zur Liste hinzugefügt, kann sie durch Entfernen entfernt werden und wird nicht mehr verarbeitet. -Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. +Reset löscht alle aktuellen Elemente aus der Liste und füllt die Liste mit allen kreisförmigen Löchern, die für die Operation aus dem Modell zugelassen sind. Sie können die Liste später erneut verfeinern, indem Sie Funktionen aktivieren/deaktivieren, entfernen oder hinzufügen. Feature - Merkmal + Feature @@ -788,17 +788,17 @@ Reset deletes all current items from the list and fills the list with all circul Add selected items from 3d view to the list of base geometries - Add selected items from 3d view to the list of base geometries + Ausgewählte Elemente aus der 3D-Ansicht zur Liste der Basisgeometrien hinzufügen Remove selected list items from the list of base geometries. The operation is no longer applied to them. - Remove selected list items from the list of base geometries. The operation is no longer applied to them. + Entfernen Sie ausgewählte Listenelemente aus der Liste der Basisgeometrien. Die Operation wird nicht mehr auf sie angewendet. Remove all list items and fill list with all eligible features from the job's base object. - Remove all list items and fill list with all eligible features from the job's base object. + Entfernen Sie alle Listenelemente und füllen Sie die Liste mit allen passenden Funktionen aus dem Basisobjekt des Jobs. @@ -814,7 +814,7 @@ Reset deletes all current items from the list and fills the list with all circul List of locations to be processed. - List of locations to be processed. + Liste der zu verarbeitenden Orte. @@ -829,17 +829,17 @@ Reset deletes all current items from the list and fills the list with all circul Opens a dialog to add arbitrary locations. - Opens a dialog to add arbitrary locations. + Öffnet einen Dialog um beliebige Orte hinzuzufügen. Remove selected location from the list. The operation is no longer applied to them. - Remove selected location from the list. The operation is no longer applied to them. + Den ausgewählten Ort aus der Liste entfernen. Der Vorgang wird nicht mehr auf ihn angewendet. Edit selected location. - Edit selected location. + Ausgewählten Ort bearbeiten. @@ -861,30 +861,30 @@ Reset deletes all current items from the list and fills the list with all circul Start Depth of the operation. The highest point in Z-axis the operation needs to process. - Start Depth of the operation. The highest point in Z-axis the operation needs to process. + Starthöhe der Operation. Der höchste Punkt in der Z-Achse, den die Operation bearbeiten muss. Transfer the Z value of the selected feature as the Start Depth for the operation. - Transfer the Z value of the selected feature as the Start Depth for the operation. + Übertragen Sie den Z-Wert der ausgewählten Funktion als Starthöhe für die Operation. The depth of the operation which corresponds to the lowest value in Z-axis the operation needs to process. - The depth of the operation which corresponds to the lowest value in Z-axis the operation needs to process. + Die Tiefe der Operation, die dem niedrigsten Wert in der Z-Achse entspricht, den die Operation bearbeiten muss. Transfer the Z value of the selected feature as the Final Depth for the operation. - Transfer the Z value of the selected feature as the Final Depth for the operation. + Übertragen Sie den Z-Wert der ausgewählten Funktion als Endtiefe für die Operation. The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. - The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. + Die Tiefe in der Z-Achse, um welche sich die Operation zwischen den Schichten nach unten bewegt. Dieser Wert hängt von dem verwendeten Werkzeug, dem zu schneidenden Material, der verfügbaren Kühlung und vielen anderen Faktoren ab. Bitte konsultieren Sie die Datenblätter der Werkzeughersteller, um den richtigen Wert zu ermitteln. @@ -901,12 +901,12 @@ Reset deletes all current items from the list and fills the list with all circul Step Down - Schritt runter + Zustelltiefe Finish Step Down - Letzte Schritt runter + Letzte Zustelltiefe @@ -926,12 +926,12 @@ Reset deletes all current items from the list and fills the list with all circul The height above which it is safe to move the tool bit with rapid movements. Below this height all lateral and downward movements are performed with feed rate speeds. - The height above which it is safe to move the tool bit with rapid movements. Below this height all lateral and downward movements are performed with feed rate speeds. + Die Höhe, über der es sicher ist, das Werkzeug im Eilgang zu bewegen. Unterhalb dieser Höhe werden alle seitlichen und abwärts gerichteten Bewegungen mit Vorschubgeschwindigkeiten ausgeführt. The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. - The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. + Die Höhe, in der die seitliche Bewegung des Werkzeugs nicht durch Befestigungselemente oder das Material selbst behindert wird. @@ -952,7 +952,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Das Werkzeug und seine Einstellungen, die für diesen Vorgang verwendet werden sollen. @@ -1004,7 +1004,7 @@ Reset deletes all current items from the list and fills the list with all circul Type of adaptive operation - Type of adaptive operation + Art der adaptiven Operation @@ -1050,17 +1050,17 @@ Reset deletes all current items from the list and fills the list with all circul Keep Tool Down Ratio - Keep Tool Down Ratio + Verhältnis Werkzeug unten halten Stock to Leave - Stock to Leave + Aufmaß zum Endmaß Force Clearing Inside-out - Force Clearing Inside-out + Räumung von innen nach außen erzwingen @@ -1081,12 +1081,12 @@ Reset deletes all current items from the list and fills the list with all circul Cut inside or outside of the selected shapes - Cut inside or outside of the selected shapes + Innerhalb oder außerhalb der ausgewählten Formen schneiden If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used - If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used + Ist der Wert größer als Null, wird der Durchmesser der Helixrampe begrenzt, ansonsten werden 75 Prozent des Werkzeugdurchmessers verwendet @@ -1101,22 +1101,22 @@ Reset deletes all current items from the list and fills the list with all circul How much material to leave (i.e. for finishing operation) - How much material to leave (i.e. for finishing operation) + Wie viel Material übrig bleiben soll (z. B. für die Endbearbeitung) The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. + Der Betrag, um den das Werkzeug bei jedem Zyklus des Musters seitlich verschoben wird, angegeben in Prozent des Werkzeugdurchmessers. Ein Versatz von 100 % führt zu keiner Überlappung zwischen zwei verschiedenen Zyklen. Angle of the helix ramp entry - Angle of the helix ramp entry + Winkel der Helixrampen-Einfahrt Angle of the helix entry cone - Angle of the helix entry cone + Winkel des Helix-Eintrittskonus @@ -1134,7 +1134,7 @@ Reset deletes all current items from the list and fills the list with all circul The direction in which the profile is performed, clockwise or counterclockwise. - The direction in which the profile is performed, clockwise or counterclockwise. + Die Richtung, in der das Profil ausgeführt wird, im oder gegen den Uhrzeigersinn. @@ -1152,22 +1152,22 @@ Reset deletes all current items from the list and fills the list with all circul Width of chamfer cut. - Width of chamfer cut. + Breite der Fase. Extra depth of tool immersion. - Extra depth of tool immersion. + Zusätzliche Eintauchtiefe des Werkzeugs. Round joint - Round joint + Runde Fuge Miter joint - Miter joint + Gehrungsfuge @@ -1262,7 +1262,7 @@ Reset deletes all current items from the list and fills the list with all circul Specify the vertex number of the underlying shape string at which engraving should start. - Specify the vertex number of the underlying shape string at which engraving should start. + Geben Sie die Knotennummer der zugrunde liegenden Form an, an der die Gravur beginnen soll. @@ -1272,7 +1272,7 @@ Reset deletes all current items from the list and fills the list with all circul Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. - Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. + Geben Sie an, ob die Helix-Operation an der Innenseite beginnen und sich nach außen vorarbeiten soll, oder ob sie an der Außenseite beginnen und sich zur Mitte vorarbeiten soll. @@ -1287,7 +1287,7 @@ Reset deletes all current items from the list and fills the list with all circul The direction for the helix, clockwise or counterclockwise. - The direction for the helix, clockwise or counterclockwise. + Die Richtung der Helix, im oder gegen den Uhrzeigersinn. @@ -1318,7 +1318,7 @@ Reset deletes all current items from the list and fills the list with all circul If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow - If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow + Wenn ausgewählt, werden alle möglichen Erweiterungen visualisiert. Aktivierte Erweiterungen in Lila und nicht aktivierte Erweiterungen in Gelb @@ -1333,27 +1333,27 @@ Reset deletes all current items from the list and fills the list with all circul Set the extent of the dimension -the default value is half the tool diameter - Set the extent of the dimension -the default value is half the tool diameter + Größe der Bemaßung einstellen - der Standardwert ist der halbe Werkzeugdurchmesser Tree of existing edges and their potential extensions - Tree of existing edges and their potential extensions + Baum mit vorhandenen Kanten und deren möglichen Erweiterungen Enable the currently selected pocket extension - Enable the currently selected pocket extension + Aktiviere die aktuell ausgewählte Pocket-Erweiterung Disable the currently selected pocket extension - Disable the currently selected pocket extension + Deaktiviere die aktuell ausgewählte Pocket-Erweiterung Remove all currently enabled extensions - leaving the plain pocket operation - Remove all currently enabled extensions - leaving the plain pocket operation + Entferne alle derzeit aktivierten Erweiterungen - Verlassen Sie den normalen Taschen-Vorgang @@ -1363,7 +1363,7 @@ Reset deletes all current items from the list and fills the list with all circul Extend the corner between two edges of a pocket. Selected adjacent edges are combined. - Extend the corner between two edges of a pocket. Selected adjacent edges are combined. + Erweitern Sie die Ecke zwischen zwei Kanten einer Tasche. Ausgewählte benachbarte Kanten werden kombiniert. @@ -1383,12 +1383,12 @@ Reset deletes all current items from the list and fills the list with all circul Climb - Klettern + Gegenlauf Conventional - Konventionell + Gleichlauf @@ -1404,26 +1404,26 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Das Werkzeug und seine Einstellungen für diesen Vorgang Specify if the facing should be restricted by the actual shape of the selected face (or the part if no face is selected), or if the bounding box should be faced off. The latter can be used to face of the entire stock area to ensure uniform heights for the following operations - Specify if the facing should be restricted by the actual shape of the selected face (or the part if no face is selected), or if the bounding box should be faced off. + Legen Sie fest, ob die Fläche durch die tatsächliche Form der ausgewählten Fläche (oder das Bauteil, wenn keine Fläche ausgewählt ist) eingeschränkt werden soll oder ob die Begrenzungsbox verwendet werden soll. -The latter can be used to face of the entire stock area to ensure uniform heights for the following operations +Letzteres kann zur Deckung der gesamten Lagerfläche verwendet werden, um für die folgenden Operationen einheitliche Höhen zu gewährleisten The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction - The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction + Der Schneidemodus geht davon aus, dass der Schnitt auf einer Seite des Werkzeugs das resultierende Teil darstellt und die andere Seite entweder bereits weggefräst ist oder später entfernt wird. Im Gegenlaufmodus (Climb mode) wird das Werkzeug bei jeder Umdrehung in den Schnitt bewegt, während im Gleichlaufmodus (Conventional mode) die Drehung des Werkzeuges und die Bewegung des Werkzeugs in dieselbe Richtung gehen Pattern the tool bit is moved in to clear the material - Pattern the tool bit is moved in to clear the material + Muster, in dem das Werkzeug bewegt wird, um das Material zu entfernen @@ -1463,27 +1463,27 @@ The latter can be used to face of the entire stock area to ensure uniform height Angle in which the pattern is applied - Angle in which the pattern is applied + Winkel in dem das Muster angewendet wird The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles + Der Betrag, um den das Werkzeug bei jedem Zyklus des Musters seitlich verschoben wird, angegeben in Prozent des Werkzeugdurchmessers. Ein Versatz von 100 % führt zu keiner Überlappung zwischen zwei verschiedenen Zyklen The amount of material that should be left by this operation in relation to the target shape - The amount of material that should be left by this operation in relation to the target shape + Die Menge an Material, das von dieser Operation in Bezug auf die Zielform übrig bleiben soll Specify if this operation uses a starting point - Specify if this operation uses a starting point + Legen Sie fest, ob dieser Vorgang einen Startpunkt nutzt If selected the operation uses the outline of the selected base geometry and ignores all holes and islands - If selected the operation uses the outline of the selected base geometry and ignores all holes and islands + Wenn aktiviert, verwendet die Operation die Kontur der ausgewählten Basisgeometrie und ignoriert alle Löcher und Inseln @@ -1550,7 +1550,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Enter the filename where the probe points should be written - Enter the filename where the probe points should be written + Geben Sie den Dateinamen ein, unter dem die Messpunkte gespeichert werden sollen @@ -1565,7 +1565,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Specify if the profile should be performed inside or outside the base geometry features. This only matters if Use Compensation is checked (the default) - Specify if the profile should be performed inside or outside the base geometry features. This only matters if Use Compensation is checked (the default) + Geben Sie an, ob das Profil innerhalb oder außerhalb der Basisgeometrie ausgeführt werden soll. Dies ist nur wichtig, wenn die Option „Benutze Kompensation" aktiviert ist (der Standard) @@ -1576,37 +1576,37 @@ The latter can be used to face of the entire stock area to ensure uniform height The direction in which the profile is performed, clockwise or counterclockwise - The direction in which the profile is performed, clockwise or counterclockwise + Die Richtung, in der das Profil ausgeführt wird, im oder gegen den Uhrzeigersinn The amount of extra material left by this operation in relation to the target shape - The amount of extra material left by this operation in relation to the target shape + Die Menge an zusätzlichem Material, das von dieser Operation in Bezug auf die Zielform übrig bleibt Check if this operation should use a starting point - Check if this operation should use a starting point + Legen Sie fest, ob dieser Vorgang einen Startpunkt nutzt Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled - Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled + Legen Sie fest, ob diese Profiloperation auch Löcher in der Basisgeometrie bearbeiten soll. Gefundene Löcher werden automatisch auf der gegenüberliegenden Schnittseite versetzt und in der entgegengesetzten Richtung als Aussenkontur ausgeführt. Beachten Sie, dass dies nicht für zylindrische Löcher gilt, da davon ausgegangen wird, dass diese gebohrt werden If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side - If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side + Wenn aktiviert, wird die Profiloperation um den Werkzeugradius versetzt. Die Offset-Richtung wird durch die Schnittseite bestimmt Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values - Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values + Legen Sie fest, ob diese Profiloperation auch auf zylindrische Löcher angewendet werden soll, die normalerweise gebohrt werden. Dies kann nützlich sein, wenn kein Bohrer mit ausreichender Größe zur Verfügung steht oder die Anzahl der Löcher einen Werkzeugwechsel nicht rechtfertigt. Beachten Sie, dass die Schnittseite und -richtung in Bezug auf die angegebenen Werte umgekehrt wird Check if this profile operation should also process the outside perimeter of the base geometry shapes - Check if this profile operation should also process the outside perimeter of the base geometry shapes + Legen Sie fest, ob diese Profiloperation auch den äußeren Umfang der Basisgeometrieformen bearbeiten soll @@ -1631,17 +1631,17 @@ The latter can be used to face of the entire stock area to ensure uniform height Start Feature Reference - Start-Merkmal-Referenz + Start Feature Referenz The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Das Werkzeug und seine Einstellungen für diesen Vorgang Choose what point to use on the first selected feature - Choose what point to use on the first selected feature + Wählen Sie, welcher Punkt auf das erste ausgewählte Feature angewendet werden soll @@ -1686,12 +1686,12 @@ The latter can be used to face of the entire stock area to ensure uniform height End Feature Reference - End-Merkmal-Referenz + Referenz für End-Feature Choose what point to use on the second selected feature - Choose what point to use on the second selected feature + Wählen Sie, welchen Punkt für das zweite ausgewählte Objekt verwendet werden soll @@ -1701,32 +1701,32 @@ The latter can be used to face of the entire stock area to ensure uniform height Currently using custom point inputs in the Property View of the Data tab - Currently using custom point inputs in the Property View of the Data tab + Aktuell werden die benutzerdefinierten Punkteingaben in der Eigenschaftsansicht der Registerkarte Daten verwendet Positive extends the beginning of the path, negative shortens - Positive extends the beginning of the path, negative shortens + Positiv verlängert den Anfang des Pfades, negativ verkürzt ihn Positive extends the end of the path, negative shortens - Positive extends the end of the path, negative shortens + Positiv verlängert das Ende des Pfades, negativ verkürzt es Complete the operation in a single pass at depth, or multiple passes to final depth - Complete the operation in a single pass at depth, or multiple passes to final depth + Die Operation in einem einzigen Arbeitsgang in der Tiefe ausführen oder in mehreren Arbeitsgängen bis zur endgültigen Tiefe Choose the path orientation with regard to the feature(s) selected - Choose the path orientation with regard to the feature(s) selected + Wählen Sie die Pfad-Ausrichtung hinsichtlich der ausgewählten Funktion(en) Enable to reverse the cut direction of the slot path - Enable to reverse the cut direction of the slot path + Aktivieren, um die Schnittrichtung der Nut umzukehren @@ -1816,77 +1816,77 @@ The latter can be used to face of the entire stock area to ensure uniform height Select the overall boundary for the operation. - Select the overall boundary for the operation. + Wählen Sie die Gesamtgrenze für die Operation. Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan. - Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan. + Planar: Flacher, 3D-Oberflächen-Scan. Drehbar: Drehbarer 4. ter Achs-Rotations-Scan. Complete the operation in a single pass at depth, or multiple passes to final depth. - Complete the operation in a single pass at depth, or multiple passes to final depth. + Die Operation in einem Durchgang der ausgewählten Tiefe durchführen, oder in mehreren Durchgängen bis zur Zieltiefe. Set the geometric clearing pattern to use for the operation. - Set the geometric clearing pattern to use for the operation. + Legen Sie das geometrische Räummuster für die Operation fest. Profile the edges of the selection. - Profile the edges of the selection. + Die Kanten der Auswahl profilieren. Avoid cutting the last 'N' faces in the Base Geometry list of selected faces. - Avoid cutting the last 'N' faces in the Base Geometry list of selected faces. + Das Fräsen der letzten 'N' Flächen in der Basisgeometrieliste der ausgewählten Flächen vermeiden. Bounding box extra offset X, Y - Bounding box extra offset X, Y + Begrenzungsrahmen extra Offset X, Y Dropcutter lines are created parallel to this axis. - Dropcutter lines are created parallel to this axis. + Die Dropcutter-Linien werden parallel zu dieser Achse erstellt. Set the Z-axis depth offset from the target surface. - Set the Z-axis depth offset from the target surface. + Z-Achsen-Tiefen-Versatz zur Zieloberfläche einstellen. Set the sampling resolution. Smaller values quickly increase processing time. - Set the sampling resolution. Smaller values quickly increase processing time. + Setzt die Auflösung der Abtastrate. Kleinere Werte erhöhen schnell die Bearbeitungszeit. Make True, if specifying a Start Point - Make True, if specifying a Start Point + Auf Wahr setzen, wenn ein Startpunkt angegeben werden soll Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-code output. - Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-code output. + Optimierung linearer Pfade aktivieren (kolineare Punkte). Entfernt unnötige kolineare Punkte aus G-Code-Ausgabe. If true, the cutter will remain inside the boundaries of the model or selected face(s) - If true, the cutter will remain inside the boundaries of the model or selected face(s) + Wenn aktiv: der Fräser bleibt innerhalb der Grenzen des Modells oder der ausgewählten Fläche(n) Enable separate optimization of transitions between, and breaks within, each step over path. - Enable separate optimization of transitions between, and breaks within, each step over path. + Aktivieren Sie die separate Optimierung von Übergängen zwischen überlappenden Pfaden. @@ -1920,9 +1920,7 @@ The latter can be used to face of the entire stock area to ensure uniform height The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. - -A step over of 100% results in no overlap between two different cycles. + Der Betrag, um den das Werkzeug bei jedem Zyklus des Musters seitlich verschoben wird, angegeben in Prozent des Werkzeugdurchmessers. Ein Versatz von 100 % führt zu keiner Überlappung zwischen zwei verschiedenen Zyklen. @@ -1961,27 +1959,27 @@ A step over of 100% results in no overlap between two different cycles.Expression set as the StartDepth of a newly created operation. Default: OpStartDepth - Expression set as the StartDepth of a newly created operation. + Ausdruck als Starttiefe einer neu erstellten Operation gesetzt. -Default: OpStartDepth +Standard: OpStartDepth Expression set as the FinalDepth for a newly created operation. Default: OpFinalDepth - Expression set as the FinalDepth for a newly created operation. + Ausdruck als Endtiefe für eine neu erstellte Operation gesetzt. -Default: OpFinalDepth +Standard: OpFinalDepth Expression set as the StepDown of a newly created operation. Default: OpToolDiameter - Expression set as the StepDown of a newly created operation. + Ausdruck als Zustelltiefe einer neu erstellten Operation gesetzt. -Default: OpToolDiameter +Standard: OpToolDurchmesser @@ -2017,28 +2015,28 @@ Standard: "OpStockZMax+SetupSheet.ClearanceHeightOffset" Expression set as SafeHeight for new operations. Default: "OpStockZMax+SetupSheet.SafeHeightOffset" - Expression set as SafeHeight for new operations. + Ausdruck als Sichere Höhe für neue Operationen gesetzt. -Default: "OpStockZMax+SetupSheet.SafeHeightOffset" +Standard: "OpStockZMax+SetupSheet.SafeHeightOffset" SafeHeightOffset can be for expressions to set the SafeHeight for new operations. Default: "5mm" - SafeHeightOffset can be for expressions to set the SafeHeight for new operations. + SafeHeightOffset kann für Ausdrücke verwendet werden, um die Sichere Höhe für neue Operationen festzulegen. -Default: "5mm" +Voreinstellung: "5mm" Rapid horizontal speed assigned as HorizRapid to new ToolController. - Rapid horizontal speed assigned as HorizRapid to new ToolController. + Schnelle horizontale Geschwindigkeit als "HorizRapid" dem neuen Werkzeug-Controller zugewiesen. Rapid vertical speed assigned to VertRapid of new ToolController. - Rapid vertical speed assigned to VertRapid of new ToolController. + Schnelle vertikale Geschwindigkeit als "VertRapid" dem neuen Werkzeug-Controller zugewiesen. @@ -2134,7 +2132,7 @@ Standard: "3 mm" - Das Werkzeug sollte in diesem Fall auf Verbindungsfahrten imm This value is used in discretizing arcs into segments. Smaller values will result in larger gcode. Larger values may cause unwanted segments in the medial line path. - This value is used in discretizing arcs into segments. Smaller values will result in larger gcode. Larger values may cause unwanted segments in the medial line path. + Dieser Wert wird für die Unterteilung der Bögen in Segmente verwendet. Kleinere Werte führen zu einem größeren G-Code. Größere Werte können zu unerwünschten Segmenten im Linienverlauf führen. @@ -2154,7 +2152,7 @@ Standard: "3 mm" - Das Werkzeug sollte in diesem Fall auf Verbindungsfahrten imm Select the algorithm to use: OCL Dropcutter*, or Experimental (Not OCL based). - Select the algorithm to use: OCL Dropcutter*, or Experimental (Not OCL based). + Wählen Sie den zu verwendenden Algorithmus: OCL Dropcutter* oder experimentell (Nicht OCL basiert). @@ -2287,37 +2285,37 @@ Standard: "3 mm" - Das Werkzeug sollte in diesem Fall auf Verbindungsfahrten imm Set the default width of holding tags. If the width is set to 0 the dressup will try to guess a reasonable value based on the path itself. - Set the default width of holding tags. + Legen Sie die Standardbreite der Haltestege fest. -If the width is set to 0 the dressup will try to guess a reasonable value based on the path itself. +Wenn die Breite auf 0 gesetzt ist, wird die Aufbereitung versuchen, einen vernünftigen Wert basierend auf dem Pfad selbst zu erraten. Default height of holding tags. If the specified height is 0 the dressup will use half the height of the part. Should the height be bigger than the height of the part the dressup will reduce the height to the height of the part. - Default height of holding tags. + Standardhöhe des Haltesteges. -If the specified height is 0 the dressup will use half the height of the part. Should the height be bigger than the height of the part the dressup will reduce the height to the height of the part. +Wenn die angegebene Höhe 0 ist, wird die halbe Höhe des Teils verwendet. Ist die Höhe größer als die Höhe des Bauteils, wird die Höhe auf die Höhe des Bauteils reduziert. Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Eintauchwinkel für den Auf- und Abstieg des Haltestegs. Radius of the fillet on the tag's top edge. If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. - Radius of the fillet on the tag's top edge. + Radius der Abrundung an der oberen Kante des Steges. -If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. +Wenn der Radius größer ist als der Radius, den der Steg selbst unterstützt, wird die Form einer Kuppel gebildet. Specify the number of tags generated when a new dressup is created. - Specify the number of tags generated when a new dressup is created. + Geben Sie die Anzahl der Stege an, die bei der Erstellung einer neuen Aufbereitung erzeugt werden. @@ -2435,31 +2433,31 @@ if %S is included, you can specify where the number occurs. Without it, the num The following example store all files with the same name as the document the directory /home/freecad (please remove quotes): &quot;/home/cnc/%d.g-code&quot; See the file save policy below on how to deal with name conflicts. - Enter a path and optionally file name (see below) to be used as the default for the post processor export. -The following substitutions are performed before the name is resolved at the time of the post processing: -Substitution allows the following: -%D ... directory of the active document -%d ... name of the active document (with extension) -%M ... user macro directory -%j ... name of the active Job object + Geben Sie einen Pfad und optional einen Dateinamen ein (siehe unten), der als Standard für den Postprozessor-Export verwendet werden soll. +Die folgenden Substitutionen werden durchgeführt, bevor der Name zum Zeitpunkt der Nachbearbeitung aufgelöst wird: +Die Substitution erlaubt Folgendes: +%D ... Verzeichnis des aktiven Dokuments +%d ... Name des aktiven Dokuments (mit Erweiterung) +%M ... Verzeichnis des Benutzermakros +%j ... Name des aktiven Job-Objekts -The Following can be used if output is being split. If Output is not split -these will be ignored. -%T ... Tool Number -%t ... Tool Controller label +Das Folgende kann verwendet werden, wenn die Ausgabe geteilt wird. Wenn die Ausgabe nicht geteilt ist +werden diese Angaben ignoriert. +%T ... Werkzeugnummer +%t ... Bezeichnung der Werkzeugsteuerung -%W ... Work Coordinate System -%O ... Operation Label +%W ... Arbeits-Koordinatensystem +%O ... Bezeichnung der Operation -When splitting output, a sequence number will always be added. +Beim Aufteilen der Ausgabe wird immer eine laufende Nummer hinzugefügt. -if %S is included, you can specify where the number occurs. Without it, the number will be added to the end of the string. +Wenn %S enthalten ist, können Sie angeben, wo die Nummer steht. Ohne diese Angabe wird die Nummer an das Ende der Zeichenkette angehängt. -%S ... Sequence Number +%S ... Sequenznummer -The following example store all files with the same name as the document the directory /home/freecad (please remove quotes): +Das folgende Beispiel speichert alle Dateien mit dem gleichen Namen wie das Dokument im Verzeichnis /home/freecad (bitte Anführungszeichen entfernen): &quot;/home/cnc/%d.g-code&quot; -See the file save policy below on how to deal with name conflicts. +Wie Sie mit Namenskonflikten umgehen, erfahren Sie in der unten stehenden Richtlinie zum Speichern von Dateien. @@ -2516,9 +2514,9 @@ See the file save policy below on how to deal with name conflicts. Path to look for templates, post processors, tool tables and other external files. If left empty the macro directory is used. - Path to look for templates, post processors, tool tables and other external files. + Pfad zur Suche nach Vorlagen, Postprozessoren, Werkzeugtabellen und anderen externen Dateien. -If left empty the macro directory is used. +Bleibt er leer, wird das Makroverzeichnis verwendet. @@ -2527,31 +2525,31 @@ If left empty the macro directory is used. This can be helpful when almost all jobs will be processed by the same machine with a similar setup. If left empty no template will be preselected. - The default template to be selected when creating a new Job. + Die Standardvorlage, die bei der Erstellung eines neuen Auftrags ausgewählt wird. -This can be helpful when almost all jobs will be processed by the same machine with a similar setup. +Dies kann hilfreich sein, wenn fast alle Aufträge von der gleichen Maschine mit ähnlichen Einstellungen verarbeitet werden sollen. -If left empty no template will be preselected. +Bleibt das Feld leer, wird keine Vorlage vorausgewählt. Choose how to deal with potential file name conflicts. Always open a dialog, only open a dialog if the output file already exists, overwrite any existing file or add a unique (3 digit) sequential ID to the file name. - Choose how to deal with potential file name conflicts. Always open a dialog, only open a dialog if the output file already exists, overwrite any existing file or add a unique (3 digit) sequential ID to the file name. + Legen Sie fest, wie Sie mit potenziellen Dateinamenskonflikten umgehen wollen. Immer ein Dialogfeld öffnen, Dialogfeld nur öffnen, wenn die Ausgabedatei bereits vorhanden ist, vorhandene Datei überschreiben oder dem Dateinamen eine eindeutige (3-stellige) fortlaufende ID hinzufügen. It doesn't seem there are any post processor scripts installed. Please add some into your macro directory and make sure the file name ends with &quot;_post.py&quot;. - It doesn't seem there are any post processor scripts installed. Please add some into your macro directory and make sure the file name ends with &quot;_post.py&quot;. + Es scheinen keine Postprozessor-Skripte installiert zu sein. Bitte fügen Sie einige in Ihr Makroverzeichnis ein und stellen Sie sicher, dass der Dateiname mit &quot;_post.py&quot; endet. Select one of the post processors as the default. - Select one of the post processors as the default. + Wählen Sie einen der Postprozessoren als Standard aus. Optional arguments passed to the default Post Processor specified above. See the Post Processor's documentation for supported arguments. - Optional arguments passed to the default Post Processor specified above. See the Post Processor's documentation for supported arguments. + Optionale Argumente, die an den oben angegebenen Standard-Postprozessor übergeben werden. Siehe Dokumentation des Postprozessors für unterstützte Argumente. @@ -2688,7 +2686,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Bounding box normal color - Bounding box normal color + Begrenzungsbox normale Farbe @@ -2698,12 +2696,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Probe path color - Probe path color + Sondierungs Pfad Farbe Bounding box selection color - Bounding box selection color + Begrenzungsbox Auswahlfarbe @@ -2834,17 +2832,17 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Suppress feed rate warning - Suppress feed rate warning + Vorschubwarnung unterdrücken OpenCAMLib - OpenCAMLib + OpenCAMLib If OpenCAMLib is installed with Python bindings it can be used by some additional 3D operations. NOTE: Enabling OpenCAMLib here requires a restart of FreeCAD to take effect. - If OpenCAMLib is installed with Python bindings it can be used by some additional 3D operations. NOTE: Enabling OpenCAMLib here requires a restart of FreeCAD to take effect. + Wenn OpenCAMLib mit Python-Bindungen installiert ist, kann es von einigen zusätzlichen 3D-Operationen verwendet werden. HINWEIS: Die Aktivierung von OpenCAMLib erfordert einen Neustart von FreeCAD, um wirksam zu werden. @@ -2880,12 +2878,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Enable Lead-in move - Enable Lead-in move + Anfahrtsbewegung aktivieren Enable Lead In - Enable Lead In + Anfahrt aktivieren @@ -2902,7 +2900,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie length or radius of the Lead-in - length or radius of the Lead-in + Länge oder Radius der Anfahrt @@ -2913,42 +2911,42 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie extends the leadin distance - extends the leadin distance + verlängert die Anfahrstrecke Enable Lead-out move - Enable Lead-out move + Abfahrtsbewegung aktivieren Enable Lead Out - Enable Lead Out + Abfahrt aktivieren length or radius of the Lead-out - length or radius of the Lead-out + Länge oder Radius der Abfahrt Extends the leadout distance - Extends the leadout distance + Verlängert die Abfahrstrecke Plunge at rapid speed - Plunge at rapid speed + Schnelles Eintauchen Apply Lead In/Out on all layers - Apply Lead In/Out on all layers + An/Abfahrt auf allen Ebenen anwenden Keep the tool down in the path - Keep the tool down in the path + Werkzeug auf dem Pfad halten @@ -2984,27 +2982,27 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Length/Radius positive not Null - Length/Radius positive not Null + Länge/Radius positiv ungleich Null LeadInOut - einfahren ausfahren + An/Abfahren Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path - Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path + Erstellt ein Werkzeugradiuskompensation G41/G42 Aufbereitungsobjekt von einem ausgewählten Pfad Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad @@ -3030,7 +3028,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie AxisMap Dressup - AxisMap Dressup + AxisMap Aufbereitung @@ -3046,12 +3044,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie The radius of the wrapped axis - The radius of the wrapped axis + Radius der gemappten Achse The input mapping axis. Coordinates of the first axis will be mapped to the second. - The input mapping axis. Coordinates of the first axis will be mapped to the second. + Die Eingangsabbildungsachse. Koordinaten der ersten Achse werden der zweiten zugeordnet. @@ -3092,7 +3090,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Dressup - Dressup + Aufbereitung @@ -3102,7 +3100,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> - <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> + <html><head/><body><p>Wählen Sie den gewünschten Stil der Aufbereitung aus:</p><p><span style=" font-weight:600; font-style:italic;">Hundeknochen</span> ... nehmen Sie den kürzesten Weg, um die Ecke abzudecken,</p><p><span style=" font-weight:600; font-style:italic;">T-Stück</span> . . eine bestimmte Richtung erweitern, bis die Ecke abgedeckt ist</p></body></html> @@ -3137,17 +3135,17 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie On which side of the profile bones are inserted - this also determines which corners are dressed up. The default value is determined based on the profile being dressed up. - On which side of the profile bones are inserted - this also determines which corners are dressed up. The default value is determined based on the profile being dressed up. + Auf welcher Seite des Profils die Knochen eingefügt werden - dies bestimmt auch, welche Ecken Aufbereitet werden. Der Standardwert wird anhand des Profils ermittelt, das aufbereitet wird. Left - Links + Seitenansicht von links Right - Rechts + Seitenansicht von rechts @@ -3157,7 +3155,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> - <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> + <html><head/><body><p>Bestimmt die Schnittlänge des Knochens, der in das Profil eingefügt werden soll.</p><p><span style=" font-weight:600; font-style:italic;">Adaptive</span> ... die Länge wird angepasst, um die Ecke auf der Grundlage des Winkels der Kanten zu überdecken, wobei der aktuelle Werkzeugradius berücksichtigt wird (Standard)</p><p><span style=" font-weight:600; font-style:italic;">Fest</span> . . ist dasselbe wie Adaptiv für gerade Winkel. Beim T-Stück ist es der Radius des Werkzeugs (R) und beim Hundeknochen ist es R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">Benutzerdefiniert</span> ... lässt Sie unten eine benutzerdefinierte Länge angeben</p></body></html> @@ -3177,12 +3175,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie <html><head/><body><p>Enter length for each bone if <span style=" font-weight:600;">Incision</span> is set to <span style=" font-weight:600;">custom</span>, ignored otherwise.</p></body></html> - <html><head/><body><p>Enter length for each bone if <span style=" font-weight:600;">Incision</span> is set to <span style=" font-weight:600;">custom</span>, ignored otherwise.</p></body></html> + <html><head/><body><p>Geben Sie die Länge für jeden Knochen ein, wenn <span style=" font-weight:600;">Einschnitt</span> auf <span style=" font-weight:600;">Benutzerdefiniert</span> gesetzt ist, ansonst wird dies ignoriert.</p></body></html> <html><head/><body><p>List of bone locations (with all bones at that location) that are part of this dressup. The list is determined by the corners in the profile and the selected <span style=" font-weight:600;">Side</span> for the bones. </p><p>You can <span style=" font-weight:600;">un-check</span> the bones you don't want to be dressed up.</p><p>If a bone is <span style=" font-weight:600;">grayed out</span> it means that it is already dressed up by a previous dressup. Or put another way, if you dress up this dogobone dressup again you will only be able to select the bones that are un-checked here.</p><p>If this list is empty it probably means you're trying to create bones on the wrong side of the profile.</p></body></html> - <html><head/><body><p>List of bone locations (with all bones at that location) that are part of this dressup. The list is determined by the corners in the profile and the selected <span style=" font-weight:600;">Side</span> for the bones. </p><p>You can <span style=" font-weight:600;">un-check</span> the bones you don't want to be dressed up.</p><p>If a bone is <span style=" font-weight:600;">grayed out</span> it means that it is already dressed up by a previous dressup. Or put another way, if you dress up this dogobone dressup again you will only be able to select the bones that are un-checked here.</p><p>If this list is empty it probably means you're trying to create bones on the wrong side of the profile.</p></body></html> + <html><head/><body><p>Liste der Knochenpositionen (mit allen Knochen an dieser Position), die Teil dieser Aufbereitung sind. Die Liste wird durch die Ecken im Profil und die ausgewählte <span style=" font-weight:600;">Seite</span> für die Knochen bestimmt. </p><p>Sie können die Knochen, die Sie nicht aufbereiten möchten, <span style=" font-weight:600;">deaktivieren</span>.</p><p>Wenn ein Knochen <span style=" font-weight:600;">ausgegraut</span> ist, bedeutet das, dass er bereits durch eine vorherige Aufbereitung bearbeitet wurde. Oder anders ausgedrückt: Wenn Sie diese Hundeknochen Aufberteitung erneut anwenden, können Sie nur die Knochen auswählen, die hier nicht markiert sind.</p><p>Wenn diese Liste leer ist, bedeutet das wahrscheinlich, dass Sie versuchen, Knochen auf der falschen Seite des Profils zu erstellen.</p></body></html> @@ -3192,7 +3190,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Dragknife Dressup - Schleppmesser-Erweiterung + Schleppmesser-Aufbereitung @@ -3202,12 +3200,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Angles less than filter angle will not receive corner actions - Angles less than filter angle will not receive corner actions + Winkel kleiner als der Filterwinkel werden durch den Eckenprozess nicht verändert Distance the point trails behind the spindle - Distance the point trails behind the spindle + Abstand, mit dem der Punkt der Spindel folgt @@ -3247,17 +3245,17 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Width of the resulting holding tag. - Width of the resulting holding tag. + Breite des resultierenden Haltestegs. Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. - Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. + Höhe des Haltestegs. Beachten Sie, dass der resultierende Steg kleiner sein kann, wenn die Breite und der Winkel des Stegs eine dreieckige Form ergeben. Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Eintauchwinkel für den Auf- und Abstieg des Haltestegs. @@ -3267,7 +3265,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie List of current tags. Edit coordinates by double click or Edit button. Tags are automatically disabled if they overlap with the previous tag, or don't lie on the base wire. - List of current tags. Edit coordinates by double click or Edit button. Tags are automatically disabled if they overlap with the previous tag, or don't lie on the base wire. + Liste der aktuellen Stege. Bearbeiten der Koordinaten durch Doppelklick oder Bearbeiten-Schaltfläche. Stege werden automatisch deaktiviert, wenn sie sich mit dem vorherigen Steg überlappen oder nicht auf dem Basislinie liegen. @@ -3368,12 +3366,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Step Down - Schritt runter + Zustelltiefe Finish Step Down - Letzte Schritt runter + Letzte Zustelltiefe @@ -3403,7 +3401,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Das Werkzeug und seine Einstellungen, die für diesen Vorgang verwendet werden sollen. @@ -3443,7 +3441,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Enter the filename containing the probe data - Enter the filename containing the probe data + Geben Sie den Dateinamen mit den Sondendaten ein @@ -3550,7 +3548,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Tool Bit Attributes - Werkzeug-Bit-Attribute + Werkzeug Attribute @@ -3560,7 +3558,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Tool Bit - Werkzeug-Bit + Werkzeug @@ -3585,17 +3583,17 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Display name of the Tool Bit (initial value taken from the shape file). - Display name of the Tool Bit (initial value taken from the shape file). + Anzeigename des Werkzeugs (Anfangswert wurde aus der Formdatei übernommen). The file which defines the type and shape of the Tool Bit. - The file which defines the type and shape of the Tool Bit. + Die Datei, die den Typ und die Form des Werkzeugs definiert. Change file defining type and shape of Tool Bit. - Change file defining type and shape of Tool Bit. + Ändert die Datei, die Typ und Form des Werkzeugspitze definiert. @@ -3648,12 +3646,12 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Available Tool Bits to choose from. - Available Tool Bits to choose from. + Verfügbare Werkzeuge zur Auswahl. Create ToolControllers for the selected toolbits and add them to the Job - Create ToolControllers for the selected toolbits and add them to the Job + Erstelle Werkzeugsteuerungen für die ausgewählten Werkzeugspitzen und füge sie dem Auftrag hinzu @@ -3743,7 +3741,7 @@ Sollten mehrere Werkzeuge oder Werkzeugformen mit dem gleichen Namen in verschie Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. - Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. + Optionale Argumente, die an den Postprozessor übergeben werden. Die Argumente sind für jeden Postprozessor spezifisch; Einzelheiten finden Sie in der Dokumentation des jeweiligen Postprozessors. @@ -3754,20 +3752,20 @@ This is useful if the operator can safely load work into one coordinate system w Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. - Ordering by Fixture, will cause all operations to be performed in the first coordinate system before switching to the second. Then all operations will be performed there in the same order. + Wenn Sie nach Befestigungen ordnen, werden alle Operationen im ersten Koordinatensystem ausgeführt, bevor Sie in das zweite wechseln. Dort werden dann alle Bearbeitungen in der gleichen Reihenfolge ausgeführt. -This is useful if the operator can safely load work into one coordinate system while the machine is doing work in another. +Dies ist nützlich, wenn der Bediener die Arbeit sicher in ein Koordinatensystem laden kann, während die Maschine die Arbeit in einem anderen System ausführt. -Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. +Das Ordnen nach Werkzeug minimiert die Werkzeugwechsel. Ein Werkzeugwechsel wird durchgeführt, danach alle Arbeitsgänge in allen Koordinatensystemen, bevor das Werkzeug gewechselt wird. -Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. +Bei der Anordnung nach Arbeitsgang wird jeder Arbeitsgang in allen Koordinatensystemen ausgeführt, bevor zum nächsten Arbeitsgang übergegangen wird. Dies ist besonders nützlich in Verbindung mit der "geteilten Ausgabe", auch wenn nur ein einziges Arbeitskoordinatensystem verwendet wird, da jeder Arbeitsgang in einer separaten Datei gespeichert wird. <html><head/><body><p><span style=" font-style:italic;">Work Coordinate Systems</span> also called <span style=" font-style:italic;">Work Offsets</span>, <span style=" font-style:italic;">Fixture Offsets</span>, or <span style=" font-style:italic;">Fixtures </span>are useful for building efficient production jobs where the same part is done many times on the machine. FreeCAD has no knowledge of where a particular coordinate system exists within the machine coordinate system so adding additional coordinate systems to your job will have no visual change within your job. It will, however, change your gcode output. The exact way in which the output is affected is controlled by the 'order by' setting.</p></body></html> - <html><head/><body><p><span style=" font-style:italic;">Work Coordinate Systems</span> also called <span style=" font-style:italic;">Work Offsets</span>, <span style=" font-style:italic;">Fixture Offsets</span>, or <span style=" font-style:italic;">Fixtures </span>are useful for building efficient production jobs where the same part is done many times on the machine. -FreeCAD has no knowledge of where a particular coordinate system exists within the machine coordinate system so adding additional coordinate systems to your job will have no visual change within your job. It will, however, change your gcode output. The exact way in which the output is affected is controlled by the 'order by' setting.</p></body></html> + <html><head/><body><p><span style=" font-style:italic;">Arbeitskoordinatensysteme</span> auch <span style=" font-style:italic;">Arbeitsversatz</span>, <span style=" font-style:italic;">Befestigungs-Versatz</span>, oder <span style=" font-style:italic;">Befestigungen</span> genannt, sind nützlich, um effiziente Produktionsaufträge zu erstellen, bei denen das gleiche Teil mehrmals auf der Maschine erledigt wird. +FreeCAD hat keine Kenntnis davon, wo ein bestimmtes Koordinatensystem innerhalb des Koordinatensystems existiert, so dass das Hinzufügen zusätzlicher Koordinatensysteme zu Ihrem Auftrag keine visuellen Veränderungen haben wird. Es ändert jedoch Ihre Gcode Ausgabe. Die genaue Art und Weise, wie die Ausgabe beeinflusst wird, wird durch die Einstellung 'Reihenfolge nach' geregelt.</p></body></html> @@ -3960,18 +3958,18 @@ Standard: "OpStockZMax+SetupSheet.ClearanceHeightOffset" Expression set as SafeHeight for new operations. Default: "OpStockZMax+SetupSheet.SafeHeightOffset" - Expression set as SafeHeight for new operations. + Ausdruck als Sichere Höhe für neue Operationen gesetzt. -Default: "OpStockZMax+SetupSheet.SafeHeightOffset" +Standard: "OpStockZMax+SetupSheet.SafeHeightOffset" SafeHeightOffset can be for expressions to set the SafeHeight for new operations. Default: "5mm" - SafeHeightOffset can be for expressions to set the SafeHeight for new operations. + SafeHeightOffset kann für Ausdrücke verwendet werden, um die Sichere Höhe für neue Operationen festzulegen. -Default: "5mm" +Voreinstellung: "5mm" @@ -3986,12 +3984,12 @@ Default: "5mm" Rapid horizontal speed assigned as HorizRapid to new ToolController. - Rapid horizontal speed assigned as HorizRapid to new ToolController. + Schnelle horizontale Geschwindigkeit als "HorizRapid" dem neuen Werkzeug-Controller zugewiesen. Rapid vertical speed assigned to VertRapid of new ToolController. - Rapid vertical speed assigned to VertRapid of new ToolController. + Schnelle vertikale Geschwindigkeit als "VertRapid" dem neuen Werkzeug-Controller zugewiesen. @@ -4025,31 +4023,31 @@ if %S is included, you can specify where the number occurs. Without it, the num The following example store all files with the same name as the document the directory /home/freecad (please remove quotes): "/home/cnc/%d.g-code" See the file save policy below on how to deal with name conflicts. - Enter a path and optionally file name (see below) to be used as the default for the post processor export. -The following substitutions are performed before the name is resolved at the time of the post processing: -Substitution allows the following: -%D ... directory of the active document -%d ... name of the active document (with extension) -%M ... user macro directory -%j ... name of the active Job object + Geben Sie einen Pfad und optional einen Dateinamen ein (siehe unten), der als Standard für den Postprozessor-Export verwendet werden soll. +Die folgenden Substitutionen werden durchgeführt, bevor der Name zum Zeitpunkt der Nachbearbeitung aufgelöst wird: +Die Substitution erlaubt Folgendes: +%D ... Verzeichnis des aktiven Dokuments +%d ... Name des aktiven Dokuments (mit Erweiterung) +%M ... Verzeichnis des Benutzermakros +%j ... Name des aktiven Job-Objekts -The Following can be used if output is being split. If Output is not split -these will be ignored. -%T ... Tool Number -%t ... Tool Controller label +Das Folgende kann verwendet werden, wenn die Ausgabe geteilt wird. Wenn die Ausgabe nicht geteilt ist +werden diese Angaben ignoriert. +%T ... Werkzeugnummer +%t ... Bezeichnung der Werkzeugsteuerung -%W ... Work Coordinate System -%O ... Operation Label +%W ... Arbeits-Koordinatensystem +%O ... Bezeichnung der Operation -When splitting output, a sequence number will always be added. +Beim Aufteilen der Ausgabe wird immer eine laufende Nummer hinzugefügt. -if %S is included, you can specify where the number occurs. Without it, the number will be added to the end of the string. +Wenn %S enthalten ist, können Sie angeben, wo die Nummer steht. Ohne diese Angabe wird die Nummer an das Ende der Zeichenkette angehängt. -%S ... Sequence Number +%S ... Sequenznummer -The following example store all files with the same name as the document the directory /home/freecad (please remove quotes): +Das folgende Beispiel speichert alle Dateien mit dem gleichen Namen wie das Dokument im Verzeichnis /home/freecad (bitte Anführungszeichen entfernen): "/home/cnc/%d.g-code" -See the file save policy below on how to deal with name conflicts. +Wie Sie mit Namenskonflikten umgehen, erfahren Sie in der unten stehenden Richtlinie zum Speichern von Dateien. @@ -4065,45 +4063,45 @@ For example, if <span style=" font-style:italic;">order by</span> is If <span style=" font-style:italic;">order by</span> is set to <span style=" font-style:italic;">operation</span> and <span style=" font-style:italic;">split output</span> is true, each operation will be written to a separate file.</p></body></html> - <html><head/><body><p>If True, post processing will create multiple output files based on the <span style=" font-style:italic;">order by</span> setting. + <html><head/><body><p>Wenn Wahr, erstellt die Nachbearbeitung mehrere Ausgabedateien basierend auf der <span style=" font-style:italic;">Reihenfolge nach</span> Einstellung. -For example, if <span style=" font-style:italic;">order by</span> is set to Tool, the first output file will contain the first tool change and all operations, in all coordinate systems, that can be done with that tool before the next tool change is called. +Zum Beispiel, wenn <span style=" font-style:italic;">Reihenfolge nach</span> auf Werkzeug gesetzt ist, wird die erste Ausgabedatei den ersten Werkzeugwechsel und alle Operationen enthalten, in allen Koordinatensystemen, die mit diesem Werkzeug durchgeführt werden können, bevor der nächste Werkzeugwechsel aufgerufen wird. -If <span style=" font-style:italic;">order by</span> is set to <span style=" font-style:italic;">operation</span> and <span style=" font-style:italic;">split output</span> is true, each operation will be written to a separate file.</p></body></html> +Wenn <span style=" font-style:italic;">Reihenfolge nach</span> auf <span style=" font-style:italic;">Operation</span> gesetzt ist und <span style=" font-style:italic;">Aufteilung</span> wahr ist, wird jeder Vorgang in eine separate Datei geschrieben.</p></body></html> Expression set as the StartDepth of a newly created operation. Default: OpStartDepth - Expression set as the StartDepth of a newly created operation. + Ausdruck als Starttiefe einer neu erstellten Operation gesetzt. -Default: OpStartDepth +Standard: OpStartDepth Expression set as the FinalDepth for a newly created operation. Default: OpFinalDepth - Expression set as the FinalDepth for a newly created operation. + Ausdruck als Endtiefe für eine neu erstellte Operation gesetzt. -Default: OpFinalDepth +Standard: OpFinalDepth Step Down - Schritt runter + Zustelltiefe Expression set as the StepDown of a newly created operation. Default: OpToolDiameter - Expression set as the StepDown of a newly created operation. + Ausdruck als Zustelltiefe einer neu erstellten Operation gesetzt. -Default: OpToolDiameter +Standard: OpToolDurchmesser @@ -4281,12 +4279,12 @@ Standard: "3 mm" - Das Werkzeug sollte in diesem Fall auf Verbindungsfahrten imm Path Dressup - Path Dressup + Pfad-Aufbereitung Supplemental Commands - Supplemental Commands + Zusätzliche Befehle @@ -4296,7 +4294,7 @@ Standard: "3 mm" - Das Werkzeug sollte in diesem Fall auf Verbindungsfahrten imm Utils - Utils + Dienstprogramme @@ -4314,22 +4312,22 @@ For example: 'Metric, Small Parts & CNC' 'US Customary' 'Imperial Decimal' - The currently selected unit schema: + Das aktuell ausgewählte Einheitenschema: '{}' - Does not use 'minutes' for velocity values. + verwendet keine 'Minuten' für Geschwindigkeitswerte. -CNC machines require feed rate to be expressed in -unit/minute. To ensure correct G-code: -Select a minute-based schema in preferences. -For example: - 'Metric, Small Parts & CNC' +CNC-Maschinen benötigen die Vorschubrate in +Einheit/Minute. Um einen korrekten G-Code sicherzustellen: +Wählen Sie in den Einstellungen ein Minuten basiertes Schema aus. +Zum Beispiel: + 'Metrisch, Kleine Teile & CNC' 'US Customary' 'Imperial Decimal' Warning - Warning + Warnung @@ -4351,7 +4349,7 @@ For example: Drag Slider to Simulate - Drag Slider to Simulate + Schieberegler zum Simulieren ziehen @@ -4361,7 +4359,7 @@ For example: Camotics Project (*.camotics) - Camotics Project (*.camotics) + Camotics Projekt (*.camotics) @@ -4398,27 +4396,27 @@ For example: No parent job found for operation. - No parent job found for operation. + Kein übergeordneter Auftrag für die Operation gefunden. Parent job %s doesn't have a base object - Parent job %s doesn't have a base object + Der übergeordnete Auftrag %s hat kein Basisobjekt No Tool Controller is selected. We need a tool to build a Path. - No Tool Controller is selected. We need a tool to build a Path. + Es ist keine Werkzeugsteuerung ausgewählt. Es wird einer benötigt um den Pfad zu berechnen. No Tool found or diameter is zero. We need a tool to build a Path. - No Tool found or diameter is zero. We need a tool to build a Path. + Kein Werkzeug gefunden oder Durchmesser ist Null. Wir brauchen ein Werkzeug, um einen Pfad zu erstellen. No Tool Controller selected. - No Tool Controller selected. + Es ist keine Werkzeugsteuerung ausgewählt. @@ -4428,32 +4426,32 @@ For example: Tool Controller feedrates required to calculate the cycle time. - Tool Controller feedrates required to calculate the cycle time. + Die Werkzeugsteuerung benötigt eine Vorschubgeschwindigkeit um die Bearbeitungszeit zu berechnen. Feedrate Error - Feedrate Error + Fehler Vorschubgeschwindigkeit Add Tool Controller Rapid Speeds on the SetupSheet for more accurate cycle times. - Add Tool Controller Rapid Speeds on the SetupSheet for more accurate cycle times. + Füge der Werkzeugsteuerung in der Einstellseite Eilgangsgeschwindigkeiten für eine höhere Genauigkeit der Bearbeitungszeiten hinzu. Cycletime Error - Cycletime Error + Zykluszeit Fehler Base object %s.%s already in the list - Base object %s.%s already in the list + Basisobjekt %s.%s ist bereits in der Liste Base object %s.%s rejected by operation - Base object %s.%s rejected by operation + Basisobjekt %s.%s wurde von der Operation abgelehnt @@ -4463,7 +4461,7 @@ For example: Feature %s.%s cannot be processed as a circular hole - please remove from Base geometry list. - Feature %s.%s cannot be processed as a circular hole - please remove from Base geometry list. + Feature %s.%s lässt sich nicht als ein kreisrundes Loch verarbeiten - bitte aus der Basisgeometrie-Liste entfernen. @@ -4478,24 +4476,24 @@ For example: A planar adaptive start is unavailable. The non-planar will be attempted. - A planar adaptive start is unavailable. The non-planar will be attempted. + Ein planar adaptiver Start ist nicht verfügbar. Der Nicht-planare wird versucht. The non-planar adaptive start is also unavailable. - The non-planar adaptive start is also unavailable. + Der nicht-planare adaptive Start ist ebenfalls nicht verfügbar. %s is not a Base Model object of the job %s - %s is not a Base Model object of the job %s + %s ist kein Basismodell-Objekt des Jobs %s Base shape %s already in the list - Base shape %s already in the list + Basisform %s ist bereits in der Liste @@ -4505,11 +4503,11 @@ For example: Profile entire model, selected face(s) or selected edge(s) - Profile entire model, selected face(s) or selected edge(s) + Gesamtes Modell, ausgewählte Fläche(n) oder ausgewählte Kante(n) profilieren - + Choose a Path Job Einen Path-Auftrag auswählen @@ -4521,17 +4519,17 @@ For example: Selected tool is not a drill - Selected tool is not a drill + Ausgewähltes Werkzeug ist kein Bohrer Invalid Cutting Edge Angle %.2f, must be >0° and <=180° - Invalid Cutting Edge Angle %.2f, must be >0° and <=180° + Ungültiger Schneidenwinkel %.2f muß >0° und <= 180° sein Cutting Edge Angle (%.2f) results in negative tool tip length - Cutting Edge Angle (%.2f) results in negative tool tip length + Schneidkantenwinkel (%.2f) führt zu negativer Länge der Werkzeugspitze @@ -4539,22 +4537,22 @@ For example: Finish Selecting Loop - Finish Selecting Loop + Auswahl der Schleifen beenden Complete the selection of edges that form a loop - Complete the selection of edges that form a loop + Schließe die Auswahl der Kanten ab, die eine Schleife bilden Feature Completion - Feature Completion + Feature Vervollständigung Closed loop detection failed. - Closed loop detection failed. + Erkennung einer geschlossenen Kontur fehlgeschlagen. @@ -4563,7 +4561,7 @@ For example: Toggle the Active State of the Operation - Toggle the Active State of the Operation + Operation aktivieren/deaktivieren @@ -4572,7 +4570,7 @@ For example: Copy the operation in the job - Copy the operation in the job + Eine Operation des Auftrags kopieren @@ -4580,32 +4578,32 @@ For example: face %s not handled, assuming not vertical - face %s not handled, assuming not vertical + Fläche %s nicht behandelt, es wird angenommen sie ist nicht Vertikal edge %s not handled, assuming not vertical - edge %s not handled, assuming not vertical + Kante %s nicht behandelt, es wird angenommen sie ist nicht Vertikal isVertical(%s) not supported - isVertical(%s) not supported + isVertical(%s) nicht unterstützt isHorizontal(%s) not supported - isHorizontal(%s) not supported + isHorizontal(%s) nicht unterstützt %s not supported for flipping - %s not supported for flipping + %s unterstützt keine Spiegelung Zero working area to process. Check your selection and settings. - Zero working area to process. Check your selection and settings. + Kein verarbeitbarer Arbeitsbereich. Überprüfen Sie Ihre Auswahl und Einstellungen. @@ -4613,17 +4611,17 @@ For example: List of custom property groups - List of custom property groups + Liste benutzerdefinierter Eigenschaftsgruppen Default speed for horizontal rapid moves. - Default speed for horizontal rapid moves. + Standardgeschwindigkeit für horizontalen Eilgang. Default speed for vertical rapid moves. - Default speed for vertical rapid moves. + Standardgeschwindigkeit für vertikale Eilfahrten. @@ -4640,12 +4638,12 @@ For example: The usage of this field depends on SafeHeightExpression - by default its value is added to the start depth and used for the safe height of an operation. - The usage of this field depends on SafeHeightExpression - by default its value is added to the start depth and used for the safe height of an operation. + Die Verwendung dieses Felds hängt vom Ausdruck des Sicherheitsabstandes (SafeHeightExpression) ab - standardmäßig wird der Wert zur Start-Tiefe (StartDepth) addiert und für den Sicherheitsabstand (SafeHeight) einer Operation verwendet. Expression for the safe height of new operations. - Expression for the safe height of new operations. + Ausdruck für den Sicherheitsabstand (SafeHeight) von neuen Operationen. @@ -4660,17 +4658,17 @@ For example: Expression used for the start depth of new operations. - Expression used for the start depth of new operations. + Ausdruck für die Start-Tiefe (StartDepth) von neuen Operationen. Expression used for the final depth of new operations. - Expression used for the final depth of new operations. + Ausdruck für die Ziel-Tiefe (FinalDepth) von neuen Operationen. Expression used for step down of new operations. - Expression used for step down of new operations. + Ausdruck für die Zustelltiefe von neuen Operationen. @@ -4682,28 +4680,28 @@ For example: The base path to modify - The base path to modify + Zu ändernder Basispfad Solid object to be used to limit the generated Path. - Solid object to be used to limit the generated Path. + Festes Objekt, das verwendet werden soll, um den generierten Pfad zu begrenzen. Determines if Boundary describes an inclusion or exclusion mask. - Determines if Boundary describes an inclusion or exclusion mask. + Legt fest, ob die Begrenzung eine Einschluss- oder Ausschlussmaske beschreibt. The base path to dress up - The base path to dress up + Der Basispfad zur Aufbereitung The side of path to insert bones - The side of path to insert bones + Die Seite des Pfads, auf dem Knochen eingefügt werden sollen @@ -4715,74 +4713,74 @@ For example: The algorithm to determine the bone length - The algorithm to determine the bone length + Der Algorithmus zur Bestimmung der Knochenlänge Dressup length if incision is set to 'custom' - Dressup length if incision is set to 'custom' + Aufbereitungs Länge, wenn der Schnitt auf "Custom" gesetzt wird Bones that aren't dressed up - Bones that aren't dressed up + Konchen die nicht aufbereitet sind Width of tags. - Width of tags. + Breite der Haltestege. Height of tags. - Height of tags. + Höhe der Haltestege. Angle of tag plunge and ascent. - Angle of tag plunge and ascent. + Winkel der Ein- und Ausfahrt bei Haltestegen. Radius of the fillet for the tag. - Radius of the fillet for the tag. + Radius der Rundung des Haltestegs. Locations of inserted holding tags - Locations of inserted holding tags + Positionen der eingefügten Haltestege IDs of disabled holding tags - IDs of disabled holding tags + ID's von deaktivierten Haltestegen Factor determining the # of segments used to approximate rounded tags. - Factor determining the # of segments used to approximate rounded tags. + Faktor, der die Anzahl der Segmente bestimmt, die zur Annäherung an gerundete Haltestege verwendet werden. The input mapping axis - The input mapping axis + Auswahl des Achsenmappings The radius of the wrapped axis - The radius of the wrapped axis + Radius der gemappten Achse Angles less than filter angle will not receive corner actions - Angles less than filter angle will not receive corner actions + Winkel kleiner als der Filterwinkel werden durch den Eckenprozess nicht verändert Distance the point trails behind the spindle - Distance the point trails behind the spindle + Abstand, mit dem der Punkt der Spindel folgt @@ -4792,57 +4790,57 @@ For example: Calculate roll-on to path - Calculate roll-on to path + Pfadanfahrt berechnen Calculate roll-off from path - Calculate roll-off from path + Pfadabfahrt berechnen Keep the Tool Down in Path - Keep the Tool Down in Path + Halte das Werkzeug im Pfad Length or Radius of the approach - Length or Radius of the approach + Länge oder Radius der Anfahrt Length or Radius of the exit - Length or Radius of the exit + Länge oder Radius der Abfahrt The Style of motion into the Path - The Style of motion into the Path + Der Bewegungsstil in den Pfad The Style of motion out of the Path - The Style of motion out of the Path + Der Bewegungsstil aus dem Pfad Extends LeadIn distance - Extends LeadIn distance + Erweitert Anfahrdistanz Extends LeadOut distance - Extends LeadOut distance + Erweitert Abfahrdistanz Perform plunges with G0 - Perform plunges with G0 + Schnelles Eintauchen mit G0 Apply LeadInOut to layers within an operation - Apply LeadInOut to layers within an operation + An-/Abfahren auf Ebenen innerhalb einer Operation anwenden @@ -4857,37 +4855,37 @@ For example: Which feed rate to use for ramping - Which feed rate to use for ramping + Vorschubgeschwindigkeit für die Rampe Custom feed rate - Custom feed rate + Benutzerdefinierte Vorschubgeschwindigkeit Should the dressup ignore motion commands above DressupStartDepth - Should the dressup ignore motion commands above DressupStartDepth + Sollen Bewegungsbefehle oberhalb von DressupStartDepth ignoriert werden The depth where the ramp dressup is enabled. Above this ramps are not generated, but motion commands are passed through as is. - The depth where the ramp dressup is enabled. Above this ramps are not generated, but motion commands are passed through as is. + Die Tiefe, in der die Rampen aktiviert sind. Darüber hinaus werden Rampen nicht erzeugt, Bewegungsbefehle werden jedoch unverändert weitergegeben. The point file from the surface probing. - The point file from the surface probing. + Die Punktdatei von der Oberflächenabtastung. Deflection distance for arc interpolation - Deflection distance for arc interpolation + Abweichungsdistanz für Bogeninterpolation break segments into smaller segments of this length. - break segments into smaller segments of this length. + Segmente in kleinere Segmente dieser Länge unterteilen. @@ -4902,123 +4900,123 @@ For example: Arguments for the Post Processor (specific to the script) - Arguments for the Post Processor (specific to the script) + Argumente für den Postprozessor (spezifisch für das Skript) Last Time the Job was post processed - Last Time the Job was post processed + Letzte Nachbearbeitung des Auftrags An optional description for this job - An optional description for this job + Optionale Beschreibung für diesen Auftrag Job Cycle Time Estimation - Job Cycle Time Estimation + Abschätzung des Durchlaufzeit des Auftrags For computing Paths; smaller increases accuracy, but slows down computation - For computing Paths; smaller increases accuracy, but slows down computation + Für die Berechnung von Pfaden; kleiner erhöht die Genauigkeit, verlangsamt aber die Berechnung Solid object to be used as stock. - Solid object to be used as stock. + Festes Objekt das als Grundkörper verwendet werden soll. Compound path of all operations in the order they are processed. - Compound path of all operations in the order they are processed. + Zusammengesetzter Pfad aller Vorgänge in der Reihenfolge, wie sie verarbeitet werden. Select the Type of Job - Select the Type of Job + Wählen Sie die Art der Aufgabe Split output into multiple G-code files - Split output into multiple G-code files + Ausgabe auf mehrere G-Code Dateien aufteilen If multiple WCS, order the output this way - If multiple WCS, order the output this way + Wenn mehrere GKS vorhanden sind, ordnen Sie die Ausgabe auf diese Weise The Work Coordinate Systems for the Job - The Work Coordinate Systems for the Job + Das Arbeitskoordinatensystem für den Auftrag SetupSheet holding the settings for this job - SetupSheet holding the settings for this job + Einstelltabelle mit Einstellungen für diesen Auftrag The base objects for all operations - The base objects for all operations + Das Basisobjekt für alle Operationen Collection of all tool controllers for the job - Collection of all tool controllers for the job + Sammlung aller Werkzeugsteuerungen für den Auftrag Operations Cycle Time Estimation - Operations Cycle Time Estimation + Abschätzung der Durchlaufzeit Select the type of Job - Select the type of Job + Wählen Sie die Art der Aufgabe The base object this stock is derived from - The base object this stock is derived from + Das Basisobjekt, von dem das Material abgeleitet wird Extra allowance from part bound box in negative X direction - Extra allowance from part bound box in negative X direction + Vergrößerung der Begrenzungsbox in negativer X-Richtung Extra allowance from part bound box in positive X direction - Extra allowance from part bound box in positive X direction + Vergrößerung der Begrenzungsbox in positiver X-Richtung Extra allowance from part bound box in negative Y direction - Extra allowance from part bound box in negative Y direction + Vergrößerung der Begrenzungsbox in negativer Y-Richtung Extra allowance from part bound box in positive Y direction - Extra allowance from part bound box in positive Y direction + Vergrößerung der Begrenzungsbox in positiver Y-Richtung Extra allowance from part bound box in negative Z direction - Extra allowance from part bound box in negative Z direction + Vergrösserung der Begrenzungsbox in negativer Z-Richtung Extra allowance from part bound box in positive Z direction - Extra allowance from part bound box in positive Z direction + Vergrößerung der Begrenzungsbox in positiver Z-Richtung @@ -5028,168 +5026,168 @@ For example: Length of this stock box - Length of this stock box + Länge des Rohmaterials Width of this stock box - Width of this stock box + Breite des Rohmaterials Height of this stock box - Height of this stock box + Höhe des Rohmaterials Radius of this stock cylinder - Radius of this stock cylinder + Radius des zylindrischen Rohmaterials Height of this stock cylinder - Height of this stock cylinder + Höhe dieses zylindrischen Rohmaterials Internal representation of stock type - Internal representation of stock type + Interne Darstellung des Rohmaterials Typs Fixture Offset Number - Fixture Offset Number + Abstand von der Einspannung Make False, to prevent operation from generating code - Make False, to prevent operation from generating code + Abwählen, damit die Aktion keinen Code generiert Side of selected faces that tool should cut - Side of selected faces that tool should cut + Die Seite der Fläche, welche das Werkzeug schneiden soll Type of adaptive operation - Type of adaptive operation + Art der adaptiven Operation Influences accuracy and performance - Influences accuracy and performance + Beeinflusst Genauigkeit und Leistung Percent of cutter diameter to step over on each pass - Percent of cutter diameter to step over on each pass + Prozentsatz des Fräserdurchmessers, der bei jedem Durchgangzugestellt wird Lift distance for rapid moves - Lift distance for rapid moves + Abhebedistanz für Eilgang Max length of keep tool down path compared to direct distance between points - Max length of keep tool down path compared to direct distance between points + Maximale Länge des Werkzeug unten halten Pfades im Vergleich zum direkten Abstand zwischen den Punkten How much stock to leave (i.e. for finishing operation) - How much stock to leave (i.e. for finishing operation) + Wie viel Material übrig bleiben soll (z. B. für die Endbearbeitung) Force plunging into material inside and clearing towards the edges - Force plunging into material inside and clearing towards the edges + Erzwinge das Eintauchen in das Material im Inneren und Ausräumen zu den Rändern hin To take a finishing profile path at the end - To take a finishing profile path at the end + Abschließend ein Feinbearbeitungsprofil (Pfad) ausführen Stop processing - Stop processing + Bearbeitung stoppen Use Arcs (G2) for helix ramp - Use Arcs (G2) for helix ramp + Verwende Bögen (G2) für Helix-Rampe Internal input state - Internal input state + Interner Eingabestatus Internal output state - Internal output state + Interner Ausgabestatus Helix ramp entry angle (degrees) - Helix ramp entry angle (degrees) + Eintrittswinkel der Helixrampe (Grad) Helix cone angle (degrees) - Helix cone angle (degrees) + Helix Kegelwinkel (Grad) Limit helix entry diameter, if limit larger than tool diameter or 0, tool diameter is used - Limit helix entry diameter, if limit larger than tool diameter or 0, tool diameter is used + Begrenzung des Helix-Eingangsdurchmessers, wenn der Grenzwert größer als der Werkzeugdurchmesser oder 0 ist, wird der Werkzeugdurchmesser verwendet Uses the outline of the base geometry. - Uses the outline of the base geometry. + Benutzt die Kontur der Basisgeometrie. Split Arcs into discrete segments - Split Arcs into discrete segments + Bögen in einzelne Segmente aufteilen The base geometry for this operation - The base geometry for this operation + Die Basis-Geometrie für diese Operation Holds the calculated value for the StartDepth - Holds the calculated value for the StartDepth + Enthält den berechneten Wert für die Starttiefe (StartDepth) Holds the calculated value for the FinalDepth - Holds the calculated value for the FinalDepth + Enthält den berechneten Wert für die Endtiefe (FinalDepth) Holds the diameter of the tool - Holds the diameter of the tool + Enthält den Durchmesser des Werkzeugs Holds the max Z value of Stock - Holds the max Z value of Stock + Enthält den maximalen Z-Wert des Rohmaterials Holds the min Z value of Stock - Holds the min Z value of Stock + Enthält den minimalen Z-Wert des Rohmaterials @@ -5199,64 +5197,64 @@ For example: User Assigned Label - User Assigned Label + Vom Benutzer vergebene Bezeichnung Base locations for this operation - Base locations for this operation + Ausgangspunkte für diese Operation The tool controller that will be used to calculate the path - The tool controller that will be used to calculate the path + Die Werkzeugsteuerung, die zur Berechnung des Werkzeugweges verwendet wird Coolant mode for this operation - Coolant mode for this operation + Kühlmittelmodus für diese Operation Starting Depth of Tool- first cut depth in Z - Starting Depth of Tool- first cut depth in Z + Starttiefe des Werkzeugs - erste Schnitttiefe in Z Final Depth of Tool- lowest value in Z - Final Depth of Tool- lowest value in Z + Endgültige Tiefe des Werkzeugs - niedrigster Wert in Z-Richtung Starting Depth internal use only for derived values - Starting Depth internal use only for derived values + Starttiefe, nur zur internen Verwendung für abgeleitete Werte Incremental Step Down of Tool - Incremental Step Down of Tool + Inkrementale Zustelltiefe des Werkzeugs Maximum material removed on final pass. - Maximum material removed on final pass. + Maximal zu entfernendes Material im letzten Arbeitsschritt. The height needed to clear clamps and obstructions - The height needed to clear clamps and obstructions + Die erforderliche Höhe, um Spanmittel und Hindernisse zu überwinden Rapid Safety Height between locations. - Rapid Safety Height between locations. + Sicherheitshöhe für Eilfahrten zwischen Positionen. The start point of this path - The start point of this path + Der Startpunkt dieses Pfades @@ -5264,181 +5262,181 @@ For example: Make True, if specifying a Start Point - Make True, if specifying a Start Point + Auf Wahr setzen, wenn ein Startpunkt angegeben werden soll Lower limit of the turning diameter - Lower limit of the turning diameter + Untere Grenze des Drehdurchmessers Upper limit of the turning diameter. - Upper limit of the turning diameter. + Obere Grenze des Drehdurchmessers. Coolant option for this operation - Coolant option for this operation + Kühlmitteloption für diese Operation List of disabled features - List of disabled features + Liste der deaktivierten Feautures - + The G-code to be inserted - The G-code to be inserted + Einzufügender G-Code The desired width of the chamfer - The desired width of the chamfer + Die gewünschte Breite der Fase The additional depth of the tool path - The additional depth of the tool path + Die zusätzliche Tiefe des Werkzeugpfads How to join chamfer segments - How to join chamfer segments + Wie Fasenabschnitte verbunden werden sollen Direction of operation - Direction of operation + Richtung der Operation Side of operation - Side of operation + Seite der Operation The segment where the operation starts - The segment where the operation starts + Das Segment, in welchem die Operation startet Use chipbreaking - Use chipbreaking + Spanbrechen verwenden Incremental Drill depth before retracting to clear chips - Incremental Drill depth before retracting to clear chips + Inkrementelle Bohrtiefe vor jedem Zurückziehen, um Späne zu lösen und auszuwerfen Enable pecking - Enable pecking + Spanbrechen aktivieren The time to dwell between peck cycles - The time to dwell between peck cycles + Verweilzeit zwischen den Spanbrechzyklen Enable dwell - Enable dwell + Pause aktivieren Calculate the tip length and subtract from final depth - Calculate the tip length and subtract from final depth + Berechne die Spitzenlänge und subtrahiere von der Endtiefe Controls tool retract height between holes in same op, Default=G98: safety height - Controls tool retract height between holes in same op, Default=G98: safety height + Steuert die Rückzugshöhe des Werkzeugs zwischen den Bohrungen im gleichen Arbeitsgang, Standard=G98: Sicherheitshöhe The height where cutting feed rate starts and retract height for peck operation - The height where cutting feed rate starts and retract height for peck operation + Die Höhe, in der der Schnittvorschub beginnt und die Rückzugshöhe für die Spanbruch Operation How far the drilling depth is extended - How far the drilling depth is extended + Wie viel tiefer gebohrt wird Apply G99 retraction: only retract to RetractHeight between holes in this operation - Apply G99 retraction: only retract to RetractHeight between holes in this operation + G99 Rückzug anwenden: Rückzug nur auf RetractHeight zwischen Löchern in dieser Operation Additional base objects to be engraved - Additional base objects to be engraved + Zusätzliche Basisobjekte, die graviert werden sollen The vertex index to start the path from - The vertex index to start the path from + Der Index des Punktes von dem aus der Pfad gestartet wird Default length of extensions. - Default length of extensions. + Standardlänge der Erweiterungen. List of features to extend. - List of features to extend. + Liste der zu erweiternden Feautures. When enabled connected extension edges are combined to wires. - When enabled connected extension edges are combined to wires. + Falls aktiviert, werden die verbundenen Kanten zu Kanzenzügen vereinigt. The direction of the circular cuts, ClockWise (CW), or CounterClockWise (CCW) - The direction of the circular cuts, ClockWise (CW), or CounterClockWise (CCW) + Die Richtung der kreisförmigen Schnitte, im Uhrzeigersinn (CW) oder gegen den Uhrzeigersinn (CCW) Start cutting from the inside or outside - Start cutting from the inside or outside + Fräsen von innen oder außen beginnen Starting Radius - Starting Radius + Startradius Extra value to stay away from final profile- good for roughing toolpath - Extra value to stay away from final profile- good for roughing toolpath + Aufmaß zum Endprofil - Geeignet für Schruppbearbeitungen Shape to use for calculating Boundary - Shape to use for calculating Boundary + Form zum berechnen der Begrenzung Clear edges of surface (Only applicable to BoundBox) - Clear edges of surface (Only applicable to BoundBox) + Räumen von Ecken der Oberfläche (nur innerhalb der Begrenzungsbox) Exclude milling raised areas inside the face. - Exclude milling raised areas inside the face. + Fräsen von erhöhten Bereichen innerhalb der Fläche ausschließen. @@ -5446,53 +5444,53 @@ For example: Choose how to process multiple Base Geometry features. - Choose how to process multiple Base Geometry features. + Wählen Sie, wie mehrere Basisgeometrie Feautures verarbeitet werden sollen. Use adaptive algorithm to eliminate excessive air milling above planar pocket top. - Use adaptive algorithm to eliminate excessive air milling above planar pocket top. + Adaptiven Algorithmus verwenden, um übermäßiges Luftfräsen über Taschen zu vermeiden. Use adaptive algorithm to eliminate excessive air milling below planar pocket bottom. - Use adaptive algorithm to eliminate excessive air milling below planar pocket bottom. + Adaptiven Algorithmus verwenden, um übermäßiges Luftfräsen unter der Tasche zu vermeiden. Process the model and stock in an operation with no Base Geometry selected. - Process the model and stock in an operation with no Base Geometry selected. + Verarbeite Modell und Rohmaterial in einer Operation, bei der keine Basisgeometrie ausgewählt wurde. The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW) - The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW) + Die Richtung, in der der Werkzeugweg um das Teil herumgeführt werden soll, im Uhrzeigersinn (CW) oder gegen den Uhrzeigersinn (CCW) Extra offset to apply to the operation. Direction is operation dependent. - Extra offset to apply to the operation. Direction is operation dependent. + Zusätzlicher Versatz, der zur Operation hinzugefügt wird. Richtung ist abhängig von der Operation. Start pocketing at center or boundary - Start pocketing at center or boundary + Taschenfräsen im Mittelpunkt oder am Rand der Tasche starten Angle of the zigzag pattern - Angle of the zigzag pattern + Winkel des Zick-Zack Musters Clearing pattern to use - Clearing pattern to use + Zu nutzendes Räummuster Use 3D Sorting of Path - Use 3D Sorting of Path + 3D-Sortierung des Pfades verwenden @@ -5503,67 +5501,67 @@ For example: Last Stepover Radius. If 0, 50% of cutter is used. Tuning this can be used to improve stepover for some shapes - Last Stepover Radius. If 0, 50% of cutter is used. Tuning this can be used to improve stepover for some shapes + Letzter Überlappungsradius. Wenn 0, werden 50 % des Fräsers verwendet. Das Tuning dieses Wertes kann die Überlappung für einige Formen zu verbessern X offset between tool and probe - X offset between tool and probe + X-Versatz zwischen Werkzeug und Sonde Y offset between tool and probe - Y offset between tool and probe + Y-Versatz zwischen Werkzeug und Sonde Number of points to probe in X direction - Number of points to probe in X direction + Anzahl der Sondierungspunkte in X-Richtung Number of points to probe in Y direction - Number of points to probe in Y direction + Anzahl der Sondierungspunkte in Y-Richtung The output location for the probe data to be written - The output location for the probe data to be written + Der Ausgabeort für die zu schreibenden Sondendaten Controls how tool moves around corners. Default=Round - Controls how tool moves around corners. Default=Round + Kontrolliert wie sich das Werkzeug um Ecken bewegt. Standard=rund Maximum distance before a miter join is truncated - Maximum distance before a miter join is truncated + Maximale Distanz, bevor Gehrungsverbindungen abgeschnitten werden Profile holes as well as the outline - Profile holes as well as the outline + Sowohl Vertiefungen, als auch Kontur profilieren Profile the outline - Profile the outline + Kontur profilieren Profile round holes - Profile round holes + Runde Löcher profilieren Side of edge that tool should cut - Side of edge that tool should cut + Die Seite der Kante, an welcher das Werkzeug fräsen soll Make True, if using Cutter Radius Compensation - Make True, if using Cutter Radius Compensation + Aktivieren, falls die Fräsradiuskompensation verwendet wird @@ -5575,487 +5573,486 @@ For example: Enter custom start point for slot path. - Enter custom start point for slot path. + Gib den benutzerdefinierten Startpunkt für die Nut ein. Enter custom end point for slot path. - Enter custom end point for slot path. + Gib den benutzerdefinierten Endpunkt für die Nut ein. Set the geometric clearing pattern to use for the operation. - Set the geometric clearing pattern to use for the operation. + Legen Sie das geometrische Räummuster für die Operation fest. Positive extends the beginning of the path, negative shortens. - Positive extends the beginning of the path, negative shortens. + Positiv erweitert den Anfang des Pfades, negativ verkürzt ihn. Positive extends the end of the path, negative shortens. - Positive extends the end of the path, negative shortens. + Positiv erweitert das Ende des Pfades, negativ verkürzt ihn. Complete the operation in a single pass at depth, or multiple passes to final depth. - Complete the operation in a single pass at depth, or multiple passes to final depth. + Die Operation in einem Durchgang der ausgewählten Tiefe durchführen, oder in mehreren Durchgängen bis zur Zieltiefe. Choose the path orientation with regard to the feature(s) selected. - Choose the path orientation with regard to the feature(s) selected. + Wählen Sie die Pfadorientierung in Bezug auf die ausgewählten Feautures. Choose what point to use on the first selected feature. - Choose what point to use on the first selected feature. + Wählen Sie welcher Punkt auf dem ersten ausgewählten Feauture benutzt werden soll. Choose what point to use on the second selected feature. - Choose what point to use on the second selected feature. + Wählen Sie welcher Punkt auf dem zweiten ausgewählten Feauture benutzt werden soll. For arcs/circlular edges, offset the radius for the path. - For arcs/circlular edges, offset the radius for the path. + Bei Bogen/Kreiskanten wird der Radius für den Pfad versetzt. Enable to reverse the cut direction of the slot path. - Enable to reverse the cut direction of the slot path. + Aktivieren, um die Fräsrichtung der Nut umzukehren. The custom start point for the path of this operation - The custom start point for the path of this operation + Der benutzerdefinierte Startpunkt für den Pfad dieser Operation Smaller values yield a finer, more accurate mesh. Smaller values increase processing time a lot. - Smaller values yield a finer, more accurate mesh. Smaller values increase processing time a lot. + Kleinere Werte ergeben ein feineres, genaueres Netz. Kleinere Werte erhöhen die Verarbeitungszeit erheblich. Smaller values yield a finer, more accurate mesh. Smaller values do not increase processing time much. - Smaller values yield a finer, more accurate mesh. Smaller values do not increase processing time much. + Kleinere Werte ergeben ein feineres, genaueres Netz. Kleinere Werte erhöhen die Verarbeitungszeit nicht wesentlich. Stop index(angle) for rotational scan - Stop index(angle) for rotational scan + Stoppindex (Winkel) für Rotationsabtastung Dropcutter lines are created parallel to this axis. - Dropcutter lines are created parallel to this axis. + Die Dropcutter-Linien werden parallel zu dieser Achse erstellt. Additional offset to the selected bounding box - Additional offset to the selected bounding box + Zusätzlicher Versatz zur ausgewählten Begrenzungsbox The model will be rotated around this axis. - The model will be rotated around this axis. + Das Modell wird um diese Achse gedreht. Start index(angle) for rotational scan - Start index(angle) for rotational scan + Start Index (Winkel) für Rotationsabtastung Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan. - Planar: Flat, 3D surface scan. Rotational: 4th-axis rotational scan. + Planar: Flacher, 3D-Oberflächen-Scan. Drehbar: Drehbarer 4. ter Achs-Rotations-Scan. Avoid cutting the last 'N' faces in the Base Geometry list of selected faces. - Avoid cutting the last 'N' faces in the Base Geometry list of selected faces. + Das Fräsen der letzten 'N' Flächen in der Basisgeometrieliste der ausgewählten Flächen vermeiden. Do not cut internal features on avoided faces. - Do not cut internal features on avoided faces. + Keine internen Features auf nicht zugelassenen Flächen fräsen. Positive values push the cutter toward, or beyond, the boundary. Negative values retract the cutter away from the boundary. - Positive values push the cutter toward, or beyond, the boundary. Negative values retract the cutter away from the boundary. + Positive Werte schieben den Fräser in Richtung Begrenzung und darüber hinaus. Negative Werte entsprechend weiter von der Begrenzung weg. If true, the cutter will remain inside the boundaries of the model or selected face(s). - If true, the cutter will remain inside the boundaries of the model or selected face(s). + Falls wahr, bleibt der Fräser innerhalb der Grenzen des Modells oder der ausgewählten Fläche(n). Positive values push the cutter toward, or into, the feature. Negative values retract the cutter away from the feature. - Positive values push the cutter toward, or into, the feature. Negative values retract the cutter away from the feature. + Positive Werte verschieben den Fräser zum Feauture hin (oder hinein). Negative Werte bewegen den Fräser vom Feauture weg. Cut internal feature areas within a larger selected face. - Cut internal feature areas within a larger selected face. + Innere Areale der ausgewählten, größeren Fläche fräsen. Select the overall boundary for the operation. - Select the overall boundary for the operation. + Wählen Sie die Gesamtgrenze für die Operation. Set the direction for the cutting tool to engage the material: Climb (ClockWise) or Conventional (CounterClockWise) - Set the direction for the cutting tool to engage the material: Climb (ClockWise) or Conventional (CounterClockWise) + Legen Sie die Richtung fest, in der das Schneidwerkzeug in den Werkstoff eintauchen soll: Gegenlauf (im Uhrzeigersinn) oder Gleichlauf (gegen den Uhrzeigersinn) The yaw angle used for certain clearing patterns - The yaw angle used for certain clearing patterns + Der Gier-Winkel für bestimmte Räummuster Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center. - Reverse the cut order of the stepover paths. For circular cut patterns, begin at the outside and work toward the center. + Fräsreihenfolge für sich überlappende Pfade umkehren. Bei kreisförmigen Fräsmustern wird außen begonnen und sich in Richtung Zentrum vorgearbeitet. Set the Z-axis depth offset from the target surface. - Set the Z-axis depth offset from the target surface. + Z-Achsen-Tiefen-Versatz zur Zieloberfläche einstellen. Set the start point for the cut pattern. - Set the start point for the cut pattern. + Den Startpunkt für das Fräsmuster festlegen. Choose location of the center point for starting the cut pattern. - Choose location of the center point for starting the cut pattern. + Wählen Sie die Position des Mittelpunktes für den Start des Fräsmusters aus. Profile the edges of the selection. - Profile the edges of the selection. + Die Kanten der Auswahl profilieren. Set the sampling resolution. Smaller values quickly increase processing time. - Set the sampling resolution. Smaller values quickly increase processing time. + Setzt die Auflösung der Abtastrate. Kleinere Werte erhöhen schnell die Bearbeitungszeit. Set the stepover percentage, based on the tool's diameter. - Set the stepover percentage, based on the tool's diameter. + Legt die Überlappung in Prozent fest, basierend auf dem Werkzeugdurchmesser. Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-code output. - Enable optimization of linear paths (co-linear points). Removes unnecessary co-linear points from G-code output. + Optimierung linearer Pfade aktivieren (kolineare Punkte). Entfernt unnötige kolineare Punkte aus G-Code-Ausgabe. Enable separate optimization of transitions between, and breaks within, each step over path. - Enable separate optimization of transitions between, and breaks within, each step over path. + Aktivieren Sie die separate Optimierung von Übergängen zwischen überlappenden Pfaden. Convert co-planar arcs to G2/G3 G-code commands for `Circular` and `CircularZigZag` cut patterns. - Convert co-planar arcs to G2/G3 G-code commands for `Circular` and `CircularZigZag` cut patterns. + Konvertiere koplanare Bögen in G2 / G3 G-Code Befehle für Schnittmuster "Kreis" und "Kreis Zick-Zack". Collinear and co-radial artifact gaps that are smaller than this threshold are closed in the path. - Collinear and co-radial artifact gaps that are smaller than this threshold are closed in the path. + Kollineare und koradiale Artefaktlücken, die kleiner als diese Schwelle sind, werden im Pfad geschlossen. Feedback: three smallest gaps identified in the path geometry. - Feedback: three smallest gaps identified in the path geometry. + Feedback: drei kleinste Lücken in der Pfadgeometrie identifiziert. Set thread orientation - Set thread orientation + Gewinderichtung festlegen Currently only internal - Currently only internal + Gewindetyp, zur Zeit nur Innengewinde Defines which standard thread was chosen - Defines which standard thread was chosen + Definiert, welches Standard-Gewinde gewählt wurde Set thread's major diameter - Set thread's major diameter + Gewinde-Außendurchmesser festlegen Set thread's minor diameter - Set thread's minor diameter + Gewinde-Kerndurchmesser festlegen Set thread's pitch - used for metric threads - Set thread's pitch - used for metric threads + Gewindesteigung festlegen - für metrische Gewinde Set thread's TPI (turns per inch) - used for imperial threads - Set thread's TPI (turns per inch) - used for imperial threads + TPI des Gewindes (Gewindegänge pro Zoll) festlegen - wird für Zollgewinde verwendet Override to control how loose or tight the threads are milled - Override to control how loose or tight the threads are milled + Überschreiben, um zu bestimmen, wie locker oder eng die Gewinde gefräst werden Set how many passes are used to cut the thread - Set how many passes are used to cut the thread + Legen Sie fest, wie viele Durchgänge zum Schneiden des Gewindes verwendet werden Direction of thread cutting operation - Direction of thread cutting operation + Richtung der Gewindeschneid-Operation Set to True to get lead in and lead out arcs at the start and end of the thread cut - Set to True to get lead in and lead out arcs at the start and end of the thread cut + Setze auf "Wahr" um am Anfang und Ende des Gewinde-Schnitts mit Kurven Ein-/ Auszufaheren Operation to clear the inside of the thread - Operation to clear the inside of the thread + Operation um das Innere des Gewindes zu räumen The deflection value for discretizing arcs - The deflection value for discretizing arcs + Der Abweichungswert für Diskretisierung von Bögen Cutoff for removing colinear segments (degrees). default=10.0. - Cutoff for removing colinear segments (degrees). - default=10.0. + Obergrenze zum Entfernen von kolinearen Segmenten (Grad). Standard = 10.0. Vcarve Tolerance - Vcarve Tolerance + V-Ausschnitt Toleranz Smaller values yield a finer, more accurate the mesh. Smaller values increase processing time a lot. - Smaller values yield a finer, more accurate the mesh. Smaller values increase processing time a lot. + Kleinere Werte ergeben ein feineres, genaueres Netz. Kleinere Werte erhöhen die Verarbeitungszeit erheblich. Smaller values yield a finer, more accurate the mesh. Smaller values do not increase processing time much. - Smaller values yield a finer, more accurate the mesh. Smaller values do not increase processing time much. + Kleinere Werte ergeben ein feineres, genaueres Netz. Kleinere Werte erhöhen die Verarbeitungszeit nicht wesentlich. Select the algorithm to use: OCL Dropcutter*, or Experimental (Not OCL based). - Select the algorithm to use: OCL Dropcutter*, or Experimental (Not OCL based). + Wählen Sie den zu verwendenden Algorithmus: OCL Dropcutter* oder experimentell (Nicht OCL basiert). Set to clear last layer in a `Multi-pass` operation. - Set to clear last layer in a `Multi-pass` operation. + Auswählen, um die letzte Ebene eine `Multi-pass`-Operation zu räumen. Ignore outer waterlines above this height. - Ignore outer waterlines above this height. + Ignoriere äußere Wasserlinien über dieser Höhe. The path(s) to array - The path(s) to array + Pfad(e) zur Anordnung Pattern method - Pattern method + Muster-Methode The spacing between the array copies in Linear pattern - The spacing between the array copies in Linear pattern + Der Abstand zwischen den Anordnungs-Kopien des linearen Musters The number of copies in X direction in Linear pattern - The number of copies in X direction in Linear pattern + Anzahl der Kopien in X-Richtung des linearen Musters The number of copies in Y direction in Linear pattern - The number of copies in Y direction in Linear pattern + Anzahl der Kopien in Y-Richtung des linearen Musters Total angle in Polar pattern - Total angle in Polar pattern + Gesamtwinkel im polaren Muster The number of copies in Linear 1D and Polar pattern - The number of copies in Linear 1D and Polar pattern + Die Anzahl der Kopien für lineare 1D und polare Muster The centre of rotation in Polar pattern - The centre of rotation in Polar pattern + Der Drehpunkt des polaren Musters Make copies in X direction before Y in Linear 2D pattern - Make copies in X direction before Y in Linear 2D pattern + Erstellt Kopien in linearen 2D-Mustern erst in X-, dann in Y-Richtung Percent of copies to randomly offset - Percent of copies to randomly offset + Prozentsatz der zufällig zu versetzenden Kopien Maximum random offset of copies - Maximum random offset of copies + Maximaler zufälliger Versatzes von Kopien Seed value for jitter randomness - Seed value for jitter randomness + Seed Wert für Jitter Zufall Comment or note for CNC program - Comment or note for CNC program + Kommentar oder Hinweis für CNC-Programm The path to be copied - The path to be copied + Der zu kopierende Pfad The object to be reached by this hop - The object to be reached by this hop + Das Objekt, welches durch diese Sprung erreicht werden soll The Z height of the hop - The Z height of the hop + Die Z-Höhe des Sprungs Add Optional or Mandatory Stop to the program - Add Optional or Mandatory Stop to the program + Optionaler oder obligatorischer Stop zum Programm hinzufügen Shape for bit shape - Shape for bit shape + Form für Werkzeugspitze The parametrized body representing the tool bit - The parametrized body representing the tool bit + Der parametrisierte Körper, der die Werkzeugspitze repräsentiert The file of the tool - The file of the tool + Die Datei des Werkzeugs The name of the shape file - The name of the shape file + Der Name der Werkzeugprofildatei List of all properties inherited from the bit - List of all properties inherited from the bit + Liste aller von der Werkzeugspitze geerbten Eigenschaften The active tool - The active tool + Das aktive Werkzeug The speed of the cutting spindle in RPM - The speed of the cutting spindle in RPM + Die Drehzahl der Frässpindel in U/min Direction of spindle rotation - Direction of spindle rotation + Drehrichtung der Spindel Feed rate for vertical moves in Z - Feed rate for vertical moves in Z + Vorschubgeschwindigkeit für vertikale Bewegungen in Z Feed rate for horizontal moves - Feed rate for horizontal moves + Vorschubgeschwindigkeit für horizontale Bewegungen Rapid rate for vertical moves in Z - Rapid rate for vertical moves in Z + Eilgang für vertikale Bewegungen in Z Rapid rate for horizontal moves - Rapid rate for horizontal moves + Eilgang für horizontale Bewegungen The tool used by this controller - The tool used by this controller + Das von dieser Steuerung genutzte Werkzeug @@ -6068,7 +6065,7 @@ For example: Creates an object which can be used to store reference properties. - Creates an object which can be used to store reference properties. + Erzeugt ein Objekt, mit dem Referenz-Eigenschaften gespeichert werden können. @@ -6076,22 +6073,22 @@ For example: The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad Boundary - Boundary + Begrenzung Creates a Path Boundary Dress-up from a selected path - Creates a Path Boundary Dress-up from a selected path + Erstellt ein Pfad Begrenzungs-Aufbereitung auf Basis des gewählten Pfades Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt @@ -6099,12 +6096,12 @@ For example: Cannot insert holding tags for this path - please select a Profile path - Cannot insert holding tags for this path - please select a Profile path + Kann keine Haltestege für diesen Pfad einfügen - bitte wählen Sie einen Profilpfad aus The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad @@ -6114,22 +6111,22 @@ For example: Holding Tag - Halte-Steg + Haltesteg Tag - Markierung + Haltesteg Creates a Tag Dress-up object from a selected path - Creates a Tag Dress-up object from a selected path + Erstellt eine Fräspfad Aufbereitung für den gewählten Pfad Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt @@ -6137,12 +6134,12 @@ For example: Axis Map - Axis Map + Achsen mapping Remap one axis to another. - Remap one axis to another. + Ordne eine Achse einer anderen zu. @@ -6152,7 +6149,7 @@ For example: Please select one path object - Please select one path object + Bitte einen einzelnen Pfad auswählen @@ -6160,14 +6157,14 @@ For example: The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad Please select a Path object - Please select a Path object + Bitte wählen Sie ein Pfad-Objekt aus @@ -6175,12 +6172,12 @@ For example: Unsupported stock object %s - Unsupported stock object %s + Nicht unterstütztes Rohmaterial-Objekt %s Unsupported stock type %s (%d) - Unsupported stock type %s (%d) + Nicht unterstützter Rohmaterial Typ %s (%d) @@ -6195,19 +6192,19 @@ For example: Creates a Dogbone Dress-up object from a selected path - Creates a Dogbone Dress-up object from a selected path + Erstellt aus dem gewählen Pfad einen Pfad mit Hundeknochen Aufbereitung Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad @@ -6215,27 +6212,27 @@ For example: DragKnife - DragKnife + Schleppmesser Modifies a path to add dragknife corner actions - Modifies a path to add dragknife corner actions + Ändert einen Pfad so ab, das Schleppmesserecken hinzugefügt werden Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad Please select a Path object - Please select a Path object + Bitte wählen Sie ein Pfad-Objekt aus @@ -6243,7 +6240,7 @@ For example: Dressups - Dressups + Aufbereitungen @@ -6251,17 +6248,17 @@ For example: RampMethod1 - RampMethod1 + RampMethode1 RampMethod2 - RampMethod2 + RampMethode2 RampMethod3 - RampMethod3 + RampMethode3 @@ -6271,17 +6268,17 @@ For example: Horizontal Feed Rate - Horizontal Feed Rate + Horizontale Vorschubgeschwindigkeit Vertical Feed Rate - Vertical Feed Rate + Vertikale Vorschubgeschwindigkeit Ramp Feed Rate - Ramp Feed Rate + Rampen-Vorschubgeschwindigkeit @@ -6296,17 +6293,17 @@ For example: Creates a Ramp Entry Dress-up object from a selected path - Creates a Ramp Entry Dress-up object from a selected path + Erstellt eine Rampen Anfahrt Aufbereitung für den gewählten Pfad Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad @@ -6319,7 +6316,7 @@ For example: Select Probe Point File - Select Probe Point File + Sondierungspunkedatei wählen @@ -6330,7 +6327,7 @@ For example: Select Output File - Select Output File + Ausgabedatei auswählen @@ -6340,7 +6337,7 @@ For example: Create a Probing Grid from a job stock - Create a Probing Grid from a job stock + Sondierraster für den Rohmaterialkörper erstellen @@ -6353,7 +6350,7 @@ For example: Use Probe Map to correct Z depth - Use Probe Map to correct Z depth + Sondierungsliste verwenden, um die Z-Tiefe zu korrigieren @@ -6361,7 +6358,7 @@ For example: Fixture - Fixture + Befestigung @@ -6382,17 +6379,17 @@ For example: 2.5D - 2.5D + 2,5D Lathe - Lathe + Drehmaschine Multiaxis - Multiaxis + Mehrfach-Achsen @@ -6402,12 +6399,12 @@ For example: Stock not a cylinder! - Stock not a cylinder! + Rohmaterialkörper ist kein Zylinder! Select Output File - Select Output File + Ausgabedatei auswählen @@ -6417,27 +6414,27 @@ For example: Unsupported stock object %s - Unsupported stock object %s + Nicht unterstütztes Rohmaterial-Objekt %s Unsupported stock type %s (%d) - Unsupported stock type %s (%d) + Nicht unterstützter Rohmaterial Typ %s (%d) Model Selection - Model Selection + Modellauswahl Warning - Warning + Warnung Please add one. - Please add one. + Bitte einen hinzufügen. @@ -6452,12 +6449,12 @@ For example: This job has no base model. - This job has no base model. + Dieser Auftrag hat kein Basismodell. This job has no tool. - This job has no tool. + Dieser Auftrag hat kein Werkzeug. @@ -6467,7 +6464,7 @@ For example: Creates a Path Job - Creates a Path Job + Erstellt ein Pfad Auftrag @@ -6482,17 +6479,17 @@ For example: Base -/+ %.2f/%.2f %.2f/%.2f %.2f/%.2f - Base -/+ %.2f/%.2f %.2f/%.2f %.2f/%.2f + Basis-/ + %.2f/%.2f %.2f/%.2f %.2f/%.2f Box: %.2f x %.2f x %.2f - Box: %.2f x %.2f x %.2f + Quader: %.2f X %.2f x %.2f Unsupported stock type - Unsupported stock type + Nicht unterstützter Rohmaterial Typ @@ -6500,17 +6497,17 @@ For example: Invalid base object %s - no shape found - Invalid base object %s - no shape found + Ungültiges Basisobjekt %s - keine Form gefunden Unsupported stock type named {} - Unsupported stock type named {} + Nicht unterstützter Rohmaterial Typ namens {} Unsupported PathStock template version {} - Unsupported PathStock template version {} + Nicht unterstützte "PathStock" Vorlagen Version {} @@ -6518,12 +6515,12 @@ For example: Camotics - Camotics + Camotics Simulate using Camotics - Simulate using Camotics + Mit Camotics simulieren @@ -6531,12 +6528,12 @@ For example: Fixture - Fixture + Befestigung Creates a Fixture Offset - Creates a Fixture Offset + Erzeugt einen Fixierungsoffset @@ -6545,24 +6542,24 @@ For example: <b>Note</b>: This dialog shows Path Commands in FreeCAD base units (mm/s). Values will be converted to the desired unit during post processing. - <b>Note</b>: This dialog shows Path Commands in FreeCAD base units (mm/s). - Values will be converted to the desired unit during post processing. + <b>Hinweis</b>: Dieser Dialog zeigt Pfadbefehle in FreeCAD-Basiseinheiten (mm/s) an. + Werte werden erst im Postprocessing in die gewünschte Einheit konvertiert. Inspect Path Commands - Inspect Path Commands + Pfadbefehle untersuchen Inspects the contents of a Path object - Inspects the contents of a Path object + Prüft den Inhalt eines Pfad-Objekts Please select exactly one path object - Please select exactly one path object + Bitte wählen Sie genau ein Pfadobjekt aus @@ -6570,12 +6567,12 @@ For example: Export Template - Export Template + Vorlage exportieren Exports Path Job as a template to be used for other jobs - Exports Path Job as a template to be used for other jobs + Exportiert den Path Auftrag als Vorlage, um diese für andere Aufträge zu verwenden @@ -6583,7 +6580,7 @@ For example: Cylinder: %.2f x %.2f - Cylinder: %.2f x %.2f + Zylinder: %.2f x %.2f @@ -6592,47 +6589,47 @@ For example: Check the path job for common errors - Check the path job for common errors + Path-Auftrag auf typische Fehler überprüfen Base Object(s) - Base Object(s) + Basisobjekt(e) Job Sequence - Job Sequence + Auftragsablauf Job Description - Job Description + Auftragsbeschreibung Job Type - Job Type + Auftragstyp CAD File Name - CAD File Name + CAD-Dateiname Last Save Date - Last Save Date + Letztes Speicherdatum Customer - Customer + Kunde Designer - Designer + Konstrukteur @@ -6643,17 +6640,17 @@ For example: Minimum Z Height - Minimum Z Height + Minimale Z-Höhe Maximum Z Height - Maximum Z Height + Maximale Z-Höhe Cycle Time - Cycle Time + Durchlaufzeit @@ -6663,12 +6660,12 @@ For example: TOTAL JOB - TOTAL JOB + Gesamter Auftrag Tool Number - Tool Number + Werkzeugnummer @@ -6678,12 +6675,12 @@ For example: Manufacturer - Manufacturer + Hersteller Part Number - Part Number + Bauteilnummer @@ -6693,7 +6690,7 @@ For example: Inspection Notes - Inspection Notes + Anmerkungen zur Inspektion @@ -6703,37 +6700,37 @@ For example: Feed Rate - Feed Rate + Vorschubgeschwindigkeit Spindle Speed - Spindle Speed + Spindeldrehzahl Tool Shape - Tool Shape + Werkzeugform Tool Diameter - Tool Diameter + Werkzeugdurchmesser X Size - X Size + X-Größe Y Size - Y Size + Y-Größe Z Size - Z Size + Z-Größe @@ -6743,7 +6740,7 @@ For example: Work Offsets - Work Offsets + Nullpunktveschiebungen @@ -6753,7 +6750,7 @@ For example: Part Datum - Part Datum + Bauteil Datum @@ -6763,12 +6760,12 @@ For example: Last Post Process Date - Last Post Process Date + Letztes Postprozess-Datum Stops - Stops + Haltepunkte @@ -6788,7 +6785,7 @@ For example: Post Processor Flags - Post Processor Flags + Post-Prozessor-Flags @@ -6798,7 +6795,7 @@ For example: Line Count - Line Count + Anzahl der Zeilen @@ -6813,7 +6810,7 @@ For example: Date - Date + Datum @@ -6821,12 +6818,12 @@ For example: CAM Simulator - CAM Simulator + CAM-Simulator Simulate G-code on stock - Simulate G-code on stock + Simuliere G-Code auf Rohmaterial @@ -6844,12 +6841,12 @@ For example: Clearing - Clearing + Wird bereinigt Profiling - Profiling + Profilierung @@ -6859,7 +6856,7 @@ For example: Adaptive clearing and profiling - Adaptive clearing and profiling + Adaptives Räumen und Profillieren @@ -6867,12 +6864,12 @@ For example: job %s has no Base. - job %s has no Base. + Auftrag %s hat keine Basis. no job for operation %s found. - no job for operation %s found. + Kein Auftrag zur Operation %s gefunden. @@ -6885,12 +6882,12 @@ For example: Flood - Flood + Fluten Mist - Mist + Nebel @@ -6899,7 +6896,7 @@ For example: The selected tool has no CuttingEdgeAngle property. Assuming Endmill - The selected tool has no CuttingEdgeAngle property. Assuming Endmill + Das ausgewählte Werkzeug hat keine Schneidkantenwinkel-Eigenschaft. Daher wird von einem Schaftfräser ausgegangen @@ -6910,7 +6907,7 @@ For example: Miter - Miter + Gehrung @@ -6918,12 +6915,12 @@ For example: G98 - G98 + G98 G99 - G99 + G99 @@ -6948,7 +6945,7 @@ For example: Creates a Path Drilling object from the features of a base object - Creates a Path Drilling object from the features of a base object + Erstellt ein Bohrpfad-Objekt aus dem gewählten Feauture des Basisobjekts @@ -6971,7 +6968,7 @@ For example: Creates a Path Helix from the features of a base object - Creates a Path Helix from the features of a base object + Erstellt ein Helix-Pfad-Objekt aus dem gewählten Feauture des Basisobjekts @@ -7001,7 +6998,7 @@ For example: Collectively - Collectively + Gemeinsam @@ -7021,22 +7018,22 @@ For example: Miter - Miter + Gehrung - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. + Die ausgewählte(n) Kante(n) sind nicht zugänglich. Bei einer mehrfach Selektion kann eine Neuordnung der Auswahl helfen. - + Unable to create path for face(s). - Unable to create path for face(s). + Pfad für Fläche(n) kann nicht erstellt werden. - + Check edge selection and Final Depth requirements for profiling open edge(s). - Check edge selection and Final Depth requirements for profiling open edge(s). + Prüfe die Kantenauswahl und die Anforderungen an die Endtiefe für die Profilerstellung der offenen Kanten. @@ -7049,12 +7046,12 @@ For example: Face Region - Face Region + Flächenbereich Perimeter - Perimeter + Perimeter @@ -7064,7 +7061,7 @@ For example: Collectively - Collectively + Gemeinsam @@ -7074,12 +7071,12 @@ For example: Climb - Klettern + Gegenlauf Conventional - Konventionell + Gleichlauf @@ -7122,7 +7119,7 @@ For example: Final depth set below ZMin of face(s) selected. - Final depth set below ZMin of face(s) selected. + Zieltiefe unter ZMin der ausgewählten Fläche(n). @@ -7142,12 +7139,12 @@ For example: Pass Extension - Pass Extension + Durchlauf-Verlängerung The distance the facing operation will extend beyond the boundary shape. - The distance the facing operation will extend beyond the boundary shape. + Die Distanz, die die Fräsoperation über die Formbegrenzung hinaus gehen soll. @@ -7155,12 +7152,12 @@ For example: New property added to - New property added to + Neue Eigenschaft hinzugefügt zu Check default value(s). - Check default value(s). + Standardwert(e) überprüfen. @@ -7235,17 +7232,17 @@ For example: No Base Geometry object in the operation. - No Base Geometry object in the operation. + Kein Basisgeometrieobjekt in der Operation. Custom points are identical. - Custom points are identical. + Benutzerdefinierte Punkte sind identisch. Custom points not at same Z height. - Custom points not at same Z height. + Benutzerdefinierte Punkte nicht auf der selben Z-Höhe. @@ -7255,74 +7252,74 @@ For example: No path extensions available for full circles. - No path extensions available for full circles. + Keine Pfad-Erweiterungen für ganze Kreise verfügbar. operation collides with model. - operation collides with model. + Operation kollidiert mit dem Modell. Verify slot path start and end points. - Verify slot path start and end points. + Start- und Endpunkte des Pfads für Nute überprüfen. The selected face is inaccessible. - The selected face is inaccessible. + Die ausgewählte Fläche ist nicht zugänglich. Only a vertex selected. Add another feature to the Base Geometry. - Only a vertex selected. Add another feature to the Base Geometry. + Nur ein Punkt ausgewählt. Fügen Sie ein weiteres Feauture zur Basisgeometrie hinzu. A single selected face must have four edges minimum. - A single selected face must have four edges minimum. + Eine einzelne ausgewählte Fläche muss mindestens vier Kanten haben. No parallel edges identified. - No parallel edges identified. + Es wurden keine parallelen Kanten erkannt. value error. - value error. + Wertfehler. Current tool larger than arc diameter. - Current tool larger than arc diameter. + Das aktuelle Werkzeug ist größer als der Bogendurchmesser. Failed, slot from edge only accepts lines, arcs and circles. - Failed, slot from edge only accepts lines, arcs and circles. + Fehlgeschlagen, Nut von einer Kante akzeptiert nur Linien, Bögen und Kreise. Failed to determine point 1 from - Failed to determine point 1 from + Punkt 1 konnte nicht ermittelt werden von Failed to determine point 2 from - Failed to determine point 2 from + Punkt 2 konnte nicht ermittelt werden von Selected geometry not parallel. - Selected geometry not parallel. + Ausgewählte Geometrie ist nicht parallel. The selected face is not oriented vertically: - The selected face is not oriented vertically: + Die ausgewählte Fläche ist nicht vertikal orientiert: @@ -7333,12 +7330,12 @@ For example: Slot - Slot + Nute Create a Slot operation from selected geometry or custom points. - Create a Slot operation from selected geometry or custom points. + Erstellt eine Nut-Operation aus einer ausgewählten Geometrie oder benutzerdefinierten Punkten. @@ -7346,82 +7343,82 @@ For example: This operation requires OpenCamLib to be installed. - This operation requires OpenCamLib to be installed. + Diese Operation benötigt eine Installation von OpenCamLib. The GeometryTolerance for this Job is 0.0. - The GeometryTolerance for this Job is 0.0. + Die Geometrietoleranz für diesen Auftrag ist 0,0. Initializing LinearDeflection to 0.001 mm. - Initializing LinearDeflection to 0.001 mm. + Initialisierung der linearen Abweichung auf 0.001 mm. No JOB - No JOB + Kein Auftrag Canceling 3D Surface operation. Error creating OCL cutter. - Canceling 3D Surface operation. Error creating OCL cutter. + 3D-Oberflächenoperation wird abgebrochen. Fehler beim Erstellen des OCL-Fräsers. operation time is - operation time is + Durchlaufszeit beträgt Canceled 3D Surface operation. - Canceled 3D Surface operation. + 3D-Oberflächen Operation abgebrochen. No profile geometry shape returned. - No profile geometry shape returned. + Keine Profilgeometrie zurückgegeben. No profile path geometry returned. - No profile path geometry returned. + Keine Profilpfadgeometrie zurückgegeben. No clearing shape returned. - No clearing shape returned. + Kein Räum-Muster zurückgegeben. No clearing path geometry returned. - No clearing path geometry returned. + Keine Räumungs-Pfadgeometrie zurückgegeben. No scan data to convert to G-code. - No scan data to convert to G-code. + Keine Scandaten zum Konvertieren in G-Code. Failed to identify tool for operation. - Failed to identify tool for operation. + Das Werkzeug für die Operation konnte nicht identifiziert werden. Failed to map selected tool to an OCL tool type. - Failed to map selected tool to an OCL tool type. + Fehler bei der Zuordnung des ausgewählten Werkzeugs zu einem OCL-Werkzeugtyp. Failed to translate active tool to OCL tool type. - Failed to translate active tool to OCL tool type. + Fehler beim Übersetzen des aktiven Werkzeugs in einen OCL Werkzeugtyp. OCL tool not available. Cannot determine is cutter has tilt available. - OCL tool not available. Cannot determine is cutter has tilt available. + OCL-Werkzeug nicht verfügbar. Kann nicht ermitteln, ob das Fräswerkzeug mit Neigung verfügbar ist. @@ -7439,17 +7436,17 @@ For example: CenterOfMass - CenterOfMass + Massenschwerpunkt CenterOfBoundBox - CenterOfBoundBox + Zentrum der Begrenzungsbox XminYmin - XminYmin + XminYmin @@ -7459,12 +7456,12 @@ For example: Conventional - Konventionell + Gleichlauf Climb - Klettern + Gegenlauf @@ -7474,7 +7471,7 @@ For example: CircularZigZag - CircularZigZag + Ringförmges ZickZack @@ -7511,7 +7508,7 @@ For example: Collectively - Collectively + Gemeinsam @@ -7536,7 +7533,7 @@ For example: Only - Only + Nur @@ -7546,7 +7543,7 @@ For example: Last - Last + Letzte @@ -7556,17 +7553,17 @@ For example: Rotational - Rotational + Rotierend 3D Surface - 3D Surface + 3D-Oberfläche Create a 3D Surface Operation from a model - Create a 3D Surface Operation from a model + 3D-Oberflächen-Operation des gewählten Modells erstellen @@ -7574,42 +7571,42 @@ For example: Shape appears to not be horizontal planar. - Shape appears to not be horizontal planar. + Die Form scheint nicht in der horizontalen Ebene zu liegen. Cannot calculate the Center Of Mass. - Cannot calculate the Center Of Mass. + Der Schwerpunkt kann nicht berechnet werden. Using Center of Boundbox instead. - Using Center of Boundbox instead. + Stattdessen wird das Zentrum der Begrenzungsbox verwendet. Face selection is unavailable for Rotational scans. - Face selection is unavailable for Rotational scans. + Flächenauswahl ist für Rotationsabtastung nicht verfügbar. Ignoring selected faces. - Ignoring selected faces. + Ausgewählte Flächen werden ignoriert. Failed to pre-process base as a whole. - Failed to pre-process base as a whole. + Fehler beim Vorverarbeiten der Basis als Ganzes. Failed to identify a horizontal cross-section for Face - Failed to identify a horizontal cross-section for Face + Fehler beim Ermitteln eines horizontalen Querschnitts für eine Fläche Diameter dimension missing from ToolBit shape. - Diameter dimension missing from ToolBit shape. + Der Durchmesser der Werkzeugspitze fehlt. @@ -7617,77 +7614,77 @@ For example: Custom External - Custom External + Benutzerdefiniert außen Custom Internal - Custom Internal + Benutzerdefiniert innen Imperial External (2A) - Imperial External (2A) + Zöllig außen (2A) Imperial External (3A) - Imperial External (3A) + Zöllig außen (3A) Imperial Internal (2B) - Imperial Internal (2B) + Zöllig innen (2B) Imperial Internal (3B) - Imperial Internal (3B) + Zöllig innen (3B) Metric External (4G6G) - Metric External (4G6G) + Metrisch außen (4G6G) Metric External (6G) - Metric External (6G) + Metrisch außen (6G) Metric Internal (6H) - Metric Internal (6H) + Metrisch innen (6H) LeftHand - LeftHand + Linksseitig RightHand - RightHand + Rechtsseitig Climb - Klettern + Gegenlauf Conventional - Konventionell + Gleichlauf Thread Milling - Thread Milling + Gewindefräsen Creates a Path Thread Milling operation from features of a base object - Creates a Path Thread Milling operation from features of a base object + Erstellt einen Gewindefräspfad-Operation aus dem gewählten Feauture des Basisobjekts @@ -7695,22 +7692,22 @@ For example: VCarve requires an engraving cutter with a cutting edge angle - VCarve requires an engraving cutter with a cutting edge angle + V-Ausschnitt benötigt einen Gravierfräser mit einem Schneidenwinkel Engraver cutting edge angle must be < 180 degrees. - Engraver cutting edge angle must be < 180 degrees. + Der Schneidenwinkel des Gravierfräser muss < 180 Grad sein. Vcarve - Vcarve + V-Ausschnitt Creates a medial line engraving path - Creates a medial line engraving path + Erstellt einen medialen Liniengravurpfad @@ -7726,7 +7723,7 @@ For example: This operation requires OpenCamLib to be installed. - This operation requires OpenCamLib to be installed. + Diese Operation benötigt eine Installation von OpenCamLib. @@ -7736,7 +7733,7 @@ For example: Experimental - Experimental + Experimentell @@ -7751,17 +7748,17 @@ For example: CenterOfMass - CenterOfMass + Massenschwerpunkt CenterOfBoundBox - CenterOfBoundBox + Zentrum der Begrenzungsbox XminYmin - XminYmin + XminYmin @@ -7771,7 +7768,7 @@ For example: Off - Off + Aus @@ -7783,7 +7780,7 @@ For example: CircularZigZag - CircularZigZag + Ringförmges ZickZack @@ -7812,12 +7809,12 @@ For example: Conventional - Konventionell + Gleichlauf Climb - Klettern + Gegenlauf @@ -7827,7 +7824,7 @@ For example: Collectively - Collectively + Gemeinsam @@ -7850,63 +7847,63 @@ For example: New property added to - New property added to + Neue Eigenschaft hinzugefügt zu Check default value(s). - Check default value(s). + Standardwert(e) überprüfen. The GeometryTolerance for this Job is 0.0. - The GeometryTolerance for this Job is 0.0. + Die Geometrietoleranz für diesen Auftrag ist 0,0. Initializing LinearDeflection to 0.0001 mm. - Initializing LinearDeflection to 0.0001 mm. + Initialisierung der linearen Abweichung auf 0.0001 mm. Sample interval limits are 0.0001 to 25.4 millimeters. - Sample interval limits are 0.0001 to 25.4 millimeters. + Die Musterintervallgrenzen liegen bei 0,001 bis 25,4 Millimetern. Cut pattern angle limits are +-360 degrees. - Cut pattern angle limits are +-360 degrees. + Fräsmuster-Winkelbegrenzungen sind +-360 Grad. Cut pattern angle limits are +- 360 degrees. - Cut pattern angle limits are +- 360 degrees. + Fräsmuster-Winkelbegrenzungen sind +-360 Grad. AvoidLastX_Faces: Only zero or positive values permitted. - AvoidLastX_Faces: Only zero or positive values permitted. + AvoidLastX_Faces: Nur Null oder positive Werte erlaubt. AvoidLastX_Faces: Avoid last X faces count limited to 100. - AvoidLastX_Faces: Avoid last X faces count limited to 100. + AvoidLastX_Faces: begrenzt auf 100. No JOB - No JOB + Kein Auftrag Canceling Waterline operation. Error creating OCL cutter. - Canceling Waterline operation. Error creating OCL cutter. + Wasserlinien-Operation wird abgebrochen. Fehler beim Erstellen des OCL-Fräsers. operation time is - operation time is + Durchlaufszeit beträgt @@ -7915,7 +7912,7 @@ For example: Make False, to prevent operation from generating code - Make False, to prevent operation from generating code + Abwählen, damit die Aktion keinen Code generiert @@ -7930,27 +7927,27 @@ For example: Vertexes are not supported - Vertexes are not supported + Punkte werden nicht unterstützt Edges are not supported - Edges are not supported + Kanten werden nicht unterstützt Faces are not supported - Faces are not supported + Flächen werden nicht unterstützt Multiple operations are labeled as - Multiple operations are labeled as + Mehrere Operationen sind gekennzeichnet als Base Location - Base Location + Ausgangsposition @@ -7961,8 +7958,8 @@ For example: FinalDepth cannot be modified for this operation. If it is necessary to set the FinalDepth manually please select a different operation. - FinalDepth cannot be modified for this operation. -If it is necessary to set the FinalDepth manually please select a different operation. + Die endgültige Tiefe kann für diesen Vorgang nicht geändert werden. +Wenn es notwendig ist, die endgültige Tiefe manuell einzustellen, wählen Sie bitte einen anderen Vorgang. @@ -7972,12 +7969,12 @@ If it is necessary to set the FinalDepth manually please select a different oper Diameters - Diameters + Durchmesser AreaOp Operation - AreaOp Operation + "AreaOp"-Operation @@ -7987,25 +7984,25 @@ If it is necessary to set the FinalDepth manually please select a different oper Uncreate AreaOp Operation - Uncreate AreaOp Operation + Rückgängigmachen der "AreaOp" Operation Pick Start Point - Pick Start Point + Startpunkt wählen No suitable tool controller found. Aborting op creation - No suitable tool controller found. -Aborting op creation + Keine passende Werkzeugsteuerung gefunden. +Abbruch der OP-Erstellung No tool controller, aborting op creation - No tool controller, aborting op creation + Keine Werkzeugsteuerung, Abbruch der OP-Erstellung @@ -8013,12 +8010,12 @@ Aborting op creation No base objects for PathArray. - No base objects for PathArray. + Kein Basisobjekt zur Pfad Anordnung. Arrays of paths having different tool controllers are handled according to the tool controller of the first path. - Arrays of paths having different tool controllers are handled according to the tool controller of the first path. + Anordnungen von Pfaden mit unterschiedlichen Werkzeugsteuerungen werden entsprechend der Werkzeugsteuerung des ersten Pfads behandelt. @@ -8031,12 +8028,12 @@ Aborting op creation Creates an array from selected path(s) - Creates an array from selected path(s) + Erstellt eine Anordnung (Array) aus ausgewählten Pfad(en) Arrays can be created only from Path operations. - Arrays can be created only from Path operations. + Anordnungen (Arrays) können nur aus Pfadoperationen erstellt werden. @@ -8049,7 +8046,7 @@ Aborting op creation Add a Comment to your CNC program - Add a Comment to your CNC program + Kommentar zu Ihrem CNC-Programm hinzufügen @@ -8062,7 +8059,7 @@ Aborting op creation Creates a linked copy of another path - Creates a linked copy of another path + Erstellt eine verknüpfte Kopie eines weiteren Pfads @@ -8075,7 +8072,7 @@ Aborting op creation Create custom G-code snippet - Create custom G-code snippet + Benutzerdefinierten G-Code Ausschnitt erstellen @@ -8083,12 +8080,12 @@ Aborting op creation Deburr - Deburr + Entgraten Creates a Deburr Path along Edges or around Faces - Creates a Deburr Path along Edges or around Faces + Erstellt einen Entgrat-Pfad entlang von Kante oder um Flächen herum @@ -8096,12 +8093,12 @@ Aborting op creation Engrave - Engrave + Gravieren Creates an Engraving Path around a Draft ShapeString - Creates an Engraving Path around a Draft ShapeString + Erstellt einen Gravierpfad um eine Textform herum @@ -8109,22 +8106,22 @@ Aborting op creation Hop - Hop + Sprung Creates a Path Hop object - Creates a Path Hop object + Erzeugt ein Pfad Sprung Objekt Please select one path object - Please select one path object + Bitte wählen Sie ein Pfad-Objekt The selected object is not a path - The selected object is not a path + Das ausgewählte Objekt ist kein Pfad @@ -8137,7 +8134,7 @@ Aborting op creation Create a Facing Operation from a model or face - Create a Facing Operation from a model or face + Erstellt eine Flächenbearbeitung aus einem Modell oder einer Fläche @@ -8145,12 +8142,12 @@ Aborting op creation 3D Pocket - 3D Pocket + 3D-Tasche Creates a Path 3D Pocket from a face or faces - Creates a Path 3D Pocket from a face or faces + Erstellt ein Pfad 3D-Taschenobjekt anhand von einer oder mehrerer Flächen @@ -8158,12 +8155,12 @@ Aborting op creation Pocket Shape - Pocket Shape + Taschenform Creates a Path Pocket object from a face or faces - Creates a Path Pocket object from a face or faces + Erstellt ein Pfad Taschen Objekt anhand von einer oder mehreren Flächen @@ -8171,18 +8168,18 @@ Aborting op creation Simple Copy - Simple Copy + Einfache Kopie Creates a non-parametric copy of another path - Creates a non-parametric copy of another path + Erstellt eine nicht-parametrisierte Kopie eines anderen Pfads Please select exactly one path object - Please select exactly one path object + Bitte wählen Sie genau ein Pfadobjekt aus @@ -8195,7 +8192,7 @@ Aborting op creation Add Optional or Mandatory Stop to the program - Add Optional or Mandatory Stop to the program + Optionaler oder obligatorischer Stop zum Programm hinzufügen @@ -8208,20 +8205,20 @@ Aborting op creation Create a Waterline Operation from a model - Create a Waterline Operation from a model + Eine Wasserlinienoperation aus einem Modell erstellen Path_Post - + Post Process - Post Process + Nachbearbeitung - + Post Process the selected Job - Post Process the selected Job + Ausgewählten Auftrag nachbearbeiten @@ -8234,7 +8231,7 @@ Aborting op creation No job object - No job object + Kein Auftrags Objekt @@ -8257,12 +8254,12 @@ Aborting op creation Add Tool Controller to the Job - Add Tool Controller to the Job + Werkzeugsteuerung zum Auftrag hinzufügen Add Tool Controller - Add Tool Controller + Werkzeugsteuerung hinzufügen @@ -8270,7 +8267,7 @@ Aborting op creation Toolbit cannot be edited: Shapefile not found - Toolbit cannot be edited: Shapefile not found + Werkzeugspitze kann nicht bearbeitet werden: Formdatei nicht gefunden @@ -8278,12 +8275,12 @@ Aborting op creation Create Tool - Create Tool + Werkzeug erstellen Creates a new ToolBit object - Creates a new ToolBit object + Erstellt ein Neues Werkzeug Objekt @@ -8291,7 +8288,7 @@ Aborting op creation Save Tool as... - Save Tool as... + Werkzeug speichern unter... @@ -8299,12 +8296,12 @@ Aborting op creation Save Tool - Save Tool + Werkzeug speichern Save an existing ToolBit object to a file - Save an existing ToolBit object to a file + Vorhandenes Werkzeugspitze Objekt als Datei speichern @@ -8312,12 +8309,12 @@ Aborting op creation Load Tool - Load Tool + Werkzeug laden Load an existing ToolBit object from a file - Load an existing ToolBit object from a file + Werkzeugspitze Objekt aus Datei importieren @@ -8325,48 +8322,48 @@ Aborting op creation Toolbit working directory not set up. Do that now? - Toolbit working directory not set up. Do that now? + Das Werkzeugspitzen Arbeitsverzeichnis ist nicht eingerichtet. Möchten Sie das jetzt tun? Choose a writable location for your toolbits - Choose a writable location for your toolbits + Wählen Sie einen beschreibbaren Ort für Ihre Werkzeugspitzen Toolbit Working directory {} needs these sudirectories: {} Create them? - Toolbit Working directory {} needs these sudirectories: + Das Werkzeugspitzen Arbeitsverzeichnis {} benötigt diese Unterverzeichnisse: {} - Create them? + Sollen diese erstellt werden? Copy example files to new {} directory? - Copy example files to new {} directory? + Beispieldateien in das neue {} Verzeichnis kopieren? Tooltable JSON (*.fctl) - Tooltable JSON (*.fctl) + Werkzeugtabelle JSON (*.fctl) Save toolbit library - Save toolbit library + Werkzeugbibliothek speichern LinuxCNC tooltable (*.tbl) - LinuxCNC tooltable (*.tbl) + LinuxCNC Werkzeugtabelle (*.tbl) Camotics tooltable (*.json) - Camotics tooltable (*.json) + Camotics-Werkzeugtabelle (*.json) @@ -8374,12 +8371,12 @@ Aborting op creation ToolBit Dock - ToolBit Dock + Werkzeug Dock Toggle the Toolbit Dock - Toggle the Toolbit Dock + Werkzeug Dock umschalten @@ -8387,12 +8384,12 @@ Aborting op creation ToolBit Library editor - ToolBit Library editor + Werkzeug Bibliothek Editor Open an editor to manage ToolBit libraries - Open an editor to manage ToolBit libraries + Öffne den Werzeug Editor @@ -8414,4 +8411,27 @@ Aborting op creation %s hat keine Eigenschaft %s (%s) + + PathCustom + + + Text + Text + + + + File + Datei + + + + Custom file %s could not be found. + Datei %s konnte nicht gefunden werden. + + + + Invalid Gcode line: %s + Ungültige G-Code-Zeile: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_el.ts b/src/Mod/Path/Gui/Resources/translations/Path_el.ts index cc52d3b4fb..83e0e97d7a 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_el.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_el.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Κείμενο + + + + File + Αρχείο + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_es-AR.ts b/src/Mod/Path/Gui/Resources/translations/Path_es-AR.ts index 3d671f975f..c924815b30 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_es-AR.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_es-AR.ts @@ -4508,7 +4508,7 @@ Por ejemplo: - + Choose a Path Job Elegir una Ruta de Trabajo @@ -5286,7 +5286,7 @@ Por ejemplo: Lista de funciones desactivadas - + The G-code to be inserted El G-code a ser insertado @@ -7023,17 +7023,17 @@ Por ejemplo: Inglete - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. La(s) arista(s) seleccionada(s) es(son) inaccesible(s). Si son múltiples, la selección de reordenación podría funcionar. - + Unable to create path for face(s). No se puede crear la ruta para la(s) cara(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Comprobar la selección de bordes y los requisitos de profundidad final para los perfiles de los bordes abiertos. @@ -8212,12 +8212,12 @@ Abortando la creación de la op Path_Post - + Post Process Post procesador - + Post Process the selected Job Postprocesar el trabajo seleccionado @@ -8412,4 +8412,27 @@ Abortando la creación de la op %s no tiene la propiedad %s (%s) + + PathCustom + + + Text + Texto + + + + File + Archivo + + + + Custom file %s could not be found. + El archivo de personalización %s no se encontró. + + + + Invalid Gcode line: %s + Línea %s de Gcode no es válida + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_es-ES.ts b/src/Mod/Path/Gui/Resources/translations/Path_es-ES.ts index 1a9a73277b..9b8d6bd8b6 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_es-ES.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_es-ES.ts @@ -4508,7 +4508,7 @@ Por ejemplo: - + Choose a Path Job Elegir una Ruta de Trabajo @@ -5286,7 +5286,7 @@ Por ejemplo: Lista de funciones desactivadas - + The G-code to be inserted El G-code a ser insertado @@ -7023,17 +7023,17 @@ Por ejemplo: Inglete - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. La(s) arista(s) seleccionada(s) es(son) inaccesible(s). Si son múltiples, la selección de reordenación podría funcionar. - + Unable to create path for face(s). No se puede crear la ruta para la(s) cara(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Comprobar la selección de bordes y los requisitos de profundidad final para los perfiles de los bordes abiertos. @@ -8212,12 +8212,12 @@ Abortando la creación de la op Path_Post - + Post Process Post procesador - + Post Process the selected Job Postprocesar el trabajo seleccionado @@ -8412,4 +8412,27 @@ Abortando la creación de la op %s no tiene la propiedad %s (%s) + + PathCustom + + + Text + Texto + + + + File + Archivo + + + + Custom file %s could not be found. + El archivo de personalización %s no se encontró. + + + + Invalid Gcode line: %s + Línea %s de Gcode no es válida + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_eu.ts b/src/Mod/Path/Gui/Resources/translations/Path_eu.ts index d89bdc33e3..66dbf97858 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_eu.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_eu.ts @@ -4508,7 +4508,7 @@ Adibidez: - + Choose a Path Job Aukeratu bide-lan bat @@ -5286,7 +5286,7 @@ Adibidez: Desgaitutako elementuen zerrenda - + The G-code to be inserted Txertatuko den G-code kodea @@ -7022,17 +7022,17 @@ Adibidez: Zorrotza - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. Ertz hautatua(k) ezin dira eskuratu. Anitz badira, hautapena berrordenatzeak arazoa konpondu dezake. - + Unable to create path for face(s). Ezin izan da sortu bidea aurpegietarako. - + Check edge selection and Final Depth requirements for profiling open edge(s). Egiaztatu ertz irekia(k) profilatzeko behar diren ertz-hautapena eta amaierako sakonera. @@ -8212,12 +8212,12 @@ Aukeren sorrera abortatzen Path_Post - + Post Process Post-prozesua - + Post Process the selected Job Post-prozesatu hautatutako lana @@ -8412,4 +8412,27 @@ Sortu? %s-(e)k ez dauka %s propietatea (%s) + + PathCustom + + + Text + Testua + + + + File + Fitxategia + + + + Custom file %s could not be found. + Ezin izan da aurkitu %s fitxategi pertsonalizatua. + + + + Invalid Gcode line: %s + G-code lerro baliogabea: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_fi.ts b/src/Mod/Path/Gui/Resources/translations/Path_fi.ts index 0c66dd3418..1e15f83c0b 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_fi.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_fi.ts @@ -11,12 +11,12 @@ Area - Area + Pinta-ala Creates a feature area from selected objects - Creates a feature area from selected objects + Luo ominaisuuden alueen valituista kohteista @@ -29,12 +29,12 @@ Area workplane - Area workplane + Alueen työtaso Select a workplane for a FeatureArea - Select a workplane for a FeatureArea + Valitse työtaso ominaisuusalueelle @@ -65,12 +65,12 @@ From Shape - From Shape + Muodosta Creates a path from a selected shape - Creates a path from a selected shape + Luo polun valitusta muodosta @@ -78,7 +78,7 @@ Create Path Area View - Create Path Area View + Luo Reitin Aluenäkymä @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s ei sisällä ominaisuutta %s (%s) + + PathCustom + + + Text + Teksti + + + + File + Tiedosto + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_fr.ts b/src/Mod/Path/Gui/Resources/translations/Path_fr.ts index bd17ee483a..eb3489972c 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_fr.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_fr.ts @@ -490,7 +490,7 @@ Pour le brut provenant de la boîte englobante de l'objet de base, il s'agit du Remove - Enlever + Supprimer @@ -754,7 +754,7 @@ Pour le brut provenant de la boîte englobante de l'objet de base, il s'agit du Remove - Enlever + Supprimer @@ -3332,7 +3332,7 @@ Généralement, il est recommandé d'utiliser des chemins relatifs en raison de Remove - Enlever + Supprimer @@ -4179,7 +4179,7 @@ Par défaut : 3 mm Remove - Enlever + Supprimer @@ -4309,14 +4309,13 @@ For example: 'Metric, Small Parts & CNC' 'US Customary' 'Imperial Decimal' - Le système d'unité sélectionné : - "{}" + Le système d'unité sélectionné : "{}" n'utilise pas les "minutes" pour les valeurs de vitesse. -Les machines CNC exigent que la vitesse d'avance soit -exprimée en unité/minute. Pour garantir un G-code correct : -sélectionnez un système basé sur les minutes dans les -préférences. Par exemple : +Les CNC exigent que la vitesse d'avance soit exprimée en unité/minute. +Pour garantir un G-code correct, sélectionnez un système basé sur les +minutes dans les préférences. +Par exemple : "Métriques, petites pièces & CNC" "Système US" "Décimales impériales" @@ -4495,16 +4494,16 @@ préférences. Par exemple : Profile - Contour + Contournage Profile entire model, selected face(s) or selected edge(s) - Profiler l'intégralité du modèle, de la face ou des faces sélectionnée(s) ou de l'arête ou des arêtes sélectionnée(s) + Opération de contour sur l'intégralité du modèle, d'une/des face(s) sélectionnée(s) ou d'une/des arête(s) sélectionnée(s) - + Choose a Path Job Choisir une tâche de trajectoire @@ -5282,7 +5281,7 @@ préférences. Par exemple : Liste des fonctions désactivées - + The G-code to be inserted Le gcode à insérer @@ -6885,7 +6884,7 @@ Les valeurs seront converties dans l'unité souhaitée pendant le post-traitemen Mist - Brouillard + Pulvérisation @@ -7018,17 +7017,17 @@ Les valeurs seront converties dans l'unité souhaitée pendant le post-traitemen Coupe d’onglet - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - Le ou les bords sélectionnés sont inaccessibles. S'il y en a plusieurs, réorganiser la sélection pourrait fonctionner. + Le(s) bord(s) sélectionné(s) sont inaccessible(s). S'il y en a plusieurs, réorganiser la sélection pourrait fonctionner. - + Unable to create path for face(s). Impossible de créer le parcours pour la(les) face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Vérifier la sélection des bords et les exigences pour la profondeur finale du ou des bord(s) ouvert(s) à profiler. @@ -8208,12 +8207,12 @@ Abandon de la création de l'opération Path_Post - + Post Process Post-traitement - + Post Process the selected Job Post-traitement de la tâche sélectionnée @@ -8408,4 +8407,27 @@ Abandon de la création de l'opération %s n'a pas de propriété %s (%s) + + PathCustom + + + Text + Texte + + + + File + Fichier + + + + Custom file %s could not be found. + Le fichier personnalisé %s est introuvable. + + + + Invalid Gcode line: %s + Ligne de G-gcode invalide : %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_gl.ts b/src/Mod/Path/Gui/Resources/translations/Path_gl.ts index 5c01f4e817..b41e770954 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_gl.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_gl.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Texto + + + + File + Ficheiro + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_hr.ts b/src/Mod/Path/Gui/Resources/translations/Path_hr.ts index 8cef83ca74..34a7820e22 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_hr.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_hr.ts @@ -116,7 +116,7 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. + Odaberite predložak koji će se koristiti za posao. Ako nema predložaka, možete ga stvoriti putem kontekstnog menija postojećeg posla. Nazovite datoteku job_*.json i stavite je u direktorij macro ili direktorij putanje (pogledajte postavke) kako biste je mogli odabrati iz ovog popisa. @@ -146,7 +146,7 @@ Job Template Export - Job Template Export + Izvezi Predložak Obrade @@ -161,41 +161,41 @@ Setup Sheet - Setup Sheet + Tabela postavki If enabled include all post processing settings in the template. - If enabled include all post processing settings in the template. + Ako je omogućeno, uključite sve postavke naknadne obrade u predložak. Hint about the current post processing configuration. - Hint about the current post processing configuration. + Savjet o trenutnoj konfiguraciji naknadne obrade If enabled tool controller definitions are stored in the template. - If enabled tool controller definitions are stored in the template. + Ako je omogućeno definicije kontrolera alata biti će spremljene u predložak. Check all tool controllers which should be included in the template. - Check all tool controllers which should be included in the template. + Provjerite sve kontrolore alata koji bi trebali biti uključeni u predložak. Enable to include values of the SetupSheet in the template. Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. - Enable to include values of the SetupSheet in the template. + Omogućite uključivanje vrijednosti Tabele postavki u predložak. -Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. +Svaka vrijednost Tabele postavki koja je promijenjena u odnosu na zadano je unaprijed odabrana. Ako ovo polje nije odabrano, trenutna Tabela postavki nije modificirana. Enable to include the default heights for operations in the template. - Enable to include the default heights for operations in the template. + Omogućite za uključivanje zadanih visina u predložak. @@ -210,12 +210,12 @@ Any values of the SetupSheet that are changed from their default are preselected Enable to include the default rapid tool speeds in the template. - Enable to include the default rapid tool speeds in the template. + Omogućite za uključivanje zadanih brzina brzog alata u predložak. Enable to include the default coolant mode in the template. - Enable to include the default coolant mode in the template. + Omogućite za uključivanje zadanog načina rashladne tekućine u predložak. @@ -224,26 +224,26 @@ Any values of the SetupSheet that are changed from their default are preselected This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. - If enabled the creation of stock is included in the template. If a template does not include a stock definition the default stock creation algorithm will be used (creation from the Base object's bounding box). + Ako je omogućeno, stvaranje osnova uključeno je u predložak. Ako predložak ne uključuje definiciju osnova, koristit će se zadani algoritam za kreiranje osnova (izrada iz vezanog okvira osnovnog objekta). -This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. +Ova opcija je najkorisnija ako je osnova kutija ili cilindar, ili ako stroj ima standardno mjesto za obradu. -Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. +Imajte na umu da je ova opcija onemogućena ako se u zadatku koristi osnovni objekt iz postojećeg čvrstog materijala - ne može se pohraniti u predložak. Hint about the current stock extent setting. - Hint about the current stock extent setting. + Savjet o trenutnim postavkama opsega materijala obrade If enabled the current placement of the stock solid is stored in the template. - If enabled the current placement of the stock solid is stored in the template. + Ako je omogućeno, trenutni položaj materijala obrade pohranjuje se u predlošku. Hint about the current stock placement. - Hint about the current stock placement. + Savjet o trenutnom položaju materijala obrade @@ -260,9 +260,9 @@ Note that this option is disabled if a stock object from an existing solid is us Enable all operations for which the configuration values should be exported. Note that only operations which currently have configuration values set are listed. - Enable all operations for which the configuration values should be exported. + Omogućite sve operacije za koje se konfiguracijske vrijednosti trebaju izvesti. -Note that only operations which currently have configuration values set are listed. +Imajte na umu da su navedene samo operacije koje trenutno imaju postavljene konfiguracijske vrijednosti. @@ -276,11 +276,11 @@ Note that only operations which currently have configuration values set are list For Box and Cylinder stocks this means the actual size of the stock solid being created. For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. - If enabled the current size settings for the stock object are included in the template. + Ako je omogućeno, trenutne postavke veličine materijala obrade a su uključene u predložak. -For Box and Cylinder stocks this means the actual size of the stock solid being created. +Za blokove i cilindre to znači stvarnu veličinu materijala obrade koji se koristi. -For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. +Za materijal obrade iz graničnog okvira to znači dodatni materijal u svim smjerovima. Objekt materijala stvoren iz takvog predloška dobit će svoju osnovnu veličinu iz novog posla baznog objekta i primijeniti pohranjene dodatne postavke. @@ -305,7 +305,7 @@ For stock from the Base object's bounding box it means the extra material in all Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. - Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. + Odaberite jedan od postprocesora.FreeCAD dolazi s nekoliko predinstaliranih postprocesora, provjerite je li barem jedan od njih omogućen u vašim postavkama. @@ -392,12 +392,12 @@ For stock from the Base object's bounding box it means the extra material in all The category group the property belongs to. - The category group the property belongs to. + Kategorija grupe kojoj pripada ovo svojstvo. The type of the property value. - The type of the property value. + Vrsta vrijednosti svojstva. @@ -432,7 +432,7 @@ For stock from the Base object's bounding box it means the extra material in all ToolTip - ToolTip + Alatna tipka @@ -452,12 +452,12 @@ For stock from the Base object's bounding box it means the extra material in all Add existing Tool Bit to this library. - Add existing Tool Bit to this library. + Dodaj postojeći Alatni nastavak u ovu biblioteku. Delete selected Tool Bit(s) from the library. - Delete selected Tool Bit(s) from the library. + Ukloni odabrani alatni nastavak(e) iz knjižnice. @@ -467,22 +467,22 @@ For stock from the Base object's bounding box it means the extra material in all Add New Tool Table - Add New Tool Table + Dodajte novu Tablicu Alata Save the selected library with a new name or export to another format - Save the selected library with a new name or export to another format + Spremi odabranu knjižnicu pod novim imenom ili izvezi u drugi format Table of Tool Bits of the library. - Table of Tool Bits of the library. + Tabela Alatnih nastavaka knjižnice Save the current Library - Save the current Library + Spremi trenutnu knjižnicu @@ -600,7 +600,7 @@ For stock from the Base object's bounding box it means the extra material in all Use Existing Solid - Use Existing Solid + Koristi postojeće čvrsto tijelo @@ -615,12 +615,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinX - Extension of bounding box's MinX + Proširenje minX okvira omeđenja Extension of bounding box's MaxX - Extension of bounding box's MaxX + Proširenje maxX okvira omeđenja @@ -630,12 +630,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinY - Extension of bounding box's MinY + Proširenje minY okvira omeđenja Extension of bounding box's MaxY - Extension of bounding box's MaxY + Proširenje maxY okvira omeđenja @@ -645,37 +645,37 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinZ - Extension of bounding box's MinZ + Proširenje minZ okvira omeđenja Extension of bounding box's MaxZ - Extension of bounding box's MaxZ + Proširenje maxZ okvira omeđenja Radius of the Cylinder - Radius of the Cylinder + Polumjer valjka Height of the Cylinder - Height of the Cylinder + Dužina valjka Length of the Box - Length of the Box + Dužina materijala obrade Width of the Box - Width of the Box + Širina materijala obrade Height of the Box - Height of the Box + Visina materijala obrade @@ -771,11 +771,13 @@ For stock from the Base object's bounding box it means the extra material in all You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. - Table of hole features and the determined radius of the associated hole. + Tablica značajki rupe i određenog radijusa povezane rupe. -You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. +Možete dodati značajku za obradu tako da je odaberete i pritisnete Dodaj. Ako je značajka slučajno dodana na listu, može se ukloniti putem Ukloni i više neće se obrađivati. -Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. +Resetiranje briše sve trenutne stavke s popisa i popunjava popis svim okruglim rupama koje su u operaciji kvalificirane iz modela. Popis možete ponovo izraditi omogućavanjem/onemogućavanjem, uklanjanjem i dodavanjem značajki. + + @@ -812,12 +814,12 @@ Reset deletes all current items from the list and fills the list with all circul All objects will be processed using the same operation properties. - All objects will be processed using the same operation properties. + Svi objekti obraditi će se koristeći iste postavke operacija. List of locations to be processed. - List of locations to be processed. + Lista lokacija koje će se obraditi. @@ -832,17 +834,17 @@ Reset deletes all current items from the list and fills the list with all circul Opens a dialog to add arbitrary locations. - Opens a dialog to add arbitrary locations. + Otvori dialog za dodavanje proizvoljnih lokacija. Remove selected location from the list. The operation is no longer applied to them. - Remove selected location from the list. The operation is no longer applied to them. + Ukloni odabranu lokaciju iz liste. Operacija na njoj neće više biti primijenjena. Edit selected location. - Edit selected location. + Uredi odabranu lokaciju. @@ -852,13 +854,13 @@ Reset deletes all current items from the list and fills the list with all circul All locations will be processed using the same operation properties. - All locations will be processed using the same operation properties. + Sve lokacije obraditi će se koristeći iste postavke operacija. Start Depth - Start Depth + Početna dubina @@ -887,34 +889,34 @@ Reset deletes all current items from the list and fills the list with all circul The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. - The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. + Dubina u Z-osi koju operacija pomiče prema dolje između slojeva. Ova vrijednost ovisi o alatu koji se koristi, materijalu koji se reže, dostupnom hlađenju i mnogim drugim čimbenicima. Molimo da se za ispravnu vrijednost obratite podacima o alatu proizvođača. Depth of the final cut of the operation. Can be used to produce a cleaner finish. - Depth of the final cut of the operation. Can be used to produce a cleaner finish. + Dubina finalnog reza operacije. Može se koristiti za stvaranje čistijeg završetka obrade. Final Depth - Final Depth + Konačna Dubina Step Down - Step Down + Korak Dolje Finish Step Down - Finish Step Down + Završni korak Dolje Min Diameter - Min Diameter + Minimalni Promjer @@ -939,7 +941,7 @@ Reset deletes all current items from the list and fills the list with all circul Clearance Height - Clearance Height + Visina prohodnosti (izmežu alata i materijala obrade) @@ -955,7 +957,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Alat i njegove postavke za ovu operaciju. @@ -1012,23 +1014,23 @@ Reset deletes all current items from the list and fills the list with all circul Cut Region - Cut Region + Područje rezanja Operation Type - Operation Type + Vrsta Operacije Step Over Percent - Step Over Percent + Postotak preklapanja Accuracy vs Performance - Accuracy vs Performance + Točnost vs Performanse @@ -1048,7 +1050,7 @@ Reset deletes all current items from the list and fills the list with all circul Lift Distance - Lift Distance + Udaljenost dizanja @@ -1068,13 +1070,13 @@ Reset deletes all current items from the list and fills the list with all circul Finishing Profile - Finishing Profile + Profil završne obrade Use Outline - Use Outline + Koristi vanjski obris @@ -1295,7 +1297,7 @@ Reset deletes all current items from the list and fills the list with all circul Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. - Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. + Specifizirajte postotak promjera alata za koji će se svaki spiralni zavoj pomaknuti u odnosu na prethodni. Pomak od 100% znači da nema preklapanja pojedinačnih rezova. @@ -1306,12 +1308,12 @@ Reset deletes all current items from the list and fills the list with all circul Extra Offset - Extra Offset + Dodatni odmak Enable Extensions - Enable Extensions + Omogući Dodatke @@ -1321,7 +1323,7 @@ Reset deletes all current items from the list and fills the list with all circul If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow - If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow + Ako je odabrano svi potencijalni dodatci su vizualizirani. Omogućeni dodatci su ljubičasti a onemogućeni žuti. @@ -1407,7 +1409,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Alat i njegove postavke za ovu operaciju @@ -1421,7 +1423,7 @@ The latter can be used to face of the entire stock area to ensure uniform height The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction - The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction + Režim rezanja pretpostavlja da rez na jednoj strani alata predstavlja rezultirajući dio, a druga strana je već ostrugana ili će se ukloniti kasnije. Penjući se način rada je kada se svrdlo pomiče u rez pri svakoj rotaciji, dok je u konvencionalnom načinu rada rotacija svrdla i bočno kretanje alata u istom smjeru. @@ -1431,7 +1433,7 @@ The latter can be used to face of the entire stock area to ensure uniform height ZigZag - ZigZag + CikCak @@ -1481,7 +1483,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Specify if this operation uses a starting point - Specify if this operation uses a starting point + Odredite treba li ova operacija koristiti početnu točku @@ -1498,12 +1500,12 @@ The latter can be used to face of the entire stock area to ensure uniform height Use Start Point - Use Start Point + Koristi početnu točku Clear Edges - Clear Edges + Popravi rubove @@ -1589,47 +1591,47 @@ The latter can be used to face of the entire stock area to ensure uniform height Check if this operation should use a starting point - Check if this operation should use a starting point + Provjerite treba li ova operacija koristiti početnu točku Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled - Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled + Provjerite treba li ova operacija profila također obrađivati rupe u osnovnoj geometriji. Pronađene rupe se automatski poravnaju na suprotnoj strani reza i izvode u suprotnom smjeru od perimetara. Imajte na umu da to ne uključuje cilindrične rupe, pretpostavlja se da će se one izbušiti If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side - If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side + Ako je označeno, operacija profila je pomaknuta za radijus alata. Smjer pomaka određuje strana reza Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values - Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values + Provjerite želite li ovu operaciju profila primijeniti i na cilindrične rupe, koje se obično buše. To može biti korisno ako nije dostupna burgija odgovarajuće veličine ili ako broj rupa ne opravdava promjenu alata. Imajte na umu da je strana reza i smjer obrnuti u odnosu na specificirane vrijednosti. Check if this profile operation should also process the outside perimeter of the base geometry shapes - Check if this profile operation should also process the outside perimeter of the base geometry shapes + Provjerite treba li ova operacija profila također obrađivati vanjski perimetar oblika osnovne geometrije Process Holes - Process Holes + Obradi Rupe Use Compensation - Use Compensation + Koristi kompenzaciju Process Circles - Process Circles + Obradi Krugove Process Perimeter - Process Perimeter + Obradi opseg (perimetar) @@ -1639,12 +1641,14 @@ The latter can be used to face of the entire stock area to ensure uniform height The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Alat i njegove postavke za ovu operaciju Choose what point to use on the first selected feature - Choose what point to use on the first selected feature + Odaberite točku koju ćete koristiti na prvoj odabranoj značajci. + + @@ -1694,7 +1698,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Choose what point to use on the second selected feature - Choose what point to use on the second selected feature + Odaberite točku koja će se koristiti za drugu odabranu značajku @@ -1709,27 +1713,27 @@ The latter can be used to face of the entire stock area to ensure uniform height Positive extends the beginning of the path, negative shortens - Positive extends the beginning of the path, negative shortens + Pozitivno produžuje početak staze, negativno skraćuje. Positive extends the end of the path, negative shortens - Positive extends the end of the path, negative shortens + Pozitivno produžuje završetak staze, negativno skraćuje. Complete the operation in a single pass at depth, or multiple passes to final depth - Complete the operation in a single pass at depth, or multiple passes to final depth + Dovršite operaciju u jednom prolazu na dubini ili višestruki prolazi do krajnje dubine Choose the path orientation with regard to the feature(s) selected - Choose the path orientation with regard to the feature(s) selected + Odaberite orijentaciju staze obrade s obzirom na odabrane značajke. Enable to reverse the cut direction of the slot path - Enable to reverse the cut direction of the slot path + Omogućite okretanje smjera reza staze utora @@ -1761,7 +1765,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Single-pass - Single-pass + Jedan prolaz @@ -1771,7 +1775,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Path Orientation - Path Orientation + Usmjerenje puta @@ -1786,7 +1790,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Reverse cut direction - Reverse cut direction + Obrnuti smjer glodanja @@ -1884,7 +1888,8 @@ The latter can be used to face of the entire stock area to ensure uniform height If true, the cutter will remain inside the boundaries of the model or selected face(s) - If true, the cutter will remain inside the boundaries of the model or selected face(s) + Ako je istinito, rezač ostaje unutar granica modela ili odabranih površina. + @@ -1899,7 +1904,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Additional offset to the selected bounding box along the X axis. - Additional offset to the selected bounding box along the X axis. + Dodatni pomak za odabrani granični okvir uzduž X-osi @@ -2122,12 +2127,12 @@ Default: 3 mm Passes - Passes + Prolaza Lead In/Out - Lead In/Out + Primicanje/Odmicanje @@ -2278,7 +2283,7 @@ Default: 3 mm Tag Parameters - Tag Parameters + Parametri Mostića @@ -2306,21 +2311,19 @@ If the specified height is 0 the dressup will use half the height of the part. S Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Kut upuštanja za uspon i silazak mostića. Radius of the fillet on the tag's top edge. If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. - Radius of the fillet on the tag's top edge. - -If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. + Polumjer obruba gornjeg ruba mostića. Specify the number of tags generated when a new dressup is created. - Specify the number of tags generated when a new dressup is created. + Odredite broj mostića kada se napravi nova priprema @@ -2340,12 +2343,12 @@ If the radius is bigger than that which the tag shape itself supports, the resul Tag Generation - Tag Generation + Stvaranje mostića Initial # Tags - Initial # Tags + Prvih # Mostića @@ -2353,7 +2356,7 @@ If the radius is bigger than that which the tag shape itself supports, the resul Job Preferences - Job Preferences + Postavke poslova @@ -2497,7 +2500,7 @@ See the file save policy below on how to deal with name conflicts. Default Post Processor - Default Post Processor + Zadani Post Processor @@ -2654,7 +2657,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Store Absolute Paths - Store Absolute Paths + Spremi apsolutne staze @@ -2681,7 +2684,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Path highlight color - Path highlight color + Boja isticanja staze @@ -2691,7 +2694,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Bounding box normal color - Bounding box normal color + Normalna boja graničnog okvira @@ -2701,12 +2704,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Probe path color - Probe path color + Boja staze sonde Bounding box selection color - Bounding box selection color + Boja graničnog okvira odabira @@ -2746,12 +2749,12 @@ Should multiple tools or tool shapes with the same name exist in different direc UI Settings - UI Settings + UI postavke Path Selection Style - Path Selection Style + Stil odabira staze @@ -2857,17 +2860,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Enable OCL dependent features - Enable OCL dependent features + Omogućena svojstva OpenCamLib zavisnosti Suppress warning if openCAMlib cannot be found - Suppress warning if openCAMlib cannot be found + Potisnuti Upozorenje ako se openCAMlib nemože pronaći Suppress openCAMlib warning - Suppress openCAMlib warning + Potisnuti openCAMlib upozorenje @@ -2966,7 +2969,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Include Layers - Include Layers + Uključi Slojeve @@ -2997,22 +3000,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path - Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path + Stvara kompenzaciju radijusa glodala G41 / G42 ulaznog objekta pripreme iz odabrane staze Please select one path object - Please select one path object + Odaberite jedan objekt staze The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze Please select a Profile object - Please select a Profile object + Odaberite jedan objekt profila @@ -3160,12 +3163,13 @@ Should multiple tools or tool shapes with the same name exist in different direc <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> - <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> + <html><head/><body><p>Određuje duljinu incizije kosti koja će se umetnuti u profil. +</p><p><span style=" font-weight:600; font-style:italic;">Adaptivno</span> ... duljina se prilagođava tako da pokrije kut na temelju kuta njegovih rubova, uzimajući u obzir trenutni radijus alata (zadano).</p><p><span style=" font-weight:600; font-style:italic;">Fiksno</span> ... isto je kao adaptivno za ravne kutove. Za T-kosti to je radijus alata (R) i za dogbone to je R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">Prilagođeno</span> ... omogućuje vam da specificirate prilagođenu (fiksnu) duljinu u nastavku.</p></body></html> adaptive - adaptive + prilagodljiv @@ -3200,7 +3204,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Filter Angle - Filter Angle + Kut Filtera @@ -3220,7 +3224,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Offset Distance - Offset Distance + Udaljenost Pomaka @@ -3255,17 +3259,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. - Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. + Visina držanja oznake. Imajte na umu da bi rezultirajuća oznaka mogla biti manja ako širina i kut oznake rezultiraju trokutastim oblikom. Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Kut upuštanja za uspon i silazak mostića. Radius of the fillet at the top. If the radius is too big for the tag shape it gets reduced to the maximum possible radius - resulting in a spherical shape. - Radius of the fillet at the top. If the radius is too big for the tag shape it gets reduced to the maximum possible radius - resulting in a spherical shape. + Radijus obruba na vrhu. Ako je radijus prevelik za oblik oznake, smanjuje se na najveći mogući radijus - što rezultira sfernim oblikom. @@ -3361,22 +3365,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Start Depth - Start Depth + Početna dubina Final Depth - Final Depth + Konačna Dubina Step Down - Step Down + Korak Dolje Finish Step Down - Finish Step Down + Završni korak Dolje @@ -3391,7 +3395,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Clearance Height - Clearance Height + Visina prohodnosti (izmežu alata i materijala obrade) @@ -3406,7 +3410,7 @@ Should multiple tools or tool shapes with the same name exist in different direc The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Alat i njegove postavke za ovu operaciju. @@ -3588,17 +3592,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Display name of the Tool Bit (initial value taken from the shape file). - Display name of the Tool Bit (initial value taken from the shape file). + Prikazni naziv Alatnog nastavka (početna vrijednost preuzeta iz datoteke oblika). The file which defines the type and shape of the Tool Bit. - The file which defines the type and shape of the Tool Bit. + Datoteka koja definira vrstu i oblik Alatnog nastavka. Change file defining type and shape of Tool Bit. - Change file defining type and shape of Tool Bit. + Mijenja datoteku koja definira vrstu i oblik Alatnog nastavka. @@ -3656,7 +3660,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Create ToolControllers for the selected toolbits and add them to the Job - Create ToolControllers for the selected toolbits and add them to the Job + Stvorite Kontrolu(e) Alata za odabrane Alatne nastavke i dodajte ih u posao @@ -3746,7 +3750,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. - Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. + Neobavezni argumenti proslijeđeni postprocesoru. Argumenti su specifični za svaki postprocesor, molimo pogledajte njegovu dokumentaciju za detalje. @@ -3757,13 +3761,13 @@ This is useful if the operator can safely load work into one coordinate system w Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. - Ordering by Fixture, will cause all operations to be performed in the first coordinate system before switching to the second. Then all operations will be performed there in the same order. + Redoslijed po učvršćenju, uzrokovat će da se sve operacije izvode u prvom koordinatnom sustavu prije prelaska na drugi. Tada će se sve operacije tamo izvoditi istim redoslijedom. -This is useful if the operator can safely load work into one coordinate system while the machine is doing work in another. +Ovo je korisno ako operater može sigurno učitati rad u jedan koordinatni sustav dok stroj radi u drugom. -Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. +Redoslijed po alatu minimizirat će promjene alata. Izvršit će se promjena alata, zatim sve operacije u svim koordinatnim sustavima prije promjene alata. -Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. +Redoslijed po operaciji izvršit će svaku operaciju u svim koordinatnim sustavima prije prelaska na sljedeću operaciju. Ovo je posebno korisno u kombinaciji s 'podijeljenim izlazom' čak i sa samo jednim radnim koordinatnim sustavom jer će svaku operaciju staviti u zasebnu datoteku. @@ -3810,7 +3814,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Use Existing Solid - Use Existing Solid + Koristi postojeće čvrsto tijelo @@ -3949,7 +3953,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Start Depth - Start Depth + Početna dubina @@ -3981,12 +3985,12 @@ Default: "5mm" Horizontal Feed - Horizontal Feed + Vodoravni pomak rezanja Vertical Feed - Vertical Feed + Okomiti pomak rezanja @@ -4001,7 +4005,7 @@ Default: "5mm" Final Depth - Final Depth + Konačna Dubina @@ -4099,7 +4103,7 @@ Default: OpFinalDepth Step Down - Step Down + Korak Dolje @@ -4232,7 +4236,7 @@ Default: 3 mm Engraving Operations - Engraving Operations + Operacije Graviranja @@ -4240,7 +4244,7 @@ Default: 3 mm 3D Operations - 3D Operations + 3D Operacije @@ -4248,28 +4252,28 @@ Default: 3 mm Project Setup - Project Setup + Projekt - Podešavanje Tool Commands - Tool Commands + Naredbe Alata New Operations - New Operations + Nove Operacije Path Modification - Path Modification + Izmjene Puta Helpful Tools - Helpful Tools + Korisni Alati @@ -4281,7 +4285,7 @@ Default: 3 mm &Path - &Path + &Staza @@ -4296,12 +4300,12 @@ Default: 3 mm Specialty Operations - Specialty Operations + Posebne operacije Utils - Utils + UslužniProgrami @@ -4334,7 +4338,7 @@ For example: Warning - Warning + Upozorenje @@ -4361,12 +4365,12 @@ For example: Save Project As - Save Project As + Spremi projekt kao Camotics Project (*.camotics) - Camotics Project (*.camotics) + Projekt Camotics (*.camotics) @@ -4383,72 +4387,74 @@ For example: Tool number - Tool number + Broj Alata Horizontal feedrate - Horizontal feedrate + Vodoravno Brzina pomaka Vertical feedrate - Vertical feedrate + Okomito Brzina pomaka Spindle RPM - Spindle RPM + Brzina vretena Obr./min No parent job found for operation. - No parent job found for operation. + Nije pronađen nijedan nadređeni zadatak za operaciju. Parent job %s doesn't have a base object - Parent job %s doesn't have a base object + Nadređeni zadatak %s nema osnovni (bazni) objekt No Tool Controller is selected. We need a tool to build a Path. - No Tool Controller is selected. We need a tool to build a Path. + Nije odabran nijedan Kontroler alata. Trebamo alat za izgradnju Puta. No Tool found or diameter is zero. We need a tool to build a Path. - No Tool found or diameter is zero. We need a tool to build a Path. + Nije pronađen nijedan Alat ili promjer je nula. Trebamo Alat za izgradnju Puta. + + No Tool Controller selected. - No Tool Controller selected. + Nije odabran nijedan Kontroler alata. Tool Error - Tool Error + Greška Alata Tool Controller feedrates required to calculate the cycle time. - Tool Controller feedrates required to calculate the cycle time. + Potrebna brzina pomaka Kontrolera alata za izračunavanje vremena ciklusa. Feedrate Error - Feedrate Error + Greška Brzine pomicanja Add Tool Controller Rapid Speeds on the SetupSheet for more accurate cycle times. - Add Tool Controller Rapid Speeds on the SetupSheet for more accurate cycle times. + Dodajte brze brzine Kontrolera alata na tablu za podešavanje za preciznija vremena ciklusa. Cycletime Error - Cycletime Error + Greška izračunavanja vremena obrade @@ -4514,29 +4520,29 @@ For example: - + Choose a Path Job Izaberi posao Staze Invalid Filename - Invalid Filename + Nevažeći naziv datoteke Selected tool is not a drill - Selected tool is not a drill + Odabrani alat nije za bušenje Invalid Cutting Edge Angle %.2f, must be >0° and <=180° - Invalid Cutting Edge Angle %.2f, must be >0° and <=180° + Nevažeći kut rezanja ruba %.2f, mora biti >0 ° i <=180 ° Cutting Edge Angle (%.2f) results in negative tool tip length - Cutting Edge Angle (%.2f) results in negative tool tip length + Kut rezanja ruba (%.2f) rezultira negativnom duljinom vrha alata @@ -4544,7 +4550,7 @@ For example: Finish Selecting Loop - Finish Selecting Loop + Završi odabir petlje @@ -4554,12 +4560,12 @@ For example: Feature Completion - Feature Completion + Dovršenje značajke Closed loop detection failed. - Closed loop detection failed. + Otkri zatvorene petlje nije uspjelo. @@ -4568,7 +4574,7 @@ For example: Toggle the Active State of the Operation - Toggle the Active State of the Operation + Uključivanje / isključivanje aktivnog stanja operacije @@ -4577,7 +4583,7 @@ For example: Copy the operation in the job - Copy the operation in the job + Kopirajte operaciju u zadatak @@ -4585,12 +4591,12 @@ For example: face %s not handled, assuming not vertical - face %s not handled, assuming not vertical + površina %s nije obrađena, pod pretpostavkom da ona nije okomita edge %s not handled, assuming not vertical - edge %s not handled, assuming not vertical + rub %s nije obrađen, pod pretpostavkom da on nije okomit @@ -4605,12 +4611,12 @@ For example: %s not supported for flipping - %s not supported for flipping + %s ne podržava preokreni Zero working area to process. Check your selection and settings. - Zero working area to process. Check your selection and settings. + Nijedno radno područje za obradu. Provjerite svoj odabir i postavke. @@ -4618,17 +4624,17 @@ For example: List of custom property groups - List of custom property groups + Lista grupa prilagođenih svojstava Default speed for horizontal rapid moves. - Default speed for horizontal rapid moves. + Zadana brzina za vodoravni brzi hod. Default speed for vertical rapid moves. - Default speed for vertical rapid moves. + Zadana brzina za okomiti brzi hod. @@ -4640,7 +4646,9 @@ For example: Default coolant mode. - Default coolant mode. + Zadani način rada rashladne tekućine. + + @@ -4665,17 +4673,22 @@ For example: Expression used for the start depth of new operations. - Expression used for the start depth of new operations. + Izraz korišten za početnu dubinau novih operacija. + + Expression used for the final depth of new operations. - Expression used for the final depth of new operations. + Izraz korišten za konačnu dubinau novih operacija. + Expression used for step down of new operations. - Expression used for step down of new operations. + Izraz korišten za korak na dolje novih operacija. + + @@ -4687,7 +4700,7 @@ For example: The base path to modify - The base path to modify + Osnovna staza za modifikaciju @@ -5292,7 +5305,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -6081,7 +6094,7 @@ For example: The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze @@ -6096,7 +6109,7 @@ For example: Please select one path object - Please select one path object + Odaberite jedan objekt staze @@ -6109,12 +6122,12 @@ For example: The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze Please select a Profile object - Please select a Profile object + Odaberite jedan objekt profila @@ -6134,7 +6147,7 @@ For example: Please select one path object - Please select one path object + Odaberite jedan objekt staze @@ -6206,13 +6219,13 @@ For example: Please select one path object - Please select one path object + Odaberite jedan objekt staze The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze @@ -6230,12 +6243,12 @@ For example: Please select one path object - Please select one path object + Odaberite jedan objekt staze The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze @@ -6306,17 +6319,17 @@ For example: Please select one path object - Please select one path object + Odaberite jedan objekt staze The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze Please select a Profile object - Please select a Profile object + Odaberite jedan objekt profila @@ -6432,17 +6445,17 @@ For example: Model Selection - Model Selection + Odabir Modela Warning - Warning + Upozorenje Please add one. - Please add one. + Molimo jdean dodati. @@ -6457,12 +6470,12 @@ For example: This job has no base model. - This job has no base model. + Ovaj posao nema osnovnog modela. This job has no tool. - This job has no tool. + Ovaj posao nema alata. @@ -6472,7 +6485,7 @@ For example: Creates a Path Job - Creates a Path Job + Kreira posao za putanju @@ -6482,12 +6495,12 @@ For example: Jobs - Jobs + Poslovi Base -/+ %.2f/%.2f %.2f/%.2f %.2f/%.2f - Base -/+ %.2f/%.2f %.2f/%.2f %.2f/%.2f + Baza-/ + %.2f/%.2f %.2f/%.2f %.2f/%.2f @@ -6497,7 +6510,7 @@ For example: Unsupported stock type - Unsupported stock type + Nije podržan tip materijala obrade @@ -6505,12 +6518,12 @@ For example: Invalid base object %s - no shape found - Invalid base object %s - no shape found + Nevažeći objekt materijala obrade %s - nije pronađen oblik Unsupported stock type named {} - Unsupported stock type named {} + Nije podržan tip materijala obrade imena {} @@ -6575,7 +6588,7 @@ For example: Export Template - Export Template + Izvezi Predložak @@ -6588,7 +6601,7 @@ For example: Cylinder: %.2f x %.2f - Cylinder: %.2f x %.2f + Cilindar: %.2f x %.2f @@ -6602,7 +6615,7 @@ For example: Base Object(s) - Base Object(s) + Osnovni Objekt(i) @@ -6622,22 +6635,22 @@ For example: CAD File Name - CAD File Name + Ime CAD datoteke Last Save Date - Last Save Date + Zadnje spremljeni datum Customer - Customer + Klijent Designer - Designer + Dizajner @@ -6648,17 +6661,17 @@ For example: Minimum Z Height - Minimum Z Height + Minimalna Z visina Maximum Z Height - Maximum Z Height + Maksimalna Z visina Cycle Time - Cycle Time + Vrijeme Ciklusa @@ -6683,7 +6696,7 @@ For example: Manufacturer - Manufacturer + Proizvođač @@ -6708,37 +6721,37 @@ For example: Feed Rate - Feed Rate + Brzina Pomaka Spindle Speed - Spindle Speed + Brzina Glodala Tool Shape - Tool Shape + Oblik Alata Tool Diameter - Tool Diameter + Promjer Alata X Size - X Size + Veličina X Y Size - Y Size + Veličina Y Z Size - Z Size + Veličina Z @@ -6763,7 +6776,7 @@ For example: G-code File - G-code File + G-code Datoteka @@ -7029,17 +7042,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -7049,7 +7062,7 @@ For example: Boundbox - Boundbox + Ograničen okvir @@ -7099,7 +7112,7 @@ For example: ZigZag - ZigZag + CikCak @@ -7152,7 +7165,7 @@ For example: The distance the facing operation will extend beyond the boundary shape. - The distance the facing operation will extend beyond the boundary shape. + Razdaljina operacije glodanja proširit će se preko granice oblika. @@ -7160,12 +7173,12 @@ For example: New property added to - New property added to + Novo svojstvo dodano u Check default value(s). - Check default value(s). + Provjerite zadane vrijednost(i). @@ -7175,12 +7188,12 @@ For example: ZigZag - ZigZag + CikCak Single-pass - Single-pass + Jedan prolaz @@ -7434,7 +7447,7 @@ For example: BaseBoundBox - BaseBoundBox + Osnovni Ograničen okvir @@ -7499,7 +7512,7 @@ For example: ZigZag - ZigZag + CikCak @@ -7526,7 +7539,7 @@ For example: Single-pass - Single-pass + Jedan prolaz @@ -7746,7 +7759,7 @@ For example: BaseBoundBox - BaseBoundBox + Osnovni Ograničen okvir @@ -7812,7 +7825,7 @@ For example: ZigZag - ZigZag + CikCak @@ -7842,7 +7855,7 @@ For example: Single-pass - Single-pass + Jedan prolaz @@ -7855,12 +7868,12 @@ For example: New property added to - New property added to + Novo svojstvo dodano u Check default value(s). - Check default value(s). + Provjerite zadane vrijednost(i). @@ -8124,12 +8137,12 @@ Aborting op creation Please select one path object - Please select one path object + Odaberite jedan objekt staze The selected object is not a path - The selected object is not a path + Odabrani objekt nije putanja staze @@ -8219,12 +8232,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8419,4 +8432,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Tekst + + + + File + Datoteka + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_hu.ts b/src/Mod/Path/Gui/Resources/translations/Path_hu.ts index 2d6034c7cc..1dfa9a587f 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_hu.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_hu.ts @@ -4502,7 +4502,7 @@ Például: - + Choose a Path Job Tevékenység elérési útjának kijelölése @@ -5280,7 +5280,7 @@ Például: Kikapcsolt funkciók listája - + The G-code to be inserted A beillesztendő G-kód @@ -7017,17 +7017,17 @@ Például: Gérvágó - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. A kijelölt szegély(ek) nem érhetők el. Ha többszörös, a kijelölés újrarendelése működhet. - + Unable to create path for face(s). Nem hozható létre a felület(ek) útvonala. - + Check edge selection and Final Depth requirements for profiling open edge(s). Ellenőrizze az élkiválasztást és a végső mélységi követelményeket a nyitott él(ek) maráshoz. @@ -8207,12 +8207,12 @@ Az op-létrehozás megszakítása Path_Post - + Post Process Utófeldolgozó - + Post Process the selected Job Kijelölt feladat utó eljárása @@ -8407,4 +8407,27 @@ Az op-létrehozás megszakítása %s még nincs tulajdonsága %s (%s) + + PathCustom + + + Text + Szöveg + + + + File + Fájl + + + + Custom file %s could not be found. + A %s egyéni fájl nem található. + + + + Invalid Gcode line: %s + Érvénytelen G-kód sor: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_it.ts b/src/Mod/Path/Gui/Resources/translations/Path_it.ts index bde0168e54..a1d6c72f3b 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_it.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_it.ts @@ -52,7 +52,7 @@ Creates a compound from selected paths - Crea un percorso composto dai tracciati selezionati + Crea un composto dai tracciati selezionati @@ -70,7 +70,7 @@ Creates a path from a selected shape - Crea un percorso da una forma selezionata + Crea un percorso dalla forma selezionata @@ -83,7 +83,7 @@ Create Path Area - Crea area percorso + Crea Area Tracciato @@ -93,12 +93,12 @@ Create Path Compound - Create Path Compound + Crea Tracciato Composto Create Path Shape - Create Path Shape + Crea Forma Tracciato @@ -116,7 +116,7 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. + Seleziona un modello da usare per il lavoro. Nel caso in cui non ci siano modelli è possibile crearne uno attraverso il menu a comparsa di un lavoro esistente. Nominare il file job_*.json e posizionarlo nella macro o nella directory del percorso (vedi preferenze) per essere selezionabile da questo elenco. @@ -166,36 +166,36 @@ If enabled include all post processing settings in the template. - If enabled include all post processing settings in the template. + Se abilitato, include tutte le impostazioni di post-elaborazione nel modello. Hint about the current post processing configuration. - Hint about the current post processing configuration. + Suggerimento sulla configurazione corrente di post-elaborazione. If enabled tool controller definitions are stored in the template. - If enabled tool controller definitions are stored in the template. + Se abilitate, le definizioni del controller dello strumento sono memorizzate nel modello. Check all tool controllers which should be included in the template. - Check all tool controllers which should be included in the template. + Controlla tutti i controller strumenti che dovrebbero essere inclusi nel modello. Enable to include values of the SetupSheet in the template. Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. - Enable to include values of the SetupSheet in the template. + Abilita per includere valori dalla SetupSheet nel modello. -Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. +Qualsiasi valore della SetupSheet modificato, rispetto al valore di default, viene selezionato. Se questo campo non è selezionato, l'attuale SetupSheet non è stata modificata. Enable to include the default heights for operations in the template. - Enable to include the default heights for operations in the template. + Abilita per includere le altezze predefinite per le operazioni nel modello. @@ -233,7 +233,7 @@ Note that this option is disabled if a stock object from an existing solid is us Hint about the current stock extent setting. - Hint about the current stock extent setting. + Suggerimento sull'impostazione corrente dell'estensione dello stock. @@ -243,7 +243,7 @@ Note that this option is disabled if a stock object from an existing solid is us Hint about the current stock placement. - Hint about the current stock placement. + Suggerimento sulla collocazione attuale dello stock. @@ -465,7 +465,7 @@ For stock from the Base object's bounding box it means the extra material in all Add New Tool Table - Add New Tool Table + Aggiungi nuova tabella utensili @@ -480,7 +480,7 @@ For stock from the Base object's bounding box it means the extra material in all Save the current Library - Save the current Library + Salva la libreria corrente @@ -583,7 +583,7 @@ For stock from the Base object's bounding box it means the extra material in all Select what type of shape to use to constrain the underlying Path. - Select what type of shape to use to constrain the underlying Path. + Seleziona quale tipo di forma usare per vincolare il tracciato sottostante. @@ -613,12 +613,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinX - Extension of bounding box's MinX + Estensione del MinX del grezzo Extension of bounding box's MaxX - Extension of bounding box's MaxX + Estensione del MaxX del grezzo @@ -628,12 +628,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinY - Extension of bounding box's MinY + Estensione del MinY del grezzo Extension of bounding box's MaxY - Extension of bounding box's MaxY + Estensione del MaxY del grezzo @@ -643,12 +643,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinZ - Extension of bounding box's MinZ + Estensione del MinZ del grezzo Extension of bounding box's MaxZ - Extension of bounding box's MaxZ + Estensione del MaxZ del grezzo @@ -663,17 +663,17 @@ For stock from the Base object's bounding box it means the extra material in all Length of the Box - Length of the Box + Lunghezza del pezzo grezzo Width of the Box - Width of the Box + Larghezza del pezzo grezzo Height of the Box - Height of the Box + Altezza del pezzo grezzo @@ -683,7 +683,7 @@ For stock from the Base object's bounding box it means the extra material in all Extend Model's Bounding Box - Extend Model's Bounding Box + Estendi il pezzo grezzo del modello @@ -739,7 +739,7 @@ For stock from the Base object's bounding box it means the extra material in all Clears list of base geometries - Clears list of base geometries + Cancella l'elenco delle geometrie di base @@ -815,7 +815,7 @@ Reset deletes all current items from the list and fills the list with all circul List of locations to be processed. - List of locations to be processed. + Elenco di posizioni da elaborare. @@ -840,7 +840,7 @@ Reset deletes all current items from the list and fills the list with all circul Edit selected location. - Edit selected location. + Modifica la posizione selezionata. @@ -890,7 +890,7 @@ Reset deletes all current items from the list and fills the list with all circul Depth of the final cut of the operation. Can be used to produce a cleaner finish. - Depth of the final cut of the operation. Can be used to produce a cleaner finish. + Profondità del taglio finale dell'operazione. Può essere utilizzato per ottenere una finitura più pulita. @@ -932,12 +932,12 @@ Reset deletes all current items from the list and fills the list with all circul The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. - The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. + L'altezza in cui il movimento laterale della punta dell'utensile non è ostruita da nessun elemento fisso, parte o elemento base. Clearance Height - Clearance Height + Altezza libera @@ -953,7 +953,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Lo strumento e le sue impostazioni da utilizzare per questa operazione. @@ -1010,7 +1010,7 @@ Reset deletes all current items from the list and fills the list with all circul Cut Region - Cut Region + Taglia Regione @@ -1031,7 +1031,7 @@ Reset deletes all current items from the list and fills the list with all circul Helix Ramp Angle - Helix Ramp Angle + Angolo inclinazione spirale @@ -1041,12 +1041,12 @@ Reset deletes all current items from the list and fills the list with all circul Helix Max Diameter - Helix Max Diameter + Massimo diametro dell'elica Lift Distance - Lift Distance + Distanza di sollevamento @@ -1056,7 +1056,7 @@ Reset deletes all current items from the list and fills the list with all circul Stock to Leave - Stock to Leave + Riserva da lasciare @@ -1066,7 +1066,7 @@ Reset deletes all current items from the list and fills the list with all circul Finishing Profile - Finishing Profile + Profilo di finitura @@ -1077,17 +1077,17 @@ Reset deletes all current items from the list and fills the list with all circul Influences calculation performance vs stability and accuracy - Influences calculation performance vs stability and accuracy + Influenza prestazioni di calcolo contro stabilità e precisione Cut inside or outside of the selected shapes - Cut inside or outside of the selected shapes + Taglia all'interno o all'esterno delle forme selezionate If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used - If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used + Se maggiore di zero limita il diametro della rampa dell'elica, altrimenti viene utilizzato il 75 per cento del diametro dell'utensile @@ -1135,7 +1135,7 @@ Reset deletes all current items from the list and fills the list with all circul The direction in which the profile is performed, clockwise or counterclockwise. - The direction in which the profile is performed, clockwise or counterclockwise. + La direzione in cui il profilo viene eseguita, in senso orario o antiorario. @@ -1163,7 +1163,7 @@ Reset deletes all current items from the list and fills the list with all circul Round joint - Round joint + Giunto arrotondato @@ -1213,7 +1213,7 @@ Reset deletes all current items from the list and fills the list with all circul Dwell - Dwell + Pausa(fermata) @@ -1319,7 +1319,7 @@ Reset deletes all current items from the list and fills the list with all circul If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow - If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow + Se selezionato, tutte le potenziali estensioni sono visualizzate. Estensioni abilitate in viola e non abilitate in giallo @@ -1572,12 +1572,12 @@ The latter can be used to face of the entire stock area to ensure uniform height PLACEHOLDER - PLACEHOLDER + SEGNAPOSTO The direction in which the profile is performed, clockwise or counterclockwise - The direction in which the profile is performed, clockwise or counterclockwise + La direzione in cui la profilatura viene eseguita, in senso orario o antiorario @@ -2577,7 +2577,7 @@ If left empty no template will be preselected. Extend Model's Bounding Box - Extend Model's Bounding Box + Estendi il pezzo grezzo del modello @@ -2684,7 +2684,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Default normal path color - Percorso normale + Colore predefinito del percorso normale @@ -2709,7 +2709,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Default pathline width - Larghezza della linea + Larghezza predefinita percorso lineare @@ -3389,7 +3389,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Clearance Height - Clearance Height + Altezza libera @@ -3404,7 +3404,7 @@ Should multiple tools or tool shapes with the same name exist in different direc The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Lo strumento e le sue impostazioni da utilizzare per questa operazione. @@ -3803,7 +3803,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Extend Model's Bounding Box - Extend Model's Bounding Box + Estendi il pezzo grezzo del modello @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Scegli un Percorso di Lavorazione @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -6689,7 +6689,7 @@ For example: URL - Url + URL @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s non ha proprietà %s (%s) + + PathCustom + + + Text + Testo + + + + File + File + + + + Custom file %s could not be found. + Impossibile trovare il file %s personalizzato. + + + + Invalid Gcode line: %s + Linea Gcode non valida: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ja.ts b/src/Mod/Path/Gui/Resources/translations/Path_ja.ts index d5571b1ba0..1a70d9073e 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ja.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ja.ts @@ -1913,7 +1913,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Step over - ステップオーバー + ステップ オーバー @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + テキスト + + + + File + ファイル + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ka.ts b/src/Mod/Path/Gui/Resources/translations/Path_ka.ts index c8f1d157c1..d49933d048 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ka.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ka.ts @@ -116,7 +116,7 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. + აირჩეთ დავალების ნიმუში. იმ შემთხვევაში, თუ ნიმუშები არ გაქვთ, მისი შექმნა არსებული დავალების მხტუნარა მენიუდან შეგიძლიათ. იმისათვის, რომ ფაილი სიიდან არჩევადი გახდეს - მას job_*.json დაარქვით და ის მაკროების ან ბილიკის საქაღალდეში (იხ. მორგების ფანჯარა) მოათავსეთ. @@ -243,7 +243,7 @@ Note that this option is disabled if a stock object from an existing solid is us Hint about the current stock placement. - Hint about the current stock placement. + მინიშნება მიმდინარე ყალიბის მდებარეობაზე. @@ -390,7 +390,7 @@ For stock from the Base object's bounding box it means the extra material in all The category group the property belongs to. - The category group the property belongs to. + კატეგორიების ჯგუფი, რომელსაც თვისება მიეკუთვნება. @@ -450,12 +450,12 @@ For stock from the Base object's bounding box it means the extra material in all Add existing Tool Bit to this library. - Add existing Tool Bit to this library. + არსებული ხელსაწყოს მჭრელი იარაღის ჩამატება ამ ბიბლიოთეკაში. Delete selected Tool Bit(s) from the library. - Delete selected Tool Bit(s) from the library. + ბიბლიოთეკიდან მონიშნული ხელსაწყოს მჭრელი იარაღ(ებ)-ის წაშლა. @@ -475,7 +475,7 @@ For stock from the Base object's bounding box it means the extra material in all Table of Tool Bits of the library. - Table of Tool Bits of the library. + ბიბლიოთეკის ხელსაწყოს მჭრელი იარაღების ცხრილი. @@ -830,7 +830,7 @@ Reset deletes all current items from the list and fills the list with all circul Opens a dialog to add arbitrary locations. - Opens a dialog to add arbitrary locations. + თქვენთვის სასურველი ბილიკების დამატების ფანჯრის გახსნა. @@ -1102,7 +1102,7 @@ Reset deletes all current items from the list and fills the list with all circul How much material to leave (i.e. for finishing operation) - How much material to leave (i.e. for finishing operation) + დატოვებული ნედლეულის რაოდენობა (მაგ: დასრულების ოპერაციისთვის) @@ -1253,7 +1253,7 @@ Reset deletes all current items from the list and fills the list with all circul Chip Break - Chip Break + ნაფხვენის მოცილება @@ -2304,7 +2304,7 @@ If the specified height is 0 the dressup will use half the height of the part. S Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + ჩაძირვის კუთხე სამაგრის აწევისა და დაწევისთვის. @@ -2546,7 +2546,7 @@ If left empty no template will be preselected. Select one of the post processors as the default. - Select one of the post processors as the default. + აირჩიეთ ნაგულისხმევი პოსტპროცესორი. @@ -2938,7 +2938,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Plunge at rapid speed - Plunge at rapid speed + სწრაფი ჩაძირვა @@ -2958,7 +2958,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Rapid Plunge - სწრაფი ჩაყვინთვა + სწრაფი ჩაძირვა @@ -3227,7 +3227,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Holding Tags - Holding Tags + სამაგრები @@ -3247,7 +3247,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Width of the resulting holding tag. - Width of the resulting holding tag. + მიღებული სამაგრის სიგანე. @@ -3257,7 +3257,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + ჩაძირვის კუთხე სამაგრის აწევისა და დაწევისთვის. @@ -3338,7 +3338,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Update the path with the removed and reordered items. - Update the path with the removed and reordered items. + განაახლეთ ბილიკი წაშლილი და გადალაგებული ელემენტებით. @@ -3595,7 +3595,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Change file defining type and shape of Tool Bit. - Change file defining type and shape of Tool Bit. + ხელსაწყოს მჭრელი იარაღის ტიპისა და მოხაზულების აღმწერი ფაილის შეცვლა. @@ -3648,7 +3648,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Available Tool Bits to choose from. - Available Tool Bits to choose from. + ხელმისაწვდომი ხელსაწყოს მჭრელი იარაღების ჩამონათვალი. @@ -4402,7 +4402,7 @@ For example: Parent job %s doesn't have a base object - Parent job %s doesn't have a base object + მშობელ დავალებას %s ძირითადი ობიექტი არ გააჩნია @@ -4412,7 +4412,7 @@ For example: No Tool found or diameter is zero. We need a tool to build a Path. - No Tool found or diameter is zero. We need a tool to build a Path. + ხელსაწყო ვერ ვიპოვე ან დიამეტრი ნულის ტოლია. ტრაექტორიის ასაგებად აუცილებელია ხელსაწყოს ქონა. @@ -4452,7 +4452,7 @@ For example: Base object %s.%s rejected by operation - Base object %s.%s rejected by operation + ძირითადი ობიექტი %s.%s უარყოფილია ოპერაციის მიერ @@ -4489,7 +4489,7 @@ For example: %s is not a Base Model object of the job %s - %s is not a Base Model object of the job %s + %s დავალებისთვის %s ძირითადი მოდელის ობექტს არ წარმოადგენს @@ -4508,7 +4508,7 @@ For example: - + Choose a Path Job აირჩიეთ ტრაექტორიის ამოცანა @@ -4579,12 +4579,12 @@ For example: face %s not handled, assuming not vertical - face %s not handled, assuming not vertical + ზედაპირი %s არ მუშავდება. ჩაითვლება არა-შვეულად edge %s not handled, assuming not vertical - edge %s not handled, assuming not vertical + წიბო %s არ მუშავდება. ჩაითვლება არა-შვეულად @@ -4604,7 +4604,7 @@ For example: Zero working area to process. Check your selection and settings. - Zero working area to process. Check your selection and settings. + დასამუშავებელი სამუშაო ფართობი ნულის ტოლია. შეამოწმეთ თქვენი მონიშნული და პარამეტრები. @@ -4669,7 +4669,7 @@ For example: Expression used for step down of new operations. - Expression used for step down of new operations. + ახალი ოპერაციების StepDown-სთვის გამოყენებული გამოსახულება. @@ -4696,7 +4696,7 @@ For example: The base path to dress up - The base path to dress up + ძირითადი ტრაექტორია ზღუდარამდე @@ -4714,7 +4714,7 @@ For example: The algorithm to determine the bone length - The algorithm to determine the bone length + კუთხის გარშემო შემოჭრის სიგრძის გამოთვლის ალგორითმი @@ -4751,12 +4751,12 @@ For example: Locations of inserted holding tags - Locations of inserted holding tags + ჩასმული სამაგრების მდებარეობები IDs of disabled holding tags - IDs of disabled holding tags + გამორთული სამაგრების ID-ები @@ -4876,7 +4876,7 @@ For example: The point file from the surface probing. - The point file from the surface probing. + ზედაპირის ზონდირებიდან მიღებული წერტილების ფაილი. @@ -4886,7 +4886,7 @@ For example: break segments into smaller segments of this length. - break segments into smaller segments of this length. + ამ სიგრძის გადაცილების შემთხვევაში სეგმენტების უფრო მცირე სეგმენტებად დახლეჩა. @@ -4949,7 +4949,7 @@ For example: If multiple WCS, order the output this way - If multiple WCS, order the output this way + თუ სამუშაო კოორდინატთა სისტემა ერთზე მეტია, გამოტანა ამნაირად დალაგდება @@ -4960,7 +4960,7 @@ For example: SetupSheet holding the settings for this job - SetupSheet holding the settings for this job + მორგებისგვერდი, რომელიც ამ დავალების პარამეტრების შეიცავს @@ -5068,7 +5068,7 @@ For example: Side of selected faces that tool should cut - Side of selected faces that tool should cut + მონიშნული ზედაპირების მხარე, რომელიც ხელსაწყომ უნდა გაჭრას @@ -5100,7 +5100,7 @@ For example: How much stock to leave (i.e. for finishing operation) - How much stock to leave (i.e. for finishing operation) + დატოვებული ყალიბის რაოდენობა (მაგ: დასრულების ოპერაციისთვის) @@ -5230,7 +5230,7 @@ For example: Starting Depth internal use only for derived values - Starting Depth internal use only for derived values + შიდა მოხმარების საწყისი სიღრმე მხოლოდ მიღებული მნიშვნელობებისთვის @@ -5245,7 +5245,7 @@ For example: The height needed to clear clamps and obstructions - The height needed to clear clamps and obstructions + წინააღმდეგობებისა და ჩამჭერებისგან გასუფთავებისგან საჭირო სიმაღლე @@ -5286,7 +5286,7 @@ For example: გამორთული თვისებების სია - + The G-code to be inserted G-Code-ის ჩაისმება @@ -5324,7 +5324,7 @@ For example: Use chipbreaking - Use chipbreaking + ნაფხვენების მოცილების გამოყენება @@ -5349,7 +5349,7 @@ For example: Calculate the tip length and subtract from final depth - Calculate the tip length and subtract from final depth + ბუნიკის სიგრძის გამოთვლა და საბოლოო სიღრმისთვის გამოკლება @@ -5365,7 +5365,7 @@ For example: How far the drilling depth is extended - How far the drilling depth is extended + რამდენად იზრდება ბურღვის სიღრმე @@ -5379,7 +5379,7 @@ For example: Additional base objects to be engraved - Additional base objects to be engraved + დამატებით ამოსატვიფრი ძირითადი ობიექტები @@ -5437,7 +5437,7 @@ For example: Exclude milling raised areas inside the face. - Exclude milling raised areas inside the face. + მითითებულ ზედაპირთან შედარებით აწეული ადგილების ღარვის გამორიცხვა. @@ -5445,7 +5445,7 @@ For example: Choose how to process multiple Base Geometry features. - Choose how to process multiple Base Geometry features. + აირჩიეთ, როგორ დამუშავდება მრავალი ძირითადი გეომეტრიის მქონე თვისებები. @@ -5496,7 +5496,7 @@ For example: Attempts to avoid unnecessary retractions. - Attempts to avoid unnecessary retractions. + არასაჭირო გაწევის თავიდან არიდება. @@ -5532,7 +5532,7 @@ For example: Controls how tool moves around corners. Default=Round - Controls how tool moves around corners. Default=Round + აკონტროლებს, ინსტრუმენტი კუთხეების გარშემო როგორ გადაადგილდება. ნაგულისხმევი=მომრგვალება @@ -5635,7 +5635,7 @@ For example: The custom start point for the path of this operation - The custom start point for the path of this operation + ამ ოპერაციის ტრაექტორიის საწყისი ხელით მითითებული წერტილი @@ -5651,7 +5651,7 @@ For example: Stop index(angle) for rotational scan - Stop index(angle) for rotational scan + გაჩერების ინდექსი(კუთხე) ბრუნვადი სკანირებისთვის @@ -5671,7 +5671,7 @@ For example: Start index(angle) for rotational scan - Start index(angle) for rotational scan + დაწყების ინდექსი(კუთხე) ბრუნვადი სკანირებისთვის @@ -5730,7 +5730,7 @@ For example: The yaw angle used for certain clearing patterns - The yaw angle used for certain clearing patterns + ზოგიერთი გასუფთავების ნიმუშის მიერ გამოყენებული კურსიდან გადახვევის კუთხე @@ -5830,7 +5830,7 @@ For example: Set thread's pitch - used for metric threads - Set thread's pitch - used for metric threads + კუთხვილის ბიჯის დაყენება - გამოიყენება მეტრული კუთხვილებისთვის @@ -5865,7 +5865,7 @@ For example: The deflection value for discretizing arcs - The deflection value for discretizing arcs + გადახრის მნიშვნელობა რკალების დისკრეტიზაციისთვის @@ -6113,7 +6113,7 @@ For example: Holding Tag - Holding Tag + სამაგრი @@ -6499,7 +6499,7 @@ For example: Invalid base object %s - no shape found - Invalid base object %s - no shape found + არასწორი ძირითადი ობიექტი %s - მოხაზულობა ვერ ვიპოვე @@ -7023,17 +7023,17 @@ For example: ირიბპირა - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). ტრაექტორიის შექმნა ზედაპირ(ებ)-ისთვის შეუძლებელია. - + Check edge selection and Final Depth requirements for profiling open edge(s). ღია წიბოების პროფილირებისთვის წიბოს არჩევანისა და საბოლოო სიღრმის მოთხოვნების შემოწმება. @@ -7276,7 +7276,7 @@ For example: Only a vertex selected. Add another feature to the Base Geometry. - Only a vertex selected. Add another feature to the Base Geometry. + მონიშნულია მხოლოდ წვეროები. ძირითად გეომეტრიას სხვა თვისებაც დაამატეთ. @@ -7420,7 +7420,7 @@ For example: OCL tool not available. Cannot determine is cutter has tilt available. - OCL tool not available. Cannot determine is cutter has tilt available. + პროგრამა OCL ხელმისაწვდომი არაა. მჭრელი იარაღის დახრის შესაძლებლობის დადგენა შეუძლებელია. @@ -7686,7 +7686,7 @@ For example: Creates a Path Thread Milling operation from features of a base object - Creates a Path Thread Milling operation from features of a base object + ძირითადი ობიექტის თვისებებიდან კუთხვილის ფრეზვის ოპერაციის ტრაექტორიის შექმნა @@ -7699,7 +7699,7 @@ For example: Engraver cutting edge angle must be < 180 degrees. - Engraver cutting edge angle must be < 180 degrees. + ამომტვირფრავის ამოჭრის წიბოს კუთხე < 180 გრადუსი უნდა იყოს. @@ -8087,7 +8087,7 @@ Aborting op creation Creates a Deburr Path along Edges or around Faces - Creates a Deburr Path along Edges or around Faces + ხიწვების მოცილების ტრაექტორიის შექმნა წიბოების ან ზედაპირების გარშემო @@ -8136,7 +8136,7 @@ Aborting op creation Create a Facing Operation from a model or face - Create a Facing Operation from a model or face + მოდელისგან ან ზედაპირისგან ტორსული ღარვის შექმნა @@ -8149,7 +8149,7 @@ Aborting op creation Creates a Path 3D Pocket from a face or faces - Creates a Path 3D Pocket from a face or faces + ტრაექტორიის 3D ჯიბის შექმნა ზედაპირ(ებ)-იდან @@ -8162,7 +8162,7 @@ Aborting op creation Creates a Path Pocket object from a face or faces - Creates a Path Pocket object from a face or faces + ჯიბის ობიექტის დამუშავების ტრაექტორიის შექმნა ზედაპირ(ებ)-იდან @@ -8213,12 +8213,12 @@ Aborting op creation Path_Post - + Post Process დამუშავების შემდეგი მოქმედებები - + Post Process the selected Job მონიშნული დავალების პოსტპროცესი @@ -8303,7 +8303,7 @@ Aborting op creation Save an existing ToolBit object to a file - Save an existing ToolBit object to a file + არსებული ToolBit ობიექტის ფაილში ჩაწერა @@ -8324,7 +8324,7 @@ Aborting op creation Toolbit working directory not set up. Do that now? - Toolbit working directory not set up. Do that now? + მჭრელი იარაღების საქაღალდე მითითებული არაა. იზამთ ახლა? @@ -8343,7 +8343,7 @@ Aborting op creation Copy example files to new {} directory? - Copy example files to new {} directory? + დავაკოპირო მაგალითის ფაილები ახალ საქაღალდეში {}? @@ -8413,4 +8413,27 @@ Aborting op creation %s-ს არ გააჩნია თვისება %s (%s) + + PathCustom + + + Text + ტექსტი + + + + File + ფაილი + + + + Custom file %s could not be found. + მომხმარებლის ფაილი %s ვერ ვიპოვე. + + + + Invalid Gcode line: %s + არასწორი Gcode-ის ხაზი: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ko.ts b/src/Mod/Path/Gui/Resources/translations/Path_ko.ts index 5e912e3589..9c3e8023b6 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ko.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ko.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + 텍스트 + + + + File + 파일 + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_nl.ts b/src/Mod/Path/Gui/Resources/translations/Path_nl.ts index 810eb8140b..30dc09ceba 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_nl.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_nl.ts @@ -1992,7 +1992,7 @@ Default: OpToolDiameter Expression - Expression + Expressie @@ -2236,7 +2236,7 @@ Default: 3 mm Corner Radius - Corner Radius + Hoekradius @@ -2333,7 +2333,7 @@ If the radius is bigger than that which the tag shape itself supports, the resul Default Radius - Default Radius + Standaard Radius @@ -2343,7 +2343,7 @@ If the radius is bigger than that which the tag shape itself supports, the resul Initial # Tags - Initial # Tags + Initiële # Tags @@ -2470,22 +2470,22 @@ See the file save policy below on how to deal with name conflicts. Open File Dialog - Open File Dialog + Open bestandsdialoog Open File Dialog on conflict - Open File Dialog on conflict + Open bestandsdialoog bij conflicten Overwrite existing file - Overwrite existing file + Bestaand bestand overschrijven Append Unique ID on conflict - Append Unique ID on conflict + Unieke ID toevoegen bij conflicten @@ -2510,7 +2510,7 @@ See the file save policy below on how to deal with name conflicts. Default Arguments - Default Arguments + Standaardargumenten @@ -2557,7 +2557,7 @@ If left empty no template will be preselected. Setup - Setup + Installatie @@ -2679,7 +2679,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Path highlight color - Path highlight color + Pad markeerkleur @@ -2774,7 +2774,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Task Panel Layout - Task Panel Layout + Opmaak taakpaneel @@ -2789,7 +2789,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Multi Panel - Multi Panel + Multi-paneel @@ -3082,7 +3082,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Y->C - Y->C + Y->C @@ -3153,7 +3153,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Incision - Incision + Incisie @@ -3163,7 +3163,7 @@ Should multiple tools or tool shapes with the same name exist in different direc adaptive - adaptive + aanpasbaar @@ -3198,7 +3198,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Filter Angle - Filter Angle + Filter Hoek @@ -3319,7 +3319,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Add item selected in window. - Add item selected in window. + Item toevoegen dat geselecteerd is in venster. @@ -3329,7 +3329,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Remove Item selected in list, then update. - Remove Item selected in list, then update. + Verwijder geselecteerd item in de lijst, dan updaten. @@ -3523,7 +3523,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Job: - Job: + Taak: @@ -3704,7 +3704,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Template Export - Template Export + Sjabloon exporteren @@ -3734,7 +3734,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Systems - Systems + Systemen @@ -3778,7 +3778,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Setup - Setup + Installatie @@ -4114,7 +4114,7 @@ Default: OpToolDiameter Expression - Expression + Expressie @@ -4287,17 +4287,17 @@ Default: 3 mm Supplemental Commands - Supplemental Commands + Aanvullende commando's Specialty Operations - Specialty Operations + Gespecialiseerde operaties Utils - Utils + Hulpmiddelen @@ -4340,7 +4340,7 @@ For example: Don't Show This Anymore - Don't Show This Anymore + Laat dit niet meer zien @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -4550,7 +4550,7 @@ For example: Feature Completion - Feature Completion + Kenmerkvoltooiing @@ -5024,7 +5024,7 @@ For example: A material for this object - A material for this object + Een materiaal voor dit object @@ -5285,10 +5285,10 @@ For example: List of disabled features - List of disabled features + Lijst met uitgeschakelde kenmerken - + The G-code to be inserted The G-code to be inserted @@ -5391,12 +5391,12 @@ For example: Default length of extensions. - Default length of extensions. + Standaardlengte van extensies. List of features to extend. - List of features to extend. + Lijst met kenmerken om uit te breiden. @@ -5417,7 +5417,7 @@ For example: Starting Radius - Starting Radius + Startstraal @@ -5812,7 +5812,7 @@ For example: Currently only internal - Currently only internal + Momenteel alleen intern @@ -5914,7 +5914,7 @@ For example: Pattern method - Pattern method + Patroonmethode @@ -6393,7 +6393,7 @@ For example: Multiaxis - Multiaxis + Multi-as @@ -6428,7 +6428,7 @@ For example: Model Selection - Model Selection + Modelselectie @@ -6493,7 +6493,7 @@ For example: Unsupported stock type - Unsupported stock type + Niet-ondersteund stocktype @@ -6501,12 +6501,12 @@ For example: Invalid base object %s - no shape found - Invalid base object %s - no shape found + Ongeldig basisobject %s - geen vorm gevonden Unsupported stock type named {} - Unsupported stock type named {} + Stocktype genaamd {} niet ondersteund @@ -6598,7 +6598,7 @@ For example: Base Object(s) - Base Object(s) + Basisobject(en) @@ -6628,7 +6628,7 @@ For example: Customer - Customer + Klant @@ -6644,17 +6644,17 @@ For example: Minimum Z Height - Minimum Z Height + Minimale Z-hoogte Maximum Z Height - Maximum Z Height + Maximale Z-hoogte Cycle Time - Cycle Time + Cyclustijd @@ -6679,12 +6679,12 @@ For example: Manufacturer - Manufacturer + Fabrikant Part Number - Part Number + Onderdeelnummer @@ -6694,7 +6694,7 @@ For example: Inspection Notes - Inspection Notes + Inspectienotities @@ -6845,7 +6845,7 @@ For example: Clearing - Clearing + Wissen @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -7055,7 +7055,7 @@ For example: Perimeter - Perimeter + Omtrek @@ -7557,7 +7557,7 @@ For example: Rotational - Rotational + Roterend @@ -8172,7 +8172,7 @@ Aborting op creation Simple Copy - Simple Copy + Eenvoudige kopie @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s heeft geen eigenschap %s (%s) + + PathCustom + + + Text + Tekst + + + + File + Bestand + + + + Custom file %s could not be found. + Aangepast bestand %s kon niet worden gevonden. + + + + Invalid Gcode line: %s + Ongeldige Gcode regel: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_pl.ts b/src/Mod/Path/Gui/Resources/translations/Path_pl.ts index 4e15c585ba..5854d50114 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_pl.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_pl.ts @@ -116,7 +116,10 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Wybierz szablon, który będzie używany dla zadania. W przypadku braku szablonów można je utworzyć za pomocą menu podręcznego istniejącego zadania. Nazwij plik job_*.json i umieść go w katalogu "makro" lub "path" (patrz preferencje), aby można go było wybrać z tej listy. + Wybierz szablon, który będzie używany dla zadania. W przypadku braku szablonów +można je utworzyć za pomocą menu podręcznego istniejącego zadania. +Nazwij plik job_*.json i umieść go w katalogu "makro" lub "path" (patrz preferencje), +aby można go było wybrać z tej listy. @@ -156,7 +159,7 @@ Tools - Przybory + Narzędzia @@ -227,7 +230,7 @@ This option is most useful if stock is a box or cylinder, or if the machine has Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. Jeżeli opcja jest włączona, to tworzenie naddatku jest uwzględnione w szablonie. Jeśli szablon nie zawiera definicji naddatku, zostanie użyty domyślny algorytm tworzenia naddatku (tworzenie z ramki otaczającej obiektu Bazowego). -Ta opcja jest najbardziej przydatna, gdy materiał jest w kształcie sześcianu lub walca, lub gdy maszyna ma standardowe położenie dla obróbki. +Ta opcja jest najbardziej przydatna, gdy materiał jest w kształcie prostopadłościanu lub walca, lub gdy maszyna ma standardowe położenie dla obróbki. Należy pamiętać, że opcja ta jest wyłączona, jeśli w zadaniu używany jest obiekt naddatku z istniejącej bryły - nie mogą one być przechowywane w szablonie. @@ -268,7 +271,7 @@ Należy pamiętać, że na liście znajdują się tylko operacje, dla których a Stock - Naddatek + Półprodukt @@ -279,7 +282,7 @@ For Box and Cylinder stocks this means the actual size of the stock solid being For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. Jeśli opcja ta jest włączona, bieżące ustawienia rozmiaru obiektu naddatku są uwzględniane w szablonie. -W przypadku naddatku dla sześcianu i walca oznacza to rzeczywisty rozmiar nadmiaru tworzonej bryły. +W przypadku naddatku dla prostopadłościanu i walca oznacza to rzeczywisty rozmiar nadmiaru tworzonej bryły. Dla nadmiaru materiału podstawowego z ramki otaczającej oznacza to naddatek materiału we wszystkich kierunkach. Obiekt naddatku utworzony na podstawie takiego szablonu pobierze swój podstawowy rozmiar z obiektu Bazowego nowego zadania i zastosuje zapisane ustawienia dodatkowe. @@ -326,12 +329,12 @@ Dla nadmiaru materiału podstawowego z ramki otaczającej oznacza to naddatek ma Horiz. Feed - Poziomy kanał + Posuw poziomy Vert. Feed - Pionowy kanał + Posuw pionowy @@ -351,12 +354,12 @@ Dla nadmiaru materiału podstawowego z ramki otaczającej oznacza to naddatek ma Forward - W przód + Do przodu Reverse - Odwróć + Do tyłu @@ -446,7 +449,7 @@ Dla nadmiaru materiału podstawowego z ramki otaczającej oznacza to naddatek ma Create Toolbit - Utwórz nóż tokarski + Utwórz narzędzie skrawające @@ -1957,7 +1960,7 @@ Przekroczenie wartości 100% powoduje, że dwa różne cykle nie nakładają si Depths - Głębia + Głębokość @@ -2371,7 +2374,7 @@ Jeśli promień jest większy niż ten, który utrzymuje sam kształt podpory, w Path - Ścieżka + CAM @@ -2569,7 +2572,7 @@ Jeśli pole pozostanie puste, żaden szablon nie zostanie wstępnie wybrany. Stock - Naddatek + Półwyrób @@ -2645,7 +2648,7 @@ Jeśli pole pozostanie puste, żaden szablon nie zostanie wstępnie wybrany. Tools - Przybory + Narzędzia @@ -2974,7 +2977,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Arc - Wzdłuż łuku + Łuk @@ -3359,7 +3362,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Depths - Głębia + Głębokość @@ -3556,7 +3559,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Tool Bit Attributes - Atrybuty noża tokarskiego + Atrybuty narzędzia skrawającego @@ -3566,7 +3569,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Tool Bit - Nóż tokarski + Narzędzie skrawające @@ -3792,7 +3795,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Stock - Naddatek + Półwyrób @@ -3918,7 +3921,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Link Stock and Model - Połącz naddatek z modelem + Połącz półwyrób z modelem @@ -3944,7 +3947,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Depths - Głębia + Głębokość @@ -4152,7 +4155,7 @@ Domyślnie: 3 mm Tools - Przybory + Narzędzia @@ -4258,7 +4261,7 @@ Domyślnie: 3 mm Path Modification - Path — modyfikacja + Cam — modyfikacja @@ -4508,7 +4511,7 @@ Na przykład: - + Choose a Path Job Wybierz ścieżkę zadania @@ -5286,7 +5289,7 @@ Na przykład: Lista wyłączonych funkcji - + The G-code to be inserted G-code do wstawienia @@ -6547,7 +6550,7 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). <b>Note</b>: This dialog shows Path Commands in FreeCAD base units (mm/s). Values will be converted to the desired unit during post processing. - <b>Uwaga</b>: To okno pokazuje polecenia środowiska Path w podstawowych jednostkach dla FreeCAD (mm/s). + <b>Uwaga</b>: To okno pokazuje polecenia środowiska CAM w podstawowych jednostkach dla FreeCAD (mm/s). Wartości zostaną przekonwertowane na żądaną jednostkę podczas przetwarzania końcowego. @@ -6887,7 +6890,7 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). Flood - Wypełnij + Strumień @@ -7026,17 +7029,17 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). Ukośnie - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. Wybrana krawędź (krawędzie) jest niedostępna. Jeśli jest ich wiele, zmiana kolejności wyboru może przynieść efekty. - + Unable to create path for face(s). Nie można utworzyć ścieżki dla powierzchni. - + Check edge selection and Final Depth requirements for profiling open edge(s). Sprawdź wybór krawędzi i wymagania dotyczące głębokości końcowej dla profilowania otwartych krawędzi. @@ -7061,7 +7064,7 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). Stock - Naddatek + Półprodukt @@ -7436,7 +7439,7 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). Stock - Naddatek + Półprodukt @@ -7748,7 +7751,7 @@ OL Dropcutter* lub Eksperymentalny (nieoparty na OCL). Stock - Naddatek + Półprodukt @@ -7968,7 +7971,7 @@ If it is necessary to set the FinalDepth manually please select a different oper Depths - Głębia + Głębokość @@ -8216,12 +8219,12 @@ Przerwanie procesu tworzenia Path_Post - + Post Process Przetwarzanie końcowe - + Post Process the selected Job Przetwarzanie końcowe wybranego zadania @@ -8244,17 +8247,17 @@ Przerwanie procesu tworzenia Forward - W przód + Do przodu Reverse - Odwróć + Do tyłu None - Brak + Stop @@ -8416,4 +8419,27 @@ Przerwanie procesu tworzenia %s nie ma właściwości %s (%s) + + PathCustom + + + Text + Tekst + + + + File + Plik + + + + Custom file %s could not be found. + Plik użytkownika "%s" nie został odnaleziony. + + + + Invalid Gcode line: %s + Nieprawidłowy wiersz G-code: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_pt-BR.ts b/src/Mod/Path/Gui/Resources/translations/Path_pt-BR.ts index b6441c442d..d756c88d37 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_pt-BR.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_pt-BR.ts @@ -116,7 +116,7 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. + Selecione um modelo a ser usado para a tarefa. Caso não haja modelos, você pode criar um através do menu pop-up de um trabalho existente. Nomeie o arquivo job_*.json e coloque-o no macro ou no diretório de caminhos (veja preferências) para ser selecionável desta lista. @@ -166,36 +166,36 @@ If enabled include all post processing settings in the template. - If enabled include all post processing settings in the template. + Se habilitado inclui todas as configurações de pós-processamento no template. Hint about the current post processing configuration. - Hint about the current post processing configuration. + Dica sobre a configuração atual do processamento de postagem. If enabled tool controller definitions are stored in the template. - If enabled tool controller definitions are stored in the template. + Se habilitado as definições do controlador de ferramenta serão armazenadas no template. Check all tool controllers which should be included in the template. - Check all tool controllers which should be included in the template. + Verificar todos os controles de ferramenta que devem ser incluídos no modelo. Enable to include values of the SetupSheet in the template. Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. - Enable to include values of the SetupSheet in the template. + Habilite para incluir os valores da Planilha de Configurações no modelo. -Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. +Quaisquer valores da Folha de Configuração que são alterados de seus padrões são pré-selecionados. Se este campo não for selecionado, a Planilha de configuração atual não foi modificada. Enable to include the default heights for operations in the template. - Enable to include the default heights for operations in the template. + Habilitar para incluir as alturas padrão para operações no modelo. @@ -210,7 +210,7 @@ Any values of the SetupSheet that are changed from their default are preselected Enable to include the default rapid tool speeds in the template. - Enable to include the default rapid tool speeds in the template. + Marque para incluir as velocidades padrões das ferramentas rápidas no modelo. @@ -653,27 +653,27 @@ For stock from the Base object's bounding box it means the extra material in all Radius of the Cylinder - Radius of the Cylinder + Raio do Cilindro Height of the Cylinder - Height of the Cylinder + Altura do Cilindro Length of the Box - Length of the Box + Comprimento da Caixa Width of the Box - Width of the Box + Largura da Caixa Height of the Box - Height of the Box + Altura da Caixa @@ -4404,7 +4404,7 @@ For example: Parent job %s doesn't have a base object - Parent job %s doesn't have a base object + Trabalho de origem %s não possui um objeto base @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Escolha uma tarefa de trajetória @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -5571,7 +5571,7 @@ For example: Show the temporary path construction objects when module is in DEBUG mode. - Show the temporary path construction objects when module is in DEBUG mode. + Mostra os objetos temporários de construção de trajetória quando o módulo está no modo DEBUG. @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Texto + + + + File + Arquivo + + + + Custom file %s could not be found. + O arquivo personalizado %s não pôde ser encontrado. + + + + Invalid Gcode line: %s + Linha Gcode inválida: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_pt-PT.ts b/src/Mod/Path/Gui/Resources/translations/Path_pt-PT.ts index 89c8c8bd97..513a5c19ac 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_pt-PT.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_pt-PT.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s não tem propriedade %s (%s) + + PathCustom + + + Text + Texto + + + + File + Ficheiro + + + + Custom file %s could not be found. + O arquivo personalizado %s não pôde ser encontrado. + + + + Invalid Gcode line: %s + Linha Gcode inválida: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ro.ts b/src/Mod/Path/Gui/Resources/translations/Path_ro.ts index 759acb1eec..e81bf7d28d 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ro.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ro.ts @@ -4513,7 +4513,7 @@ De exemplu: - + Choose a Path Job Alege o lucrare de traiectorie @@ -5291,7 +5291,7 @@ De exemplu: List of disabled features - + The G-code to be inserted Se introduce codul G-code @@ -7028,17 +7028,17 @@ De exemplu: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8218,12 +8218,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8418,4 +8418,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Text + + + + File + Fişier + + + + Custom file %s could not be found. + Fișierul nu a putut fi găsit. + + + + Invalid Gcode line: %s + Linie Gcode invalidă: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_ru.ts b/src/Mod/Path/Gui/Resources/translations/Path_ru.ts index 2af5ea9322..8b3093d6ef 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_ru.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_ru.ts @@ -4500,7 +4500,7 @@ For example: - + Choose a Path Job Выбрать задание Path @@ -5278,7 +5278,7 @@ For example: Список отключенных функций - + The G-code to be inserted Gcode будет вставлен @@ -7015,17 +7015,17 @@ For example: Срез - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. Выбранные ребра недоступны. Если их несколько, может работать переупорядочение выбора. - + Unable to create path for face(s). Не удалось создать путь для грани(-ей). - + Check edge selection and Final Depth requirements for profiling open edge(s). Проверьте выбор кромки и требования к конечной глубине для профилирования открытых кромок. @@ -8205,12 +8205,12 @@ Aborting op creation Path_Post - + Post Process Пост-процесс - + Post Process the selected Job Постобработка выбранного Задания @@ -8405,4 +8405,27 @@ Aborting op creation %s не имеет свойства %s (%s) + + PathCustom + + + Text + Текст + + + + File + Файл + + + + Custom file %s could not be found. + Пользовательский файл %s не найден. + + + + Invalid Gcode line: %s + Недопустимая строка G-code: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_sl.ts b/src/Mod/Path/Gui/Resources/translations/Path_sl.ts index 5186224c5c..4f01ad702d 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_sl.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_sl.ts @@ -116,7 +116,7 @@ Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. - Select a template to be used for the job. In case there are no templates you can create one through the popup menu of an existing job. Name the file job_*.json and place it in the macro or the path directory (see preferences) in order to be selectable from this list. + Izberite predlogo, ki jo želite uporabiti pri opravilu. Če ni nobene predloge, jo lahko ustverite v pojavnem meniju obstoječega opravila. Poimenujte datoteko opravilo_*.json in jo postavite v mapo makrov ali poti (glej prednastavitve), če želite, da jo bo mogoče izbrati na tem seznamu. @@ -166,36 +166,36 @@ If enabled include all post processing settings in the template. - If enabled include all post processing settings in the template. + Če je omogočeno, dodaj v predlogo tudi vse nastavitve poobdelave. Hint about the current post processing configuration. - Hint about the current post processing configuration. + Namig o nastavitvah trenutnega poopravila. If enabled tool controller definitions are stored in the template. - If enabled tool controller definitions are stored in the template. + Če je omogočeno, se opredelitve orodnega krmilnika shranijo v predlogo. Check all tool controllers which should be included in the template. - Check all tool controllers which should be included in the template. + Označi vse orodne krmilnike, ki jih želite vključiti v predlogo. Enable to include values of the SetupSheet in the template. Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. - Enable to include values of the SetupSheet in the template. + Omogočite, če želite vrednosti iz nastavitvenika shraniti v predlogo.. -Any values of the SetupSheet that are changed from their default are preselected. If this field not selected the current SetupSheet was not modified. +Katerakoli vredost iz nastavitvenika, ki je drugačna od privzete vrednosti, je predizbrana. Če to polje ni izbrano, trenutni nastavitvenik ni bil spremenjen. Enable to include the default heights for operations in the template. - Enable to include the default heights for operations in the template. + Omogočite, če želite opravilom v predlogi dodati privzete višine. @@ -210,12 +210,12 @@ Any values of the SetupSheet that are changed from their default are preselected Enable to include the default rapid tool speeds in the template. - Enable to include the default rapid tool speeds in the template. + Omogočite, če želite v predlogo dodati privzete hitrosti hitrih hodov orodja. Enable to include the default coolant mode in the template. - Enable to include the default coolant mode in the template. + Omogočite, če želite v predlogi zajeti tudi privzeti način hladila. @@ -224,26 +224,26 @@ Any values of the SetupSheet that are changed from their default are preselected This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. - If enabled the creation of stock is included in the template. If a template does not include a stock definition the default stock creation algorithm will be used (creation from the Base object's bounding box). + Če je omogočeno, je v predlogi zajeto tudi ustvarjanje surovca. Če v predlogi surovec ni opredeljen, bo uporabljen privzeti algoritem za njegovo ustvarjanje (ustvarjanje na polagi očrtnega kvadra izhodiščnega predmeta). -This option is most useful if stock is a box or cylinder, or if the machine has a standard placement for machining. +Ta možnost je najuporabnejša v primerih, ko je surovec kvader ali valj oz. če ima stroj običajno postavitev obdelovanja. -Note that this option is disabled if a stock object from an existing solid is used in the job - they cannot be stored in a template. +Opomba: ta možnost je onemogočena, če je surovec obstoječe telo. To ne more biti shranjeno v predlogi. Hint about the current stock extent setting. - Hint about the current stock extent setting. + Namig o postavitvi trenutnega surovca. If enabled the current placement of the stock solid is stored in the template. - If enabled the current placement of the stock solid is stored in the template. + Če je omogočeno, se trenutna postavitev surovca shrani v predlogo. Hint about the current stock placement. - Hint about the current stock placement. + Namig o trenutni postavitvi surovca. @@ -276,11 +276,11 @@ Opomba: našteta so le opravila, ki imajo trenutno nastavljene nastavitvene vred For Box and Cylinder stocks this means the actual size of the stock solid being created. For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. - If enabled the current size settings for the stock object are included in the template. + Če je omogočeno, bodo trenutne nastavitve velikosti surovca zajete v predlogi. -For Box and Cylinder stocks this means the actual size of the stock solid being created. +Pri kvadernih in valjastih surovcih to predstavlja dejansko velikost ustvarjanega surovca. -For stock from the Base object's bounding box it means the extra material in all directions. A stock object created from such a template will get its basic size from the new job's Base object and apply the stored extra settings. +Pri surovcih z očrtnim kvadrom izhodiščnega predmeta to pomeni dodaten material na vseh straneh. Surovec, ki bo ustvarjen po takšni predlogi, bo dobil osnovno velikost od izhodiščnega predmeta novega opravila, dodane pa mu bodo shranjene nastavitve. @@ -305,7 +305,7 @@ For stock from the Base object's bounding box it means the extra material in all Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. - Select one of the post processors. FreeCAD comes with several post processors pre-installed, please make sure at least one of them is enabled in your preferences. + Izberite enega izmed poobdelovalnikov. S FreeCADom dobite prednameščenih več poobdelovalnikov. Preverite, ali je vsaj eden v vaših prednastavitvah že omogočen. @@ -385,27 +385,27 @@ For stock from the Base object's bounding box it means the extra material in all Name of property. Can only contain letters, numbers, and underscores. MixedCase names will display with spaces "Mixed Case" - Name of property. Can only contain letters, numbers, and underscores. MixedCase names will display with spaces "Mixed Case" + Ime lastnosti lahko vsebuje le črke, številke in podčrtaje. Medzačetniška imena bodo prikazana s presledki "Medzačetnice" The category group the property belongs to. - The category group the property belongs to. + Zvrstna skupina, v katero spada lastnost. The type of the property value. - The type of the property value. + Vrsta lastnostne vrenosti. ToolTip to be displayed when user hovers mouse over property. - ToolTip to be displayed when user hovers mouse over property. + Orodni namig, ki se prikaže pri prečenju z miško čez lastnost. Check if you want to create several properties in a batch. - Check if you want to create several properties in a batch. + Označite, če želite več lastnosti ustvariti v svežnju. @@ -420,7 +420,7 @@ For stock from the Base object's bounding box it means the extra material in all val1,val2,val3,... - val1,val2,val3,... + vr1,vr2,vr3, ... @@ -450,37 +450,37 @@ For stock from the Base object's bounding box it means the extra material in all Add existing Tool Bit to this library. - Add existing Tool Bit to this library. + Dodaj tej knjižnici obstoječi orodni nastavek. Delete selected Tool Bit(s) from the library. - Delete selected Tool Bit(s) from the library. + Odstrani iz knjižnice izbrane orodne nastavke. Select a working path for the tool library editor. - Select a working path for the tool library editor. + Izberite delovno pot urejevalnika orodne knjižnice. Add New Tool Table - Add New Tool Table + Dodaj novo orodno preglednico Save the selected library with a new name or export to another format - Save the selected library with a new name or export to another format + Shrani izbrano knjižnico pod drugim imenom ali izvozi v drug zapis Table of Tool Bits of the library. - Table of Tool Bits of the library. + Preglednica orodnih nastavkov knjižnice. Save the current Library - Save the current Library + Shrani trenutno knjižnico @@ -583,7 +583,7 @@ For stock from the Base object's bounding box it means the extra material in all Select what type of shape to use to constrain the underlying Path. - Select what type of shape to use to constrain the underlying Path. + Izberite vrsto oblike, s katero želite omejiti izhodiščno pot. @@ -603,7 +603,7 @@ For stock from the Base object's bounding box it means the extra material in all Select the body to be used to constrain the underlying Path. - Select the body to be used to constrain the underlying Path. + Izberite telo, s katerim želite omejiti izhodiščno pot. @@ -613,12 +613,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinX - Extension of bounding box's MinX + Razširitev najm. X-a očrtnega kvadra Extension of bounding box's MaxX - Extension of bounding box's MaxX + Razširitev najv. X-a očrtnega kvadra @@ -628,12 +628,12 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinY - Extension of bounding box's MinY + Razširitev najm. Y-a očrtnega kvadra Extension of bounding box's MaxY - Extension of bounding box's MaxY + Razširitev najv. Y-a očrtnega kvadra @@ -643,47 +643,47 @@ For stock from the Base object's bounding box it means the extra material in all Extension of bounding box's MinZ - Extension of bounding box's MinZ + Razširitev najm. Z-ja očrtnega kvadra Extension of bounding box's MaxZ - Extension of bounding box's MaxZ + Razširitev najv. Z-a očrtnega kvadra Radius of the Cylinder - Radius of the Cylinder + Polmer valja Height of the Cylinder - Height of the Cylinder + Višina valja Length of the Box - Length of the Box + Dolžina kvadra Width of the Box - Width of the Box + Širina kvadra Height of the Box - Height of the Box + Višina kvadra If checked the path is constrained by the solid. Otherwise the volume of the solid describes a 'keep out' zone - If checked the path is constrained by the solid. Otherwise the volume of the solid describes a 'keep out' zone + Če je označeno, je pot zamejena s telesom. V nasprotnem primeru prostornina telesa označuje območje izogibanja Extend Model's Bounding Box - Extend Model's Bounding Box + Razširi očrtni kvader oblikovanca @@ -714,7 +714,7 @@ For stock from the Base object's bounding box it means the extra material in all List of operations with Base Geometry in current Job - List of operations with Base Geometry in current Job + Seznam dejanj z izhodiščno geometrijo v trenutnem opravilu @@ -724,22 +724,22 @@ For stock from the Base object's bounding box it means the extra material in all Select one or more features in the 3d view and press 'Add' to add them as the base items for this operation. Selected features can be deleted entirely. - Select one or more features in the 3d view and press 'Add' to add them as the base items for this operation. Selected features can be deleted entirely. + Izberite v 3D pogledu eno ali več značilnosti in pritisnite "Dodaj", da postanejo izhodiščni predmeti tega dejanja. Izbrane značilnosti je mogoče v celoti izbrisati. Add selected features to the list of base geometries for this operation - Add selected features to the list of base geometries for this operation + Dodaj na seznam izhodiščnih geometij tega dejanja izbrane značilnosti Remove the selected list items from the list of base geometries. The operation will not be applied to them. - Remove the selected list items from the list of base geometries. The operation will not be applied to them. + Odstrani izbrane predmete s seznama izhodiščnih geometrij. Dejanje zanje ne bo uveljavljeno. Clears list of base geometries - Clears list of base geometries + Počisti seznam izhodiščnih geometrij @@ -769,11 +769,11 @@ For stock from the Base object's bounding box it means the extra material in all You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. - Table of hole features and the determined radius of the associated hole. + Preglednica izvrtinskih značilnosti in določenih polmerov povezane izvrtine. -You can add feature for processing by selecting them and then pressing Add. If a feature is accidentally added to the list it can be removed through Remove and will no longer be processed. +Značilnosti lahko za obdelovanje dodate tako, da jih izbere in kliknete na Dodaj. Če je značilnost na seznam dodana po pomoti, jo lahko umaknete z Odstrani in ne bo več obdelana. -Reset deletes all current items from the list and fills the list with all circular holes eligible for the operation from the model. You can again refine the list afterwards by enabling/disabling, removing and adding features. +Ponastavitev izbriše vse trenutne predmete s seznama in izpolni seznam z vsemi okroglimi izvrtinami, primernimi za dejanja z oblikovanca. Kasneje lahko seznam z omogočanjem, onemogočanjem, odstranjanjem in dodajanjem značilnost še vendno prilagajate. @@ -789,17 +789,17 @@ Reset deletes all current items from the list and fills the list with all circul Add selected items from 3d view to the list of base geometries - Add selected items from 3d view to the list of base geometries + Dodaj na seznam izhodiščnih geometrij izbrane predmete s 3D pogleda Remove selected list items from the list of base geometries. The operation is no longer applied to them. - Remove selected list items from the list of base geometries. The operation is no longer applied to them. + Odstrani izbrane predmete s seznama izhodiščnih geometrij. Dejanje zanje ne velja več. Remove all list items and fill list with all eligible features from the job's base object. - Remove all list items and fill list with all eligible features from the job's base object. + Počisti celoten seznam in ga izpolni z vsemi primernimi značilnostmi izhodiščnega predmeta opravila. @@ -815,7 +815,7 @@ Reset deletes all current items from the list and fills the list with all circul List of locations to be processed. - List of locations to be processed. + Seznam mest za obdelavo. @@ -830,17 +830,17 @@ Reset deletes all current items from the list and fills the list with all circul Opens a dialog to add arbitrary locations. - Opens a dialog to add arbitrary locations. + Odpre pogovorno okno za ododajanje poljubnih položajev. Remove selected location from the list. The operation is no longer applied to them. - Remove selected location from the list. The operation is no longer applied to them. + Odstrani izbrano mesto s seznama. Dejanje zanj ne velja več. Edit selected location. - Edit selected location. + Uredi izbrano mesto. @@ -862,35 +862,35 @@ Reset deletes all current items from the list and fills the list with all circul Start Depth of the operation. The highest point in Z-axis the operation needs to process. - Start Depth of the operation. The highest point in Z-axis the operation needs to process. + Začetna globina dejanja. Najvišja točka na osi Z, ki jo mora dejanje obdelati. Transfer the Z value of the selected feature as the Start Depth for the operation. - Transfer the Z value of the selected feature as the Start Depth for the operation. + Prenesi vrednost Z izbrane značilnosti kot začetno globino dejanja. The depth of the operation which corresponds to the lowest value in Z-axis the operation needs to process. - The depth of the operation which corresponds to the lowest value in Z-axis the operation needs to process. + Globina dejanja, ki odgovarja najnižji vrednosti na osi Z in jo mora dejanje obdelati. Transfer the Z value of the selected feature as the Final Depth for the operation. - Transfer the Z value of the selected feature as the Final Depth for the operation. + Prenesi vrednost Z izbrane značilnosti kot končno globino dejanja. The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. - The depth in Z-axis the operation moves downwards between layers. This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value. + Globina na osi Z, po kateri se dejanje premika med plastmi navzdol. Vrednost je odvisna od uporabljenega orodja, rezkane snovi, razpoložljivosti hlajenja in še mnogo drugih dejavnikov. Za določitev pravilne vrednosti preverite proizvajalčev tehnični list. Depth of the final cut of the operation. Can be used to produce a cleaner finish. - Depth of the final cut of the operation. Can be used to produce a cleaner finish. + Globina zadnjega reza dejanja. Služi lahko doseganju gladkejše zaključne obdelave. @@ -927,12 +927,12 @@ Reset deletes all current items from the list and fills the list with all circul The height above which it is safe to move the tool bit with rapid movements. Below this height all lateral and downward movements are performed with feed rate speeds. - The height above which it is safe to move the tool bit with rapid movements. Below this height all lateral and downward movements are performed with feed rate speeds. + Višina, nad katero je varno premikanje orodnih nastavkov s hitrimi hodi. Vsi vodoravni in navpični premiki se pod to višino izvajajo s hitrostmi podajanja. The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. - The height where lateral movement of the toolbit is not obstructed by any fixtures or the part / stock material itself. + Višina, pri kateri bočnega gibanja orodnega nastavka ne ovirajo pritrdila ali gradivo dela oz. surovca. @@ -953,7 +953,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Orodje in njegove nastavitve za to dejanje. @@ -1010,12 +1010,12 @@ Reset deletes all current items from the list and fills the list with all circul Cut Region - Cut Region + Območje reza Operation Type - Operation Type + Vrsta dejanja @@ -1046,27 +1046,27 @@ Reset deletes all current items from the list and fills the list with all circul Lift Distance - Lift Distance + Višina dviga Keep Tool Down Ratio - Keep Tool Down Ratio + Količnik ohranjanja spuščenega orodja Stock to Leave - Stock to Leave + Puščanje surovca Force Clearing Inside-out - Force Clearing Inside-out + Vsili čiščenje od znotraj navzven Finishing Profile - Finishing Profile + Dokončevalni oris @@ -1077,47 +1077,47 @@ Reset deletes all current items from the list and fills the list with all circul Influences calculation performance vs stability and accuracy - Influences calculation performance vs stability and accuracy + Vpliva na razmerje med učinkovitostjo računanja in natančnostjo ter stabilnostjo Cut inside or outside of the selected shapes - Cut inside or outside of the selected shapes + Rezkanje po notranji ali zunanji strani izbranih oblik If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used - If greater than zero it limits the helix ramp diameter, otherwise 75 percent of tool diameter is used + Če je večji od nič, omejuje premer vijačnega dviganja, v nasprotnem primeru pa se upošteva 75 odstotkov premera orodja How much to lift the tool up during the rapid linking moves over cleared regions. If linking path is not clear tool is raised to clearance height. - How much to lift the tool up during the rapid linking moves over cleared regions. If linking path is not clear tool is raised to clearance height. + Koliko se dvigne orodje pri hitrih povezovalnih premikih nad prostimi območji. Če povezovalna pot ni prosta, se orodje dvigne na prosto višino. Max length of keep-tool-down linking path compared to direct distance between points. If exceeded link will be done by raising the tool to clearance height. - Max length of keep-tool-down linking path compared to direct distance between points. If exceeded link will be done by raising the tool to clearance height. + Največja dolžina povezovalne poti v načinu "ohranjanja spuščenega orodja" v primerjavi z ravno razdaljo med točkama. Če je navečja dolžina presežena, bo povezava izvedena z dvigom orodja na prosto višino. How much material to leave (i.e. for finishing operation) - How much material to leave (i.e. for finishing operation) + Koliko gradiva se pusti (tj. pri dokončevalnih dejanjih) The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. + Koliko se orodje vodoravno zmakne pri vsaki ponovitvi vzorca je določeno v odstotnem deležu premera orodja. Stoodstotni zmik pomeni, da se pri ponovitvi vzorec ne prekriva. Angle of the helix ramp entry - Angle of the helix ramp entry + Kot vstopanja v vijačno klančino Angle of the helix entry cone - Angle of the helix entry cone + Kot stožca vijačnega vstopa @@ -1135,7 +1135,7 @@ Reset deletes all current items from the list and fills the list with all circul The direction in which the profile is performed, clockwise or counterclockwise. - The direction in which the profile is performed, clockwise or counterclockwise. + Smer izvajanje orisa; v smeri urinega kazalca ali v nasprotni smeri urinega kazalca. @@ -1153,22 +1153,22 @@ Reset deletes all current items from the list and fills the list with all circul Width of chamfer cut. - Width of chamfer cut. + Širina prisekave. Extra depth of tool immersion. - Extra depth of tool immersion. + Dodatna poglobitev orodja. Round joint - Round joint + Zaokrožen spoj Miter joint - Miter joint + Spoj na zajero @@ -1218,12 +1218,12 @@ Reset deletes all current items from the list and fills the list with all circul Don't retract after every hole - Don't retract after every hole + Brez vračanja po vsak izvrtini Keep Tool Down - Keep Tool Down + Ohrani orodje spuščeno @@ -1253,7 +1253,7 @@ Reset deletes all current items from the list and fills the list with all circul Chip Break - Chip Break + Prelom odrezka @@ -1263,7 +1263,7 @@ Reset deletes all current items from the list and fills the list with all circul Specify the vertex number of the underlying shape string at which engraving should start. - Specify the vertex number of the underlying shape string at which engraving should start. + Določi številko oglišča podložene oblike, pri katerem naj se začne vrezovanje. @@ -1273,7 +1273,7 @@ Reset deletes all current items from the list and fills the list with all circul Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. - Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. + Določite, ali naj dejanje vijačnice začne znotraj in se pomika proti zunanjosti, ali naj prične zunaj se pomika proti središču. @@ -1288,12 +1288,12 @@ Reset deletes all current items from the list and fills the list with all circul The direction for the helix, clockwise or counterclockwise. - The direction for the helix, clockwise or counterclockwise. + Smer vijačnice; v smeri urinega kazalca ali v nasprotni smeri urinega kazalca. Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. - Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. + Določi zamik vsake vijačnice glede na predhodnjo kot odstotek premera orodja. Stoodstotni zmik pomeni, da se rezi med seboj ne prekrivajo. @@ -1309,7 +1309,7 @@ Reset deletes all current items from the list and fills the list with all circul Enable Extensions - Enable Extensions + Omogoči razširitve @@ -1319,7 +1319,7 @@ Reset deletes all current items from the list and fills the list with all circul If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow - If selected all potential extensions are visualised. Enabled extensions in purple and not enabled extensions in yellow + Če je izbrano, bodo vse morebitne razširitve prikazane: omogočene škrlatno in onemogočene rumeno @@ -1334,27 +1334,27 @@ Reset deletes all current items from the list and fills the list with all circul Set the extent of the dimension -the default value is half the tool diameter - Set the extent of the dimension -the default value is half the tool diameter + Določi podaljšanje mere - privzeta vrednost je polovica premera orodja Tree of existing edges and their potential extensions - Tree of existing edges and their potential extensions + Drevo obstoječih robov in morebitnih njihovih razširitev Enable the currently selected pocket extension - Enable the currently selected pocket extension + Omogoči trenutno izbrani podaljšek ugreza Disable the currently selected pocket extension - Disable the currently selected pocket extension + Onemogoči trenutno izbrani podaljšek ugreza Remove all currently enabled extensions - leaving the plain pocket operation - Remove all currently enabled extensions - leaving the plain pocket operation + Odstrani vse omogočene razširitve - ohrani le osnovno dejanje ugreza @@ -1405,7 +1405,7 @@ Reset deletes all current items from the list and fills the list with all circul The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Orodje in njegove nastavitve za to dejanje @@ -1419,12 +1419,12 @@ The latter can be used to face of the entire stock area to ensure uniform height The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction - The cutting mode assumes that the cut on one side of the tool bit represents the resulting part and the other side is either already milled away or will be removed later on. Climb mode is when the tool bit is moved into the cut on each rotation, whereas in conventional mode the tool bit's rotation and the tool's lateral movement are in the same direction + Rezalni način predpostavlja, da rez na eni strani orodnega nastavka predstavlja željeni del, druga stran pa je bodisi že odrezkana ali pa bo odstranjena pozneje. Pri istosmernem načinu se orodni nastavke pomika v rez po vsakem zasuku, medtem ko sta pri protismernem načinu zasuk in vodoravno gibanje nastavka v isti smeri Pattern the tool bit is moved in to clear the material - Pattern the tool bit is moved in to clear the material + Vzorec s katerim orodje napreduje, da umika gradivo @@ -1464,27 +1464,27 @@ The latter can be used to face of the entire stock area to ensure uniform height Angle in which the pattern is applied - Angle in which the pattern is applied + Kot razpostavljanja The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles + Koliko se orodje vodoravno zmakne pri vsaki ponovitvi vzorca je določeno v odstotnem deležu premera orodja. Več kot stoodstotni zmik pomeni, da se pri ponovitvi vzorec ne prekriva The amount of material that should be left by this operation in relation to the target shape - The amount of material that should be left by this operation in relation to the target shape + Količina gradiva v odnosu na željeno obliko, ki naj po končanem dejanju ostane Specify if this operation uses a starting point - Specify if this operation uses a starting point + Določi, če ima to dejanje izhodišče If selected the operation uses the outline of the selected base geometry and ignores all holes and islands - If selected the operation uses the outline of the selected base geometry and ignores all holes and islands + Če je označeno, dejanje uporabi le zunanji obris izbrane izhodiščne geometrije ter prezre vse luknje in otoke @@ -1501,7 +1501,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Clear Edges - Clear Edges + Popravi robove @@ -1551,7 +1551,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Enter the filename where the probe points should be written - Enter the filename where the probe points should be written + Vnesite ime datoteke, v katero želite shraniti tipalne točke @@ -1566,7 +1566,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Specify if the profile should be performed inside or outside the base geometry features. This only matters if Use Compensation is checked (the default) - Specify if the profile should be performed inside or outside the base geometry features. This only matters if Use Compensation is checked (the default) + Določite, ali naj se oris izvede znotraj ali izven značilnosti izhodiščne geometrije. To je pomembno le, če je označeno "Uporabi izravnavo" (privzeto) @@ -1577,37 +1577,37 @@ The latter can be used to face of the entire stock area to ensure uniform height The direction in which the profile is performed, clockwise or counterclockwise - The direction in which the profile is performed, clockwise or counterclockwise + Smer izvajanje orisa; v smeri urinega kazalca ali v nasprotni smeri urinega kazalca The amount of extra material left by this operation in relation to the target shape - The amount of extra material left by this operation in relation to the target shape + Količina gradiva v odnosu na željeno obliko, ki po končanem dejanju ostane Check if this operation should use a starting point - Check if this operation should use a starting point + Označite, če želite, da to dejanje uporabi izhodišče Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled - Check if this profile operation should also process holes in the base geometry. Found holes are automatically offset on the opposite cut side and performed in the opposite direction as perimeters. Note that this does not include cylindrical holes, the assumption being that they will get drilled + Označite, če želite, da to dejanje orisa obdela tudi luknje v izhodiščni geometriji. Prepoznane luknje se samodejno odmakne na nasprotno stran rezanja in izvede v drugi smeri od oboda. Opomba: to ne vključuje valjastih lukenj, saj je predvideno, da se bodo vrtale If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side - If checked the profile operation is offset by the tool radius. The offset direction is determined by the Cut Side + Če je označeno, je oris dejanja odmaknjen za polmer orodja. Smer odmikanja je določena s stranjo rezkanja Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values - Check if you want this profile operation to also be applied to cylindrical holes, which normally get drilled. This can be useful if no drill of adequate size is available or the number of holes don't warrant a tool change. Note that the cut side and direction is reversed in respect to the specified values + Označite, če želite, da se dejanje tega orisa uporabi tudi za valjaste luknje, čeprav se jih navadno vrta. To je lahko uporabno, če nimate svedra prave velikosti, ali pa se zaradi števila lukenj orodja ne splača menjati. Pozor, stran in smer rezkanja se obrneta glede na podane vrednosti Check if this profile operation should also process the outside perimeter of the base geometry shapes - Check if this profile operation should also process the outside perimeter of the base geometry shapes + Označite, če želite, da orisno dejanje obdela tudi zunanji obod oblik izhodiščne geometrije @@ -1632,17 +1632,17 @@ The latter can be used to face of the entire stock area to ensure uniform height Start Feature Reference - Start Feature Reference + Začetni sklic značilnosti The tool and its settings to be used for this operation - The tool and its settings to be used for this operation + Orodje in njegove nastavitve za to dejanje Choose what point to use on the first selected feature - Choose what point to use on the first selected feature + Izberite, katero točko na prvoizbrani značilnosti se uporabi @@ -1654,7 +1654,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Center of Bounding Box - Center of Bounding Box + Središče očrtnega kvadra @@ -1687,47 +1687,47 @@ The latter can be used to face of the entire stock area to ensure uniform height End Feature Reference - End Feature Reference + Končni sklic značilnsoti Choose what point to use on the second selected feature - Choose what point to use on the second selected feature + Izberite, katero točko na drugoizbrani značilnosti se uporabi No Base Geometry selected - No Base Geometry selected + Izbrane ni nobene izhodiščne geometrije Currently using custom point inputs in the Property View of the Data tab - Currently using custom point inputs in the Property View of the Data tab + Trenutno je v uporabi vnašanje točk po meri v lastnostnem prikazu, znotraj podatkovnega zavihka Positive extends the beginning of the path, negative shortens - Positive extends the beginning of the path, negative shortens + Pozitivna vrednost začetek poti podaljša, negativna pa ga skrajša Positive extends the end of the path, negative shortens - Positive extends the end of the path, negative shortens + Pozitivna vrednost konec poti podaljša, negativna pa ga skrajša Complete the operation in a single pass at depth, or multiple passes to final depth - Complete the operation in a single pass at depth, or multiple passes to final depth + Končaj dejanje v enem prehodu na globini ali postopno z večkratnim prehodom do končne globine Choose the path orientation with regard to the feature(s) selected - Choose the path orientation with regard to the feature(s) selected + Izberite usmeritev poti glede na izbrane značilnosti Enable to reverse the cut direction of the slot path - Enable to reverse the cut direction of the slot path + Omogočite, če želite obrniti smer rezkanj utorove poti @@ -1737,7 +1737,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Currently using custom point inputs available in the Property View of the Data tab. - Trenutno je v uporabi vnašanje točk po meri, ki je na voljo v pogledu z lastnostmi, znotraj podatkovnega zavihka. + Trenutno je v uporabi vnašanje točk po meri, ki je na voljo v lastnostnem prikazu znotraj podatkovnega zavihka. @@ -1849,7 +1849,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Bounding box extra offset X, Y - Bounding box extra offset X, Y + Dodatni odmik očrtnega kvadra po x in y @@ -1882,7 +1882,7 @@ The latter can be used to face of the entire stock area to ensure uniform height If true, the cutter will remain inside the boundaries of the model or selected face(s) - If true, the cutter will remain inside the boundaries of the model or selected face(s) + Če drži, bo rezkar ostal znotraj meja oblikovanca ali izbranih ploskev @@ -1921,9 +1921,9 @@ The latter can be used to face of the entire stock area to ensure uniform height The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. A step over of 100% results in no overlap between two different cycles. - The amount by which the tool is laterally displaced on each cycle of the pattern, specified in percent of the tool diameter. + Vrednost vodoravnega zmika orodja pri vsaki ponovitvi vzorca je določena v odstotnem deležu premera orodja. -A step over of 100% results in no overlap between two different cycles. +Več kot stoodstotni zmik pomeni, da se pri ponovitvi vzorec ne prekriva. @@ -1962,27 +1962,27 @@ A step over of 100% results in no overlap between two different cycles.Expression set as the StartDepth of a newly created operation. Default: OpStartDepth - Expression set as the StartDepth of a newly created operation. + Nastavitev izraza kot Začetna globina novoustvarjenega dejanja. -Default: OpStartDepth +Privzeto: OpStartDepth Expression set as the FinalDepth for a newly created operation. Default: OpFinalDepth - Expression set as the FinalDepth for a newly created operation. + Nastavitev izraza kot Končna globina novoustvarjenega dejanja. -Default: OpFinalDepth +Privzeto: OpFinalDepth Expression set as the StepDown of a newly created operation. Default: OpToolDiameter - Expression set as the StepDown of a newly created operation. + Nastavitev izraza kot Spust pri novoustvarjenem dejanju. -Default: OpToolDiameter +Privzeto: OpToolDiameter @@ -2009,37 +2009,36 @@ Default: OpToolDiameter Expression set as ClearanceHeight for new operations. Default: "OpStockZMax+SetupSheet.ClearanceHeightOffset" - Expression set as ClearanceHeight for new operations. + Izraz nastavljen kot Prosta višina prehoda za nova opravila. -Default: "OpStockZMax+SetupSheet.ClearanceHeightOffset" +Privzeto: "NajvZSurovcaOpr+OdmikProsteVišinePrehoda.vNastavitveniku (OpStockZMax+SetupSheet.ClearanceHeightOffset)" Expression set as SafeHeight for new operations. Default: "OpStockZMax+SetupSheet.SafeHeightOffset" - Expression set as SafeHeight for new operations. - -Default: "OpStockZMax+SetupSheet.SafeHeightOffset" + Izraz nastavljen kot Varna višina prehoda za nova opravila. +Privzeto: "NajvZSurovcaOpr+OdmikVarneVišinePrehoda.vNastavitveniku (OpStockZMax+SetupSheet.SafeHeightOffset)" SafeHeightOffset can be for expressions to set the SafeHeight for new operations. Default: "5mm" - SafeHeightOffset can be for expressions to set the SafeHeight for new operations. + OdmikVarneVišine je mogoče z izrazi uporabiti za nastavljanje varne višine pri novih dejanjih. -Default: "5mm" +Privzeto: "5 mm" Rapid horizontal speed assigned as HorizRapid to new ToolController. - Rapid horizontal speed assigned as HorizRapid to new ToolController. + Hitrost vodoravnega hitrega hoda dodeljena novemu krmilniku orodja kot VodHitriHod (HorizRapid). Rapid vertical speed assigned to VertRapid of new ToolController. - Rapid vertical speed assigned to VertRapid of new ToolController. + Hitrost navpičnega hitrega hoda dodeljena novemu krmilniku orodja kot NavHitriHod (VertRapid). @@ -2135,7 +2134,7 @@ Privzeto: 3 mm This value is used in discretizing arcs into segments. Smaller values will result in larger gcode. Larger values may cause unwanted segments in the medial line path. - This value is used in discretizing arcs into segments. Smaller values will result in larger gcode. Larger values may cause unwanted segments in the medial line path. + Vrednost se uporablja pri poenostavljanju loka v odseke. Z manjšimi vrednostmi dobimo večjo g-kodo, višje vrednosti pa lahko privedejo do neželjenih odsekov na srednjični poti. @@ -2288,37 +2287,37 @@ Privzeto: 3 mm Set the default width of holding tags. If the width is set to 0 the dressup will try to guess a reasonable value based on the path itself. - Set the default width of holding tags. + Določi privzeto širino mostičkov. -If the width is set to 0 the dressup will try to guess a reasonable value based on the path itself. +Če je širina nastavljena na 0, bo postopek dodelave na podlagi poti skušal določiti razumno vrednost. Default height of holding tags. If the specified height is 0 the dressup will use half the height of the part. Should the height be bigger than the height of the part the dressup will reduce the height to the height of the part. - Default height of holding tags. + Privzeta višina mostičkov. -If the specified height is 0 the dressup will use half the height of the part. Should the height be bigger than the height of the part the dressup will reduce the height to the height of the part. +Če je izbrana višina 0, bo pri dodelavi uporabljena polovična višina dela. Če bi bil mostiček višji od dela, bo pri dodelavi višina izenačena z višino dela. Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Kot zarivanja pri dviganju in spuščanju mostička. Radius of the fillet on the tag's top edge. If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. - Radius of the fillet on the tag's top edge. + Polmer zaokrožitve zgornjega roba mostička. -If the radius is bigger than that which the tag shape itself supports, the resulting shape will be that of a dome. +Če je polmer večji od možnega glede na mostiček, bo dobljena oblika kupole. Specify the number of tags generated when a new dressup is created. - Specify the number of tags generated when a new dressup is created. + Določite, koliko mostičkov se ustvari pri novi dodelavi. @@ -2505,7 +2504,7 @@ Za reševanja nasprotij v imenu si poglejte spoda pravila shranjevanja datotek.< Mod/Path - Mod/Path + Mod/Pot @@ -2517,9 +2516,9 @@ Za reševanja nasprotij v imenu si poglejte spoda pravila shranjevanja datotek.< Path to look for templates, post processors, tool tables and other external files. If left empty the macro directory is used. - Path to look for templates, post processors, tool tables and other external files. + Pot za iskanje predlog, poobdelovalnikov, orodnih preglednic in drugih zunanjih datotek. -If left empty the macro directory is used. +Če pustite prazno, bo uporabljena mapa z makri. @@ -2528,31 +2527,31 @@ If left empty the macro directory is used. This can be helpful when almost all jobs will be processed by the same machine with a similar setup. If left empty no template will be preselected. - The default template to be selected when creating a new Job. + Privzeta predloga, ki je izbrana pri ustvarjanju novega opravila. -This can be helpful when almost all jobs will be processed by the same machine with a similar setup. +To je lahko v veliko pomoč posebno, ko se večina opravil izvaja z istim orodjem in podobnimi nastavitvami. -If left empty no template will be preselected. +Če pustite prazno, ne bo predizbrana nobena predloga. Choose how to deal with potential file name conflicts. Always open a dialog, only open a dialog if the output file already exists, overwrite any existing file or add a unique (3 digit) sequential ID to the file name. - Choose how to deal with potential file name conflicts. Always open a dialog, only open a dialog if the output file already exists, overwrite any existing file or add a unique (3 digit) sequential ID to the file name. + Izberite način spopadanja z navzkrižji pri poimenovanju datotek. Vedno odpri pogovorno okno, pogovorno okno odpri le, če izhodna datoteka že obstaja, prepiši katerokoli obstoječo datoteko ali dodaj k imenu datoteke (troštevilčno) enolično zaporedno določilo. It doesn't seem there are any post processor scripts installed. Please add some into your macro directory and make sure the file name ends with &quot;_post.py&quot;. - It doesn't seem there are any post processor scripts installed. Please add some into your macro directory and make sure the file name ends with &quot;_post.py&quot;. + Kaže, da ni namešen noben poobdeovalni skript. Dodajte jih nekaj v vašo mapo makrov in poskrbite, da se njihova imena končajo z &quot;_post.py&quot;. Select one of the post processors as the default. - Select one of the post processors as the default. + Določite enega izmed poobdelovalnikov kot privzetega. Optional arguments passed to the default Post Processor specified above. See the Post Processor's documentation for supported arguments. - Optional arguments passed to the default Post Processor specified above. See the Post Processor's documentation for supported arguments. + Neobvezne spremenljivke, posredovane privzetemu, zgoraj navedenemu, poobdelovalniku. Preberite si gradivo poobdelovalnika o podprtih spremenljivkah. @@ -2577,7 +2576,7 @@ If left empty no template will be preselected. Extend Model's Bounding Box - Extend Model's Bounding Box + Razširi očrtni kvader oblikovanca @@ -2645,9 +2644,9 @@ If left empty no template will be preselected. References to Tool Bits and their shapes can either be stored with an absolute path or with a relative path to the search path. Generally it is recommended to use relative paths due to their flexibility and robustness to layout changes. Should multiple tools or tool shapes with the same name exist in different directories it can be required to use absolute paths. - References to Tool Bits and their shapes can either be stored with an absolute path or with a relative path to the search path. -Generally it is recommended to use relative paths due to their flexibility and robustness to layout changes. -Should multiple tools or tool shapes with the same name exist in different directories it can be required to use absolute paths. + Sklici na Orodne nastavke in njihove oblike imajo lahko shranjeno neodnosno pot ali pot odnosno na iskalno pot. +Navadno se priporoča uporabo odnosnih poti zaradi njihove prilagodljivosti in neobčutljivosti na spremembe postavitve. +Če bi obstajalo več orodij ali oblik orodij z enakim imenom v različnih mapah, je potrebno uporabiti neodnosne poti. @@ -2774,7 +2773,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Task Panel Layout - Razporeditev na opravilni plošči + Razporeditev na opravilnem podoknu @@ -2881,12 +2880,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Enable Lead-in move - Enable Lead-in move + Omogoči vstopni premik Enable Lead In - Enable Lead In + Omogoči vstopanje @@ -2898,12 +2897,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Length / Radius - Length / Radius + Dolžina / Polmer length or radius of the Lead-in - length or radius of the Lead-in + dolžina ali polmer vstopanja @@ -2914,57 +2913,57 @@ Should multiple tools or tool shapes with the same name exist in different direc extends the leadin distance - extends the leadin distance + poveča razdaljo vstopanja Enable Lead-out move - Enable Lead-out move + Omogoči izstopni premik Enable Lead Out - Enable Lead Out + Omogoči izstopanje length or radius of the Lead-out - length or radius of the Lead-out + dolžina ali polmer izstopanja Extends the leadout distance - Extends the leadout distance + Poveča razdaljo izstopanja Plunge at rapid speed - Plunge at rapid speed + Zarivanje s hitrim hodom Apply Lead In/Out on all layers - Apply Lead In/Out on all layers + Uveljavi vstopanje oz. izstopanje na vseh plasteh Keep the tool down in the path - Keep the tool down in the path + Ohrani orodje spuščeno na poti Keep Tool Down - Keep Tool Down + Ohrani orodje spuščeno Rapid Plunge - Rapid Plunge + Hitrohodni spust Include Layers - Include Layers + Zajemi plasti @@ -2985,7 +2984,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Length/Radius positive not Null - Length/Radius positive not Null + Dolžina/polmer večja od nič @@ -2995,22 +2994,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path - Creates a Cutter Radius Compensation G41/G42 Entry Dressup object from a selected path + Ustvari iz izbrane poti dodelavo vstopanja G41/G42 s popravkom polmera orodja Please select one path object - Please select one path object + Izberite eno pot The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot Please select a Profile object - Please select a Profile object + Izberite oris @@ -3047,12 +3046,12 @@ Should multiple tools or tool shapes with the same name exist in different direc The radius of the wrapped axis - The radius of the wrapped axis + Polmer ovite osi The input mapping axis. Coordinates of the first axis will be mapped to the second. - The input mapping axis. Coordinates of the first axis will be mapped to the second. + Vhodna os preslikavanja. Sorednice prve osi bodo preslikane v drugo os. @@ -3093,7 +3092,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Dressup - Dodelava (samodejne običajne dodatne poti za orodje) + Dodelava (samodejne običajno dodatne poti za orodje) @@ -3138,7 +3137,7 @@ Should multiple tools or tool shapes with the same name exist in different direc On which side of the profile bones are inserted - this also determines which corners are dressed up. The default value is determined based on the profile being dressed up. - On which side of the profile bones are inserted - this also determines which corners are dressed up. The default value is determined based on the profile being dressed up. + Stran orisa, na katero se izvedejo kosti - to določa tudi kateri koti se dodelajo. Privzeta vrednost je določena glede na to, kateri oris se dodeluje. @@ -3203,17 +3202,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Angles less than filter angle will not receive corner actions - Angles less than filter angle will not receive corner actions + Koti, ki so manjši od kota presejanja, ne bodo podvrženi kotnim dejanjem Distance the point trails behind the spindle - Distance the point trails behind the spindle + Odmik, na katerem točka sledi vretenu Height to raise during corner action - Height to raise during corner action + Višina na katero naj se dvigne med kotnim dejanjem @@ -3248,27 +3247,27 @@ Should multiple tools or tool shapes with the same name exist in different direc Width of the resulting holding tag. - Width of the resulting holding tag. + Širina dobljenega mostička. Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. - Height of holding tag. Note that resulting tag might be smaller if the tag's width and angle result in a triangular shape. + Višina mostička. Pozor, dobljeni mostiček bi lahko bil manjši, če bi njegova širina in kót privedla do trikotne oblike. Plunge angle for ascent and descent of holding tag. - Plunge angle for ascent and descent of holding tag. + Kot zarivanja pri dviganju in spuščanju mostička. Radius of the fillet at the top. If the radius is too big for the tag shape it gets reduced to the maximum possible radius - resulting in a spherical shape. - Radius of the fillet at the top. If the radius is too big for the tag shape it gets reduced to the maximum possible radius - resulting in a spherical shape. + Polmer zgornje zaokrožitve. Če je polmer prevelik glede na obliko mostička, se pomer zmanjša na največjega možnega, kar privede do krogelne oblike. List of current tags. Edit coordinates by double click or Edit button. Tags are automatically disabled if they overlap with the previous tag, or don't lie on the base wire. - List of current tags. Edit coordinates by double click or Edit button. Tags are automatically disabled if they overlap with the previous tag, or don't lie on the base wire. + Seznam obstoječih mostičkov. Njihove sorednice lahko urejate z dvoklikom ali gumbom Uredi. Mostiček, ki se prekriva s predhodnim ali ne leži na izhodiščnem črtovju, je samodejno onemogočen. @@ -3404,7 +3403,7 @@ Should multiple tools or tool shapes with the same name exist in different direc The tool and its settings to be used for this operation. - The tool and its settings to be used for this operation. + Orodje in njegove nastavitve za to dejanje. @@ -3444,7 +3443,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Enter the filename containing the probe data - Enter the filename containing the probe data + Vnos imena datoteke, ki vsebuje podatke tipala @@ -3538,12 +3537,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Launch Camotics - Launch Camotics + Zaženi Camotics Make Camotics File - Make Camotics File + Ustvari datoteko Camotics @@ -3586,17 +3585,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Display name of the Tool Bit (initial value taken from the shape file). - Display name of the Tool Bit (initial value taken from the shape file). + Prikaži ime orodnega nastavka (začetna vrednost vzeta iz oblikovne datoteke). The file which defines the type and shape of the Tool Bit. - The file which defines the type and shape of the Tool Bit. + Datoteka, ki določa vrsto in obliko orodnega nastavka. Change file defining type and shape of Tool Bit. - Change file defining type and shape of Tool Bit. + Spremeni datoteko, ki določa vrsto in obliko orodnega nastavka. @@ -3649,12 +3648,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Available Tool Bits to choose from. - Available Tool Bits to choose from. + Razpoložljivi orodni nastavki med katerimi lahko izbirate. Create ToolControllers for the selected toolbits and add them to the Job - Create ToolControllers for the selected toolbits and add them to the Job + Ustvari orodne krmilnike izbranim orodnim nastavkom in jih dodaj k opravilu @@ -3744,7 +3743,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. - Optional arguments passed to the Post Processor. The arguments are specific for each Post Processor, please see its documentation for details. + Spremenljivke, po izbiri posredovane poobdelovalniku. Vsak poobdeovalnik ima posebne spremenljivke. Za več podrobnosti si preberite njihovo gradivo. @@ -3755,20 +3754,20 @@ This is useful if the operator can safely load work into one coordinate system w Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. - Ordering by Fixture, will cause all operations to be performed in the first coordinate system before switching to the second. Then all operations will be performed there in the same order. + Z razvrščanjem po Pritrdilih bodo najprej izvedena vsa dejanja v prvem koordinatnem sistemu in šele nato dejanja v drugem sistemu po enakem zaporedju. -This is useful if the operator can safely load work into one coordinate system while the machine is doing work in another. +To je uporabno, če lahko upravljalec varno naloži delo v enem koordinatnem sistemu, medtem ko stroj izvaja v drugem. -Ordering by Tool, will minimize the Tool Changes. A tool change will be done, then all operations in all coordinate systems before changing tools. +Z razvrščanjem po Orodju bo najmanj menjavanja orodij. Ko se orodje zamenja, se izvedejo vsa dejanja, v vseh koordinatnih sistemih, preden se ga ponovno zamenja. -Ordering by operation will do each operation in all coordinate systems before moving to the next operation. This is especially useful in conjunction with the 'split output' even with only a single work coordinate system since it will put each operation into a separate file. +Z razvrščanjem po dejanjih bo izvedeno celotno dejanje v vseh koordinatnih sistemih pred naslednjim dejanjem. To je uporabno predvsem v spregi z "ločenim izpisom", saj bo vsako dejanje, tudi če je uporabljen le en delovni koordinatni sistem, shranjeno v ločeno datoteko. <html><head/><body><p><span style=" font-style:italic;">Work Coordinate Systems</span> also called <span style=" font-style:italic;">Work Offsets</span>, <span style=" font-style:italic;">Fixture Offsets</span>, or <span style=" font-style:italic;">Fixtures </span>are useful for building efficient production jobs where the same part is done many times on the machine. FreeCAD has no knowledge of where a particular coordinate system exists within the machine coordinate system so adding additional coordinate systems to your job will have no visual change within your job. It will, however, change your gcode output. The exact way in which the output is affected is controlled by the 'order by' setting.</p></body></html> - <html><head/><body><p><span style=" font-style:italic;">Work Coordinate Systems</span> also called <span style=" font-style:italic;">Work Offsets</span>, <span style=" font-style:italic;">Fixture Offsets</span>, or <span style=" font-style:italic;">Fixtures </span>are useful for building efficient production jobs where the same part is done many times on the machine. -FreeCAD has no knowledge of where a particular coordinate system exists within the machine coordinate system so adding additional coordinate systems to your job will have no visual change within your job. It will, however, change your gcode output. The exact way in which the output is affected is controlled by the 'order by' setting.</p></body></html> + <html><head/><body><p><span style=" font-style:italic;">Delovni koordinatni sistemi</span> imenovani tudi <span style=" font-style:italic;">Delovni odmiki</span>, <span style=" font-style:italic;">Odmik pritrdila</span>, ali <span style=" font-style:italic;">Pritrdila </span>so uporabni pri ustvarjanju proizvodnih opravil, pri katerih je isti kos na stroju narejen velikokrat. +FreeCAD nima podatka o položaju določenega koordinega sistema znotraj strojnega koordinatnga sistema, zato dodajanje novih koordinatnih sistemov k vašemu opravilu ne bo imel vpliva na videz vašega opravila. Bo pa spremenilo izhodno g-kodo. Natančno določitev vpliva na izhod se upravlja z nastavitvami "Razvrsti po".</p></body></html> @@ -3803,7 +3802,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Extend Model's Bounding Box - Extend Model's Bounding Box + Razširi očrtni kvader oblikovanca @@ -3952,47 +3951,46 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Expression set as ClearanceHeight for new operations. Default: "OpStockZMax+SetupSheet.ClearanceHeightOffset" - Expression set as ClearanceHeight for new operations. + Izraz nastavljen kot Prosta višina prehoda za nova opravila. -Default: "OpStockZMax+SetupSheet.ClearanceHeightOffset" +Privzeto: "NajvZSurovcaOpr+OdmikProsteVišinePrehoda.vNastavitveniku (OpStockZMax+SetupSheet.ClearanceHeightOffset)" Expression set as SafeHeight for new operations. Default: "OpStockZMax+SetupSheet.SafeHeightOffset" - Expression set as SafeHeight for new operations. - -Default: "OpStockZMax+SetupSheet.SafeHeightOffset" + Izraz nastavljen kot Varna višina prehoda za nova opravila. +Privzeto: "NajvZSurovcaOpr+OdmikVarneVišinePrehoda.vNastavitveniku (OpStockZMax+SetupSheet.SafeHeightOffset)" SafeHeightOffset can be for expressions to set the SafeHeight for new operations. Default: "5mm" - SafeHeightOffset can be for expressions to set the SafeHeight for new operations. + OdmikVarneVišine je mogoče z izrazi uporabiti za nastavljanje varne višine pri novih dejanjih. -Default: "5mm" +Privzeto: "5 mm" Horizontal Feed - Horizontal Feed + Vodoravno podajanje Vertical Feed - Vertical Feed + Navpično podajanje Rapid horizontal speed assigned as HorizRapid to new ToolController. - Rapid horizontal speed assigned as HorizRapid to new ToolController. + Hitrost vodoravnega hitrega hoda dodeljena novemu krmilniku orodja kot VodHitriHod (HorizRapid). Rapid vertical speed assigned to VertRapid of new ToolController. - Rapid vertical speed assigned to VertRapid of new ToolController. + Hitrost navpičnega hitrega hoda dodeljena novemu krmilniku orodja kot NavHitriHod (VertRapid). @@ -4079,18 +4077,18 @@ Npr., če je <span style=" font-style:italic;">razvrsti po</span> na Expression set as the StartDepth of a newly created operation. Default: OpStartDepth - Expression set as the StartDepth of a newly created operation. + Nastavitev izraza kot Začetna globina novoustvarjenega dejanja. -Default: OpStartDepth +Privzeto: OpStartDepth Expression set as the FinalDepth for a newly created operation. Default: OpFinalDepth - Expression set as the FinalDepth for a newly created operation. + Nastavitev izraza kot Končna globina novoustvarjenega dejanja. -Default: OpFinalDepth +Privzeto: OpFinalDepth @@ -4102,9 +4100,9 @@ Default: OpFinalDepth Expression set as the StepDown of a newly created operation. Default: OpToolDiameter - Expression set as the StepDown of a newly created operation. + Nastavitev izraza kot Spust pri novoustvarjenem dejanju. -Default: OpToolDiameter +Privzeto: OpToolDiameter @@ -4228,7 +4226,7 @@ Privzeto: 3 mm Engraving Operations - Engraving Operations + Vrezovalna dejanja @@ -4236,7 +4234,7 @@ Privzeto: 3 mm 3D Operations - 3D Operations + 3D dejanja @@ -4244,28 +4242,28 @@ Privzeto: 3 mm Project Setup - Project Setup + Nastavitev projekta Tool Commands - Tool Commands + Ukazi orodja New Operations - New Operations + Nova dejanja Path Modification - Path Modification + Sprememba poti Helpful Tools - Helpful Tools + Koristna orodja @@ -4315,17 +4313,17 @@ For example: 'Metric, Small Parts & CNC' 'US Customary' 'Imperial Decimal' - The currently selected unit schema: + Trenutno izbran način enot: '{}' - Does not use 'minutes' for velocity values. + Za vrednosti hitrosti ne uporablja "minut". -CNC machines require feed rate to be expressed in -unit/minute. To ensure correct G-code: -Select a minute-based schema in preferences. -For example: - 'Metric, Small Parts & CNC' - 'US Customary' - 'Imperial Decimal' +CNC stroji zahtevajo podajalno hitrost podano v +enotah/minuto. Za zagotovitev pravilne G-kode: +Izberite v prednastavitvah način na osnovi minut. +Na primer: + "Metrični, majhni delci in CNC" + "Ameriški merski sistem" + "Anglosaški decimalni" @@ -4496,7 +4494,7 @@ For example: Base shape %s already in the list - Base shape %s already in the list + Osnovna oblika %s že na seznamu @@ -4506,33 +4504,33 @@ For example: Profile entire model, selected face(s) or selected edge(s) - Profile entire model, selected face(s) or selected edge(s) + Oriši celoten oblikovanec, izbrane ploskve ali izbrane robove - + Choose a Path Job Izberite opravilo poti Invalid Filename - Invalid Filename + Neveljavno ime datoteke Selected tool is not a drill - Selected tool is not a drill + Izbrano orodje ni sveder Invalid Cutting Edge Angle %.2f, must be >0° and <=180° - Invalid Cutting Edge Angle %.2f, must be >0° and <=180° + Neveljaven kót rezilnega roba %.2f, biti mora >0° in <=180° Cutting Edge Angle (%.2f) results in negative tool tip length - Cutting Edge Angle (%.2f) results in negative tool tip length + Kót rezilnega roba (%.2f) ima za posledico negativno dolžino konice orodja @@ -4540,22 +4538,22 @@ For example: Finish Selecting Loop - Finish Selecting Loop + Zaključni z izbiranjem zanke Complete the selection of edges that form a loop - Complete the selection of edges that form a loop + Končaj izbiranje robov, ki tvorijo zanko Feature Completion - Feature Completion + Dokončanje značilnosti Closed loop detection failed. - Closed loop detection failed. + Zaznavanje sklenjenih zank spodletelo. @@ -4564,7 +4562,7 @@ For example: Toggle the Active State of the Operation - Toggle the Active State of the Operation + Preklopi stanje dejavnosti dejanja @@ -4573,7 +4571,7 @@ For example: Copy the operation in the job - Copy the operation in the job + Kopiraj dejanje v opravilo @@ -4581,32 +4579,32 @@ For example: face %s not handled, assuming not vertical - face %s not handled, assuming not vertical + ploskev %s ni obravnavana, predvidoma ni navpična edge %s not handled, assuming not vertical - edge %s not handled, assuming not vertical + rob %s ni obravnavan, predvidoma ni navpičen isVertical(%s) not supported - isVertical(%s) not supported + isVertical(%s) ni podprt isHorizontal(%s) not supported - isHorizontal(%s) not supported + isHorizontal(%s) ni podprt %s not supported for flipping - %s not supported for flipping + %s ne podpira preobračanja Zero working area to process. Check your selection and settings. - Zero working area to process. Check your selection and settings. + Nič delovne površine za obdelovanje. Preverite vaš izbor in nastavitve. @@ -4614,64 +4612,64 @@ For example: List of custom property groups - List of custom property groups + Seznam lastnostnih skupin po meri Default speed for horizontal rapid moves. - Default speed for horizontal rapid moves. + Privzeta hitrost vodoravnih hitrih hodov. Default speed for vertical rapid moves. - Default speed for vertical rapid moves. + Privzeta hitrost navpičnih hitrih hodov. Coolant Modes - Coolant Modes + Hladilni načini Default coolant mode. - Default coolant mode. + Privzeti hladilni način. The usage of this field depends on SafeHeightExpression - by default its value is added to the start depth and used for the safe height of an operation. - The usage of this field depends on SafeHeightExpression - by default its value is added to the start depth and used for the safe height of an operation. + Uporaba tega področja je odvisna od IzrazaVarneVišine (SafeHeightExpression) - privzeto je njegova vrednost dodana k začetni globini in uporabljena za varno višino opravila. Expression for the safe height of new operations. - Expression for the safe height of new operations. + Izraz za varno višino novega dejanja. The usage of this field depends on ClearanceHeightExpression - by default is value is added to the start depth and used for the clearance height of an operation. - The usage of this field depends on ClearanceHeightExpression - by default is value is added to the start depth and used for the clearance height of an operation. + Uporaba tega polja je odvisna od IzrazaProsteVišine - privzeto je njegova vrednost dodana k začetni globini in uporabljena kot prosta višina dejanja. Expression for the clearance height of new operations. - Expression for the clearance height of new operations. + Izraz za prosto višino novih dejanj. Expression used for the start depth of new operations. - Expression used for the start depth of new operations. + Izraz, uporabljen za začetno globino novegih dejanj. Expression used for the final depth of new operations. - Expression used for the final depth of new operations. + Izraz, uporabljen za končno globino novih dejanj. Expression used for step down of new operations. - Expression used for step down of new operations. + Izraz uporabljen za korak spuščanja pri novih dejanjih. @@ -4683,112 +4681,112 @@ For example: The base path to modify - The base path to modify + Osnovna pot za spreminjanje Solid object to be used to limit the generated Path. - Solid object to be used to limit the generated Path. + Telo, ki bo služilo za omejevanje ustvarjene poti. Determines if Boundary describes an inclusion or exclusion mask. - Determines if Boundary describes an inclusion or exclusion mask. + Določa, če meja orisuje vključevalno ali izključevalno krinko. The base path to dress up - The base path to dress up + Osnovna pot za dodelavo The side of path to insert bones - The side of path to insert bones + Stran poti za vstavljanje kosti The style of bones - The style of bones + Slog kosti The algorithm to determine the bone length - The algorithm to determine the bone length + Algoritem za določitev dolžine kosti Dressup length if incision is set to 'custom' - Dressup length if incision is set to 'custom' + Dolžina dodelave, če je vrez nastavljen "po meri' Bones that aren't dressed up - Bones that aren't dressed up + Kosti, ki niso dodelane Width of tags. - Width of tags. + Širina mostičkov. Height of tags. - Height of tags. + Višina mostičkov. Angle of tag plunge and ascent. - Angle of tag plunge and ascent. + Kot spusta in vzpona pri mostičku. Radius of the fillet for the tag. - Radius of the fillet for the tag. + Polmer zaokrožitve za mostiček. Locations of inserted holding tags - Locations of inserted holding tags + Položaji vstavljenih mostičkov IDs of disabled holding tags - IDs of disabled holding tags + Določilniki onemogočenih mostičkov Factor determining the # of segments used to approximate rounded tags. - Factor determining the # of segments used to approximate rounded tags. + Količnik, ki določa # odsekov, uporabljenih za približek zaokrožitve mostičkov. The input mapping axis - The input mapping axis + Vhodna os preslikavanja The radius of the wrapped axis - The radius of the wrapped axis + Polmer ovite osi Angles less than filter angle will not receive corner actions - Angles less than filter angle will not receive corner actions + Koti, ki so manjši od kota presejanja, ne bodo podvrženi kotnim dejanjem Distance the point trails behind the spindle - Distance the point trails behind the spindle + Odmik, na katerem točka sledi vretenu Height to raise during corner action - Height to raise during corner action + Višina na katero naj se dvigne med kotnim dejanjem @@ -4803,32 +4801,32 @@ For example: Keep the Tool Down in Path - Keep the Tool Down in Path + Ohrani spuščeno orodje na poti Length or Radius of the approach - Length or Radius of the approach + Dolžina ali polmer pristopa Length or Radius of the exit - Length or Radius of the exit + Dolžina ali polmer izstopanja The Style of motion into the Path - The Style of motion into the Path + Slog prehoda v pot The Style of motion out of the Path - The Style of motion out of the Path + Slog prehoda s pot Extends LeadIn distance - Extends LeadIn distance + Poveča razdaljo vstopanja @@ -4868,12 +4866,12 @@ For example: Should the dressup ignore motion commands above DressupStartDepth - Should the dressup ignore motion commands above DressupStartDepth + Bi morala dodelava prezreti ukaze gibanja nad ZačetnoGlobinoDodelave The depth where the ramp dressup is enabled. Above this ramps are not generated, but motion commands are passed through as is. - The depth where the ramp dressup is enabled. Above this ramps are not generated, but motion commands are passed through as is. + Globina, pri kateri je dodelava s spustno klančino omogočena. Nad to globino spustne klančine niso ustvarjene in navodila za gibanja so posredovana takšna, kot so. @@ -5024,7 +5022,7 @@ For example: A material for this object - A material for this object + Snov tega predmeta @@ -5118,54 +5116,54 @@ For example: Stop processing - Stop processing + Zaustavi obdelovanje Use Arcs (G2) for helix ramp - Use Arcs (G2) for helix ramp + Uporabi za vijačno klančino loke (G2) Internal input state - Internal input state + Stanje notranjega vnosa Internal output state - Internal output state + Stanje notranjega izpisa Helix ramp entry angle (degrees) - Helix ramp entry angle (degrees) + Kot vhodne vijačne klančine (stopnje) Helix cone angle (degrees) - Helix cone angle (degrees) + Kót stožčaste vijačnice (stopinje) Limit helix entry diameter, if limit larger than tool diameter or 0, tool diameter is used - Limit helix entry diameter, if limit larger than tool diameter or 0, tool diameter is used + Omeji premer vstopne vijačnice. Če je meja 0 ali večja od premera orodja, se uporabi premer orodja Uses the outline of the base geometry. - Uses the outline of the base geometry. + Uporablja obris osnovne geometrije. Split Arcs into discrete segments - Split Arcs into discrete segments + Razcepi loke na samostojne odseke The base geometry for this operation - The base geometry for this operation + Osnovna geometrija za to dejanje @@ -5247,7 +5245,7 @@ For example: The height needed to clear clamps and obstructions - The height needed to clear clamps and obstructions + Višina, ki je potrebna za izogibanje primežem in oviram @@ -5288,7 +5286,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -5452,12 +5450,12 @@ For example: Use adaptive algorithm to eliminate excessive air milling above planar pocket top. - Use adaptive algorithm to eliminate excessive air milling above planar pocket top. + Za odpravljanje nepotrebnega rezkanja po zraku nad ravninskim vrhom ugreza uporabi prilagodljiv algoritem. Use adaptive algorithm to eliminate excessive air milling below planar pocket bottom. - Use adaptive algorithm to eliminate excessive air milling below planar pocket bottom. + Za odpravljanje nepotrebnega rezkanja po zraku pod ravninskim dnom ugreza uporabi prilagodljiv algoritem. @@ -5478,7 +5476,7 @@ For example: Start pocketing at center or boundary - Start pocketing at center or boundary + Začni dolbsti ugrez na sredini ali robu @@ -6077,7 +6075,7 @@ For example: The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot @@ -6087,12 +6085,12 @@ For example: Creates a Path Boundary Dress-up from a selected path - Creates a Path Boundary Dress-up from a selected path + Ustvari iz izbrane poti predmet dodelave meje poti Please select one path object - Please select one path object + Izberite eno pot @@ -6105,12 +6103,12 @@ For example: The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot Please select a Profile object - Please select a Profile object + Izberite oris @@ -6120,17 +6118,17 @@ For example: Tag - značka, mostiček (povezovalni ostanke pri CNC izrezovanju) + značka, mostiček (povezovalni ostanek pri CNC izrezovanju) Creates a Tag Dress-up object from a selected path - Creates a Tag Dress-up object from a selected path + Ustvari iz izbrane poti predmet mostične dodelave Please select one path object - Please select one path object + Izberite eno pot @@ -6196,19 +6194,19 @@ For example: Creates a Dogbone Dress-up object from a selected path - Creates a Dogbone Dress-up object from a selected path + Ustvari iz izbrane poti predmet pasjekostne dodelave Please select one path object - Please select one path object + Izberite eno pot The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot @@ -6226,12 +6224,12 @@ For example: Please select one path object - Please select one path object + Izberite eno pot The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot @@ -6244,7 +6242,7 @@ For example: Dressups - Dressups + Dodelave @@ -6297,22 +6295,22 @@ For example: Creates a Ramp Entry Dress-up object from a selected path - Creates a Ramp Entry Dress-up object from a selected path + Ustvari iz izbrane poti predmet dodelave vstopne klačine Please select one path object - Please select one path object + Izberite eno pot The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot Please select a Profile object - Please select a Profile object + Izberite oris @@ -7025,17 +7023,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -7203,7 +7201,7 @@ For example: Center of Bounding Box - Center of Bounding Box + Središče očrtnega kvadra @@ -8120,12 +8118,12 @@ Aborting op creation Please select one path object - Please select one path object + Izberite eno pot The selected object is not a path - The selected object is not a path + Izbrani predmet ni pot @@ -8146,12 +8144,12 @@ Aborting op creation 3D Pocket - 3D Pocket + 3D ugrez Creates a Path 3D Pocket from a face or faces - Creates a Path 3D Pocket from a face or faces + Ustvari pot 3D ugreza iz ene ali več ploskev @@ -8159,7 +8157,7 @@ Aborting op creation Pocket Shape - Pocket Shape + Oblika ugreza @@ -8215,12 +8213,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8235,7 +8233,7 @@ Aborting op creation No job object - No job object + Ni opravilnega predmeta @@ -8415,4 +8413,27 @@ Aborting op creation %s nima lastnosti %s (%s) + + PathCustom + + + Text + Besedilo + + + + File + Datoteka + + + + Custom file %s could not be found. + Datoteke po meri - %s - ni bilo mogoče najti. + + + + Invalid Gcode line: %s + Neveljavna vrstica g-kode: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_sr-CS.ts b/src/Mod/Path/Gui/Resources/translations/Path_sr-CS.ts index 441f146704..6c5a5e6b8e 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_sr-CS.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_sr-CS.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted G-kod koji treba umetnuti @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Tekst + + + + File + Datoteka + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_sr.ts b/src/Mod/Path/Gui/Resources/translations/Path_sr.ts index 6e6acbf05a..8c56534c3a 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_sr.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_sr.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted Г-код који треба уметнути @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Текст + + + + File + Датотека + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_sv-SE.ts b/src/Mod/Path/Gui/Resources/translations/Path_sv-SE.ts index 4af29460e6..c9516d3ed3 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_sv-SE.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_sv-SE.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Text + + + + File + Fil + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_tr.ts b/src/Mod/Path/Gui/Resources/translations/Path_tr.ts index 56176267d8..567c881889 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_tr.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_tr.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Bir İz İşi Seçiniz @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Metin + + + + File + Dosya + + + + Custom file %s could not be found. + %s dosyası bulunamadı. + + + + Invalid Gcode line: %s + Geçersiz G Kodu. Satır: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_uk.ts b/src/Mod/Path/Gui/Resources/translations/Path_uk.ts index f24e2dc710..94c15c0453 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_uk.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_uk.ts @@ -4511,7 +4511,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5289,7 +5289,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7026,17 +7026,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8216,12 +8216,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8416,4 +8416,27 @@ Aborting op creation %s не має властивості %s (%s) + + PathCustom + + + Text + Текст + + + + File + Файл + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_val-ES.ts b/src/Mod/Path/Gui/Resources/translations/Path_val-ES.ts index 9a3ece3d8f..68d59f113c 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_val-ES.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_val-ES.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + Text + + + + File + Fitxer + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_zh-CN.ts b/src/Mod/Path/Gui/Resources/translations/Path_zh-CN.ts index aefcfa649a..79b7fa98e6 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_zh-CN.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_zh-CN.ts @@ -4510,7 +4510,7 @@ For example: - + Choose a Path Job Choose a Path Job @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8415,4 +8415,27 @@ Aborting op creation %s 没有属性 %s (%s) + + PathCustom + + + Text + 文本 + + + + File + 文件 + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/Resources/translations/Path_zh-TW.ts b/src/Mod/Path/Gui/Resources/translations/Path_zh-TW.ts index fb782983f3..fc3a781bb1 100644 --- a/src/Mod/Path/Gui/Resources/translations/Path_zh-TW.ts +++ b/src/Mod/Path/Gui/Resources/translations/Path_zh-TW.ts @@ -11,12 +11,12 @@ Area - Area + Area Creates a feature area from selected objects - Creates a feature area from selected objects + Creates a feature area from selected objects @@ -29,12 +29,12 @@ Area workplane - Area workplane + Area workplane Select a workplane for a FeatureArea - Select a workplane for a FeatureArea + Select a workplane for a FeatureArea @@ -52,7 +52,7 @@ Creates a compound from selected paths - Creates a compound from selected paths + Creates a compound from selected paths @@ -65,12 +65,12 @@ From Shape - From Shape + From Shape Creates a path from a selected shape - Creates a path from a selected shape + Creates a path from a selected shape @@ -78,27 +78,27 @@ Create Path Area View - Create Path Area View + Create Path Area View Create Path Area - Create Path Area + Create Path Area Select Workplane for Path Area - Select Workplane for Path Area + Select Workplane for Path Area Create Path Compound - Create Path Compound + Create Path Compound Create Path Shape - Create Path Shape + Create Path Shape @@ -106,7 +106,7 @@ Create Job - Create Job + Create Job @@ -126,7 +126,7 @@ Select Base Models - Select Base Models + Select Base Models @@ -141,17 +141,17 @@ Base Models - Base Models + Base Models Job Template Export - Job Template Export + 輸出工作模板 Post Processing - Post Processing + 後處理 @@ -161,7 +161,7 @@ Setup Sheet - Setup Sheet + Setup Sheet @@ -200,12 +200,12 @@ Any values of the SetupSheet that are changed from their default are preselected Operation Heights - Operation Heights + Operation Heights Operation Depths - Operation Depths + Operation Depths @@ -248,12 +248,12 @@ Note that this option is disabled if a stock object from an existing solid is us Tool Rapid Speeds - Tool Rapid Speeds + Tool Rapid Speeds Coolant Mode - Coolant Mode + 冷卻劑模式 @@ -267,7 +267,7 @@ Note that only operations which currently have configuration values set are list Stock - Stock + Stock @@ -285,12 +285,12 @@ For stock from the Base object's bounding box it means the extra material in all Extent - Extent + Extent Placement - 放置位置 + 佈置 @@ -300,7 +300,7 @@ For stock from the Base object's bounding box it means the extra material in all Post Processor - Post Processor + 後處理器: @@ -310,47 +310,47 @@ For stock from the Base object's bounding box it means the extra material in all Tool Controller Editor - Tool Controller Editor + Tool Controller Editor Controller - Controller + Controller Controller Name / Tool Number - Controller Name / Tool Number + Controller Name / Tool Number Horiz. Feed - Horiz. Feed + 水平進刀 Vert. Feed - Vert. Feed + 垂直進刀 Horiz Rapid - Horiz Rapid + 水平快速進刀 Vert Rapid - Vert Rapid + 垂直快速進刀 Spindle - Spindle + 主軸 Forward - Forward + 正轉 @@ -365,17 +365,17 @@ For stock from the Base object's bounding box it means the extra material in all Any modifications only affect this ToolController! - Any modifications only affect this ToolController! + Any modifications only affect this ToolController! Tool Editor - Tool Editor + 刀具設定器 Create Property - Create Property + Create Property @@ -420,32 +420,32 @@ For stock from the Base object's bounding box it means the extra material in all val1,val2,val3,... - val1,val2,val3,... + val1,val2,val3,... Enums - Enums + Enums ToolTip - ToolTip + ToolTip Create another - Create another + Create another Library Manager - Library Manager + 刀具庫管理 Create Toolbit - Create Toolbit + 建立刀具 @@ -485,7 +485,7 @@ For stock from the Base object's bounding box it means the extra material in all Add Existing - Add Existing + Add Existing @@ -503,22 +503,22 @@ For stock from the Base object's bounding box it means the extra material in all Choose a Path Job - Choose a Path Job + Choose a Path Job Choose a Tool Controller - Choose a Tool Controller + Choose a Tool Controller Tool Controller - Tool Controller + Tool Controller Copy Selected Tools - Copy Selected Tools + 複製已選刀具 @@ -531,17 +531,17 @@ For stock from the Base object's bounding box it means the extra material in all Choose a processor - Choose a processor + 選擇前處理器 Processor - Processor + 前處理器 Arguments - Arguments + 參數 @@ -578,7 +578,7 @@ For stock from the Base object's bounding box it means the extra material in all Boundary Body - Boundary Body + 工件邊界 @@ -588,17 +588,17 @@ For stock from the Base object's bounding box it means the extra material in all Create Box - Create Box + 建立箱型工作區 Create Cylinder - Create Cylinder + 建立圓柱型工作區 Use Existing Solid - Use Existing Solid + Use Existing Solid @@ -608,7 +608,7 @@ For stock from the Base object's bounding box it means the extra material in all Ext. X - Ext. X + Ext. X @@ -623,7 +623,7 @@ For stock from the Base object's bounding box it means the extra material in all Ext. Y - Ext. Y + Ext. Y @@ -638,7 +638,7 @@ For stock from the Base object's bounding box it means the extra material in all Ext. Z - Ext. Z + Ext. Z @@ -709,7 +709,7 @@ For stock from the Base object's bounding box it means the extra material in all Constrained to Inside - Constrained to Inside + Constrained to Inside @@ -810,7 +810,7 @@ Reset deletes all current items from the list and fills the list with all circul All objects will be processed using the same operation properties. - All objects will be processed using the same operation properties. + All objects will be processed using the same operation properties. @@ -850,13 +850,13 @@ Reset deletes all current items from the list and fills the list with all circul All locations will be processed using the same operation properties. - All locations will be processed using the same operation properties. + All locations will be processed using the same operation properties. Start Depth - Start Depth + 起始深度 @@ -896,33 +896,33 @@ Reset deletes all current items from the list and fills the list with all circul Final Depth - Final Depth + 最終深度 Step Down - Step Down + 步進深度 Finish Step Down - Finish Step Down + 最終步進深度 Min Diameter - Min Diameter + 最小直徑 Max Diameter - Max Diameter + 最大直徑 Safe Height - Safe Height + 安全高度 @@ -937,7 +937,7 @@ Reset deletes all current items from the list and fills the list with all circul Clearance Height - Clearance Height + Clearance Height @@ -969,12 +969,12 @@ Reset deletes all current items from the list and fills the list with all circul Coolant Mode - Coolant Mode + 冷卻劑模式 G Gode - G Gode + G 碼 @@ -993,14 +993,14 @@ Reset deletes all current items from the list and fills the list with all circul Tool Controller - Tool Controller + Tool Controller Coolant - Coolant + 冷卻劑 @@ -1010,69 +1010,69 @@ Reset deletes all current items from the list and fills the list with all circul Cut Region - Cut Region + 切削區域 Operation Type - Operation Type + Operation Type Step Over Percent - Step Over Percent + 路徑重疊百分比 Accuracy vs Performance - Accuracy vs Performance + Accuracy vs Performance Helix Ramp Angle - Helix Ramp Angle + Helix Ramp Angle Helix Cone Angle - Helix Cone Angle + Helix Cone Angle Helix Max Diameter - Helix Max Diameter + Helix Max Diameter Lift Distance - Lift Distance + Lift Distance Keep Tool Down Ratio - Keep Tool Down Ratio + Keep Tool Down Ratio Stock to Leave - Stock to Leave + Stock to Leave Force Clearing Inside-out - Force Clearing Inside-out + Force Clearing Inside-out Finishing Profile - Finishing Profile + Finishing Profile Use Outline - Use Outline + Use Outline @@ -1188,7 +1188,7 @@ Reset deletes all current items from the list and fills the list with all circul Join: - Join: + Join: @@ -1198,7 +1198,7 @@ Reset deletes all current items from the list and fills the list with all circul Peck - Peck + Peck @@ -1208,12 +1208,12 @@ Reset deletes all current items from the list and fills the list with all circul Retract - Retract + Retract Dwell - Dwell + Dwell @@ -1223,17 +1223,17 @@ Reset deletes all current items from the list and fills the list with all circul Keep Tool Down - Keep Tool Down + Keep Tool Down Time - Time + Time Extend Depth - Extend Depth + Extend Depth @@ -1243,12 +1243,12 @@ Reset deletes all current items from the list and fills the list with all circul Drill Tip - Drill Tip + Drill Tip 2x Drill Tip - 2x Drill Tip + 2x Drill Tip @@ -1258,7 +1258,7 @@ Reset deletes all current items from the list and fills the list with all circul Start at Vertex - Start at Vertex + Start at Vertex @@ -1268,7 +1268,7 @@ Reset deletes all current items from the list and fills the list with all circul Start from - Start from + Start from @@ -1278,12 +1278,12 @@ Reset deletes all current items from the list and fills the list with all circul Inside - Inside + Inside Outside - Outside + Outside @@ -1298,18 +1298,18 @@ Reset deletes all current items from the list and fills the list with all circul Step over percent - Step over percent + Step over percent Extra Offset - Extra Offset + Extra Offset Enable Extensions - Enable Extensions + Enable Extensions @@ -1324,12 +1324,12 @@ Reset deletes all current items from the list and fills the list with all circul Extend Corners - Extend Corners + Extend Corners Default Length - Default Length + Default Length @@ -1374,12 +1374,12 @@ Reset deletes all current items from the list and fills the list with all circul Boundary Shape - Boundary Shape + Boundary Shape Cut Mode - Cut Mode + Cut Mode @@ -1394,7 +1394,7 @@ Reset deletes all current items from the list and fills the list with all circul Pattern - 圖樣 + Pattern @@ -1429,7 +1429,7 @@ The latter can be used to face of the entire stock area to ensure uniform height ZigZag - ZigZag + 之字形 @@ -1439,7 +1439,7 @@ The latter can be used to face of the entire stock area to ensure uniform height ZigZagOffset - ZigZagOffset + ZigZagOffset @@ -1489,29 +1489,29 @@ The latter can be used to face of the entire stock area to ensure uniform height Material Allowance - Material Allowance + Material Allowance Use Start Point - Use Start Point + Use Start Point Clear Edges - Clear Edges + Clear Edges Min Travel - Min Travel + Min Travel Probe Grid Points - Probe Grid Points + Probe Grid Points @@ -1526,17 +1526,17 @@ The latter can be used to face of the entire stock area to ensure uniform height Probe - Probe + Probe X Offset - X 偏移量 + X Offset Y Offset - Y 偏移量 + Y Offset @@ -1556,12 +1556,12 @@ The latter can be used to face of the entire stock area to ensure uniform height ProbePoints.txt - ProbePoints.txt + ProbePoints.txt Cut Side - Cut Side + Cut Side @@ -1572,7 +1572,7 @@ The latter can be used to face of the entire stock area to ensure uniform height PLACEHOLDER - PLACEHOLDER + PLACEHOLDER @@ -1612,27 +1612,27 @@ The latter can be used to face of the entire stock area to ensure uniform height Process Holes - Process Holes + Process Holes Use Compensation - Use Compensation + Use Compensation Process Circles - Process Circles + Process Circles Process Perimeter - Process Perimeter + Process Perimeter Start Feature Reference - Start Feature Reference + Start Feature Reference @@ -1648,7 +1648,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Center of Mass - 質量中心 + Center of Mass @@ -1660,23 +1660,23 @@ The latter can be used to face of the entire stock area to ensure uniform height Lowest Point - Lowest Point + Lowest Point Highest Point - Highest Point + Highest Point Long Edge - Long Edge + Long Edge Short Edge - Short Edge + Short Edge @@ -1687,7 +1687,7 @@ The latter can be used to face of the entire stock area to ensure uniform height End Feature Reference - End Feature Reference + End Feature Reference @@ -1732,34 +1732,34 @@ The latter can be used to face of the entire stock area to ensure uniform height No Base Geometry selected. - No Base Geometry selected. + No Base Geometry selected. Currently using custom point inputs available in the Property View of the Data tab. - Currently using custom point inputs available in the Property View of the Data tab. + Currently using custom point inputs available in the Property View of the Data tab. Extend Path Start - Extend Path Start + Extend Path Start Extend Path End - Extend Path End + Extend Path End Layer Mode - Layer Mode + Layer Mode Single-pass - Single-pass + Single-pass @@ -1769,49 +1769,49 @@ The latter can be used to face of the entire stock area to ensure uniform height Path Orientation - Path Orientation + Path Orientation Start to End - Start to End + Start to End Perpendicular - Perpendicular + 垂直 Reverse cut direction - Reverse cut direction + Reverse cut direction Scan Type - Scan Type + Scan Type Cut Pattern - Cut Pattern + Cut Pattern Profile Edges - Profile Edges + Profile Edges Avoid Last X Faces - Avoid Last X Faces + Avoid Last X Faces Bounding Box - Bounding Box + Bounding Box @@ -1892,7 +1892,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Drop Cutter Direction - Drop Cutter Direction + Drop Cutter Direction @@ -1907,7 +1907,7 @@ The latter can be used to face of the entire stock area to ensure uniform height Depth offset - Depth offset + Depth offset @@ -1929,33 +1929,33 @@ A step over of 100% results in no overlap between two different cycles. Sample interval - Sample interval + Sample interval Optimize Linear Paths - Optimize Linear Paths + Optimize Linear Paths Boundary Enforcement - Boundary Enforcement + Boundary Enforcement Optimize StepOver Transitions - Optimize StepOver Transitions + Optimize StepOver Transitions Setup Global - Setup Global + Setup Global Depths - Depths + Depths @@ -1987,12 +1987,12 @@ Default: OpToolDiameter Heights - Heights + Heights Expression - Expression + Expression @@ -2044,7 +2044,7 @@ Default: "5mm" Safe - Safe + Safe @@ -2058,12 +2058,12 @@ Default: 3 mm Rapid Speeds - Rapid Speeds + Rapid Speeds Horizontal - 水平 + 水平的 @@ -2073,7 +2073,7 @@ Default: 3 mm Thread - Thread + Thread @@ -2094,12 +2094,12 @@ Default: 3 mm Major Diameter - Major Diameter + Major Diameter Minor Diameter - Minor Diameter + Minor Diameter @@ -2109,28 +2109,28 @@ Default: 3 mm TPI - TPI + TPI Operation - Operation + Operation Passes - Passes + Passes Lead In/Out - Lead In/Out + Lead In/Out Discretization Deflection - Discretization Deflection + Discretization Deflection @@ -2145,12 +2145,12 @@ Default: 3 mm Filter Colinear lines - Filter Colinear lines + Filter Colinear lines Algorithm - Algorithm + Algorithm @@ -2160,12 +2160,12 @@ Default: 3 mm Boundary Adjustment - Boundary Adjustment + Boundary Adjustment Point Edit - Point Edit + Point Edit @@ -2185,17 +2185,17 @@ Default: 3 mm Property Bag - Property Bag + Property Bag Modify... - 修改... + Modify... Add... - 新增... + Add... @@ -2210,7 +2210,7 @@ Default: 3 mm Display Name - 顯示名稱 + Display Name @@ -2220,53 +2220,53 @@ Default: 3 mm Length Offset - Length Offset + Length Offset Tool Parameter - Tool Parameter + Tool Parameter Flat Radius - Flat Radius + Flat Radius Corner Radius - Corner Radius + Corner Radius Point/Tip Angle - Point/Tip Angle + Point/Tip Angle Cutting Edge Height - Cutting Edge Height + Cutting Edge Height D = - D = + D = d = - d = + d = H = - H = + H = S = - S = + S = @@ -2276,12 +2276,12 @@ Default: 3 mm Tag Parameters - Tag Parameters + Tag Parameters Default Width - 預設寬度 + Default Width @@ -2323,27 +2323,27 @@ If the radius is bigger than that which the tag shape itself supports, the resul Default Height - 預設高度 + Default Height Default Angle - 預設角度 + Default Angle Default Radius - 預設角度 + 預設半徑 Tag Generation - Tag Generation + Tag Generation Initial # Tags - Initial # Tags + Initial # Tags @@ -2351,7 +2351,7 @@ If the radius is bigger than that which the tag shape itself supports, the resul Job Preferences - Job Preferences + Job Preferences @@ -2381,33 +2381,33 @@ If the radius is bigger than that which the tag shape itself supports, the resul Default Geometry Tolerance - Default Geometry Tolerance + Default Geometry Tolerance Default value for new Jobs, used for computing Paths. Smaller increases accuracy, but slows down computation - Default value for new Jobs, used for computing Paths. Smaller increases accuracy, but slows down computation + Default value for new Jobs, used for computing Paths. Smaller increases accuracy, but slows down computation Default Curve Accuracy - Default Curve Accuracy + Default Curve Accuracy Post Processor - Post Processor + 後處理器: Output File - Output File + Output File Default Path - Default Path + Default Path @@ -2465,52 +2465,52 @@ See the file save policy below on how to deal with name conflicts. File Save Policy - File Save Policy + File Save Policy Open File Dialog - Open File Dialog + Open File Dialog Open File Dialog on conflict - Open File Dialog on conflict + Open File Dialog on conflict Overwrite existing file - Overwrite existing file + Overwrite existing file Append Unique ID on conflict - Append Unique ID on conflict + Append Unique ID on conflict Post Processors Selection - Post Processors Selection + Post Processors Selection Default Post Processor - Default Post Processor + Default Post Processor DefaultPostProcessor - DefaultPostProcessor + DefaultPostProcessor Mod/Path - Mod/Path + Mod/Path Default Arguments - Default Arguments + Default Arguments @@ -2557,22 +2557,22 @@ If left empty no template will be preselected. Setup - 設定 + Setup Stock - Stock + Stock Create Box - Create Box + 建立箱型工作區 Create Cylinder - Create Cylinder + 建立圓柱型工作區 @@ -2582,17 +2582,17 @@ If left empty no template will be preselected. Ext. X - Ext. X + Ext. X Ext. Y - Ext. Y + Ext. Y Ext. Z - Ext. Z + Ext. Z @@ -2618,7 +2618,7 @@ If left empty no template will be preselected. Placement - 放置位置 + 佈置 @@ -2628,7 +2628,7 @@ If left empty no template will be preselected. Axis - 軸座標 + @@ -2652,7 +2652,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Store Absolute Paths - Store Absolute Paths + Store Absolute Paths @@ -2669,7 +2669,7 @@ Should multiple tools or tool shapes with the same name exist in different direc GUI - GUI + 圖形使用者介面 @@ -2684,7 +2684,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Default normal path color - Default normal path color + Default normal path color @@ -2709,7 +2709,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Default pathline width - Default pathline width + Default pathline width @@ -2724,7 +2724,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Default path marker color - Default path marker color + Default path marker color @@ -2739,22 +2739,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Rapid path color - Rapid path color + Rapid path color UI Settings - UI Settings + UI Settings Path Selection Style - Path Selection Style + Path Selection Style Default path shape selection behavior in 3D viewer - Default path shape selection behavior in 3D viewer + Default path shape selection behavior in 3D viewer @@ -2764,7 +2764,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Bounding Box - Bounding Box + Bounding Box @@ -2774,27 +2774,27 @@ Should multiple tools or tool shapes with the same name exist in different direc Task Panel Layout - Task Panel Layout + Task Panel Layout Classic - Classic + Classic Classic - reversed - Classic - reversed + Classic - reversed Multi Panel - Multi Panel + Multi Panel Multi Panel - reversed - Multi Panel - reversed + Multi Panel - reversed @@ -2804,33 +2804,33 @@ Should multiple tools or tool shapes with the same name exist in different direc Warnings - 警告 + Warnings Suppress all warnings about setting speed rates for accurate cycle time calculation - Suppress all warnings about setting speed rates for accurate cycle time calculation + Suppress all warnings about setting speed rates for accurate cycle time calculation Suppress all missing speeds warning - Suppress all missing speeds warning + Suppress all missing speeds warning Suppress warning about setting the rapid speed rates for accurate cycle time calculation. Ignored if all speed warnings are already suppressed. - Suppress warning about setting the rapid speed rates for accurate cycle time calculation. Ignored if all speed warnings are already suppressed. + Suppress warning about setting the rapid speed rates for accurate cycle time calculation. Ignored if all speed warnings are already suppressed. Suppress missing rapid speeds warning - Suppress missing rapid speeds warning + Suppress missing rapid speeds warning Suppress warning whenever a Path selection mode is activated - Suppress warning whenever a Path selection mode is activated + Suppress warning whenever a Path selection mode is activated @@ -2850,22 +2850,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Suppress selection mode warning - Suppress selection mode warning + Suppress selection mode warning Enable OCL dependent features - Enable OCL dependent features + Enable OCL dependent features Suppress warning if openCAMlib cannot be found - Suppress warning if openCAMlib cannot be found + Suppress warning if openCAMlib cannot be found Suppress openCAMlib warning - Suppress openCAMlib warning + Suppress openCAMlib warning @@ -2873,7 +2873,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Compound paths - Compound paths + Compound paths @@ -2954,22 +2954,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Keep Tool Down - Keep Tool Down + Keep Tool Down Rapid Plunge - Rapid Plunge + Rapid Plunge Include Layers - Include Layers + Include Layers Arc - 圓弧 + @@ -2979,7 +2979,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Perpendicular - Perpendicular + 垂直 @@ -3023,7 +3023,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Reorder children by dragging and dropping them to their correct location - Reorder children by dragging and dropping them to their correct location + Reorder children by dragging and dropping them to their correct location @@ -3031,7 +3031,7 @@ Should multiple tools or tool shapes with the same name exist in different direc AxisMap Dressup - AxisMap Dressup + AxisMap Dressup @@ -3042,7 +3042,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Axis Mapping - Axis Mapping + Axis Mapping @@ -3057,43 +3057,43 @@ Should multiple tools or tool shapes with the same name exist in different direc X->A - X->A + X->A Y->A - Y->A + Y->A X->B - X->B + X->B Y->B - Y->B + Y->B X->C - X->C + X->C Y->C - Y->C + Y->C Dogbones - Dogbones + 逃角 Dressup - Dressup + Dressup @@ -3103,7 +3103,7 @@ Should multiple tools or tool shapes with the same name exist in different direc <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> - <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> + <html><head/><body><p>Select desired style of the bone dressup:</p><p><span style=" font-weight:600; font-style:italic;">Dogbone</span> ... take the shortest path to cover the corner,</p><p><span style=" font-weight:600; font-style:italic;">T-bone</span> ... extend a certain direction until corner is covered</p></body></html> @@ -3113,27 +3113,27 @@ Should multiple tools or tool shapes with the same name exist in different direc T-bone horizontal - T-bone horizontal + 水平T型逃角 T-bone vertical - T-bone vertical + 垂直T型逃角 T-bone long edge - T-bone long edge + 長邊T型逃角 T-bone short edge - T-bone short edge + 短邊T型逃角 Side - Side + Side @@ -3153,17 +3153,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Incision - Incision + Incision <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> - <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> + <html><head/><body><p>Determines the incision length of the bone to be inserted into the profile.</p><p><span style=" font-weight:600; font-style:italic;">adaptive</span> ... the length is adapted to cover the corner based on the angle of its edges, taking the current tool radius into account (default)</p><p><span style=" font-weight:600; font-style:italic;">fixed</span> ... is the same as adaptive for straight angles. For T-bones it's the radius of the tool (R) and for dogbones it's R * (2/√2 - 1).</p><p><span style=" font-weight:600; font-style:italic;">custom</span> ... let's you specify a custom (fixed) length below</p></body></html> adaptive - adaptive + adaptive @@ -3178,12 +3178,12 @@ Should multiple tools or tool shapes with the same name exist in different direc <html><head/><body><p>Enter length for each bone if <span style=" font-weight:600;">Incision</span> is set to <span style=" font-weight:600;">custom</span>, ignored otherwise.</p></body></html> - <html><head/><body><p>Enter length for each bone if <span style=" font-weight:600;">Incision</span> is set to <span style=" font-weight:600;">custom</span>, ignored otherwise.</p></body></html> + <html><head/><body><p>Enter length for each bone if <span style=" font-weight:600;">Incision</span> is set to <span style=" font-weight:600;">custom</span>, ignored otherwise.</p></body></html> <html><head/><body><p>List of bone locations (with all bones at that location) that are part of this dressup. The list is determined by the corners in the profile and the selected <span style=" font-weight:600;">Side</span> for the bones. </p><p>You can <span style=" font-weight:600;">un-check</span> the bones you don't want to be dressed up.</p><p>If a bone is <span style=" font-weight:600;">grayed out</span> it means that it is already dressed up by a previous dressup. Or put another way, if you dress up this dogobone dressup again you will only be able to select the bones that are un-checked here.</p><p>If this list is empty it probably means you're trying to create bones on the wrong side of the profile.</p></body></html> - <html><head/><body><p>List of bone locations (with all bones at that location) that are part of this dressup. The list is determined by the corners in the profile and the selected <span style=" font-weight:600;">Side</span> for the bones. </p><p>You can <span style=" font-weight:600;">un-check</span> the bones you don't want to be dressed up.</p><p>If a bone is <span style=" font-weight:600;">grayed out</span> it means that it is already dressed up by a previous dressup. Or put another way, if you dress up this dogobone dressup again you will only be able to select the bones that are un-checked here.</p><p>If this list is empty it probably means you're trying to create bones on the wrong side of the profile.</p></body></html> + <html><head/><body><p>List of bone locations (with all bones at that location) that are part of this dressup. The list is determined by the corners in the profile and the selected <span style=" font-weight:600;">Side</span> for the bones. </p><p>You can <span style=" font-weight:600;">un-check</span> the bones you don't want to be dressed up.</p><p>If a bone is <span style=" font-weight:600;">grayed out</span> it means that it is already dressed up by a previous dressup. Or put another way, if you dress up this dogobone dressup again you will only be able to select the bones that are un-checked here.</p><p>If this list is empty it probably means you're trying to create bones on the wrong side of the profile.</p></body></html> @@ -3193,12 +3193,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Dragknife Dressup - Dragknife Dressup + Dragknife Dressup Filter Angle - 篩選角度 + Filter Angle @@ -3218,17 +3218,17 @@ Should multiple tools or tool shapes with the same name exist in different direc Offset Distance - Offset Distance + Offset Distance Pivot Height - Pivot Height + Pivot Height Holding Tags - Holding Tags + Holding Tags @@ -3283,12 +3283,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Add... - 新增... + Add... Auto Generate - 自動產生 + 自動生成 @@ -3299,7 +3299,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Copy From - Copy From + Copy From @@ -3314,22 +3314,22 @@ Should multiple tools or tool shapes with the same name exist in different direc Drag to reorder, then update. - Drag to reorder, then update. + Drag to reorder, then update. Add item selected in window. - Add item selected in window. + Add item selected in window. add - 新增 + add Remove Item selected in list, then update. - Remove Item selected in list, then update. + Remove Item selected in list, then update. @@ -3339,7 +3339,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Update the path with the removed and reordered items. - Update the path with the removed and reordered items. + Update the path with the removed and reordered items. @@ -3349,57 +3349,57 @@ Should multiple tools or tool shapes with the same name exist in different direc All objects will be profiled using the same depth and speed settings - All objects will be profiled using the same depth and speed settings + All objects will be profiled using the same depth and speed settings Depths - Depths + Depths Start Depth - Start Depth + 起始深度 Final Depth - Final Depth + 最終深度 Step Down - Step Down + 步進深度 Finish Step Down - Finish Step Down + 最終步進深度 Heights - Heights + Heights Safe Height - Safe Height + 安全高度 Clearance Height - Clearance Height + Clearance Height Operation - Operation + Operation Tool Controller - Tool Controller + Tool Controller @@ -3409,32 +3409,32 @@ Should multiple tools or tool shapes with the same name exist in different direc Coolant Mode - Coolant Mode + 冷卻劑模式 Algorithm - Algorithm + Algorithm OCL Dropcutter - OCL Dropcutter + OCL Dropcutter OCL Waterline - OCL Waterline + OCL Waterline Z Depth Correction - Z Depth Correction + Z Depth Correction Probe Points File - Probe Points File + Probe Points File @@ -3453,12 +3453,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Path Simulator - Path Simulator + 路徑模擬 Stop running simulation - Stop running simulation + 停止目前模擬程序 @@ -3468,7 +3468,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Activate / resume simulation - Activate / resume simulation + Activate / resume simulation @@ -3478,32 +3478,32 @@ Should multiple tools or tool shapes with the same name exist in different direc Pause simulation - Pause simulation + 暫停模擬 Pause - Pause + 暫停 Single step simulation - Single step simulation + Single step simulation Step - Step + Step Run simulation till end without animation - Run simulation till end without animation + Run simulation till end without animation Fast Forward - Fast Forward + Fast Forward @@ -3513,22 +3513,22 @@ Should multiple tools or tool shapes with the same name exist in different direc G/s - G/s + G/s Accuracy: - Accuracy: + Accuracy: Job: - Job: + Job: * Note: Volumetric simulation, inaccuracies are inherent. - * Note: Volumetric simulation, inaccuracies are inherent. + * Note: Volumetric simulation, inaccuracies are inherent. @@ -3551,7 +3551,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Tool Bit Attributes - Tool Bit Attributes + Tool Bit Attributes @@ -3561,7 +3561,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Tool Bit - Tool Bit + Tool Bit @@ -3571,12 +3571,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Display Name - 顯示名稱 + Display Name Shape File - Shape File + Shape File @@ -3606,12 +3606,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Point/Tip Angle - Point/Tip Angle + Point/Tip Angle Cutting Edge Height - Cutting Edge Height + Cutting Edge Height @@ -3631,7 +3631,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Attributes - 屬性 + Attributes @@ -3639,7 +3639,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Tool Selector - Tool Selector + 刀具選擇器 @@ -3659,7 +3659,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Add To Job - Add To Job + 新增到工作 @@ -3667,7 +3667,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Job Edit - Job Edit + Job Edit @@ -3677,12 +3677,12 @@ Should multiple tools or tool shapes with the same name exist in different direc Job - Job + Job Label - 標籤 + Label @@ -3704,7 +3704,7 @@ Should multiple tools or tool shapes with the same name exist in different direc Template Export - Template Export + 模板輸出 @@ -3714,32 +3714,32 @@ Should multiple tools or tool shapes with the same name exist in different direc Output File - Output File + Output File Processor - Processor + 前處理器 Arguments - Arguments + 參數 Work Coordinate Systems - Work Coordinate Systems + 工作座標系統 Systems - Systems + Systems Order By - Order By + Order By @@ -3773,32 +3773,32 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Split Output - Split Output + Split Output Setup - 設定 + Setup Layout - Layout + 配罝 Stock - Stock + Stock Create Box - Create Box + 建立箱型工作區 Create Cylinder - Create Cylinder + 建立圓柱型工作區 @@ -3808,7 +3808,7 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Use Existing Solid - Use Existing Solid + Use Existing Solid @@ -3818,17 +3818,17 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Ext. X - Ext. X + Ext. X Ext. Y - Ext. Y + Ext. Y Ext. Z - Ext. Z + Ext. Z @@ -3859,27 +3859,27 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Move to Origin - Move to Origin + 移到原點 Set Origin - Set Origin + 設定原點 Center in Stock - Center in Stock + Center in Stock XY in Stock - XY in Stock + XY in Stock Set - Set + Set @@ -3894,37 +3894,37 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Z-Axis - Z-Axis + Z-Axis X=0 - X=0 + X=0 Y=0 - Y=0 + Y=0 Z=0 - Z=0 + Z=0 Link Stock and Model - Link Stock and Model + Link Stock and Model Move - XY - Move - XY + Move - XY Rotate - XY - Rotate - XY + Rotate - XY @@ -3935,17 +3935,17 @@ FreeCAD has no knowledge of where a particular coordinate system exists within t Default Values - Default Values + 預設值 Depths - Depths + Depths Start Depth - Start Depth + 起始深度 @@ -3997,7 +3997,7 @@ Default: "5mm" Final Depth - Final Depth + 最終深度 @@ -4095,7 +4095,7 @@ Default: OpFinalDepth Step Down - Step Down + 步進深度 @@ -4109,12 +4109,12 @@ Default: OpToolDiameter Heights - Heights + Heights Expression - Expression + Expression @@ -4138,17 +4138,17 @@ Default: 3 mm Safe - Safe + Safe Coolant - Coolant + 冷卻劑 Coolant Mode - Coolant Mode + 冷卻劑模式 @@ -4164,18 +4164,18 @@ Default: 3 mm Nr. - Nr. + Nr. Feed - Feed + 進刀 Spindle - Spindle + 主軸 @@ -4190,12 +4190,12 @@ Default: 3 mm Rapid Speeds - Rapid Speeds + Rapid Speeds Horizontal - 水平 + 水平的 @@ -4205,12 +4205,12 @@ Default: 3 mm Workplan - Workplan + 工作平面 Active Tool - Active Tool + Active Tool @@ -4220,7 +4220,7 @@ Default: 3 mm Op Defaults - Op Defaults + Op Defaults @@ -4501,7 +4501,7 @@ For example: Profile - 輪廓特徵 + 輪廓 @@ -4510,9 +4510,9 @@ For example: - + Choose a Path Job - Choose a Path Job + Choose a Path Job @@ -5024,7 +5024,7 @@ For example: A material for this object - 這個對象的材料 + A material for this object @@ -5288,7 +5288,7 @@ For example: List of disabled features - + The G-code to be inserted The G-code to be inserted @@ -6336,7 +6336,7 @@ For example: Probe - Probe + Probe @@ -6349,7 +6349,7 @@ For example: Z Depth Correction - Z Depth Correction + Z Depth Correction @@ -6372,7 +6372,7 @@ For example: Operation - Operation + Operation @@ -6463,7 +6463,7 @@ For example: Job - Job + Job @@ -6639,7 +6639,7 @@ For example: Operation - Operation + Operation @@ -6659,7 +6659,7 @@ For example: Coolant - Coolant + 冷卻劑 @@ -6699,7 +6699,7 @@ For example: Tool Controller - Tool Controller + Tool Controller @@ -6749,7 +6749,7 @@ For example: Order By - Order By + Order By @@ -6835,12 +6835,12 @@ For example: Outside - Outside + Outside Inside - Inside + Inside @@ -6855,7 +6855,7 @@ For example: Adaptive - Adaptive + Adaptive @@ -6906,7 +6906,7 @@ For example: Round - 圓角 + 圓形 @@ -6934,12 +6934,12 @@ For example: Drill Tip - Drill Tip + Drill Tip 2x Drill Tip - 2x Drill Tip + 2x Drill Tip @@ -6981,13 +6981,13 @@ For example: Outside - Outside + Outside Inside - Inside + Inside @@ -7012,7 +7012,7 @@ For example: Round - 圓角 + 圓形 @@ -7025,17 +7025,17 @@ For example: Miter - + The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. The selected edge(s) are inaccessible. If multiple, re-ordering selection might work. - + Unable to create path for face(s). Unable to create path for face(s). - + Check edge selection and Final Depth requirements for profiling open edge(s). Check edge selection and Final Depth requirements for profiling open edge(s). @@ -7060,7 +7060,7 @@ For example: Stock - Stock + Stock @@ -7095,7 +7095,7 @@ For example: ZigZag - ZigZag + 之字形 @@ -7105,7 +7105,7 @@ For example: ZigZagOffset - ZigZagOffset + ZigZagOffset @@ -7171,12 +7171,12 @@ For example: ZigZag - ZigZag + 之字形 Single-pass - Single-pass + Single-pass @@ -7186,18 +7186,18 @@ For example: Start to End - Start to End + Start to End Perpendicular - Perpendicular + 垂直 Center of Mass - 質量中心 + Center of Mass @@ -7209,23 +7209,23 @@ For example: Lowest Point - Lowest Point + Lowest Point Highest Point - Highest Point + Highest Point Long Edge - Long Edge + Long Edge Short Edge - Short Edge + Short Edge @@ -7435,7 +7435,7 @@ For example: Stock - Stock + Stock @@ -7495,7 +7495,7 @@ For example: ZigZag - ZigZag + 之字形 @@ -7522,7 +7522,7 @@ For example: Single-pass - Single-pass + Single-pass @@ -7732,7 +7732,7 @@ For example: OCL Dropcutter - OCL Dropcutter + OCL Dropcutter @@ -7747,7 +7747,7 @@ For example: Stock - Stock + Stock @@ -7808,7 +7808,7 @@ For example: ZigZag - ZigZag + 之字形 @@ -7838,7 +7838,7 @@ For example: Single-pass - Single-pass + Single-pass @@ -7956,7 +7956,7 @@ For example: Heights - Heights + Heights @@ -7968,7 +7968,7 @@ If it is necessary to set the FinalDepth manually please select a different oper Depths - Depths + Depths @@ -7983,7 +7983,7 @@ If it is necessary to set the FinalDepth manually please select a different oper Operation - Operation + Operation @@ -8027,7 +8027,7 @@ Aborting op creation Array - 矩陣 + Array @@ -8045,7 +8045,7 @@ Aborting op creation Comment - 註釋 + 評論 @@ -8215,12 +8215,12 @@ Aborting op creation Path_Post - + Post Process Post Process - + Post Process the selected Job Post Process the selected Job @@ -8230,7 +8230,7 @@ Aborting op creation No active document - 未選擇文件 + 無可用文件 @@ -8243,7 +8243,7 @@ Aborting op creation Forward - Forward + 正轉 @@ -8415,4 +8415,27 @@ Aborting op creation %s has no property %s (%s) + + PathCustom + + + Text + 文字 + + + + File + 檔案 + + + + Custom file %s could not be found. + Custom file %s could not be found. + + + + Invalid Gcode line: %s + Invalid Gcode line: %s + + diff --git a/src/Mod/Path/Gui/TaskDlgPathCompound.h b/src/Mod/Path/Gui/TaskDlgPathCompound.h index 0473b112ae..4ced6cca33 100644 --- a/src/Mod/Path/Gui/TaskDlgPathCompound.h +++ b/src/Mod/Path/Gui/TaskDlgPathCompound.h @@ -60,22 +60,22 @@ class PathGuiExport TaskDlgPathCompound : public Gui::TaskView::TaskDialog public: TaskDlgPathCompound(PathGui::ViewProviderPathCompound *); - ~TaskDlgPathCompound(); + ~TaskDlgPathCompound() override; public: /// is called the TaskView when the dialog is opened - virtual void open(); + void open() override; /// is called by the framework if an button is clicked which has no accept or rject role - virtual void clicked(int); + void clicked(int) override; /// is called by the framework if the dialog is accepted (Ok) - virtual bool accept(); + bool accept() override; /// is called by the framework if the dialog is rejected (Cancel) - virtual bool reject(); + bool reject() override; /// is called by the framework if the user press the help button - virtual void helpRequested(); + void helpRequested() override; /// returns for Close and Help button - virtual QDialogButtonBox::StandardButtons getStandardButtons(void) const + QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Ok|QDialogButtonBox::Cancel; } protected: diff --git a/src/Mod/Path/Gui/ViewProviderArea.h b/src/Mod/Path/Gui/ViewProviderArea.h index 7da299d4b5..22d458e554 100644 --- a/src/Mod/Path/Gui/ViewProviderArea.h +++ b/src/Mod/Path/Gui/ViewProviderArea.h @@ -25,30 +25,31 @@ #include #include +#include namespace PathGui { class PathGuiExport ViewProviderArea : public PartGui::ViewProviderPlaneParametric { - PROPERTY_HEADER(PathGui::ViewProviderArea); + PROPERTY_HEADER_WITH_OVERRIDE(PathGui::ViewProviderArea); public: ViewProviderArea(); - virtual ~ViewProviderArea(); + ~ViewProviderArea() override; /// grouping handling - virtual std::vector claimChildren(void) const; - virtual void updateData(const App::Property*); - virtual bool onDelete(const std::vector &); + std::vector claimChildren() const override; + void updateData(const App::Property*) override; + bool onDelete(const std::vector &) override; /// drag and drop - virtual bool canDragObjects() const; - virtual bool canDragObject(App::DocumentObject*) const; - virtual void dragObject(App::DocumentObject*); - virtual bool canDropObjects() const; - virtual bool canDropObject(App::DocumentObject*) const; - virtual void dropObject(App::DocumentObject*); + bool canDragObjects() const override; + bool canDragObject(App::DocumentObject*) const override; + void dragObject(App::DocumentObject*) override; + bool canDropObjects() const override; + bool canDropObject(App::DocumentObject*) const override; + void dropObject(App::DocumentObject*) override; }; using ViewProviderAreaPython = Gui::ViewProviderPythonFeatureT; @@ -56,22 +57,22 @@ using ViewProviderAreaPython = Gui::ViewProviderPythonFeatureT class PathGuiExport ViewProviderAreaView : public PartGui::ViewProviderPlaneParametric { - PROPERTY_HEADER(PathGui::ViewProviderAreaView); + PROPERTY_HEADER_WITH_OVERRIDE(PathGui::ViewProviderAreaView); public: ViewProviderAreaView(); - virtual ~ViewProviderAreaView(); - virtual std::vector claimChildren(void) const; - virtual void updateData(const App::Property*); - virtual bool onDelete(const std::vector &); + ~ViewProviderAreaView() override; + std::vector claimChildren() const override; + void updateData(const App::Property*) override; + bool onDelete(const std::vector &) override; /// drag and drop - virtual bool canDragObjects() const; - virtual bool canDragObject(App::DocumentObject*) const; - virtual void dragObject(App::DocumentObject*); - virtual bool canDropObjects() const; - virtual bool canDropObject(App::DocumentObject*) const; - virtual void dropObject(App::DocumentObject*); + bool canDragObjects() const override; + bool canDragObject(App::DocumentObject*) const override; + void dragObject(App::DocumentObject*) override; + bool canDropObjects() const override; + bool canDropObject(App::DocumentObject*) const override; + void dropObject(App::DocumentObject*) override; }; using ViewProviderAreaViewPython = Gui::ViewProviderPythonFeatureT; diff --git a/src/Mod/Path/Gui/ViewProviderPath.h b/src/Mod/Path/Gui/ViewProviderPath.h index 9b5b4c1762..8d9f3864ec 100644 --- a/src/Mod/Path/Gui/ViewProviderPath.h +++ b/src/Mod/Path/Gui/ViewProviderPath.h @@ -28,6 +28,7 @@ #include #include #include +#include class SoCoordinate3; @@ -45,7 +46,7 @@ class PathSelectionObserver; class PathGuiExport ViewProviderPath : public Gui::ViewProviderGeometryObject { - PROPERTY_HEADER(PathGui::ViewProviderPath); + PROPERTY_HEADER_WITH_OVERRIDE(PathGui::ViewProviderPath); using inherited = ViewProviderGeometryObject; public: @@ -53,7 +54,7 @@ public: ViewProviderPath(); /// destructor. - ~ViewProviderPath(); + ~ViewProviderPath() override; // Display properties App::PropertyInteger LineWidth; @@ -67,29 +68,29 @@ public: App::PropertyIntegerConstraint ShowCount; App::PropertyIntegerConstraint::Constraints ShowCountConstraints; - void attach(App::DocumentObject *pcObject); - void setDisplayMode(const char* ModeName); - std::vector getDisplayModes() const; - void updateData(const App::Property*); + void attach(App::DocumentObject *pcObject) override; + void setDisplayMode(const char* ModeName) override; + std::vector getDisplayModes() const override; + void updateData(const App::Property*) override; void recomputeBoundingBox(); - virtual QIcon getIcon() const; + QIcon getIcon() const override; - virtual bool useNewSelectionModel(void) const; - virtual std::string getElement(const SoDetail *) const; - SoDetail* getDetail(const char* subelement) const; + bool useNewSelectionModel() const override; + std::string getElement(const SoDetail *) const override; + SoDetail* getDetail(const char* subelement) const override; void updateShowConstraints(); void updateVisual(bool rebuild = false); void hideSelection(); - virtual void showBoundingBox(bool show); + void showBoundingBox(bool show) override; friend class PathSelectionObserver; protected: - virtual void onChanged(const App::Property* prop); - virtual unsigned long getBoundColor() const; + void onChanged(const App::Property* prop) override; + unsigned long getBoundColor() const override; SoCoordinate3 * pcLineCoords; SoCoordinate3 * pcMarkerCoords; diff --git a/src/Mod/Path/Gui/ViewProviderPathCompound.h b/src/Mod/Path/Gui/ViewProviderPathCompound.h index 0930cf8b8e..88471db0a8 100644 --- a/src/Mod/Path/Gui/ViewProviderPathCompound.h +++ b/src/Mod/Path/Gui/ViewProviderPathCompound.h @@ -31,20 +31,20 @@ namespace PathGui class PathGuiExport ViewProviderPathCompound: public ViewProviderPath { - PROPERTY_HEADER(PathGui::ViewProviderPathCompound); + PROPERTY_HEADER_WITH_OVERRIDE(PathGui::ViewProviderPathCompound); public: - std::vector claimChildren(void)const; - virtual bool canDragObjects() const; - virtual void dragObject(App::DocumentObject*); - virtual bool canDropObjects() const; - virtual void dropObject(App::DocumentObject*); - QIcon getIcon(void) const; + std::vector claimChildren() const override; + bool canDragObjects() const override; + void dragObject(App::DocumentObject*) override; + bool canDropObjects() const override; + void dropObject(App::DocumentObject*) override; + QIcon getIcon() const override; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; }; diff --git a/src/Mod/Path/Gui/ViewProviderPathShape.h b/src/Mod/Path/Gui/ViewProviderPathShape.h index 8e60a3b7d8..4b83fa717f 100644 --- a/src/Mod/Path/Gui/ViewProviderPathShape.h +++ b/src/Mod/Path/Gui/ViewProviderPathShape.h @@ -31,24 +31,24 @@ namespace PathGui class PathGuiExport ViewProviderPathShape: public ViewProviderPath { - PROPERTY_HEADER(PathGui::ViewProviderPathShape); + PROPERTY_HEADER_WITH_OVERRIDE(PathGui::ViewProviderPathShape); public: /// grouping handling - virtual std::vector claimChildren(void) const; - virtual void updateData(const App::Property*); - virtual bool onDelete(const std::vector &); + std::vector claimChildren() const override; + void updateData(const App::Property*) override; + bool onDelete(const std::vector &) override; /// drag and drop - virtual bool canDragObjects() const; - virtual bool canDragObject(App::DocumentObject*) const; - virtual void dragObject(App::DocumentObject*); - virtual bool canDropObjects() const; - virtual bool canDropObject(App::DocumentObject*) const; - virtual void dropObject(App::DocumentObject*); + bool canDragObjects() const override; + bool canDragObject(App::DocumentObject*) const override; + void dragObject(App::DocumentObject*) override; + bool canDropObjects() const override; + bool canDropObject(App::DocumentObject*) const override; + void dropObject(App::DocumentObject*) override; - QIcon getIcon(void) const; + QIcon getIcon() const override; }; } //namespace PathGui diff --git a/src/Mod/Path/Path/Dressup/Gui/LeadInOut.py b/src/Mod/Path/Path/Dressup/Gui/LeadInOut.py index 20c2022737..bb794e0392 100644 --- a/src/Mod/Path/Path/Dressup/Gui/LeadInOut.py +++ b/src/Mod/Path/Path/Dressup/Gui/LeadInOut.py @@ -282,7 +282,7 @@ class ObjectDressup: t = p0.sub(leadstart) t = p0.add(t) leadstart = t - offsetvector = self.multiply(offsetvector, -1) + offsetvector = offsetvector.multiply(-1) elif obj.StyleOn == "Tangent": # This is wrong. please fix leadstart = (p0.add(off_v)).sub(offsetvector) @@ -290,7 +290,7 @@ class ObjectDressup: t = p0.sub(leadstart) t = p0.add(t) leadstart = t - offsetvector = self.multiply(offsetvector, -1) + offsetvector = offsetvector.multiply(-1) else: # perpendicular leadstart = p0.add(off_v) diff --git a/src/Mod/Path/Path/Op/Area.py b/src/Mod/Path/Path/Op/Area.py index 36ec58cbad..b249372161 100644 --- a/src/Mod/Path/Path/Op/Area.py +++ b/src/Mod/Path/Path/Op/Area.py @@ -265,7 +265,10 @@ class ObjectOp(PathOp.ObjectOp): (pp, end_vector) = Path.fromShapes(**pathParams) Path.Log.debug("pp: {}, end vector: {}".format(pp, end_vector)) - self.endVector = end_vector + + # Keep track of this segment's end only if it has movement (otherwise end_vector is 0,0,0 and the next segment will unnecessarily start there) + if pp.Size > 0: + self.endVector = end_vector simobj = None if getsim: diff --git a/src/Mod/Path/Path/Op/Pocket.py b/src/Mod/Path/Path/Op/Pocket.py index 4bfd122e8a..e4dec55348 100644 --- a/src/Mod/Path/Path/Op/Pocket.py +++ b/src/Mod/Path/Path/Op/Pocket.py @@ -281,7 +281,7 @@ class ObjectPocket(PathPocketBase.ObjectPocket): obj.AdaptivePocketFinish = False obj.ProcessStockArea = False - # methods for eliminating air milling with some pockets: adpative start and finish + # methods for eliminating air milling with some pockets: adaptive start and finish def calculateAdaptivePocket(self, obj, base, subObjTups): """calculateAdaptivePocket(obj, base, subObjTups) Orient multiple faces around common facial center of mass. diff --git a/src/Mod/Path/Path/Post/Command.py b/src/Mod/Path/Path/Post/Command.py index 9393e7282f..6cff4d6cab 100644 --- a/src/Mod/Path/Path/Post/Command.py +++ b/src/Mod/Path/Path/Post/Command.py @@ -20,7 +20,8 @@ # * * # *************************************************************************** -"""Post Process command that will make use of the Output File and Post Processor entries in PathJob """ +"""Post Process command that will make use of the Output File and Post +Processor entries in PathJob """ import FreeCAD @@ -28,7 +29,7 @@ import FreeCADGui import Path import Path.Base.Util as PathUtil import Path.Main.Job as PathJob -import PathScripts.PathUtils as PathUtils +from PathScripts import PathUtils import os import re @@ -39,7 +40,8 @@ from PySide.QtCore import QT_TRANSLATE_NOOP LOG_MODULE = Path.Log.thisModule() -if False: +debugmodule = False +if debugmodule: Path.Log.setLevel(Path.Log.Level.DEBUG, Path.Log.thisModule()) Path.Log.trackModule(Path.Log.thisModule()) else: @@ -152,6 +154,8 @@ def processFileNameSubstitutions( def resolveFileName(job, subpartname, sequencenumber): + """Generate the file name to use as output.""" + Path.Log.track(subpartname, sequencenumber) validPathSubstitutions = ["D", "d", "M", "j"] @@ -163,8 +167,9 @@ def resolveFileName(job, subpartname, sequencenumber): # Override with document default if it exists if job.PostProcessorOutputFile: - matchstring = job.PostProcessorOutputFile - candidateOutputPath, candidateFilename = os.path.split(matchstring) + candidateOutputPath, candidateFilename = os.path.split( + job.PostProcessorOutputFile + ) if candidateOutputPath: outputpath = candidateOutputPath @@ -172,7 +177,7 @@ def resolveFileName(job, subpartname, sequencenumber): if candidateFilename: filename, ext = os.path.splitext(candidateFilename) - # Strip any invalid substitutions from the ouputpath + # Strip any invalid substitutions from the outputpath for match in re.findall("%(.)", outputpath): if match not in validPathSubstitutions: outputpath = outputpath.replace(f"%{match}", "") @@ -229,16 +234,16 @@ def resolveFileName(job, subpartname, sequencenumber): n = 1 if nr.isdigit(): n = int(nr) - while os.path.isfile("%s%03d%s" % (fn, n, ext)): + while os.path.isfile(f"{fn}{n:03d}{ext}"): n = n + 1 - fullPath = "%s%03d%s" % (fn, n, ext) + fullPath = f"{fn}{n:03d}{ext}" if openDialog: - foo = QtGui.QFileDialog.getSaveFileName( + requestedfile = QtGui.QFileDialog.getSaveFileName( QtGui.QApplication.activeWindow(), "Output File", fullPath ) - if foo[0]: - fullPath = foo[0] + if requestedfile[0]: + fullPath = requestedfile[0] else: fullPath = None @@ -252,6 +257,33 @@ def resolveFileName(job, subpartname, sequencenumber): return fullPath +def fixtureSetup(order, fixture, job): + """Convert a Fixure setting to _TempObject instance with a G0 move to a + safe height every time the fixture coordinate system change. Skip + the move for first fixture, to avoid moving before tool and tool + height compensation is enabled. + + """ + + fobj = _TempObject() + c1 = Path.Command(fixture) + fobj.Path = Path.Path([c1]) + # Avoid any tool move after G49 in preamble and before tool change + # and G43 in case tool height compensation is in use, to avoid + # dangerous move without tool compesation. + if order != 0: + c2 = Path.Command( + "G0 Z" + + str( + job.Stock.Shape.BoundBox.ZMax + + job.SetupSheet.ClearanceHeightOffset.Value + ) + ) + fobj.Path.addCommands(c2) + fobj.InList.append(job) + return fobj + + def buildPostList(job): """Takes the job and determines the specific objects and order to postprocess Returns a list of objects which can be passed to @@ -269,20 +301,7 @@ def buildPostList(job): currTool = None for index, f in enumerate(wcslist): # create an object to serve as the fixture path - fobj = _TempObject() - c1 = Path.Command(f) - fobj.Path = Path.Path([c1]) - if index != 0: - c2 = Path.Command( - "G0 Z" - + str( - job.Stock.Shape.BoundBox.ZMax - + job.SetupSheet.ClearanceHeightOffset.Value - ) - ) - fobj.Path.addCommands(c2) - fobj.InList.append(job) - sublist = [fobj] + sublist = [fixtureSetup(index, f, job)] # Now generate the gcode for obj in job.Operations.Group: @@ -290,7 +309,7 @@ def buildPostList(job): if tc is not None and PathUtil.opProperty(obj, "Active"): if tc.ToolNumber != currTool: sublist.append(tc) - Path.Log.debug("Appending TC: {}".format(tc.Name)) + Path.Log.debug(f"Appending TC: {tc.Name}") currTool = tc.ToolNumber sublist.append(obj) postlist.append((f, sublist)) @@ -306,20 +325,9 @@ def buildPostList(job): # Build the fixture list fixturelist = [] - for f in wcslist: + for index, f in enumerate(wcslist): # create an object to serve as the fixture path - fobj = _TempObject() - c1 = Path.Command(f) - c2 = Path.Command( - "G0 Z" - + str( - job.Stock.Shape.BoundBox.ZMax - + job.SetupSheet.ClearanceHeightOffset.Value - ) - ) - fobj.Path = Path.Path([c1, c2]) - fobj.InList.append(job) - fixturelist.append(fobj) + fixturelist.append(fixtureSetup(index, f, job)) # Now generate the gcode curlist = [] # list of ops for tool, will repeat for each fixture @@ -374,7 +382,6 @@ def buildPostList(job): # Order by operation means ops are done in each fixture in # sequence. currTool = None - firstFixture = True # Now generate the gcode for obj in job.Operations.Group: @@ -384,24 +391,10 @@ def buildPostList(job): continue sublist = [] - Path.Log.debug("obj: {}".format(obj.Name)) + Path.Log.debug(f"obj: {obj.Name}") - for f in wcslist: - fobj = _TempObject() - c1 = Path.Command(f) - fobj.Path = Path.Path([c1]) - if not firstFixture: - c2 = Path.Command( - "G0 Z" - + str( - job.Stock.Shape.BoundBox.ZMax - + job.SetupSheet.ClearanceHeightOffset.Value - ) - ) - fobj.Path.addCommands(c2) - fobj.InList.append(job) - sublist.append(fobj) - firstFixture = False + for index, f in enumerate(wcslist): + sublist.append(fixtureSetup(index, f, job)) tc = PathUtil.toolControllerForOp(obj) if tc is not None: if job.SplitOutput or (tc.ToolNumber != currTool): @@ -413,16 +406,18 @@ def buildPostList(job): if job.SplitOutput: Path.Log.track() return postlist - else: - Path.Log.track() - finalpostlist = [ - ("allitems", [item for slist in postlist for item in slist[1]]) - ] - return finalpostlist + + Path.Log.track() + finalpostlist = [ + ("allitems", [item for slist in postlist for item in slist[1]]) + ] + return finalpostlist class DlgSelectPostProcessor: - def __init__(self, parent=None): + """Provide user with list of available and active post processor + choices.""" + def __init__(self): self.dialog = FreeCADGui.PySideUic.loadUi(":/panels/DlgSelectPostProcessor.ui") firstItem = None for post in Path.Preferences.allEnabledPostProcessors(): @@ -507,7 +502,7 @@ class CommandPathPost: postArgs = "" if extraargs is not None: - postArgs += " {}".format(extraargs) + postArgs += f" {extraargs}" Path.Log.track(postArgs) @@ -560,7 +555,7 @@ class CommandPathPost: if hasattr(o, "Proxy"): if isinstance(o.Proxy, PathJob.ObjectJob): targetlist.append(o.Label) - Path.Log.debug("Possible post objects: {}".format(targetlist)) + Path.Log.debug(f"Possible post objects: {targetlist}") if len(targetlist) > 1: jobname, result = QtGui.QInputDialog.getItem( None, translate("Path", "Choose a Path Job"), None, targetlist @@ -572,7 +567,7 @@ class CommandPathPost: jobname = targetlist[0] job = FreeCAD.ActiveDocument.getObject(jobname) - Path.Log.debug("about to postprocess job: {}".format(job.Name)) + Path.Log.debug(f"about to postprocess job: {job.Name}") postlist = buildPostList(job) # filename = resolveFileName(job, "allitems", 0) diff --git a/src/Mod/Path/Path/Post/scripts/uccnc_post.py b/src/Mod/Path/Path/Post/scripts/uccnc_post.py index 1f60daca96..c8d1eccb74 100644 --- a/src/Mod/Path/Path/Post/scripts/uccnc_post.py +++ b/src/Mod/Path/Path/Post/scripts/uccnc_post.py @@ -179,7 +179,7 @@ POSTAMBLE = POSTAMBLE_DEFAULT # MODAL possible values: # bool Repeat/suppress repeated command arguments. # True commands are suppressed if the same as previous line. -# False commands are repeated ith the same as previout line. +# False commands are repeated if the same as previous line. # set with --modal MODAL = False diff --git a/src/Mod/Path/PathGlobal.h b/src/Mod/Path/PathGlobal.h index ce2a5f774f..04e0505d95 100644 --- a/src/Mod/Path/PathGlobal.h +++ b/src/Mod/Path/PathGlobal.h @@ -44,4 +44,13 @@ #endif #endif +// PathSimulator +#ifndef PathSimulatorExport +#ifdef PathSimulator_EXPORTS +# define PathSimulatorExport FREECAD_DECL_EXPORT +#else +# define PathSimulatorExport FREECAD_DECL_IMPORT +#endif +#endif + #endif //PATH_GLOBAL_H diff --git a/src/Mod/Path/PathSimulator/App/PathSim.h b/src/Mod/Path/PathSimulator/App/PathSim.h index 2b09a0b45f..5d056d89db 100644 --- a/src/Mod/Path/PathSimulator/App/PathSim.h +++ b/src/Mod/Path/PathSimulator/App/PathSim.h @@ -28,6 +28,7 @@ #include #include +#include #include "VolSim.h" diff --git a/src/Mod/Path/PathSimulator/App/PreCompiled.h b/src/Mod/Path/PathSimulator/App/PreCompiled.h index c8463f6304..14ea3ae0a3 100644 --- a/src/Mod/Path/PathSimulator/App/PreCompiled.h +++ b/src/Mod/Path/PathSimulator/App/PreCompiled.h @@ -25,19 +25,6 @@ #include -// Exporting of App classes -#ifdef FC_OS_WIN32 -# define PathSimulatorExport __declspec(dllexport) -# define PathExport __declspec(dllimport) -# define PartExport __declspec(dllimport) -# define MeshExport __declspec(dllimport) -#else // for Linux -# define PathSimulatorExport -# define PathExport -# define PartExport -# define MeshExport -#endif - #ifdef _PreComp_ // standard diff --git a/src/Mod/Path/PathTests/TestPathPost.py b/src/Mod/Path/PathTests/TestPathPost.py index 2753a696a8..d9643577d7 100644 --- a/src/Mod/Path/PathTests/TestPathPost.py +++ b/src/Mod/Path/PathTests/TestPathPost.py @@ -474,7 +474,10 @@ class TestOutputNameSubstitution(unittest.TestCase): outlist = PathPost.buildPostList(self.job) subpart, objs = outlist[0] filename = PathPost.resolveFileName(self.job, subpart, 0) - self.assertEqual(filename, f"{self.macro}outfile.nc") + self.assertEqual( + os.path.normpath(filename), + os.path.normpath(f"{self.macro}outfile.nc") + ) def test040(self): # unused substitution strings should be ignored diff --git a/src/Mod/Points/App/AppPointsPy.cpp b/src/Mod/Points/App/AppPointsPy.cpp index 5db820f5b1..9bd3d6d74a 100644 --- a/src/Mod/Points/App/AppPointsPy.cpp +++ b/src/Mod/Points/App/AppPointsPy.cpp @@ -90,17 +90,17 @@ private: std::unique_ptr reader; if (file.hasExtension("asc")) { - reader.reset(new AscReader); + reader = std::make_unique(); } else if (file.hasExtension("e57")) { auto setting = readE57Settings(); - reader.reset(new E57Reader(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting))); + reader = std::make_unique(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting)); } else if (file.hasExtension("ply")) { - reader.reset(new PlyReader); + reader = std::make_unique(); } else if (file.hasExtension("pcd")) { - reader.reset(new PcdReader); + reader = std::make_unique(); } else { throw Py::RuntimeError("Unsupported file extension"); @@ -206,17 +206,17 @@ private: std::unique_ptr reader; if (file.hasExtension("asc")) { - reader.reset(new AscReader); + reader = std::make_unique(); } else if (file.hasExtension("e57")) { auto setting = readE57Settings(); - reader.reset(new E57Reader(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting))); + reader = std::make_unique(std::get<0>(setting), std::get<1>(setting), std::get<2>(setting)); } else if (file.hasExtension("ply")) { - reader.reset(new PlyReader); + reader = std::make_unique(); } else if (file.hasExtension("pcd")) { - reader.reset(new PcdReader); + reader = std::make_unique(); } else { throw Py::RuntimeError("Unsupported file extension"); @@ -327,13 +327,13 @@ private: const PointKernel& kernel = fea->Points.getValue(); std::unique_ptr writer; if (file.hasExtension("asc")) { - writer.reset(new AscWriter(kernel)); + writer = std::make_unique(kernel); } else if (file.hasExtension("ply")) { - writer.reset(new PlyWriter(kernel)); + writer = std::make_unique(kernel); } else if (file.hasExtension("pcd")) { - writer.reset(new PcdWriter(kernel)); + writer = std::make_unique(kernel); } else { throw Py::RuntimeError("Unsupported file extension"); diff --git a/src/Mod/Points/Gui/Resources/translations/Points_de.ts b/src/Mod/Points/Gui/Resources/translations/Points_de.ts index b6b3e5e4e5..9320259b57 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_de.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_de.ts @@ -74,7 +74,7 @@ Merge several point clouds into one - Mehrere Punktwolken zu einer zusammenführen + Führt mehrere Punktwolken zu einer zusammen @@ -112,7 +112,7 @@ Convert points to structured point cloud - Punkte in eine strukturierte Punktwolke umwandeln + Wandelt Punkte in eine strukturierte Punktwolke um @@ -323,7 +323,7 @@ &Points - &Punkte + &Points diff --git a/src/Mod/ReverseEngineering/App/ApproxSurface.cpp b/src/Mod/ReverseEngineering/App/ApproxSurface.cpp index 5e3188d97f..f882c47d53 100644 --- a/src/Mod/ReverseEngineering/App/ApproxSurface.cpp +++ b/src/Mod/ReverseEngineering/App/ApproxSurface.cpp @@ -40,7 +40,7 @@ using namespace Reen; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; // SplineBasisfunction @@ -1091,8 +1091,10 @@ bool BSplineParameterCorrection::SolveWithSmoothing(double fWeight) std::vector columns(ulDim); std::generate(columns.begin(), columns.end(), Base::iotaGen(0)); ScalarProduct scalar(M); + //NOLINTBEGIN QFuture< std::vector > future = QtConcurrent::mapped - (columns, boost::bind(&ScalarProduct::multiply, &scalar, bp::_1)); + (columns, std::bind(&ScalarProduct::multiply, &scalar, sp::_1)); + //NOLINTEND QFutureWatcher< std::vector > watcher; watcher.setFuture(future); watcher.waitForFinished(); diff --git a/src/Mod/ReverseEngineering/Gui/AppReverseEngineeringGui.cpp b/src/Mod/ReverseEngineering/Gui/AppReverseEngineeringGui.cpp index 28e475f8d6..17c8f427b9 100644 --- a/src/Mod/ReverseEngineering/Gui/AppReverseEngineeringGui.cpp +++ b/src/Mod/ReverseEngineering/Gui/AppReverseEngineeringGui.cpp @@ -32,7 +32,7 @@ // use a different name to CreateCommand() -void CreateReverseEngineeringCommands(void); +void CreateReverseEngineeringCommands(); void loadReverseEngineeringResource() { diff --git a/src/Mod/ReverseEngineering/Gui/Command.cpp b/src/Mod/ReverseEngineering/Gui/Command.cpp index 176fc3f606..a97766da92 100644 --- a/src/Mod/ReverseEngineering/Gui/Command.cpp +++ b/src/Mod/ReverseEngineering/Gui/Command.cpp @@ -90,7 +90,7 @@ void CmdApproxSurface::activated(int) Gui::Control().showDialog(new ReenGui::TaskFitBSplineSurface(objT)); } -bool CmdApproxSurface::isActive(void) +bool CmdApproxSurface::isActive() { return (hasActiveDocument() && !Gui::Control().activeDialog()); } @@ -189,7 +189,7 @@ void CmdApproxPlane::activated(int) } } -bool CmdApproxPlane::isActive(void) +bool CmdApproxPlane::isActive() { if (getSelection().countObjectsOfType(App::GeoFeature::getClassTypeId()) == 1) return true; @@ -255,7 +255,7 @@ void CmdApproxCylinder::activated(int) updateActive(); } -bool CmdApproxCylinder::isActive(void) +bool CmdApproxCylinder::isActive() { if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) > 0) return true; @@ -302,7 +302,7 @@ void CmdApproxSphere::activated(int) updateActive(); } -bool CmdApproxSphere::isActive(void) +bool CmdApproxSphere::isActive() { if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) > 0) return true; @@ -357,7 +357,7 @@ void CmdApproxPolynomial::activated(int) updateActive(); } -bool CmdApproxPolynomial::isActive(void) +bool CmdApproxPolynomial::isActive() { if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) > 0) return true; @@ -388,7 +388,7 @@ void CmdSegmentation::activated(int) Gui::Control().showDialog(dlg); } -bool CmdSegmentation::isActive(void) +bool CmdSegmentation::isActive() { if (Gui::Control().activeDialog()) return false; @@ -418,7 +418,7 @@ void CmdSegmentationManual::activated(int) Gui::Control().showDialog(dlg); } -bool CmdSegmentationManual::isActive(void) +bool CmdSegmentationManual::isActive() { if (Gui::Control().activeDialog()) return false; @@ -468,7 +468,7 @@ void CmdSegmentationFromComponents::activated(int) doc->recompute(); } -bool CmdSegmentationFromComponents::isActive(void) +bool CmdSegmentationFromComponents::isActive() { if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) > 0) return true; @@ -535,7 +535,7 @@ void CmdMeshBoundary::activated(int) document->commitTransaction(); } -bool CmdMeshBoundary::isActive(void) +bool CmdMeshBoundary::isActive() { return Gui::Selection().countObjectsOfType (Mesh::Feature::getClassTypeId()) > 0; @@ -570,7 +570,7 @@ void CmdPoissonReconstruction::activated(int) Gui::Control().showDialog(new ReenGui::TaskPoisson(objT)); } -bool CmdPoissonReconstruction::isActive(void) +bool CmdPoissonReconstruction::isActive() { return (hasActiveDocument() && !Gui::Control().activeDialog()); } @@ -620,12 +620,12 @@ void CmdViewTriangulation::activated(int) } } -bool CmdViewTriangulation::isActive(void) +bool CmdViewTriangulation::isActive() { return (Gui::Selection().countObjectsOfType(Points::Structured::getClassTypeId()) > 0); } -void CreateReverseEngineeringCommands(void) +void CreateReverseEngineeringCommands() { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); rcCmdMgr.addCommand(new CmdApproxSurface()); diff --git a/src/Mod/ReverseEngineering/Gui/FitBSplineSurface.cpp b/src/Mod/ReverseEngineering/Gui/FitBSplineSurface.cpp index d2d38fc790..f1f87e6a0f 100644 --- a/src/Mod/ReverseEngineering/Gui/FitBSplineSurface.cpp +++ b/src/Mod/ReverseEngineering/Gui/FitBSplineSurface.cpp @@ -144,8 +144,10 @@ void FitBSplineSurfaceWidget::onMakePlacementClicked() .arg(q3); QString document = QString::fromStdString(d->obj.getDocumentPython()); - QString command = QString::fromLatin1("%1.addObject(\"App::Placement\", \"Placement\").Placement = %2") - .arg(document, argument); + QString command = + QString::fromLatin1( + R"(%1.addObject("App::Placement", "Placement").Placement = %2)" + ).arg(document, argument); Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Placement")); Gui::Command::runCommand(Gui::Command::Doc, "from FreeCAD import Base"); diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ca.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ca.ts index 6e79e34a22..f126f82bfb 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ca.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ca.ts @@ -412,12 +412,12 @@ Mesh segmentation - Segmentació de malla + Segmentació de la malla Smooth mesh - Suavitza de la malla + Suavitza la malla @@ -485,7 +485,7 @@ Pick triangle - Seleccioneu un triangle + Trieu un triangle @@ -536,7 +536,7 @@ Region options - Opcions de regió + Opcions de la regió @@ -546,7 +546,7 @@ Respect only triangles with normals facing screen - Respecta només els triangles amb les normals enfront de la pantalla + Respecta només els triangles amb les normals mirant la pantalla diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts index b1d4999994..5128419ef6 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts @@ -470,7 +470,7 @@ All - Tous + Tout diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh-TW.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh-TW.ts index 05eba49e8b..5b439a70b9 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh-TW.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh-TW.ts @@ -16,7 +16,7 @@ Approximate a cylinder - Approximate a cylinder + Approximate a cylinder @@ -29,7 +29,7 @@ Plane... - 平面... + Plane... @@ -47,12 +47,12 @@ Polynomial surface - Polynomial surface + Polynomial surface Approximate a polynomial surface - Approximate a polynomial surface + Approximate a polynomial surface @@ -70,7 +70,7 @@ Approximate a sphere - Approximate a sphere + Approximate a sphere @@ -83,12 +83,12 @@ Approximate B-spline surface... - Approximate B-spline surface... + Approximate B-spline surface... Approximate a B-spline surface - Approximate a B-spline surface + Approximate a B-spline surface @@ -101,12 +101,12 @@ Wire from mesh boundary... - Wire from mesh boundary... + Wire from mesh boundary... Create wire from mesh boundaries - Create wire from mesh boundaries + Create wire from mesh boundaries @@ -119,12 +119,12 @@ Poisson... - Poisson... + Poisson... Poisson surface reconstruction - Poisson surface reconstruction + Poisson surface reconstruction @@ -137,7 +137,7 @@ Mesh segmentation... - Mesh segmentation... + Mesh segmentation... @@ -155,12 +155,12 @@ From components - From components + From components Create mesh segments from components - Create mesh segments from components + Create mesh segments from components @@ -173,12 +173,12 @@ Manual segmentation... - Manual segmentation... + Manual segmentation... Create mesh segments manually - Create mesh segments manually + Create mesh segments manually @@ -191,13 +191,13 @@ Structured point clouds - Structured point clouds + Structured point clouds Triangulation of structured point clouds - Triangulation of structured point clouds + Triangulation of structured point clouds @@ -205,47 +205,47 @@ Fit plane - 最適化平面 + Fit plane Fit cylinder - 最適化圓柱 + Fit cylinder Fit sphere - 最適化球體 + Fit sphere Fit polynomial surface - Fit polynomial surface + Fit polynomial surface View triangulation - View triangulation + View triangulation Placement - 放置位置 + 佈置 Fit B-Spline - 最適化B-雲行線 + Fit B-Spline Poisson reconstruction - Poisson reconstruction + Poisson reconstruction Segmentation - Segmentation + Segmentation @@ -253,7 +253,7 @@ Fit B-spline surface - 最適化B-雲行線表面 + Fit B-spline surface @@ -295,12 +295,12 @@ User-defined u/v directions - User-defined u/v directions + User-defined u/v directions Create placement - Create placement + Create placement @@ -339,12 +339,12 @@ Wrong selection - 錯誤的選擇 + 錯誤的選取 Please select a single placement object to get local orientation. - Please select a single placement object to get local orientation. + Please select a single placement object to get local orientation. @@ -352,7 +352,7 @@ Poisson - Poisson + Poisson @@ -362,17 +362,17 @@ Octree depth - Octree depth + Octree depth Solver divide - Solver divide + Solver divide Samples per node - Samples per node + Samples per node @@ -386,17 +386,17 @@ Wrong selection - 錯誤的選擇 + 錯誤的選取 Please select a point cloud or mesh. - Please select a point cloud or mesh. + Please select a point cloud or mesh. Please select a single point cloud. - Please select a single point cloud. + Please select a single point cloud. @@ -404,7 +404,7 @@ View triangulation failed - View triangulation failed + View triangulation failed @@ -427,12 +427,12 @@ Curvature tolerance - Curvature tolerance + Curvature tolerance Distance to plane - Distance to plane + Distance to plane @@ -442,12 +442,12 @@ Create mesh from unused triangles - Create mesh from unused triangles + Create mesh from unused triangles Create compound - Create compound + Create compound @@ -455,7 +455,7 @@ Manual segmentation - Manual segmentation + Manual segmentation @@ -507,7 +507,7 @@ Detect - 偵測 + Detect @@ -551,17 +551,17 @@ Segmentation - Segmentation + Segmentation Cut segment from mesh - Cut segment from mesh + Cut segment from mesh Hide segment - Hide segment + Hide segment diff --git a/src/Mod/ReverseEngineering/Gui/SegmentationManual.h b/src/Mod/ReverseEngineering/Gui/SegmentationManual.h index 150498146b..dc090b83b5 100644 --- a/src/Mod/ReverseEngineering/Gui/SegmentationManual.h +++ b/src/Mod/ReverseEngineering/Gui/SegmentationManual.h @@ -92,7 +92,7 @@ public: QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Ok | QDialogButtonBox::Close; } - bool isAllowedAlterDocument(void) const override + bool isAllowedAlterDocument() const override { return true; } void modifyStandardButtons(QDialogButtonBox*) override; diff --git a/src/Mod/Robot/App/Edge2TracObject.cpp b/src/Mod/Robot/App/Edge2TracObject.cpp index 0ee5577f8d..045c316894 100644 --- a/src/Mod/Robot/App/Edge2TracObject.cpp +++ b/src/Mod/Robot/App/Edge2TracObject.cpp @@ -57,7 +57,7 @@ Edge2TracObject::~Edge2TracObject() { } -App::DocumentObjectExecReturn *Edge2TracObject::execute(void) +App::DocumentObjectExecReturn *Edge2TracObject::execute() { App::DocumentObject* link = Source.getValue(); if (!link) diff --git a/src/Mod/Robot/App/Edge2TracObject.h b/src/Mod/Robot/App/Edge2TracObject.h index c440dd8d90..5affa6b52b 100644 --- a/src/Mod/Robot/App/Edge2TracObject.h +++ b/src/Mod/Robot/App/Edge2TracObject.h @@ -33,12 +33,12 @@ namespace Robot class RobotExport Edge2TracObject : public TrajectoryObject { - PROPERTY_HEADER(Robot::TrajectoryObject); + PROPERTY_HEADER_WITH_OVERRIDE(Robot::TrajectoryObject); public: /// Constructor - Edge2TracObject(void); - virtual ~Edge2TracObject(); + Edge2TracObject(); + ~Edge2TracObject() override; App::PropertyLinkSub Source; App::PropertyFloatConstraint SegValue; @@ -50,14 +50,14 @@ public: int NbrOfEdges; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "RobotGui::ViewProviderEdge2TracObject"; } - virtual App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute() override; protected: /// get called by the container when a property has changed - virtual void onChanged (const App::Property* prop); + void onChanged (const App::Property* prop) override; }; diff --git a/src/Mod/Robot/App/PropertyTrajectory.h b/src/Mod/Robot/App/PropertyTrajectory.h index 7d2c0283d7..8e5eba9cb0 100644 --- a/src/Mod/Robot/App/PropertyTrajectory.h +++ b/src/Mod/Robot/App/PropertyTrajectory.h @@ -37,18 +37,18 @@ namespace Robot */ class RobotExport PropertyTrajectory : public App::Property { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyTrajectory(); - ~PropertyTrajectory(); + ~PropertyTrajectory() override; /** @name Getter/setter */ //@{ /// set the part shape void setValue(const Trajectory&); /// get the part shape - const Trajectory &getValue(void) const; + const Trajectory &getValue() const; //@} @@ -60,18 +60,18 @@ public: /** @name Python interface */ //@{ - PyObject* getPyObject(void); - void setPyObject(PyObject *value); + PyObject* getPyObject() override; + void setPyObject(PyObject *value) override; //@} /** @name Save/restore */ //@{ - void Save (Base::Writer &writer) const; - void Restore(Base::XMLReader &reader); + void Save (Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; - App::Property *Copy(void) const; - void Paste(const App::Property &from); - unsigned int getMemSize (void) const; + App::Property *Copy() const override; + void Paste(const App::Property &from) override; + unsigned int getMemSize () const override; //@} private: diff --git a/src/Mod/Robot/App/RobotAlgos.h b/src/Mod/Robot/App/RobotAlgos.h index ff8330579e..1f24cdd0a0 100644 --- a/src/Mod/Robot/App/RobotAlgos.h +++ b/src/Mod/Robot/App/RobotAlgos.h @@ -37,10 +37,10 @@ class RobotExport RobotAlgos public: /// Constructor - RobotAlgos(void); + RobotAlgos(); virtual ~RobotAlgos(); - void Test(void); + void Test(); }; inline KDL::Frame toFrame(const Base::Placement &To){ diff --git a/src/Mod/Robot/App/Trajectory.cpp b/src/Mod/Robot/App/Trajectory.cpp index e47a0cf162..b08c5248b4 100644 --- a/src/Mod/Robot/App/Trajectory.cpp +++ b/src/Mod/Robot/App/Trajectory.cpp @@ -179,10 +179,10 @@ void Trajectory::generateTrajectory() bool Cont = (*it)->Cont && !(it == --vpcWaypoints.end()); // start of a continue block if (Cont && !pcRoundComp) { - pcRoundComp.reset(new KDL::Path_RoundedComposite(3, 3, - new KDL::RotationalInterpolation_SingleAxis())); + pcRoundComp = std::make_unique(3, 3, + new KDL::RotationalInterpolation_SingleAxis()); // the velocity of the first waypoint is used - pcVelPrf.reset(new KDL::VelocityProfile_Trap((*it)->Velocity, (*it)->Acceleration)); + pcVelPrf = std::make_unique((*it)->Velocity, (*it)->Acceleration); pcRoundComp->Add(Last); pcRoundComp->Add(Next); @@ -197,7 +197,7 @@ void Trajectory::generateTrajectory() pcRoundComp->Add(Next); pcRoundComp->Finish(); pcVelPrf->SetProfile(0, pcRoundComp->PathLength()); - pcTrak.reset(new KDL::Trajectory_Segment(pcRoundComp.release(), pcVelPrf.release())); + pcTrak = std::make_unique(pcRoundComp.release(), pcVelPrf.release()); // normal block } @@ -210,9 +210,9 @@ void Trajectory::generateTrajectory() true ); - pcVelPrf.reset(new KDL::VelocityProfile_Trap((*it)->Velocity, (*it)->Acceleration)); + pcVelPrf = std::make_unique((*it)->Velocity, (*it)->Acceleration); pcVelPrf->SetProfile(0, pcPath->PathLength()); - pcTrak.reset(new KDL::Trajectory_Segment(pcPath, pcVelPrf.release())); + pcTrak = std::make_unique(pcPath, pcVelPrf.release()); } Last = Next; break; } diff --git a/src/Mod/Robot/App/Trajectory.h b/src/Mod/Robot/App/Trajectory.h index d5db4e234b..b115a67029 100644 --- a/src/Mod/Robot/App/Trajectory.h +++ b/src/Mod/Robot/App/Trajectory.h @@ -41,27 +41,27 @@ namespace Robot */ class RobotExport Trajectory : public Base::Persistence { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: Trajectory(); Trajectory(const Trajectory&); - ~Trajectory(); + ~Trajectory() override; Trajectory &operator=(const Trajectory&); // from base class - virtual unsigned int getMemSize (void) const; - virtual void Save (Base::Writer &/*writer*/) const; - virtual void Restore(Base::XMLReader &/*reader*/); + unsigned int getMemSize () const override; + void Save (Base::Writer &/*writer*/) const override; + void Restore(Base::XMLReader &/*reader*/) override; // interface - void generateTrajectory(void); + void generateTrajectory(); void addWaypoint(const Waypoint &WPnt); - unsigned int getSize(void) const{return vpcWaypoints.size();} + unsigned int getSize() const{return vpcWaypoints.size();} const Waypoint &getWaypoint(unsigned int pos)const {return *vpcWaypoints[pos];} std::string getUniqueWaypointName(const char *Name) const; - const std::vector &getWaypoints(void)const{return vpcWaypoints;} + const std::vector &getWaypoints()const{return vpcWaypoints;} /// delete the last n waypoints void deleteLast(unsigned int n=1); diff --git a/src/Mod/Robot/App/TrajectoryCompound.cpp b/src/Mod/Robot/App/TrajectoryCompound.cpp index 8da304bc6d..de68523e98 100644 --- a/src/Mod/Robot/App/TrajectoryCompound.cpp +++ b/src/Mod/Robot/App/TrajectoryCompound.cpp @@ -43,7 +43,7 @@ TrajectoryCompound::~TrajectoryCompound() { } -App::DocumentObjectExecReturn *TrajectoryCompound::execute(void) +App::DocumentObjectExecReturn *TrajectoryCompound::execute() { const std::vector &Tracs = Source.getValues(); Robot::Trajectory result; diff --git a/src/Mod/Robot/App/TrajectoryCompound.h b/src/Mod/Robot/App/TrajectoryCompound.h index 6de01b0807..52eb60421a 100644 --- a/src/Mod/Robot/App/TrajectoryCompound.h +++ b/src/Mod/Robot/App/TrajectoryCompound.h @@ -33,20 +33,20 @@ namespace Robot class RobotExport TrajectoryCompound : public TrajectoryObject { - PROPERTY_HEADER(Robot::TrajectoryObject); + PROPERTY_HEADER_WITH_OVERRIDE(Robot::TrajectoryObject); public: /// Constructor - TrajectoryCompound(void); - virtual ~TrajectoryCompound(); + TrajectoryCompound(); + ~TrajectoryCompound() override; App::PropertyLinkList Source; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "RobotGui::ViewProviderTrajectoryCompound"; } - virtual App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute() override; protected: /// get called by the container when a property has changed diff --git a/src/Mod/Robot/App/TrajectoryDressUpObject.h b/src/Mod/Robot/App/TrajectoryDressUpObject.h index 82b8590d85..b68773bdc9 100644 --- a/src/Mod/Robot/App/TrajectoryDressUpObject.h +++ b/src/Mod/Robot/App/TrajectoryDressUpObject.h @@ -34,12 +34,12 @@ namespace Robot class RobotExport TrajectoryDressUpObject : public TrajectoryObject { - PROPERTY_HEADER(Robot::TrajectoryObject); + PROPERTY_HEADER_WITH_OVERRIDE(Robot::TrajectoryObject); public: /// Constructor - TrajectoryDressUpObject(void); - virtual ~TrajectoryDressUpObject(); + TrajectoryDressUpObject(); + ~TrajectoryDressUpObject() override; App::PropertyLink Source; App::PropertySpeed Speed; @@ -52,17 +52,17 @@ public: /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "RobotGui::ViewProviderTrajectoryDressUp"; } - virtual App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute() override; static const char* ContTypeEnums[]; static const char* AddTypeEnums[]; protected: /// get called by the container when a property has changed - virtual void onChanged (const App::Property* prop); + void onChanged (const App::Property* prop) override; }; diff --git a/src/Mod/Robot/App/TrajectoryObject.cpp b/src/Mod/Robot/App/TrajectoryObject.cpp index 8d0c6a31d4..71266c17b1 100644 --- a/src/Mod/Robot/App/TrajectoryObject.cpp +++ b/src/Mod/Robot/App/TrajectoryObject.cpp @@ -46,7 +46,7 @@ TrajectoryObject::~TrajectoryObject() { } -short TrajectoryObject::mustExecute(void) const +short TrajectoryObject::mustExecute() const { return 0; } diff --git a/src/Mod/Robot/App/TrajectoryObject.h b/src/Mod/Robot/App/TrajectoryObject.h index 0a22e22e60..6184cbdf61 100644 --- a/src/Mod/Robot/App/TrajectoryObject.h +++ b/src/Mod/Robot/App/TrajectoryObject.h @@ -35,30 +35,30 @@ namespace Robot class RobotExport TrajectoryObject : public App::GeoFeature { - PROPERTY_HEADER(Robot::TrajectoryObject); + PROPERTY_HEADER_WITH_OVERRIDE(Robot::TrajectoryObject); public: /// Constructor - TrajectoryObject(void); - virtual ~TrajectoryObject(); + TrajectoryObject(); + ~TrajectoryObject() override; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName(void) const { + const char* getViewProviderName() const override { return "RobotGui::ViewProviderTrajectory"; } - virtual App::DocumentObjectExecReturn *execute(void) { + App::DocumentObjectExecReturn *execute() override { return App::DocumentObject::StdReturn; } - virtual short mustExecute(void) const; - virtual PyObject *getPyObject(void); + short mustExecute() const override; + PyObject *getPyObject() override; - App::PropertyPlacement Base; - PropertyTrajectory Trajectory; + App::PropertyPlacement Base; + PropertyTrajectory Trajectory; protected: /// get called by the container when a property has changed - virtual void onChanged (const App::Property* prop); + void onChanged (const App::Property* prop) override; }; diff --git a/src/Mod/Robot/App/Waypoint.h b/src/Mod/Robot/App/Waypoint.h index 0c822aa2d3..7f0f4be145 100644 --- a/src/Mod/Robot/App/Waypoint.h +++ b/src/Mod/Robot/App/Waypoint.h @@ -25,6 +25,7 @@ #include #include +#include namespace Robot @@ -34,7 +35,7 @@ namespace Robot */ class RobotExport Waypoint : public Base::Persistence { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: enum WaypointType { @@ -55,12 +56,12 @@ public: unsigned int tool = 0, unsigned int base = 0); - ~Waypoint(); + ~Waypoint() override; // from base class - virtual unsigned int getMemSize(void) const; - virtual void Save(Base::Writer& /*writer*/) const; - virtual void Restore(Base::XMLReader& /*reader*/); + unsigned int getMemSize() const override; + void Save(Base::Writer& /*writer*/) const override; + void Restore(Base::XMLReader& /*reader*/) override; std::string Name; diff --git a/src/Mod/Robot/Gui/CommandInsertRobot.cpp b/src/Mod/Robot/Gui/CommandInsertRobot.cpp index 48645128f8..2ce779bfe5 100644 --- a/src/Mod/Robot/Gui/CommandInsertRobot.cpp +++ b/src/Mod/Robot/Gui/CommandInsertRobot.cpp @@ -247,7 +247,7 @@ void CmdRobotAddToolShape::activated(int) bool CmdRobotAddToolShape::isActive() { - //return false; // not yet implemetned thus not active + //return false; // not yet implemented and thus not active return hasActiveDocument(); } diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_sl.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_sl.ts index 876a53a299..758a0edfb0 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_sl.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_sl.ts @@ -332,7 +332,7 @@ Create a dress-up object which overrides some aspects of a trajectory - Ustvari izpopolnitveni predmet, ki preglasi nekatere vidike poti + Ustvari dodelovalni predmet, ki preglasi nekatere lastnosti poti @@ -471,7 +471,7 @@ Select the Trajectory which you want to dress up. - Izberite pot, ki jo želite prilagoditi. + Izberite pot, ki jo želite dodelati. diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_zh-CN.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_zh-CN.ts index 0400e95957..5d423a1663 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_zh-CN.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_zh-CN.ts @@ -119,7 +119,7 @@ Kuka IR125 - 库卡IR125 + 库卡 IR125 @@ -137,7 +137,7 @@ Kuka IR16 - 库卡IR16 + 库卡 IR16 diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_zh-TW.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_zh-TW.ts index e96035fff7..112d393f2a 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_zh-TW.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_zh-TW.ts @@ -368,7 +368,7 @@ Wrong selection - 錯誤的選擇 + 錯誤的選取 diff --git a/src/Mod/Robot/Gui/TaskDlgTrajectoryCompound.h b/src/Mod/Robot/Gui/TaskDlgTrajectoryCompound.h index 81b073e339..8c33ac523b 100644 --- a/src/Mod/Robot/Gui/TaskDlgTrajectoryCompound.h +++ b/src/Mod/Robot/Gui/TaskDlgTrajectoryCompound.h @@ -39,20 +39,20 @@ class RobotGuiExport TaskDlgTrajectoryCompound : public Gui::TaskView::TaskDialo public: TaskDlgTrajectoryCompound(Robot::TrajectoryCompound *); - ~TaskDlgTrajectoryCompound(); + ~TaskDlgTrajectoryCompound() override; public: /// is called the TaskView when the dialog is opened - virtual void open(); + void open() override; /// is called by the framework if the dialog is accepted (Ok) - virtual bool accept(); + bool accept() override; /// is called by the framework if the dialog is rejected (Cancel) - virtual bool reject(); + bool reject() override; /// is called by the framework if the user press the help button - virtual void helpRequested(); + void helpRequested() override; /// returns for Close and Help button - virtual QDialogButtonBox::StandardButtons getStandardButtons(void) const + QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Ok|QDialogButtonBox::Cancel; } protected: diff --git a/src/Mod/Robot/Gui/ViewProviderEdge2TracObject.h b/src/Mod/Robot/Gui/ViewProviderEdge2TracObject.h index b16dfe988f..a2d60dd5fa 100644 --- a/src/Mod/Robot/Gui/ViewProviderEdge2TracObject.h +++ b/src/Mod/Robot/Gui/ViewProviderEdge2TracObject.h @@ -31,13 +31,13 @@ namespace RobotGui class RobotGuiExport ViewProviderEdge2TracObject : public ViewProviderTrajectory { - PROPERTY_HEADER(RobotGui::ViewProviderEdge2TracObject); + PROPERTY_HEADER_WITH_OVERRIDE(RobotGui::ViewProviderEdge2TracObject); public: - virtual bool doubleClicked(void); + bool doubleClicked() override; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; }; diff --git a/src/Mod/Robot/Gui/ViewProviderRobotObject.h b/src/Mod/Robot/Gui/ViewProviderRobotObject.h index d4e4366c13..d082463b99 100644 --- a/src/Mod/Robot/Gui/ViewProviderRobotObject.h +++ b/src/Mod/Robot/Gui/ViewProviderRobotObject.h @@ -27,6 +27,7 @@ #include #include #include +#include class SoDragger; @@ -38,23 +39,23 @@ namespace RobotGui class RobotGuiExport ViewProviderRobotObject : public Gui::ViewProviderGeometryObject { - PROPERTY_HEADER(RobotGui::ViewProviderRobotObject); + PROPERTY_HEADER_WITH_OVERRIDE(RobotGui::ViewProviderRobotObject); public: /// constructor. ViewProviderRobotObject(); /// destructor. - ~ViewProviderRobotObject(); + ~ViewProviderRobotObject() override; App::PropertyBool Manipulator; - void attach(App::DocumentObject *pcObject); - void setDisplayMode(const char* ModeName); - std::vector getDisplayModes() const; - void updateData(const App::Property*); + void attach(App::DocumentObject *pcObject) override; + void setDisplayMode(const char* ModeName) override; + std::vector getDisplayModes() const override; + void updateData(const App::Property*) override; - virtual void onChanged(const App::Property* prop); + void onChanged(const App::Property* prop) override; /// for simulation without changing the document: void setAxisTo(float A1,float A2,float A3,float A4,float A5,float A6,const Base::Placement &Tcp); @@ -63,8 +64,8 @@ protected: static void sDraggerMotionCallback(void *data, SoDragger *dragger); void DraggerMotionCallback(SoDragger *dragger); - void setDragger(void); - void resetDragger(void); + void setDragger(); + void resetDragger(); Gui::SoFCSelection * pcRobotRoot; Gui::SoFCSelection * pcSimpleRoot; diff --git a/src/Mod/Robot/Gui/ViewProviderTrajectory.h b/src/Mod/Robot/Gui/ViewProviderTrajectory.h index f40d974546..d7f903883f 100644 --- a/src/Mod/Robot/Gui/ViewProviderTrajectory.h +++ b/src/Mod/Robot/Gui/ViewProviderTrajectory.h @@ -25,6 +25,7 @@ #include #include +#include class SoCoordinate3; @@ -38,20 +39,20 @@ namespace RobotGui class RobotGuiExport ViewProviderTrajectory : public Gui::ViewProviderGeometryObject { - PROPERTY_HEADER(RobotGui::ViewProviderTrajectory); + PROPERTY_HEADER_WITH_OVERRIDE(RobotGui::ViewProviderTrajectory); public: /// constructor. ViewProviderTrajectory(); /// destructor. - ~ViewProviderTrajectory(); + ~ViewProviderTrajectory() override; - void attach(App::DocumentObject *pcObject); - void setDisplayMode(const char* ModeName); - std::vector getDisplayModes() const; - void updateData(const App::Property*); - void setupContextMenu(QMenu* menu, QObject* receiver, const char* member); + void attach(App::DocumentObject *pcObject) override; + void setDisplayMode(const char* ModeName) override; + std::vector getDisplayModes() const override; + void updateData(const App::Property*) override; + void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; protected: diff --git a/src/Mod/Robot/Gui/ViewProviderTrajectoryCompound.h b/src/Mod/Robot/Gui/ViewProviderTrajectoryCompound.h index 0bff0a50be..504aa7621f 100644 --- a/src/Mod/Robot/Gui/ViewProviderTrajectoryCompound.h +++ b/src/Mod/Robot/Gui/ViewProviderTrajectoryCompound.h @@ -31,16 +31,15 @@ namespace RobotGui class RobotGuiExport ViewProviderTrajectoryCompound: public ViewProviderTrajectory { - PROPERTY_HEADER(RobotGui::ViewProviderTrajectoryCompound); + PROPERTY_HEADER_WITH_OVERRIDE(RobotGui::ViewProviderTrajectoryCompound); public: - /// grouping handling - std::vector claimChildren(void)const; + std::vector claimChildren() const override; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; }; diff --git a/src/Mod/Robot/Gui/ViewProviderTrajectoryDressUp.h b/src/Mod/Robot/Gui/ViewProviderTrajectoryDressUp.h index 824e8b488e..5b14899a7b 100644 --- a/src/Mod/Robot/Gui/ViewProviderTrajectoryDressUp.h +++ b/src/Mod/Robot/Gui/ViewProviderTrajectoryDressUp.h @@ -31,17 +31,17 @@ namespace RobotGui class RobotGuiExport ViewProviderTrajectoryDressUp : public ViewProviderTrajectory { - PROPERTY_HEADER(RobotGui::ViewProviderTrajectoryDressUp); + PROPERTY_HEADER_WITH_OVERRIDE(RobotGui::ViewProviderTrajectoryDressUp); public: //virtual bool doubleClicked(void); /// grouping handling - std::vector claimChildren(void)const; + std::vector claimChildren() const override; protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + bool setEdit(int ModNum) override; + void unsetEdit(int ModNum) override; }; diff --git a/src/Mod/Robot/Gui/Workbench.h b/src/Mod/Robot/Gui/Workbench.h index 24c224a6be..6aa96a2345 100644 --- a/src/Mod/Robot/Gui/Workbench.h +++ b/src/Mod/Robot/Gui/Workbench.h @@ -25,6 +25,7 @@ #include #include +#include namespace RobotGui { @@ -34,21 +35,21 @@ namespace RobotGui { */ class RobotGuiExport Workbench : public Gui::StdWorkbench { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: Workbench(); - virtual ~Workbench(); + ~Workbench() override; /** Run some actions when the workbench gets activated. */ - virtual void activated(); + void activated() override; /** Run some actions when the workbench gets deactivated. */ - virtual void deactivated(); + void deactivated() override; protected: - Gui::ToolBarItem* setupToolBars() const; - Gui::MenuItem* setupMenuBar() const; + Gui::ToolBarItem* setupToolBars() const override; + Gui::MenuItem* setupMenuBar() const override; std::vector Watcher; }; diff --git a/src/Mod/Robot/KukaExporter.py b/src/Mod/Robot/KukaExporter.py index 72f72ab799..62fd5f1f83 100644 --- a/src/Mod/Robot/KukaExporter.py +++ b/src/Mod/Robot/KukaExporter.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Kuka export lib (c) Jürgen Riegel 2009 LGPL 2.1 or higher diff --git a/src/Mod/Robot/MovieTool.py b/src/Mod/Robot/MovieTool.py index 8bd2a513c1..a9a101b612 100644 --- a/src/Mod/Robot/MovieTool.py +++ b/src/Mod/Robot/MovieTool.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import os,sys,string import FreeCAD,FreeCADGui,Robot,RobotGui diff --git a/src/Mod/Show/mTempoVis.py b/src/Mod/Show/mTempoVis.py index 1e40a2dc44..28de095b4a 100644 --- a/src/Mod/Show/mTempoVis.py +++ b/src/Mod/Show/mTempoVis.py @@ -450,14 +450,12 @@ class TempoVis(object): toggle = {False: 0, True: 1, None: -1}[enable] if reverted: - skNorm = pla.Rotation.multVec(App.Vector(0,0,1)) - skInvNorm = skNorm.negative() - pla = pla * App.Rotation(skNorm, skInvNorm) + pla = pla * App.Rotation(0, 1, 0, 0) if enable: # clip plane shall be disabled so new placement can be applied self.modify(ClipPlane(doc, 0)) - self.modify(ClipPlane(doc, toggle, pla, 0.02)) + self.modify(ClipPlane(doc, toggle, pla, 0.001)) sketch.ViewObject.SectionView = enable if enable is not None else not sketch.ViewObject.SectionView def activateWorkbench(self, wb_name): diff --git a/src/Mod/Sketcher/App/GeoEnum.h b/src/Mod/Sketcher/App/GeoEnum.h index 5c6c0a7309..ea58f7164f 100644 --- a/src/Mod/Sketcher/App/GeoEnum.h +++ b/src/Mod/Sketcher/App/GeoEnum.h @@ -68,7 +68,7 @@ enum GeoEnum HAxis = -1, // GeoId of the Horizontal Axis VAxis = -2, // GeoId of the Vertical Axis RefExt = -3,// Starting GeoID of external geometry ( negative geoIds starting at this index) - GeoUndef = -2000,// GeoId of an undefined Geometry (uninitialised or unused GeoId) + GeoUndef = -2000// GeoId of an undefined Geometry (uninitialised or unused GeoId) }; /*! diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 1ee51bf747..7734e6bad7 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -57,11 +58,16 @@ #include #endif +#include + #include #include +#include #include #include #include +#include +#include #include #include #include @@ -73,6 +79,7 @@ #include #include #include +#include #include "SketchObject.h" #include "SketchObjectPy.h" @@ -82,9 +89,10 @@ #undef DEBUG // #define DEBUG +// clang-format off using namespace Sketcher; using namespace Base; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; FC_LOG_LEVEL_INIT("Sketch", true, true) @@ -144,13 +152,15 @@ SketchObject::SketchObject() noRecomputes = false; + //NOLINTBEGIN ExpressionEngine.setValidator( - boost::bind(&Sketcher::SketchObject::validateExpression, this, bp::_1, bp::_2)); + std::bind(&Sketcher::SketchObject::validateExpression, this, sp::_1, sp::_2)); constraintsRemovedConn = Constraints.signalConstraintsRemoved.connect( - boost::bind(&Sketcher::SketchObject::constraintsRemoved, this, bp::_1)); + std::bind(&Sketcher::SketchObject::constraintsRemoved, this, sp::_1)); constraintsRenamedConn = Constraints.signalConstraintsRenamed.connect( - boost::bind(&Sketcher::SketchObject::constraintsRenamed, this, bp::_1)); + std::bind(&Sketcher::SketchObject::constraintsRenamed, this, sp::_1)); + //NOLINTEND analyser = new SketchAnalysis(this); @@ -238,6 +248,64 @@ App::DocumentObjectExecReturn* SketchObject::execute() return App::DocumentObject::StdReturn; } +void SketchObject::buildShape() +{ + // Shape.setValue(solvedSketch.toShape()); + // We use the following instead to map element names + + std::vector shapes; + std::vector vertices; + int i=0; + for(auto geo : getInternalGeometry()) { + ++i; + if(GeometryFacade::getConstruction(geo)) + continue; + if (geo->isDerivedFrom(Part::GeomPoint::getClassTypeId())) { + vertices.emplace_back(TopoDS::Vertex(geo->toShape())); + int idx = getVertexIndexGeoPos(i-1, PointPos::start); + std::string name = convertSubName(Data::IndexedName::fromConst("Vertex", idx+1), false); + // vertices.back().setElementName(Data::IndexedName::fromConst("Vertex", 1), + // Data::MappedName::fromRawData(name.c_str())); + } else + shapes.push_back(getEdge(geo,convertSubName( + Data::IndexedName::fromConst("Edge", i), false).c_str())); + } + + // FIXME: Commented since ExternalGeometryFacade is not added + // for(i=2;itestFlag(ExternalGeometryExtension::Defining)) + // continue; + // shapes.push_back(getEdge(geo, convertSubName( + // Data::IndexedName::fromConst("ExternalEdge", i-1), false).c_str())); + // } + // if(shapes.empty() && vertices.empty()) + // Shape.setValue(Part::TopoShape()); + // else if (vertices.empty()) { + // // Notice here we supply op code Part::OpCodes::Sketch to makEWires(). + // Shape.setValue(Part::TopoShape().makEWires(shapes,Part::OpCodes::Sketch)); + // } else { + // std::vector results; + // if (!shapes.empty()) { + // // This call of makEWires() does not have the op code, in order to + // // avoid duplication. Because we'll going to make a compound (to + // // include the vertices) below with the same op code. + // // + // // Note, that we HAVE TO add the Part::OpCodes::Sketch op code to all + // // geometry exposed through the Shape property, because + // // SketchObject::getElementName() relies on this op code to + // // differentiate geometries that are exposed with those in edit + // // mode. + // auto wires = Part::TopoShape().makEWires(shapes); + // for (const auto &wire : wires.getSubTopoShapes(TopAbs_WIRE)) + // results.push_back(wire); + // } + // results.insert(results.end(), vertices.begin(), vertices.end()); + // Shape.setValue(Part::TopoShape().makECompound(results, Part::OpCodes::Sketch)); + // } +} + int SketchObject::hasConflicts() const { if (lastDoF < 0)// over-constrained sketch @@ -766,81 +834,81 @@ int SketchObject::movePoint(int GeoId, PointPos PosId, const Base::Vector3d& toP return lastSolverStatus; } -Base::Vector3d SketchObject::getPoint(int GeoId, PointPos PosId) const +Base::Vector3d SketchObject::getPoint(const Part::Geometry *geo, PointPos PosId) { - if (!(GeoId == H_Axis || GeoId == V_Axis - || (GeoId <= getHighestCurveIndex() && GeoId >= -getExternalGeometryCount()))) - throw Base::ValueError("SketchObject::getPoint. Invalid GeoId was supplied."); - const Part::Geometry* geo = getGeometry(GeoId); if (geo->getTypeId() == Part::GeomPoint::getClassTypeId()) { - const Part::GeomPoint* p = static_cast(geo); + const Part::GeomPoint *p = static_cast(geo); if (PosId == PointPos::start || PosId == PointPos::mid || PosId == PointPos::end) return p->getPoint(); - } - else if (geo->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { - const Part::GeomLineSegment* lineSeg = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { + const Part::GeomLineSegment *lineSeg = static_cast(geo); if (PosId == PointPos::start) return lineSeg->getStartPoint(); else if (PosId == PointPos::end) return lineSeg->getEndPoint(); - } - else if (geo->getTypeId() == Part::GeomCircle::getClassTypeId()) { - const Part::GeomCircle* circle = static_cast(geo); - if (PosId == PointPos::mid) - return circle->getCenter(); - } - else if (geo->getTypeId() == Part::GeomEllipse::getClassTypeId()) { - const Part::GeomEllipse* ellipse = static_cast(geo); - if (PosId == PointPos::mid) - return ellipse->getCenter(); - } - else if (geo->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { - const Part::GeomArcOfCircle* aoc = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomCircle::getClassTypeId()) { + const Part::GeomCircle *circle = static_cast(geo); + auto pt = circle->getCenter(); + if(PosId != PointPos::mid) + pt.x += circle->getRadius(); + return pt; + } else if (geo->getTypeId() == Part::GeomEllipse::getClassTypeId()) { + const Part::GeomEllipse *ellipse = static_cast(geo); + auto pt = ellipse->getCenter(); + if(PosId != PointPos::mid) + pt += ellipse->getMajorAxisDir()*ellipse->getMajorRadius(); + return pt; + } else if (geo->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { + const Part::GeomArcOfCircle *aoc = static_cast(geo); if (PosId == PointPos::start) return aoc->getStartPoint(/*emulateCCW=*/true); else if (PosId == PointPos::end) return aoc->getEndPoint(/*emulateCCW=*/true); else if (PosId == PointPos::mid) return aoc->getCenter(); - } - else if (geo->getTypeId() == Part::GeomArcOfEllipse::getClassTypeId()) { - const Part::GeomArcOfEllipse* aoc = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomArcOfEllipse::getClassTypeId()) { + const Part::GeomArcOfEllipse *aoc = static_cast(geo); if (PosId == PointPos::start) return aoc->getStartPoint(/*emulateCCW=*/true); else if (PosId == PointPos::end) return aoc->getEndPoint(/*emulateCCW=*/true); else if (PosId == PointPos::mid) return aoc->getCenter(); - } - else if (geo->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId()) { - const Part::GeomArcOfHyperbola* aoh = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomArcOfHyperbola::getClassTypeId()) { + const Part::GeomArcOfHyperbola *aoh = static_cast(geo); if (PosId == PointPos::start) return aoh->getStartPoint(); else if (PosId == PointPos::end) return aoh->getEndPoint(); else if (PosId == PointPos::mid) return aoh->getCenter(); - } - else if (geo->getTypeId() == Part::GeomArcOfParabola::getClassTypeId()) { - const Part::GeomArcOfParabola* aop = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomArcOfParabola::getClassTypeId()) { + const Part::GeomArcOfParabola *aop = static_cast(geo); if (PosId == PointPos::start) return aop->getStartPoint(); else if (PosId == PointPos::end) return aop->getEndPoint(); else if (PosId == PointPos::mid) return aop->getCenter(); - } - else if (geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { - const Part::GeomBSplineCurve* bsp = static_cast(geo); + } else if (geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { + const Part::GeomBSplineCurve *bsp = static_cast(geo); if (PosId == PointPos::start) return bsp->getStartPoint(); else if (PosId == PointPos::end) return bsp->getEndPoint(); } - return Base::Vector3d(); } +Base::Vector3d SketchObject::getPoint(int GeoId, PointPos PosId) const +{ + if (!(GeoId == H_Axis || GeoId == V_Axis + || (GeoId <= getHighestCurveIndex() && GeoId >= -getExternalGeometryCount()))) + throw Base::ValueError("SketchObject::getPoint. Invalid GeoId was supplied."); + const Part::Geometry* geo = getGeometry(GeoId); + return getPoint(geo,PosId); +} + int SketchObject::getAxisCount() const { const std::vector& vals = getInternalGeometry(); @@ -9262,6 +9330,115 @@ void SketchObject::setExpression(const App::ObjectIdentifier& path, } } +Part::TopoShape SketchObject::getEdge(const Part::Geometry *geo, const char *name) const +{ + Part::TopoShape shape(geo->toShape()); + // shape.setElementName(Data::IndexedName::fromConst("Edge", 1), + // Data::MappedName::fromRawData(name)); + TopTools_IndexedMapOfShape vmap; + TopExp::MapShapes(shape.getShape(), TopAbs_VERTEX, vmap); + std::ostringstream ss; + for(int i=1;i<=vmap.Extent();++i) { + auto gpt = BRep_Tool::Pnt(TopoDS::Vertex(vmap(i))); + Base::Vector3d pt(gpt.X(),gpt.Y(),gpt.Z()); + PointPos pos[] = {PointPos::start,PointPos::end}; + for(size_t j=0;j(pos[j]); + // shape.setElementName(Data::IndexedName::fromConst("Vertex", i), + // Data::MappedName::fromRawData(ss.str().c_str())); + break; + } + } + } + return shape; +} + +Data::IndexedName SketchObject::checkSubName(const char *sub) const +{ + // FIXME: trivial implementation needs to be replaced with full logic + (void)sub; + return Data::IndexedName(); +} + +bool SketchObject::geoIdFromShapeType(const Data::IndexedName & indexedName, + int &geoId, + PointPos &posId) const +{ + posId = PointPos::none; + geoId = Sketcher::GeoEnum::GeoUndef; + if (!indexedName) + return false; + const char *shapetype = indexedName.getType(); + if (boost::equals(shapetype,"Edge") || + boost::equals(shapetype,"edge")) { + geoId = indexedName.getIndex() - 1; + } else if (boost::equals(shapetype,"ExternalEdge")) { + geoId = indexedName.getIndex() - 1; + geoId = Sketcher::GeoEnum::RefExt - geoId; + } else if (boost::equals(shapetype,"Vertex") || + boost::equals(shapetype,"vertex")) { + int VtId = indexedName.getIndex() - 1; + getGeoVertexIndex(VtId,geoId,posId); + if (posId==PointPos::none) return false; + } else if (boost::equals(shapetype,"H_Axis")) { + geoId = Sketcher::GeoEnum::HAxis; + } else if (boost::equals(shapetype,"V_Axis")) { + geoId = Sketcher::GeoEnum::VAxis; + } else if (boost::equals(shapetype,"RootPoint")) { + geoId = Sketcher::GeoEnum::RtPnt; + posId = PointPos::start; + } else + return false; + return true; +} + +std::string SketchObject::convertSubName(const Data::IndexedName & indexedName, bool postfix) const +{ + std::ostringstream ss; + int geoId; + PointPos posId; + if(!geoIdFromShapeType(indexedName,geoId,posId)) { + ss << indexedName; + return ss.str(); + } + if(geoId == Sketcher::GeoEnum::HAxis || + geoId == Sketcher::GeoEnum::VAxis || + geoId == Sketcher::GeoEnum::RtPnt) { + if (postfix) + ss << Data::ELEMENT_MAP_PREFIX; + ss << indexedName; + if(postfix) + ss << '.' << indexedName; + return ss.str(); + } + + auto geo = getGeometry(geoId); + if(!geo) { + std::string res = indexedName.toString(); + return res; + } + if (postfix) + ss << Data::ELEMENT_MAP_PREFIX; + ss << (geoId>=0?'g':'e') << GeometryFacade::getFacade(geo)->getId(); + if(posId!=PointPos::none) + ss << 'v' << static_cast(posId); + if(postfix) { + // rename Edge to edge, and Vertex to vertex to avoid ambiguous of + // element mapping of the public shape and internal geometry. + if (indexedName.getIndex() <= 0) + ss << '.' << indexedName; + else if(boost::starts_with(indexedName.getType(),"Edge")) + ss << ".e" << (indexedName.getType()+1) << indexedName.getIndex(); + else if(boost::starts_with(indexedName.getType(),"Vertex")) + ss << ".v" << (indexedName.getType()+1) << indexedName.getIndex(); + else + ss << '.' << indexedName; + } + return ss.str(); +} + int SketchObject::autoConstraint(double precision, double angleprecision, bool includeconstruction) { return analyser->autoconstraint(precision, angleprecision, includeconstruction); @@ -9474,3 +9651,4 @@ PyObject* Sketcher::SketchObjectPython::getPyObject() // explicit template instantiation template class SketcherExport FeaturePythonT; }// namespace App +// clang-format on diff --git a/src/Mod/Sketcher/App/SketchObject.h b/src/Mod/Sketcher/App/SketchObject.h index e00df5403c..5c48610ff3 100644 --- a/src/Mod/Sketcher/App/SketchObject.h +++ b/src/Mod/Sketcher/App/SketchObject.h @@ -24,6 +24,7 @@ #define SKETCHER_SKETCHOBJECT_H #include +#include #include #include #include @@ -272,6 +273,7 @@ public: int movePoint(int GeoId, PointPos PosId, const Base::Vector3d& toPoint, bool relative = false, bool updateGeoBeforeMoving = false); /// retrieves the coordinates of a point + static Base::Vector3d getPoint(const Part::Geometry *geo, PointPos PosId); Base::Vector3d getPoint(int GeoId, PointPos PosId) const; /// toggle geometry to draft line @@ -597,6 +599,35 @@ public: bool isCarbonCopyAllowed(App::Document* pDoc, App::DocumentObject* pObj, bool& xinv, bool& yinv, eReasonList* rsn = nullptr) const; + Part::TopoShape getEdge(const Part::Geometry *geo, const char *name) const; + + Data::IndexedName checkSubName(const char *sub) const; + + bool geoIdFromShapeType(const Data::IndexedName &, int &geoId, PointPos &posId) const; + + bool geoIdFromShapeType(const char *shapetype, int &geoId, PointPos &posId) const + { + return geoIdFromShapeType(checkSubName(shapetype), geoId, posId); + } + + bool geoIdFromShapeType(const char *shapetype, int &geoId) const + { + PointPos posId; + return geoIdFromShapeType(shapetype,geoId,posId); + } + + std::string convertSubName(const char *subname, bool postfix=true) const + { + return convertSubName(checkSubName(subname), postfix); + } + + std::string convertSubName(const std::string & subname, bool postfix=true) const + { + return convertSubName(subname.c_str(), postfix); + } + + std::string convertSubName(const Data::IndexedName &, bool postfix=true) const; + bool isPerformingInternalTransaction() const { return internaltransaction; @@ -654,6 +685,8 @@ protected: void onDocumentRestored() override; void restoreFinished() override; + void buildShape(); + void setExpression(const App::ObjectIdentifier& path, std::shared_ptr expr) override; diff --git a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp index 64542b2ad2..c0b721eaa1 100644 --- a/src/Mod/Sketcher/App/SketchObjectPyImp.cpp +++ b/src/Mod/Sketcher/App/SketchObjectPyImp.cpp @@ -58,8 +58,9 @@ std::string SketchObjectPy::representation() const PyObject* SketchObjectPy::solve(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } int ret = this->getSketchObjectPtr()->solve(); return Py_BuildValue("i", ret); } @@ -71,10 +72,12 @@ PyObject* SketchObjectPy::addGeometry(PyObject* args) bool isConstruction; if (!PyArg_ParseTuple(args, "OO!", &pcObj, &PyBool_Type, &construction)) { PyErr_Clear(); - if (!PyArg_ParseTuple(args, "O", &pcObj)) + if (!PyArg_ParseTuple(args, "O", &pcObj)) { return nullptr; - else + } + else { isConstruction = false; + } } else { isConstruction = Base::asBoolean(construction); @@ -202,8 +205,9 @@ PyObject* SketchObjectPy::addGeometry(PyObject* args) PyObject* SketchObjectPy::delGeometry(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } if (this->getSketchObjectPtr()->delGeometry(Index)) { std::stringstream str; @@ -219,16 +223,18 @@ PyObject* SketchObjectPy::delGeometries(PyObject* args) { PyObject* pcObj; - if (!PyArg_ParseTuple(args, "O", &pcObj)) + if (!PyArg_ParseTuple(args, "O", &pcObj)) { return nullptr; + } if (PyObject_TypeCheck(pcObj, &(PyList_Type)) || PyObject_TypeCheck(pcObj, &(PyTuple_Type))) { std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } if (this->getSketchObjectPtr()->delGeometries(geoIdList)) { @@ -248,8 +254,9 @@ PyObject* SketchObjectPy::delGeometries(PyObject* args) PyObject* SketchObjectPy::deleteAllGeometry(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } if (this->getSketchObjectPtr()->deleteAllGeometry()) { std::stringstream str; @@ -263,8 +270,9 @@ PyObject* SketchObjectPy::deleteAllGeometry(PyObject* args) PyObject* SketchObjectPy::deleteAllConstraints(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } if (this->getSketchObjectPtr()->deleteAllConstraints()) { std::stringstream str; @@ -280,8 +288,9 @@ PyObject* SketchObjectPy::deleteAllConstraints(PyObject* args) PyObject* SketchObjectPy::toggleConstruction(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } if (this->getSketchObjectPtr()->toggleConstruction(Index)) { std::stringstream str; @@ -297,8 +306,9 @@ PyObject* SketchObjectPy::setConstruction(PyObject* args) { int Index; PyObject* Mode; - if (!PyArg_ParseTuple(args, "iO!", &Index, &PyBool_Type, &Mode)) + if (!PyArg_ParseTuple(args, "iO!", &Index, &PyBool_Type, &Mode)) { return nullptr; + } if (this->getSketchObjectPtr()->setConstruction(Index, Base::asBoolean(Mode))) { std::stringstream str; @@ -313,13 +323,15 @@ PyObject* SketchObjectPy::setConstruction(PyObject* args) PyObject* SketchObjectPy::getConstruction(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } auto gf = this->getSketchObjectPtr()->getGeometryFacade(Index); - if (gf) + if (gf) { return Py::new_reference_to(Py::Boolean(gf->getConstruction())); + } std::stringstream str; str << "Not able to retrieve construction mode of a geometry with the given index: " << Index; @@ -330,8 +342,9 @@ PyObject* SketchObjectPy::getConstruction(PyObject* args) PyObject* SketchObjectPy::addConstraint(PyObject* args) { PyObject* pcObj; - if (!PyArg_ParseTuple(args, "O", &pcObj)) + if (!PyArg_ParseTuple(args, "O", &pcObj)) { return nullptr; + } if (PyObject_TypeCheck(pcObj, &(Sketcher::ConstraintPy::Type))) { Sketcher::Constraint* constr = @@ -405,8 +418,9 @@ PyObject* SketchObjectPy::addConstraint(PyObject* args) PyObject* SketchObjectPy::delConstraint(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } if (this->getSketchObjectPtr()->delConstraint(Index)) { std::stringstream str; @@ -422,8 +436,9 @@ PyObject* SketchObjectPy::renameConstraint(PyObject* args) { int Index; char* utf8Name; - if (!PyArg_ParseTuple(args, "iet", &Index, "utf-8", &utf8Name)) + if (!PyArg_ParseTuple(args, "iet", &Index, "utf-8", &utf8Name)) { return nullptr; + } std::string Name = utf8Name; PyMem_Free(utf8Name); @@ -462,8 +477,9 @@ PyObject* SketchObjectPy::renameConstraint(PyObject* args) PyObject* SketchObjectPy::getIndexByName(PyObject* args) { char* utf8Name; - if (!PyArg_ParseTuple(args, "et", "utf-8", &utf8Name)) + if (!PyArg_ParseTuple(args, "et", "utf-8", &utf8Name)) { return nullptr; + } std::string Name = utf8Name; PyMem_Free(utf8Name); @@ -488,8 +504,9 @@ PyObject* SketchObjectPy::carbonCopy(PyObject* args) { char* ObjectName; PyObject* construction = Py_True; - if (!PyArg_ParseTuple(args, "s|O!:Give an object", &ObjectName, &PyBool_Type, &construction)) + if (!PyArg_ParseTuple(args, "s|O!:Give an object", &ObjectName, &PyBool_Type, &construction)) { return nullptr; + } Sketcher::SketchObject* skObj = this->getSketchObjectPtr(); App::DocumentObject* Obj = skObj->getDocument()->getObject(ObjectName); @@ -524,8 +541,9 @@ PyObject* SketchObjectPy::addExternal(PyObject* args) { char* ObjectName; char* SubName; - if (!PyArg_ParseTuple(args, "ss:Give an object and subelement name", &ObjectName, &SubName)) + if (!PyArg_ParseTuple(args, "ss:Give an object and subelement name", &ObjectName, &SubName)) { return nullptr; + } // get the target object for the external link Sketcher::SketchObject* skObj = this->getSketchObjectPtr(); @@ -558,8 +576,9 @@ PyObject* SketchObjectPy::addExternal(PyObject* args) PyObject* SketchObjectPy::delExternal(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } if (this->getSketchObjectPtr()->delExternal(Index)) { std::stringstream str; @@ -574,8 +593,9 @@ PyObject* SketchObjectPy::delExternal(PyObject* args) PyObject* SketchObjectPy::delConstraintOnPoint(PyObject* args) { int Index, pos = -1; - if (!PyArg_ParseTuple(args, "i|i", &Index, &pos)) + if (!PyArg_ParseTuple(args, "i|i", &Index, &pos)) { return nullptr; + } if (pos >= static_cast(Sketcher::PointPos::none) && pos <= static_cast(Sketcher::PointPos::mid)) { @@ -703,23 +723,30 @@ PyObject* SketchObjectPy::setDatum(PyObject* args) int err = this->getSketchObjectPtr()->setDatum(Index, Datum); if (err) { std::stringstream str; - if (err == -1) + if (err == -1) { str << "Invalid constraint index: " << Index; - else if (err == -3) + } + else if (err == -3) { str << "Cannot set the datum because the sketch contains conflicting constraints"; - else if (err == -2) + } + else if (err == -2) { str << "Datum " << (const char*)Quantity.getUserString().toUtf8() << " for the constraint with index " << Index << " is invalid"; - else if (err == -4) + } + else if (err == -4) { str << "Negative datum values are not valid for the constraint with index " << Index; - else if (err == -5) + } + else if (err == -5) { str << "Zero is not a valid datum for the constraint with index " << Index; - else if (err == -6) + } + else if (err == -6) { str << "Cannot set the datum because of invalid geometry"; - else + } + else { str << "Unexpected problem at setting datum " << (const char*)Quantity.getUserString().toUtf8() << " for the constraint with index " << Index; + } PyErr_SetString(PyExc_ValueError, str.str().c_str()); return nullptr; } @@ -797,8 +824,9 @@ PyObject* SketchObjectPy::setDriving(PyObject* args) PyObject* driving; int constrid; - if (!PyArg_ParseTuple(args, "iO!", &constrid, &PyBool_Type, &driving)) + if (!PyArg_ParseTuple(args, "iO!", &constrid, &PyBool_Type, &driving)) { return nullptr; + } if (this->getSketchObjectPtr()->setDriving(constrid, Base::asBoolean(driving))) { std::stringstream str; @@ -814,8 +842,9 @@ PyObject* SketchObjectPy::setDatumsDriving(PyObject* args) { PyObject* driving; - if (!PyArg_ParseTuple(args, "O!", &PyBool_Type, &driving)) + if (!PyArg_ParseTuple(args, "O!", &PyBool_Type, &driving)) { return nullptr; + } if (this->getSketchObjectPtr()->setDatumsDriving(Base::asBoolean(driving))) { std::stringstream str; @@ -829,8 +858,9 @@ PyObject* SketchObjectPy::setDatumsDriving(PyObject* args) PyObject* SketchObjectPy::moveDatumsToEnd(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } if (this->getSketchObjectPtr()->moveDatumsToEnd()) { std::stringstream str; @@ -848,8 +878,9 @@ PyObject* SketchObjectPy::getDriving(PyObject* args) int constrid; bool driving; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->getDriving(constrid, driving)) { PyErr_SetString(PyExc_ValueError, "Invalid constraint id"); @@ -863,8 +894,9 @@ PyObject* SketchObjectPy::toggleDriving(PyObject* args) { int constrid; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->toggleDriving(constrid)) { std::stringstream str; @@ -890,16 +922,18 @@ PyObject* SketchObjectPy::setVirtualSpace(PyObject* args) std::vector constrIds; Py::Sequence list(id_or_ids); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { constrIds.push_back(PyLong_AsLong((*it).ptr())); + } } try { int ret = this->getSketchObjectPtr()->setVirtualSpace(constrIds, Base::asBoolean(invirtualspace)); - if (ret == -1) + if (ret == -1) { throw Py::TypeError("Impossible to set virtual space!"); + } } catch (const Base::ValueError& e) { throw Py::ValueError(e.getMessage()); @@ -930,8 +964,9 @@ PyObject* SketchObjectPy::getVirtualSpace(PyObject* args) int constrid; bool invirtualspace; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->getVirtualSpace(constrid, invirtualspace)) { PyErr_SetString(PyExc_ValueError, "Invalid constraint id"); @@ -945,8 +980,9 @@ PyObject* SketchObjectPy::toggleVirtualSpace(PyObject* args) { int constrid; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->toggleVirtualSpace(constrid)) { std::stringstream str; @@ -963,8 +999,9 @@ PyObject* SketchObjectPy::setActive(PyObject* args) PyObject* isactive; int constrid; - if (!PyArg_ParseTuple(args, "iO!", &constrid, &PyBool_Type, &isactive)) + if (!PyArg_ParseTuple(args, "iO!", &constrid, &PyBool_Type, &isactive)) { return nullptr; + } if (this->getSketchObjectPtr()->setActive(constrid, Base::asBoolean(isactive))) { std::stringstream str; @@ -982,8 +1019,9 @@ PyObject* SketchObjectPy::getActive(PyObject* args) int constrid; bool isactive; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->getActive(constrid, isactive)) { PyErr_SetString(PyExc_ValueError, "Invalid constraint id"); @@ -997,8 +1035,9 @@ PyObject* SketchObjectPy::toggleActive(PyObject* args) { int constrid; - if (!PyArg_ParseTuple(args, "i", &constrid)) + if (!PyArg_ParseTuple(args, "i", &constrid)) { return nullptr; + } if (this->getSketchObjectPtr()->toggleActive(constrid)) { std::stringstream str; @@ -1017,8 +1056,9 @@ PyObject* SketchObjectPy::movePoint(PyObject* args) int relative = 0; if (!PyArg_ParseTuple( - args, "iiO!|i", &GeoId, &PointType, &(Base::VectorPy::Type), &pcObj, &relative)) + args, "iiO!|i", &GeoId, &PointType, &(Base::VectorPy::Type), &pcObj, &relative)) { return nullptr; + } Base::Vector3d v1 = static_cast(pcObj)->value(); @@ -1037,8 +1077,9 @@ PyObject* SketchObjectPy::movePoint(PyObject* args) PyObject* SketchObjectPy::getGeoVertexIndex(PyObject* args) { int index; - if (!PyArg_ParseTuple(args, "i", &index)) + if (!PyArg_ParseTuple(args, "i", &index)) { return nullptr; + } SketchObject* obj = this->getSketchObjectPtr(); int geoId; @@ -1053,8 +1094,9 @@ PyObject* SketchObjectPy::getGeoVertexIndex(PyObject* args) PyObject* SketchObjectPy::getPoint(PyObject* args) { int GeoId, PointType; - if (!PyArg_ParseTuple(args, "ii", &GeoId, &PointType)) + if (!PyArg_ParseTuple(args, "ii", &GeoId, &PointType)) { return nullptr; + } if (PointType < 0 || PointType > 3) { PyErr_SetString(PyExc_ValueError, "Invalid point type"); @@ -1074,8 +1116,9 @@ PyObject* SketchObjectPy::getPoint(PyObject* args) PyObject* SketchObjectPy::getAxis(PyObject* args) { int AxId; - if (!PyArg_ParseTuple(args, "i", &AxId)) + if (!PyArg_ParseTuple(args, "i", &AxId)) { return nullptr; + } return new Base::AxisPy(new Base::Axis(this->getSketchObjectPtr()->getAxis(AxId))); } @@ -1149,8 +1192,9 @@ PyObject* SketchObjectPy::trim(PyObject* args) PyObject* pcObj; int GeoId; - if (!PyArg_ParseTuple(args, "iO!", &GeoId, &(Base::VectorPy::Type), &pcObj)) + if (!PyArg_ParseTuple(args, "iO!", &GeoId, &(Base::VectorPy::Type), &pcObj)) { return nullptr; + } Base::Vector3d v1 = static_cast(pcObj)->value(); @@ -1193,8 +1237,9 @@ PyObject* SketchObjectPy::split(PyObject* args) PyObject* pcObj; int GeoId; - if (!PyArg_ParseTuple(args, "iO!", &GeoId, &(Base::VectorPy::Type), &pcObj)) + if (!PyArg_ParseTuple(args, "iO!", &GeoId, &(Base::VectorPy::Type), &pcObj)) { return nullptr; + } Base::Vector3d v1 = static_cast(pcObj)->value(); try { @@ -1218,8 +1263,9 @@ PyObject* SketchObjectPy::join(PyObject* args) int PosId1 = static_cast(Sketcher::PointPos::none), PosId2 = static_cast(Sketcher::PointPos::none); - if (!PyArg_ParseTuple(args, "iiii", &GeoId1, &PosId1, &GeoId2, &PosId2)) - return 0; + if (!PyArg_ParseTuple(args, "iiii", &GeoId1, &PosId1, &GeoId2, &PosId2)) { + return nullptr; + } if (this->getSketchObjectPtr()->join( GeoId1, (Sketcher::PointPos)PosId1, GeoId2, (Sketcher::PointPos)PosId2)) { @@ -1227,7 +1273,7 @@ PyObject* SketchObjectPy::join(PyObject* args) str << "Not able to join the curves with end points: (" << GeoId1 << ", " << PosId1 << "), (" << GeoId2 << ", " << PosId2 << ")"; PyErr_SetString(PyExc_ValueError, str.str().c_str()); - return 0; + return nullptr; } Py_Return; @@ -1239,23 +1285,26 @@ PyObject* SketchObjectPy::addSymmetric(PyObject* args) int refGeoId; int refPosId = static_cast(Sketcher::PointPos::none); - if (!PyArg_ParseTuple(args, "Oi|i", &pcObj, &refGeoId, &refPosId)) + if (!PyArg_ParseTuple(args, "Oi|i", &pcObj, &refGeoId, &refPosId)) { return nullptr; + } if (PyObject_TypeCheck(pcObj, &(PyList_Type)) || PyObject_TypeCheck(pcObj, &(PyTuple_Type))) { std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } int ret = this->getSketchObjectPtr()->addSymmetric( geoIdList, refGeoId, static_cast(refPosId)) + 1; - if (ret == -1) + if (ret == -1) { throw Py::TypeError("Symmetric operation unsuccessful!"); + } std::size_t numGeo = geoIdList.size(); Py::Tuple tuple(numGeo); @@ -1278,8 +1327,9 @@ PyObject* SketchObjectPy::addCopy(PyObject* args) PyObject* clone = Py_False; if (!PyArg_ParseTuple( - args, "OO!|O!", &pcObj, &(Base::VectorPy::Type), &pcVect, &PyBool_Type, &clone)) + args, "OO!|O!", &pcObj, &(Base::VectorPy::Type), &pcVect, &PyBool_Type, &clone)) { return nullptr; + } Base::Vector3d vect = static_cast(pcVect)->value(); @@ -1287,8 +1337,9 @@ PyObject* SketchObjectPy::addCopy(PyObject* args) std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } try { @@ -1296,8 +1347,9 @@ PyObject* SketchObjectPy::addCopy(PyObject* args) this->getSketchObjectPtr()->addCopy(geoIdList, vect, false, Base::asBoolean(clone)) + 1; - if (ret == -1) + if (ret == -1) { throw Py::TypeError("Copy operation unsuccessful!"); + } std::size_t numGeo = geoIdList.size(); Py::Tuple tuple(numGeo); @@ -1322,8 +1374,9 @@ PyObject* SketchObjectPy::addMove(PyObject* args) { PyObject *pcObj, *pcVect; - if (!PyArg_ParseTuple(args, "OO!", &pcObj, &(Base::VectorPy::Type), &pcVect)) + if (!PyArg_ParseTuple(args, "OO!", &pcObj, &(Base::VectorPy::Type), &pcVect)) { return nullptr; + } Base::Vector3d vect = static_cast(pcVect)->value(); @@ -1331,8 +1384,9 @@ PyObject* SketchObjectPy::addMove(PyObject* args) std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } this->getSketchObjectPtr()->addCopy(geoIdList, vect, true); @@ -1364,8 +1418,9 @@ PyObject* SketchObjectPy::addRectangularArray(PyObject* args) &cols, &PyBool_Type, &constraindisplacement, - &perpscale)) + &perpscale)) { return nullptr; + } Base::Vector3d vect = static_cast(pcVect)->value(); @@ -1373,8 +1428,9 @@ PyObject* SketchObjectPy::addRectangularArray(PyObject* args) std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } try { @@ -1388,8 +1444,9 @@ PyObject* SketchObjectPy::addRectangularArray(PyObject* args) perpscale) + 1; - if (ret == -1) + if (ret == -1) { throw Py::TypeError("Copy operation unsuccessful!"); + } } catch (const Base::ValueError& e) { throw Py::ValueError(e.getMessage()); @@ -1407,21 +1464,24 @@ PyObject* SketchObjectPy::removeAxesAlignment(PyObject* args) { PyObject* pcObj; - if (!PyArg_ParseTuple(args, "O", &pcObj)) + if (!PyArg_ParseTuple(args, "O", &pcObj)) { return nullptr; + } if (PyObject_TypeCheck(pcObj, &(PyList_Type)) || PyObject_TypeCheck(pcObj, &(PyTuple_Type))) { std::vector geoIdList; Py::Sequence list(pcObj); for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - if (PyLong_Check((*it).ptr())) + if (PyLong_Check((*it).ptr())) { geoIdList.push_back(PyLong_AsLong((*it).ptr())); + } } int ret = this->getSketchObjectPtr()->removeAxesAlignment(geoIdList) + 1; - if (ret == -1) + if (ret == -1) { throw Py::TypeError("Operation unsuccessful!"); + } Py_Return; } @@ -1435,8 +1495,9 @@ PyObject* SketchObjectPy::calculateAngleViaPoint(PyObject* args) { int GeoId1 = 0, GeoId2 = 0; double px = 0, py = 0; - if (!PyArg_ParseTuple(args, "iidd", &GeoId1, &GeoId2, &px, &py)) + if (!PyArg_ParseTuple(args, "iidd", &GeoId1, &GeoId2, &px, &py)) { return nullptr; + } SketchObject* obj = this->getSketchObjectPtr(); if (GeoId1 > obj->getHighestCurveIndex() || -GeoId1 > obj->getExternalGeometryCount() @@ -1453,8 +1514,9 @@ PyObject* SketchObjectPy::isPointOnCurve(PyObject* args) { int GeoId = GeoEnum::GeoUndef; double px = 0, py = 0; - if (!PyArg_ParseTuple(args, "idd", &GeoId, &px, &py)) + if (!PyArg_ParseTuple(args, "idd", &GeoId, &px, &py)) { return nullptr; + } SketchObject* obj = this->getSketchObjectPtr(); if (GeoId > obj->getHighestCurveIndex() || -GeoId > obj->getExternalGeometryCount()) { @@ -1468,8 +1530,9 @@ PyObject* SketchObjectPy::isPointOnCurve(PyObject* args) PyObject* SketchObjectPy::calculateConstraintError(PyObject* args) { int ic = -1; - if (!PyArg_ParseTuple(args, "i", &ic)) + if (!PyArg_ParseTuple(args, "i", &ic)) { return nullptr; + } SketchObject* obj = this->getSketchObjectPtr(); if (ic >= obj->Constraints.getSize() || ic < 0) { @@ -1484,8 +1547,9 @@ PyObject* SketchObjectPy::calculateConstraintError(PyObject* args) PyObject* SketchObjectPy::changeConstraintsLocking(PyObject* args) { int bLock = 0; - if (!PyArg_ParseTuple(args, "i", &bLock)) + if (!PyArg_ParseTuple(args, "i", &bLock)) { return nullptr; + } SketchObject* obj = this->getSketchObjectPtr(); @@ -1499,8 +1563,9 @@ PyObject* SketchObjectPy::ExposeInternalGeometry(PyObject* args) { int GeoId; - if (!PyArg_ParseTuple(args, "i", &GeoId)) + if (!PyArg_ParseTuple(args, "i", &GeoId)) { return nullptr; + } if (this->getSketchObjectPtr()->exposeInternalGeometry(GeoId) == -1) { std::stringstream str; @@ -1517,8 +1582,9 @@ PyObject* SketchObjectPy::DeleteUnusedInternalGeometry(PyObject* args) { int GeoId; - if (!PyArg_ParseTuple(args, "i", &GeoId)) + if (!PyArg_ParseTuple(args, "i", &GeoId)) { return nullptr; + } if (this->getSketchObjectPtr()->deleteUnusedInternalGeometry(GeoId) == -1) { std::stringstream str; @@ -1534,8 +1600,9 @@ PyObject* SketchObjectPy::exposeInternalGeometry(PyObject* args) { int GeoId; - if (!PyArg_ParseTuple(args, "i", &GeoId)) + if (!PyArg_ParseTuple(args, "i", &GeoId)) { return nullptr; + } if (this->getSketchObjectPtr()->exposeInternalGeometry(GeoId) == -1) { std::stringstream str; @@ -1551,8 +1618,9 @@ PyObject* SketchObjectPy::deleteUnusedInternalGeometry(PyObject* args) { int GeoId; - if (!PyArg_ParseTuple(args, "i", &GeoId)) + if (!PyArg_ParseTuple(args, "i", &GeoId)) { return nullptr; + } if (this->getSketchObjectPtr()->deleteUnusedInternalGeometry(GeoId) == -1) { std::stringstream str; @@ -1568,8 +1636,9 @@ PyObject* SketchObjectPy::convertToNURBS(PyObject* args) { int GeoId; - if (!PyArg_ParseTuple(args, "i", &GeoId)) + if (!PyArg_ParseTuple(args, "i", &GeoId)) { return nullptr; + } if (!this->getSketchObjectPtr()->convertToNURBS(GeoId)) { std::stringstream str; @@ -1586,8 +1655,9 @@ PyObject* SketchObjectPy::increaseBSplineDegree(PyObject* args) int GeoId; int incr = 1; - if (!PyArg_ParseTuple(args, "i|i", &GeoId, &incr)) + if (!PyArg_ParseTuple(args, "i|i", &GeoId, &incr)) { return nullptr; + } if (!this->getSketchObjectPtr()->increaseBSplineDegree(GeoId, incr)) { std::stringstream str; @@ -1604,8 +1674,9 @@ PyObject* SketchObjectPy::decreaseBSplineDegree(PyObject* args) int GeoId; int decr = 1; - if (!PyArg_ParseTuple(args, "i|i", &GeoId, &decr)) + if (!PyArg_ParseTuple(args, "i|i", &GeoId, &decr)) { return nullptr; + } bool ok = this->getSketchObjectPtr()->decreaseBSplineDegree(GeoId, decr); return Py_BuildValue("O", (ok ? Py_True : Py_False)); @@ -1617,8 +1688,9 @@ PyObject* SketchObjectPy::modifyBSplineKnotMultiplicity(PyObject* args) int knotIndex; int multiplicity = 1; - if (!PyArg_ParseTuple(args, "ii|i", &GeoId, &knotIndex, &multiplicity)) + if (!PyArg_ParseTuple(args, "ii|i", &GeoId, &knotIndex, &multiplicity)) { return nullptr; + } if (!this->getSketchObjectPtr()->modifyBSplineKnotMultiplicity( GeoId, knotIndex, multiplicity)) { @@ -1637,8 +1709,9 @@ PyObject* SketchObjectPy::insertBSplineKnot(PyObject* args) double knotParam; int multiplicity = 1; - if (!PyArg_ParseTuple(args, "id|i", &GeoId, &knotParam, &multiplicity)) + if (!PyArg_ParseTuple(args, "id|i", &GeoId, &knotParam, &multiplicity)) { return nullptr; + } if (!this->getSketchObjectPtr()->insertBSplineKnot(GeoId, knotParam, multiplicity)) { std::stringstream str; @@ -1658,8 +1731,9 @@ PyObject* SketchObjectPy::autoconstraint(PyObject* args) if (!PyArg_ParseTuple( - args, "|ddO!", &precision, &angleprecision, &PyBool_Type, &includeconstruction)) + args, "|ddO!", &precision, &angleprecision, &PyBool_Type, &includeconstruction)) { return nullptr; + } if (this->getSketchObjectPtr()->autoConstraint( precision, angleprecision, Base::asBoolean(includeconstruction))) { @@ -1677,8 +1751,9 @@ PyObject* SketchObjectPy::detectMissingPointOnPointConstraints(PyObject* args) double precision = Precision::Confusion() * 1000; PyObject* includeconstruction = Py_True; - if (!PyArg_ParseTuple(args, "|dO!", &precision, &PyBool_Type, &includeconstruction)) + if (!PyArg_ParseTuple(args, "|dO!", &precision, &PyBool_Type, &includeconstruction)) { return nullptr; + } return Py::new_reference_to( Py::Long(this->getSketchObjectPtr()->detectMissingPointOnPointConstraints( @@ -1689,8 +1764,9 @@ PyObject* SketchObjectPy::detectMissingVerticalHorizontalConstraints(PyObject* a { double angleprecision = M_PI / 8; - if (!PyArg_ParseTuple(args, "|d", &angleprecision)) + if (!PyArg_ParseTuple(args, "|d", &angleprecision)) { return nullptr; + } return Py::new_reference_to(Py::Long( this->getSketchObjectPtr()->detectMissingVerticalHorizontalConstraints(angleprecision))); @@ -1700,8 +1776,9 @@ PyObject* SketchObjectPy::detectMissingEqualityConstraints(PyObject* args) { double precision = Precision::Confusion() * 1000; - if (!PyArg_ParseTuple(args, "|d", &precision)) + if (!PyArg_ParseTuple(args, "|d", &precision)) { return nullptr; + } return Py::new_reference_to( Py::Long(this->getSketchObjectPtr()->detectMissingEqualityConstraints(precision))); @@ -1711,8 +1788,9 @@ PyObject* SketchObjectPy::analyseMissingPointOnPointCoincident(PyObject* args) { double angleprecision = M_PI / 8; - if (!PyArg_ParseTuple(args, "|d", &angleprecision)) + if (!PyArg_ParseTuple(args, "|d", &angleprecision)) { return nullptr; + } this->getSketchObjectPtr()->analyseMissingPointOnPointCoincident(angleprecision); @@ -1724,8 +1802,9 @@ PyObject* SketchObjectPy::makeMissingPointOnPointCoincident(PyObject* args) PyObject* onebyone = Py_False; - if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) + if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) { return nullptr; + } this->getSketchObjectPtr()->makeMissingPointOnPointCoincident(Base::asBoolean(onebyone)); @@ -1736,8 +1815,9 @@ PyObject* SketchObjectPy::makeMissingVerticalHorizontal(PyObject* args) { PyObject* onebyone = Py_False; - if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) + if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) { return nullptr; + } this->getSketchObjectPtr()->makeMissingVerticalHorizontal(Base::asBoolean(onebyone)); @@ -1748,8 +1828,9 @@ PyObject* SketchObjectPy::makeMissingEquality(PyObject* args) { PyObject* onebyone = Py_True; - if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) + if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &onebyone)) { return nullptr; + } this->getSketchObjectPtr()->makeMissingEquality(Base::asBoolean(onebyone)); @@ -1760,8 +1841,9 @@ PyObject* SketchObjectPy::autoRemoveRedundants(PyObject* args) { PyObject* updategeo = Py_True; - if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &updategeo)) + if (!PyArg_ParseTuple(args, "|O!", &PyBool_Type, &updategeo)) { return nullptr; + } this->getSketchObjectPtr()->autoRemoveRedundants(Base::asBoolean(updategeo)); @@ -1770,8 +1852,9 @@ PyObject* SketchObjectPy::autoRemoveRedundants(PyObject* args) PyObject* SketchObjectPy::toPythonCommands(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } auto sketch = this->getSketchObjectPtr(); @@ -2026,8 +2109,9 @@ void SketchObjectPy::setMissingRadiusConstraints(Py::List arg) PyObject* SketchObjectPy::getGeometryWithDependentParameters(PyObject* args) { - if (!PyArg_ParseTuple(args, "")) + if (!PyArg_ParseTuple(args, "")) { return nullptr; + } std::vector> geometrymap; @@ -2120,8 +2204,9 @@ void SketchObjectPy::setGeometryFacadeList(Py::List value) PyObject* SketchObjectPy::getGeometryId(PyObject* args) { int Index; - if (!PyArg_ParseTuple(args, "i", &Index)) + if (!PyArg_ParseTuple(args, "i", &Index)) { return nullptr; + } long Id; @@ -2139,8 +2224,9 @@ PyObject* SketchObjectPy::setGeometryId(PyObject* args) { int Index; long Id; - if (!PyArg_ParseTuple(args, "il", &Index, &Id)) + if (!PyArg_ParseTuple(args, "il", &Index, &Id)) { return nullptr; + } if (this->getSketchObjectPtr()->setGeometryId(Index, Id)) { std::stringstream str; @@ -2231,8 +2317,9 @@ int SketchObjectPy::setCustomAttributes(const char* attr, PyObject* obj) prop->setPyObject(obj); - if (strcmp(attr, "Geometry") == 0) + if (strcmp(attr, "Geometry") == 0) { getSketchObjectPtr()->rebuildVertexIndex(); + } return 1; } diff --git a/src/Mod/Sketcher/Gui/Command.cpp b/src/Mod/Sketcher/Gui/Command.cpp index 7a8d1598b6..544f2228be 100644 --- a/src/Mod/Sketcher/Gui/Command.cpp +++ b/src/Mod/Sketcher/Gui/Command.cpp @@ -59,7 +59,8 @@ #include "Utils.h" #include "ViewProviderSketch.h" - +// Hint: this is to prevent to re-format big parts of the file. Remove it later again. +// clang-format off using namespace std; using namespace SketcherGui; using namespace Part; @@ -83,7 +84,7 @@ public: this->setMessage(ErrMsg); } - ~ExceptionWrongInput() throw() override + ~ExceptionWrongInput() noexcept override {} QString ErrMsg; @@ -1187,23 +1188,24 @@ class CmdSketcherGrid: public Gui::Command { public: CmdSketcherGrid(); - virtual ~CmdSketcherGrid() + ~CmdSketcherGrid() override {} - virtual const char* className() const override + const char* className() const override { return "CmdSketcherGrid"; } - virtual void languageChange() override; + void languageChange() override; protected: - virtual void activated(int iMsg) override; - virtual bool isActive(void) override; - virtual Gui::Action* createAction(void) override; + void activated(int iMsg) override; + bool isActive() override; + Gui::Action* createAction() override; private: void updateIcon(bool value); void updateInactiveHandlerIcon(); +public: CmdSketcherGrid(const CmdSketcherGrid&) = delete; CmdSketcherGrid(CmdSketcherGrid&&) = delete; CmdSketcherGrid& operator=(const CmdSketcherGrid&) = delete; @@ -1435,19 +1437,23 @@ class CmdSketcherSnap: public Gui::Command, public ParameterGrp::ObserverType { public: CmdSketcherSnap(); - virtual ~CmdSketcherSnap(); - virtual const char* className() const override + ~CmdSketcherSnap() override; + CmdSketcherSnap(const CmdSketcherSnap&) = delete; + CmdSketcherSnap(CmdSketcherSnap&&) = delete; + CmdSketcherSnap& operator=(const CmdSketcherSnap&) = delete; + CmdSketcherSnap& operator=(CmdSketcherSnap&&) = delete; + const char* className() const override { return "CmdSketcherSnap"; } - virtual void languageChange() override; + void languageChange() override; void OnChange(Base::Subject& rCaller, const char* sReason) override; protected: - virtual void activated(int iMsg) override; - virtual bool isActive(void) override; - virtual Gui::Action* createAction(void) override; + void activated(int iMsg) override; + bool isActive() override; + Gui::Action* createAction() override; private: void updateIcon(bool value); @@ -1458,11 +1464,6 @@ private: "User parameter:BaseApp/Preferences/Mod/Sketcher/Snap"); } - CmdSketcherSnap(const CmdSketcherSnap&) = delete; - CmdSketcherSnap(CmdSketcherSnap&&) = delete; - CmdSketcherSnap& operator=(const CmdSketcherSnap&) = delete; - CmdSketcherSnap& operator=(CmdSketcherSnap&&) = delete; - bool snapEnabled = true; }; @@ -1696,18 +1697,22 @@ class CmdRenderingOrder: public Gui::Command, public ParameterGrp::ObserverType public: CmdRenderingOrder(); - virtual ~CmdRenderingOrder(); - virtual const char* className() const override + ~CmdRenderingOrder() override; + CmdRenderingOrder(const CmdRenderingOrder&) = delete; + CmdRenderingOrder(CmdRenderingOrder&&) = delete; + CmdRenderingOrder& operator=(const CmdRenderingOrder&) = delete; + CmdRenderingOrder& operator=(CmdRenderingOrder&&) = delete; + const char* className() const override { return "CmdRenderingOrder"; } - virtual void languageChange() override; + void languageChange() override; void OnChange(Base::Subject& rCaller, const char* sReason) override; protected: - virtual void activated(int iMsg) override; - virtual bool isActive(void) override; - virtual Gui::Action* createAction(void) override; + void activated(int iMsg) override; + bool isActive() override; + Gui::Action* createAction() override; private: void updateIcon(); @@ -1718,11 +1723,6 @@ private: "User parameter:BaseApp/Preferences/Mod/Sketcher/General"); } - CmdRenderingOrder(const CmdRenderingOrder&) = delete; - CmdRenderingOrder(CmdRenderingOrder&&) = delete; - CmdRenderingOrder& operator=(const CmdRenderingOrder&) = delete; - CmdRenderingOrder& operator=(CmdRenderingOrder&&) = delete; - ElementType TopElement = ElementType::Normal; }; @@ -1849,3 +1849,4 @@ void CreateSketcherCommands() rcCmdMgr.addCommand(new CmdSketcherSnap()); rcCmdMgr.addCommand(new CmdRenderingOrder()); } +// clang-format on diff --git a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp index 57a3a61caf..64adac806f 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp @@ -57,12 +57,14 @@ bool isSketcherBSplineActive(Gui::Document* doc, bool actsOnSelection) && doc->getInEdit()->isDerivedFrom(SketcherGui::ViewProviderSketch::getClassTypeId())) { if (static_cast(doc->getInEdit())->getSketchMode() == ViewProviderSketch::STATUS_NONE) { - if (!actsOnSelection) + if (!actsOnSelection) { return true; + } else if (Gui::Selection().countObjectsOfType( Sketcher::SketchObject::getClassTypeId()) - > 0) + > 0) { return true; + } } } } @@ -299,18 +301,24 @@ void CmdSketcherCompBSplineShowHideGeometryInformation::activated(int iMsg) Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager(); Gui::Command* cmd; - if (iMsg == 0) + if (iMsg == 0) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineDegree"); - else if (iMsg == 1) + } + else if (iMsg == 1) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplinePolygon"); - else if (iMsg == 2) + } + else if (iMsg == 2) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineComb"); - else if (iMsg == 3) + } + else if (iMsg == 3) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineKnotMultiplicity"); - else if (iMsg == 4) + } + else if (iMsg == 4) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplinePoleWeight"); - else + } + else { return; + } cmd->invoke(0); @@ -356,8 +364,9 @@ void CmdSketcherCompBSplineShowHideGeometryInformation::languageChange() { Command::languageChange(); - if (!_pcAction) + if (!_pcAction) { return; + } Gui::ActionGroup* pcAction = qobject_cast(_pcAction); QList a = pcAction->actions(); @@ -950,12 +959,15 @@ void CmdSketcherCompModifyKnotMultiplicity::activated(int iMsg) Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager(); Gui::Command* cmd; - if (iMsg == 0) + if (iMsg == 0) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineIncreaseKnotMultiplicity"); - else if (iMsg == 1) + } + else if (iMsg == 1) { cmd = rcCmdMgr.getCommandByName("Sketcher_BSplineDecreaseKnotMultiplicity"); - else + } + else { return; + } cmd->invoke(0); @@ -993,8 +1005,9 @@ void CmdSketcherCompModifyKnotMultiplicity::languageChange() { Command::languageChange(); - if (!_pcAction) + if (!_pcAction) { return; + } Gui::ActionGroup* pcAction = qobject_cast(_pcAction); QList a = pcAction->actions(); @@ -1132,10 +1145,12 @@ public: } } - if (applied) + if (applied) { Gui::Command::commitCommand(); - else + } + else { Gui::Command::abortCommand(); + } tryAutoRecomputeIfNotSolve(Obj); @@ -1223,9 +1238,10 @@ void CmdSketcherInsertKnot::activated(int iMsg) int GeoId = std::atoi(SubNames[0].substr(4, 4000).c_str()) - 1; const Part::Geometry* geo = Obj->getGeometry(GeoId); - if (geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) + if (geo->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { ActivateBSplineHandler(getActiveGuiDocument(), new DrawSketchHandlerBSplineInsertKnot(Obj, GeoId)); + } else { Gui::TranslatedUserWarning( Obj, @@ -1264,7 +1280,7 @@ void CmdSketcherJoinCurves::activated(int iMsg) // get the selection std::vector selection; - selection = getSelection().getSelectionEx(0, Sketcher::SketchObject::getClassTypeId()); + selection = getSelection().getSelectionEx(nullptr, Sketcher::SketchObject::getClassTypeId()); // only one sketch with its subelements are allowed to be selected if (selection.size() != 1) { @@ -1367,16 +1383,18 @@ void CmdSketcherJoinCurves::activated(int iMsg) getSelection().clearSelection(); } - if (applied) + if (applied) { Gui::Command::commitCommand(); - else + } + else { Gui::Command::abortCommand(); + } tryAutoRecomputeIfNotSolve(Obj); getSelection().clearSelection(); } -bool CmdSketcherJoinCurves::isActive(void) +bool CmdSketcherJoinCurves::isActive() { return isSketcherBSplineActive(getActiveGuiDocument(), true); } diff --git a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp index 92e293ce4f..0692c65983 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp @@ -50,7 +50,8 @@ #include "Utils.h" #include "ViewProviderSketch.h" - +// Hint: this is to prevent to re-format big parts of the file. Remove it later again. +// clang-format off using namespace std; using namespace SketcherGui; using namespace Sketcher; @@ -806,7 +807,7 @@ void CmdSketcherRestoreInternalAlignmentGeometry::activated(int iMsg) // Handle highest GeoIds first to minimize GeoIds changing // TODO: this might not completely resolve GeoIds changing - std::sort(SubGeoIds.begin(), SubGeoIds.end(), std::greater()); + std::sort(SubGeoIds.begin(), SubGeoIds.end(), std::greater<>()); // Keep unique SubGeoIds.erase(std::unique(SubGeoIds.begin(), SubGeoIds.end()), SubGeoIds.end()); @@ -2277,3 +2278,4 @@ void CreateSketcherCommandsConstraintAccel() rcCmdMgr.addCommand(new CmdSketcherDeleteAllConstraints()); rcCmdMgr.addCommand(new CmdSketcherRemoveAxesAlignment()); } +// clang-format on diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp index a33eaa525e..bcd2fd8c62 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp +++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp @@ -294,7 +294,7 @@ void DrawSketchHandler::preActivated() ViewProviderSketchDrawSketchHandlerAttorney::setConstraintSelectability(*sketchgui, false); } -void DrawSketchHandler::quit(void) +void DrawSketchHandler::quit() { assert(sketchgui); @@ -307,12 +307,12 @@ void DrawSketchHandler::quit(void) //************************************************************************** // Helpers -int DrawSketchHandler::getHighestVertexIndex(void) +int DrawSketchHandler::getHighestVertexIndex() { return sketchgui->getSketchObject()->getHighestVertexIndex(); } -int DrawSketchHandler::getHighestCurveIndex(void) +int DrawSketchHandler::getHighestCurveIndex() { return sketchgui->getSketchObject()->getHighestCurveIndex(); } @@ -475,7 +475,7 @@ void DrawSketchHandler::updateCursor() setCrosshairCursor(cursorstring); } -void DrawSketchHandler::applyCursor(void) +void DrawSketchHandler::applyCursor() { applyCursor(actCursor); } @@ -489,7 +489,7 @@ void DrawSketchHandler::applyCursor(QCursor& newCursor) } } -void DrawSketchHandler::unsetCursor(void) +void DrawSketchHandler::unsetCursor() { Gui::MDIView* view = Gui::getMainWindow()->activeWindow(); if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) { @@ -995,7 +995,7 @@ void DrawSketchHandler::setPositionText(const Base::Vector2d& Pos) ViewProviderSketchDrawSketchHandlerAttorney::setPositionText(*sketchgui, Pos); } -void DrawSketchHandler::resetPositionText(void) +void DrawSketchHandler::resetPositionText() { ViewProviderSketchDrawSketchHandlerAttorney::resetPositionText(*sketchgui); } @@ -1061,17 +1061,17 @@ void DrawSketchHandler::preselectAtPoint(Base::Vector2d point) ViewProviderSketchDrawSketchHandlerAttorney::preselectAtPoint(*sketchgui, point); } -int DrawSketchHandler::getPreselectPoint(void) const +int DrawSketchHandler::getPreselectPoint() const { return ViewProviderSketchDrawSketchHandlerAttorney::getPreselectPoint(*sketchgui); } -int DrawSketchHandler::getPreselectCurve(void) const +int DrawSketchHandler::getPreselectCurve() const { return ViewProviderSketchDrawSketchHandlerAttorney::getPreselectCurve(*sketchgui); } -int DrawSketchHandler::getPreselectCross(void) const +int DrawSketchHandler::getPreselectCross() const { return ViewProviderSketchDrawSketchHandlerAttorney::getPreselectCross(*sketchgui); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandler.h b/src/Mod/Sketcher/Gui/DrawSketchHandler.h index 11269f6540..d5350ebcfb 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandler.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.h @@ -56,7 +56,7 @@ class CurveConverter final: public ParameterGrp::ObserverType public: CurveConverter(); - ~CurveConverter(); + ~CurveConverter() override; std::vector toVector2D(const Part::Geometry* geometry); diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h index 6e4b7219d4..074d261718 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArc.h @@ -47,7 +47,7 @@ public: , endAngle(0) , arcAngle(0) {} - virtual ~DrawSketchHandlerArc() + ~DrawSketchHandlerArc() override {} /// mode table enum SelectMode @@ -278,7 +278,7 @@ public: , arcPos1(Sketcher::PointPos::none) , arcPos2(Sketcher::PointPos::none) {} - virtual ~DrawSketchHandler3PointArc() + ~DrawSketchHandler3PointArc() override {} /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h index 01b504889b..25ada63cd8 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h @@ -46,7 +46,7 @@ public: , arcAngle_t(0) {} - virtual ~DrawSketchHandlerArcOfEllipse() = default; + ~DrawSketchHandlerArcOfEllipse() override = default; /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h index 9e8ae862f5..006635a091 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h @@ -45,7 +45,7 @@ public: , arcAngle_t(0) {} - virtual ~DrawSketchHandlerArcOfHyperbola() = default; + ~DrawSketchHandlerArcOfHyperbola() override = default; /// mode table enum SelectMode { diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfParabola.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfParabola.h index 1c89c7d9ad..bbfbb4b52b 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfParabola.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfParabola.h @@ -44,7 +44,7 @@ public: , arcAngle_t(0) {} - virtual ~DrawSketchHandlerArcOfParabola() = default; + ~DrawSketchHandlerArcOfParabola() override = default; /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h index 33e55c3310..e4c8463e61 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h @@ -50,7 +50,7 @@ public: applyCursor(); } - virtual ~DrawSketchHandlerBSpline() = default; + ~DrawSketchHandlerBSpline() override = default; /// modes enum SELECT_MODE diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSplineByInterpolation.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSplineByInterpolation.h index 6ab7860846..031bda63e1 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSplineByInterpolation.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSplineByInterpolation.h @@ -50,7 +50,7 @@ public: applyCursor(); } - virtual ~DrawSketchHandlerBSplineByInterpolation() = default; + ~DrawSketchHandlerBSplineByInterpolation() override = default; /// modes enum SELECT_MODE diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerCarbonCopy.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerCarbonCopy.h index 31117a585c..d2b7bb9dc8 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerCarbonCopy.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerCarbonCopy.h @@ -43,7 +43,7 @@ public: , object(obj) {} - bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName) override { Q_UNUSED(sSubName); @@ -109,7 +109,7 @@ class DrawSketchHandlerCarbonCopy: public DrawSketchHandler { public: DrawSketchHandlerCarbonCopy() = default; - virtual ~DrawSketchHandlerCarbonCopy() + ~DrawSketchHandlerCarbonCopy() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h index 27ee4603cd..6bc2116780 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h @@ -38,7 +38,7 @@ public: : Mode(STATUS_SEEK_First) , EditCurve(34) {} - virtual ~DrawSketchHandlerCircle() + ~DrawSketchHandlerCircle() override {} /// mode table enum SelectMode @@ -188,7 +188,7 @@ public: , radius(1) , N(32.0) {} - virtual ~DrawSketchHandler3PointCircle() + ~DrawSketchHandler3PointCircle() override {} /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerEllipse.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerEllipse.h index ff5b445511..6bf67dae9d 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerEllipse.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerEllipse.h @@ -97,7 +97,7 @@ public: , editCurve(33) , fixedAxisLength(0) {} - virtual ~DrawSketchHandlerEllipse() + ~DrawSketchHandlerEllipse() override {} /// Mode table, describes what step of the process we are in enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerExtend.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerExtend.h index de2e961fd5..288b77c7ca 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerExtend.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerExtend.h @@ -44,7 +44,7 @@ public: , disabled(false) {} - bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) override { if (pObj != this->object) return false; @@ -86,7 +86,7 @@ public: , Increment(0) {} - virtual ~DrawSketchHandlerExtend() + ~DrawSketchHandlerExtend() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerExternal.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerExternal.h index 11fa3f86a4..a7b4f812bc 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerExternal.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerExternal.h @@ -43,7 +43,7 @@ public: , object(obj) {} - bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* pDoc, App::DocumentObject* pObj, const char* sSubName) override { Sketcher::SketchObject* sketch = static_cast(object); @@ -102,7 +102,7 @@ class DrawSketchHandlerExternal: public DrawSketchHandler { public: DrawSketchHandlerExternal() = default; - virtual ~DrawSketchHandlerExternal() + ~DrawSketchHandlerExternal() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerFillet.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerFillet.h index ad0ebfeb2a..eaf62182d5 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerFillet.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerFillet.h @@ -43,7 +43,7 @@ public: , object(obj) {} - bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) override { if (pObj != this->object) return false; @@ -90,7 +90,7 @@ public: , Mode(STATUS_SEEK_First) , firstCurve(0) {} - virtual ~DrawSketchHandlerFillet() + ~DrawSketchHandlerFillet() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h index 1e5a987c52..7965cd8210 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h @@ -39,7 +39,7 @@ public: : Mode(STATUS_SEEK_First) , EditCurve(2) {} - virtual ~DrawSketchHandlerLine() + ~DrawSketchHandlerLine() override {} /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h index b492d81fef..379f4f27d7 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h @@ -56,7 +56,7 @@ public: , firstsegment(true) {} - virtual ~DrawSketchHandlerLineSet() = default; + ~DrawSketchHandlerLineSet() override = default; /// mode table enum SELECT_MODE diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h index 80c1a51cb7..74b5025e94 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h @@ -39,7 +39,7 @@ public: DrawSketchHandlerPoint() : selectionDone(false) {} - virtual ~DrawSketchHandlerPoint() + ~DrawSketchHandlerPoint() override {} void mouseMove(Base::Vector2d onSketchPos) override diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h index 435ba29404..276a4a4e3b 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h @@ -45,7 +45,7 @@ public: , Mode(STATUS_SEEK_First) , EditCurve(Corners + 1) {} - virtual ~DrawSketchHandlerRegularPolygon() + ~DrawSketchHandlerRegularPolygon() override {} /// mode table enum SelectMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h index 819b17d48a..1d316d6229 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h @@ -47,7 +47,7 @@ public: , EditCurve(5) , constructionMethod(constrMethod) {} - virtual ~DrawSketchHandlerBox() + ~DrawSketchHandlerBox() override {} /// mode table @@ -377,7 +377,7 @@ public: , signY(1) , EditCurve(37) {} - virtual ~DrawSketchHandlerOblong() + ~DrawSketchHandlerOblong() override {} /// mode table enum BoxMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerSlot.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerSlot.h index eddda9c7f0..21c20a4c61 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerSlot.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerSlot.h @@ -45,7 +45,7 @@ public: , r(0) , EditCurve(35) {} - virtual ~DrawSketchHandlerSlot() + ~DrawSketchHandlerSlot() override {} /// mode table enum BoxMode diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerSplitting.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerSplitting.h index 1d5d433499..e844b72907 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerSplitting.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerSplitting.h @@ -44,7 +44,7 @@ public: , object(obj) {} - bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) override { if (pObj != this->object) return false; @@ -81,7 +81,7 @@ class DrawSketchHandlerSplitting: public DrawSketchHandler { public: DrawSketchHandlerSplitting() = default; - virtual ~DrawSketchHandlerSplitting() + ~DrawSketchHandlerSplitting() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerTrimming.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerTrimming.h index 0db3e6148d..dd5b9875fe 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerTrimming.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerTrimming.h @@ -43,7 +43,7 @@ public: , object(obj) {} - bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) + bool allow(App::Document* /*pDoc*/, App::DocumentObject* pObj, const char* sSubName) override { if (pObj != this->object) return false; @@ -71,7 +71,7 @@ class DrawSketchHandlerTrimming: public DrawSketchHandler { public: DrawSketchHandlerTrimming() = default; - virtual ~DrawSketchHandlerTrimming() + ~DrawSketchHandlerTrimming() override { Gui::Selection().rmvSelectionGate(); } diff --git a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h index 90ae4386eb..93a14816c7 100644 --- a/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h +++ b/src/Mod/Sketcher/Gui/EditModeCoinManagerParameters.h @@ -67,8 +67,8 @@ struct DrawingParameters /** @name Rendering Heights - virtual height introduced in the scenegraph to determine what is * drawn on top of what*/ //@{ - const float zEdit = 0.001f; // Height used by temporal edit curves - const float zCross = 0.001f; // Height used by the Axes + const float zEdit = 0.002f; // Height used by temporal edit curves + const float zCross = 0.002f; // Height used by the Axes const float zInfo = 0.004f; // Height used by the Overlay information layer const float zLowLines = 0.005f; // Height used for bottom rendered lines const float zMidLines = 0.006f; // Height used for in-the-middle rendered lines diff --git a/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp index 2268ff188b..0d84ad3fcf 100644 --- a/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp @@ -2114,15 +2114,8 @@ std::set EditModeConstraintCoinManager::detectPreselectionConstr(const SoPi SbVec3s EditModeConstraintCoinManager::getDisplayedSize(const SoImage* iconPtr) const { -#if (COIN_MAJOR_VERSION >= 3) SbVec3s iconSize = iconPtr->image.getValue().getSize(); -#else - SbVec2s size; - int nc; - const unsigned char* bytes = iconPtr->image.getValue(size, nc); - SbImage img(bytes, size, nc); - SbVec3s iconSize = img.getSize(); -#endif + if (iconPtr->width.getValue() != -1) iconSize[0] = iconPtr->width.getValue(); if (iconPtr->height.getValue() != -1) diff --git a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp index 88ccb53866..f71b3d653e 100644 --- a/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp +++ b/src/Mod/Sketcher/Gui/EditModeGeometryCoinManager.cpp @@ -279,7 +279,7 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli pcolor[preselectpointmfid.fieldIndex] = drawingParameters.PreselectColor; - raisePoint(pverts[preselectpointmfid.fieldIndex], drawingParameters.zHighlight); + raisePoint(pverts[preselectpointmfid.fieldIndex], viewOrientationFactor * drawingParameters.zHighlight); } } @@ -292,7 +292,8 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli layerId = l, &coinMapping = coinMapping, drawingParameters = this->drawingParameters, - raisePoint](const int i) { + raisePoint, + viewOrientationFactor](const int i) { auto pointindex = coinMapping.getIndexLayer(i); if (layerId == pointindex.layerId && pointindex.fieldIndex >= 0 && pointindex.fieldIndex < PtNum) { @@ -300,7 +301,7 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli ? drawingParameters.PreselectSelectedColor : drawingParameters.SelectColor; - raisePoint(pverts[pointindex.fieldIndex], drawingParameters.zHighlight); + raisePoint(pverts[pointindex.fieldIndex], viewOrientationFactor * drawingParameters.zHighlight); } }); diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher.ts index 2c5896d482..18328801be 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher.ts @@ -2159,59 +2159,59 @@ invalid constraints, degenerated geometry, etc. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. - - + + BSpline Geometry Index (GeoID) is out of bounds. - + You are requesting no change in knot multiplicity. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. - + The multiplicity cannot be decreased beyond zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. - + Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. @@ -6082,17 +6082,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_be.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_be.ts index f492b34567..12cde1d1bc 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_be.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_be.ts @@ -2163,59 +2163,59 @@ invalid constraints, degenerated geometry, etc. Памылка аўтаматычнага абмежавання: Невырашальны эскіз пасля ўжывання абмежаванняў роўнасці. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Немагчыма разлічыць скрыжаванне крывых. Паспрабуйце дадаць абмежаванні супадзенняў паміж вяршынямі крывых, якія вы збіраецеся акругліць. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline ідэнтыфікатар геаметрыі (GeoID) знаходзіцца за межамі дапушчальных значэнняў. - + You are requesting no change in knot multiplicity. Вы не запытваеце аніякіх зменах у кратнасці вузлоў. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Ідэнтыфікатар геаметрыі (GeoId) не з'яўляецца крывой B-сплайна. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Індэкс вузла знаходзіцца за межамі дапушчальных значэнняў. Звярніце ўвагу, што ў адпаведнасці з назначэннем OCC першы вузел мае індэкс 1, а не 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. Кратнасць не можа быць павялічана звыш ступені B-сплайна. - + The multiplicity cannot be decreased beyond zero. Кратнасць не можа быць паменшана ніжэй за 0. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OpenCASCADE не можа паменшыць кратнасць у межах найбольшай дакладнасці. - + Knot cannot have zero multiplicity. Вузел не можа мець нулявую кратнасць. - + Knot multiplicity cannot be higher than the degree of the BSpline. Кратнасць вузла не можа быць вышэй ступені B-сплайна. - + Knot cannot be inserted outside the BSpline parameter range. Вузел не можа быць устаўлены за межы дыяпазону наладаў B-сплайна. @@ -6124,17 +6124,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! Эскіз мае скажоныя абмежаванні! - + The Sketch has partially redundant constraints! Эскіз мае часткова залішнія абмежаванні! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Парабалы былі перанесены. Перанесеныя файлы не будуць адчыняцца ў папярэдніх версіях FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ca.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ca.ts index 1745acf84c..e61483e06f 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ca.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ca.ts @@ -71,7 +71,7 @@ Create carbon copy - Create carbon copy + Crea un calc @@ -230,7 +230,7 @@ Create conic - Create conic + Crea una cònica @@ -707,7 +707,7 @@ with respect to a line or a third point Create arc of ellipse - Create arc of ellipse + Crea un arc d'el·lipse @@ -720,7 +720,7 @@ with respect to a line or a third point Create arc of hyperbola - Create arc of hyperbola + Crea un arc d'hipèrbole @@ -733,7 +733,7 @@ with respect to a line or a third point Create arc of parabola - Create arc of parabola + Crea un arc de paràbola @@ -751,7 +751,7 @@ with respect to a line or a third point Create a B-spline by control points in the sketch. - Create a B-spline by control points in the sketch. + Crear un B-spline mitjançant punts de control del croquis. @@ -894,7 +894,7 @@ with respect to a line or a third point Create a periodic B-spline by control points in the sketch. - Create a periodic B-spline by control points in the sketch. + Crea una B-spline periòdica mitjançant punts de control del croquis. @@ -1097,7 +1097,7 @@ with respect to a line or a third point Create external geometry - Create external geometry + Crea una geometria externa @@ -2166,59 +2166,59 @@ restriccions invàlides, geometries degenerades, etc. Error d'autorestricció: croquis irresoluble si s'apliquen restriccions d'igualtat. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. No es pot esbrinar la intersecció de corbes. Proveu d'afegir una restricció de coincidència entre els vèrtexs de les corbes que intenteu arrodonir. - - + + BSpline Geometry Index (GeoID) is out of bounds. l'index de geometria BSpline (GeoID) esta fora de les restriccions. - + You are requesting no change in knot multiplicity. Se us ha demanat que no canvieu la multiplicitat del nus. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. L'índex de geometria (GeoId) proporcionada no és una corba de B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. L'índex del nus és fora dels límits. Tingueu en compte que d'acord amb la notació d'OCC, el primer nus té l'índex 1 i no zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. La multiplicitat no pot augmentar més enllà del grau de la B-spline. - + The multiplicity cannot be decreased beyond zero. La multiplicitat no es pot reduir més enllà de zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC no pot reduir la multiplicitat dins de la tolerància màxima. - + Knot cannot have zero multiplicity. El node no pot tenir multiplicitat zero. - + Knot multiplicity cannot be higher than the degree of the BSpline. La multiplicitat de nodes no pot ser superior al grau de la BSpline. - + Knot cannot be inserted outside the BSpline parameter range. El node no es pot inserir fora de l'interval de paràmetres BSpline. @@ -3705,7 +3705,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Layer - Layer + Capa @@ -5922,7 +5922,7 @@ L'algoritme Eigen Sparse QR està optimitzat per a matrius escasses; generalment Sketcher edit mode - Sketcher edit mode + Mode d'edició del croquis @@ -5952,7 +5952,7 @@ L'algoritme Eigen Sparse QR està optimitzat per a matrius escasses; generalment Sketcher edit tools - Sketcher edit tools + Eines d'edició del croquis @@ -6089,7 +6089,7 @@ The grid spacing change if it becomes smaller than this number of pixel. Grid auto spacing - Grid auto spacing + Autoespaiat de la quadrícula @@ -6104,23 +6104,23 @@ The grid spacing change if it becomes smaller than this number of pixel. Distance between two subsequent grid lines. - Distance between two subsequent grid lines. + Distància entre dues línies de graella consecutives. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! @@ -6397,7 +6397,7 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. - Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. + Salt angular per eines que usen 'Ajusta a l'angle' (p. ex. línia). Prem CTRL per activar 'Ajusta a l'angle'. L'angle comença des de l'eix X positiu del croquis. @@ -6447,7 +6447,7 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Toggle the grid in the sketch. In the menu you can change grid settings. - Toggle the grid in the sketch. In the menu you can change grid settings. + Commuta la graella del croquis. Pots canviar la configuració de la graella des del menú. @@ -6460,7 +6460,7 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. - Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. + Commuta totes les funcions d'ajust. En el menú pots commutar individualment 'Ajusta a la graella' i 'Ajusta a objectes', i canviar altres configuracions d'ajust. @@ -6468,12 +6468,12 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Create B-spline by knots - Create B-spline by knots + Crea una B-spline per nusos Create a B-spline by knots, i.e. by interpolation, in the sketch. - Create a B-spline by knots, i.e. by interpolation, in the sketch. + Crea una B-spline per nusos, p. ex. per interpolació, en el croquis. @@ -6481,12 +6481,12 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Create periodic B-spline by knots - Create periodic B-spline by knots + Crea una B-spline periòdica per nusos Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. - Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. + Crea una B-spline periòdica per nusos, p. ex. per interpolació, en el croquis. diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_cs.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_cs.ts index 85c17f7453..788df53e1e 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_cs.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_cs.ts @@ -2168,59 +2168,59 @@ neplatných vazeb, degenerované geometrie atd. Chyba automatických vazeb: Neřešitelný náčrt po aplikaci vazeb rovnosti. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nelze odhadnout průsečík křivek. Zkuste přidat vazbu totožnosti mezi vrcholy křivek, které chcete zaoblit. - - + + BSpline Geometry Index (GeoID) is out of bounds. Geometrický index (GeoID) B-splajnu je mimo meze. - + You are requesting no change in knot multiplicity. Nepožadujete změnu v násobnosti uzlů. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Daný geometrický index (GeoId) neodpovídá B-splajn křivce. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Index uzlu je mimo hranice. Všimněte si, že v souladu s OCC zápisem je index prvního uzlu 1 a ne 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. Násobnost nemůže být zvýšena nad stupeň B-splajnu. - + The multiplicity cannot be decreased beyond zero. Násobnost nemůže být snížena pod nulu. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC není schopno snížit násobnost na maximální toleranci. - + Knot cannot have zero multiplicity. Uzel nemůže mít nulovou násobnost. - + Knot multiplicity cannot be higher than the degree of the BSpline. Násobnost uzlu nemůže být vyšší než stupeň BSplajnu. - + Knot cannot be inserted outside the BSpline parameter range. Nelze vložit uzel mimo rozsah parametrů BSplajnu. @@ -6126,17 +6126,17 @@ Rozteč mřížky se změní, pokud bude menší než tento počet pixelů. Notifications - + The Sketch has malformed constraints! Náčrt má poškozené vazby! - + The Sketch has partially redundant constraints! Náčrt má částečně nadbytečné vazby! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Paraboly byly migrovány. Migrované soubory se v předchozích verzích FreeCADu neotevřou!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts index 028c27ca45..5e4d738752 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts @@ -2166,59 +2166,59 @@ ungültigen Einschränkungen, degenerierten Geometrien, etc überprüfen.Fehler automatische Beschränkungen: unlösbare Skizze nach dem Anwenden von gleichheits Beschränkungen. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Der Schnittpunkt der Kurven kann nicht ermittelt werden. Die Randbedingung Koinzidenz festlegen, angewendet auf die Endpunkte der Kurven, die verrundet werden sollen, kann hier helfen. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Geometrie Index (GeoID) ist außerhalb des gültigen Bereichs. - + You are requesting no change in knot multiplicity. Sie fordern keine Änderung in der Multiplizität der Knoten. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Der bereitgestellte Geometrieindex (GeoId) ist keine B-Spline-Kurve. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Der Knotenindex ist außerhalb der Grenzen. Beachten Sie, dass der erste Knoten gemäß der OCC-Notation den Index 1 und nicht Null hat. - + The multiplicity cannot be increased beyond the degree of the B-spline. Die Vielfachheit kann nicht über den Grad des B-Splines hinaus erhöht werden. - + The multiplicity cannot be decreased beyond zero. Die Vielfachheit kann nicht über Null hinaus verringert werden. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC kann die Multiplizität innerhalb der maximalen Toleranz nicht verringern. - + Knot cannot have zero multiplicity. Ein Knoten kann nicht die Vielfachheit Null haben. - + Knot multiplicity cannot be higher than the degree of the BSpline. Die Vielfachheit kann nicht höher als der Grad des B-Splines sein. - + Knot cannot be inserted outside the BSpline parameter range. Knoten kann nicht außerhalb des BSpline-Parameterbereichs eingefügt werden. @@ -2450,7 +2450,7 @@ ungültigen Einschränkungen, degenerierten Geometrien, etc überprüfen. Not allowed to edit the datum because the sketch contains conflicting constraints - Der Bezug darf nicht geändert werden, da die Skizze widersprüchliche Einschränkungen enthält + Der Bezug darf nicht geändert werden, da die Skizze widersprüchliche Randbedingungen enthält @@ -2785,7 +2785,7 @@ ungültigen Einschränkungen, degenerierten Geometrien, etc überprüfen. perpendicular constraint - Es gibt mehrere Möglichkeiten diese Beschränkung anzuwenden. + Es gibt mehrere Möglichkeiten diese Beschränkung anzuwenden. Erlaubte Kombinationen: zwei Kurven; einen Endpunkt und eine Kurve; zwei Endpunkte; zwei Kurven und einen Punkt. @@ -2830,7 +2830,7 @@ Erlaubte Kombinationen: zwei Kurven; einen Endpunkt und eine Kurve; zwei Endpunk Accepted combinations: two curves; an endpoint and a curve; two endpoints; two curves and a point. tangent constraint - Es gibt eine Reihe von Möglichkeiten, wie diese Einschränkung angewendet werden kann. + Es gibt eine Reihe von Möglichkeiten, wie diese Einschränkung angewendet werden kann. Akzeptierte Kombinationen: zwei Kurven; Ein Endpunkt und eine Kurve; Zwei Endpunkte; Zwei Kurven und ein Punkt. @@ -4419,7 +4419,7 @@ Standardmäßig: %N = %V When entering edit mode, force orthographic view of camera. Works only when "Restore camera position after editing" is enabled. - Bei Aktivierung des Bearbeitungsmodus, wird die orthogonale Ansicht der Kamera festgelegt. + Bei Aktivierung des Bearbeitungsmodus, wird die orthogonale Ansicht der Kamera festgelegt. Funktioniert nur, wenn "Kameraposition nach dem Bearbeiten wiederherstellen" aktiviert ist. @@ -4717,7 +4717,7 @@ Es wurden keine Beschränkungen zu diesen Punkten gefunden. Construction - Konstruktion + Hilfsgeometrie @@ -5931,7 +5931,7 @@ Eigen Sparse QR ein Algorithmus, der für dünn besetzte Matrizen optimiert ist; Sketcher edit mode - Sketcher-Modus Bearbeitung + Sketcher-Bearbeitungsmodus @@ -6119,17 +6119,17 @@ Die Rasterweite ändert sich, wenn er kleiner als diese Anzahl von Pixeln wird.< Notifications - + The Sketch has malformed constraints! Die Skizze enthält fehlerhafte Randbedingungen! - + The Sketch has partially redundant constraints! Die Skizze enthält teilweise redundante Randbedingungen! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabeln wurden intern umstrukturiert. Solche Dateien lassen sich mit früheren Versionen von FreeCAD nicht mehr öffnen!! @@ -6238,13 +6238,13 @@ Die Rasterweite ändert sich, wenn er kleiner als diese Anzahl von Pixeln wird.< Error creating B-spline pole - Error creating B-spline pole + Fehler beim Erstellen des B-spline Kontrollpunktes Error creating B-spline - Error creating B-spline + Fehler beim Erstellen des B-splines diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_el.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_el.ts index fa08f2156d..f6c0bb99d3 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_el.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_el.ts @@ -2165,60 +2165,60 @@ invalid constraints, degenerated geometry, etc. Σφάλμα αυτόματου περιορισμού: Άλυτο σχέδιο μετά την εφαρμογή περιορισμών ισότητας. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Δεν είναι δυνατή η εύρεση τομής καμπυλών. Προσπαθήστε να προσθέσετε τον περιορισμό ταύτισης μεταξύ κορυφών των καμπυλών που σκοπεύετε να συμπληρώσετε. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Geometry Index (GeoID) is out of bounds. - + You are requesting no change in knot multiplicity. Δεν απαιτείτε καμία αλλαγή της πολλαπλότητας κόμβου. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. The Geometry Index (GeoId) provided is not a B-spline curve. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Ο δείκτης κόμβου είναι εκτός ορίων. Σημειώστε πως σύμφωνα με το σύστημα σημειογραφίας του OCC, ο πρώτος κόμβος έχει δείκτη 1 και όχι μηδέν. - + The multiplicity cannot be increased beyond the degree of the B-spline. The multiplicity cannot be increased beyond the degree of the B-spline. - + The multiplicity cannot be decreased beyond zero. Η πολλαπλότητα δεν δύναται να είναι χαμηλότερη από το μηδέν. - + OCC is unable to decrease the multiplicity within the maximum tolerance. To ΟCC αδυνατεί να μειώσει την πολλαπλότητα εντός των ορίων μέγιστης ανοχής. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6122,17 +6122,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-AR.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-AR.ts index 9cd35253e3..b8bdb13986 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-AR.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-AR.ts @@ -230,7 +230,7 @@ Create conic - Create conic + Crear una curva cónica @@ -2168,59 +2168,59 @@ restricciones inválidas, geometrías degeneradas, etc. Error de auto-restricción: Croquis sin solución después de aplicar restricciones de igualdad. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. No se puede adivinar la intersección de las curvas. Intente agregar una restricción coincidente entre los vértices de las curvas que pretende redondear. - - + + BSpline Geometry Index (GeoID) is out of bounds. Índice de Geometría BSpline (GeoID) está fuera de límites. - + You are requesting no change in knot multiplicity. No está solicitando ningún cambio en la multiplicidad de nudos. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. El índice de geometría (GeoId) proporcionado no es una curva B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. El índice de nudos está fuera de los límites. Tenga en cuenta que de acuerdo con la notación OCC, el primer nudo tiene índice 1 y no 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. La multiplicidad no puede incrementarse más allá del grado de la B-spline. - + The multiplicity cannot be decreased beyond zero. La multiplicidad no puede ser disminuida más allá de cero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC es incapaz de disminuir la multiplicidad dentro de la tolerancia máxima. - + Knot cannot have zero multiplicity. El nodo no puede tener una multiplicidad cero. - + Knot multiplicity cannot be higher than the degree of the BSpline. La multiplicidad del nodo no puede ser mayor que el grado de la BSpline. - + Knot cannot be inserted outside the BSpline parameter range. El nodo no puede ser insertado fuera del rango de parámetros de la B-Spline. @@ -6125,17 +6125,17 @@ El espaciado de la cuadrícula cambia si es menor que este número de píxeles.< Notifications - + The Sketch has malformed constraints! ¡El croquis tiene restricciones mal formadas! - + The Sketch has partially redundant constraints! ¡El croquis tiene restricciones parcialmente redundantes! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas ha sido migrado. Los archivos migrados no se abrirán en versiones anteriores de FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-ES.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-ES.ts index d442d77eaf..b166c52a02 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-ES.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es-ES.ts @@ -230,7 +230,7 @@ Create conic - Create conic + Crear una curva cónica @@ -2167,59 +2167,59 @@ restricciones inválidas, geometrías degeneradas, etc. Error de autorestricción: croquis sin solución después de aplicar restricciones de igualdad. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. No se puede adivinar la intersección de curvas. Intente agregar una restricción coincidente entre los vértices de las curvas que pretende redondear. - - + + BSpline Geometry Index (GeoID) is out of bounds. Índice de geometría BSpline (GeoID) está fuera de restricciones. - + You are requesting no change in knot multiplicity. Usted esta solicitando no cambio en multiplicidad de nudo. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. El índice de geometría (GeoID) proporcionado no es una curva B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. El índice de nudo es fuera de los limites. Note que según en concordancia con notación de la OCC, el primer nudo tiene índice 1 y no 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. La multiplicidad no puede incrementarse más allá del grado de la B-spline. - + The multiplicity cannot be decreased beyond zero. La multiplicidad no puede ser disminuida más allá de cero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC es incapaz de disminuir la multiplicidad dentro de la tolerancia máxima. - + Knot cannot have zero multiplicity. El nodo no puede tener una multiplicidad cero. - + Knot multiplicity cannot be higher than the degree of the BSpline. La multiplicidad del nodo no puede ser mayor que el grado de la BSpline. - + Knot cannot be inserted outside the BSpline parameter range. El nodo no puede ser insertado fuera del rango de parámetros de la B-Spline. @@ -5933,7 +5933,7 @@ El algoritmo QR de Eigen Sparse está optimizado para matrices dispersas; genera Sketcher edit mode - Sketcher edit mode + Modo de edición del croquis @@ -5963,7 +5963,7 @@ El algoritmo QR de Eigen Sparse está optimizado para matrices dispersas; genera Sketcher edit tools - Sketcher edit tools + Modo de edición del croquis @@ -6121,17 +6121,17 @@ El espaciado de la cuadrícula cambia si es menor que este número de píxeles.< Notifications - + The Sketch has malformed constraints! El croquis contiene restricciones mal formadas! - + The Sketch has partially redundant constraints! El croquis contiene restricciones parcialmente redundantes! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas ha sido migrado. Los archivos migrados no se abrirán en versiones anteriores de FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_eu.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_eu.ts index 4511b39c10..fa3e6a5ba3 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_eu.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_eu.ts @@ -2169,59 +2169,59 @@ murrizketak, geometria degeneratuak, etab. aztertuta. Automurrizketa-errorea: Ebatzi ezin den krokisa berdintasun-murrizketak aplikatu ondoren. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Ezin izan da kurben ebakidura antzeman. Saiatu bat datorren murrizketa bat gehitzen biribildu nahi dituzun kurben erpinen artean. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline geometria-indizea (GeoID) mugetatik kanpo dago. - + You are requesting no change in knot multiplicity. Adabegi-aniztasunean aldaketarik ez egitea eskatzen ari zara. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Hornitutako geometria-indizea (GeoId) ez da Bspline kurba bat. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Adabegi-indizea mugetatik kanpo dago. Kontuan izan, OCC notazioaren arabera, lehen adabegiaren indize-zenbakiak 1 izan behar duela, ez 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. Aniztasuna ezin da handitu Bspline-aren gradutik gora. - + The multiplicity cannot be decreased beyond zero. Aniztasuna ezin da txikitu zerotik behera. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC-k ezin du aniztasuna txikitu tolerantzia maximoaren barruan. - + Knot cannot have zero multiplicity. Adabegiak ezin du zero aniztasuna izan. - + Knot multiplicity cannot be higher than the degree of the BSpline. Adabegi-aniztasunak ezin du izan B-spline kurbaren graduak baino handiagoa. - + Knot cannot be inserted outside the BSpline parameter range. Adabegia ezin da txertatu B-spline parametro-barrutiaren kanpoaldean. @@ -6127,17 +6127,17 @@ Sareta-tartea aldatuko da pixel-zenbaki hau baino txikiagoa bihurtzen bada. Notifications - + The Sketch has malformed constraints! Krokisak gaizki eratutako murrizketak ditu! - + The Sketch has partially redundant constraints! Krokisak partzialki erredundanteak diren murrizketak ditu! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolak migratu dira. Migratutako fitxategiak ezin dira ireki FreeCADen aurreko bertsioetan. diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts index 0fb6d361e1..a82eea00af 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts @@ -1235,7 +1235,7 @@ X- tai Y-akselia tai origoa. Wrong selection - Virheellinen valinta + Väärä valinta @@ -2170,59 +2170,59 @@ virheellisiä rajoitteita, rappeutunutta geometriaa jne. Automaattinen rajoitusvirhe: Ratkaisematon luonnos kun käytetään yhdenmukaisia rajoitteita. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Ei kyetty arvaamaan reunojen risteämispistettä. Kokeile lisätä yhtenevyysrajoite pyöristettävien reunojen kärkipisteiden välille. - - + + BSpline Geometry Index (GeoID) is out of bounds. B-splinin geometria-indeksi (GeoID) on sallittujen rajojen ulkopuolella. - + You are requesting no change in knot multiplicity. Solmun moninkertaisuusarvoon ei pyydetty muutosta. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Annettu geometria-indeksi (GeoID) ei vastaa B-splini-käyrää. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Solmun indeksi on rajojen ulkopuolella. Huomaa, että OCC: n notaation mukaisesti ensimmäisellä solmulla on indeksi 1 eikä nolla. - + The multiplicity cannot be increased beyond the degree of the B-spline. Monimuotoisuusarvoa ei voi kasvattaa B-splinin astetta suuremmaksi. - + The multiplicity cannot be decreased beyond zero. Moninkertaisuusarvoa ei voi pienentää negatiiviseksi. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC ei pysty pienentämään moninkertaisuusarvoa pysyäkseen suurimmassa sallitussa toleranssissa. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6129,17 +6129,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts index 67c7729505..3d4d11c4f9 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts @@ -6,7 +6,7 @@ Show/hide B-spline curvature comb - Afficher/masquer le peigne de courbure B-spline + Afficher/masquer le peigne de courbure de la B-spline @@ -32,7 +32,7 @@ Show/hide B-spline knot multiplicity - Afficher/masquer la multiplicité du nœud B-spline + Afficher/masquer la multiplicité du nœud de la B-spline @@ -97,7 +97,7 @@ Show/hide B-spline information layer - Afficher/Masquer le calque d’information B-spline + Afficher/masquer le calque d’information de la B-spline @@ -112,12 +112,12 @@ Show/hide B-spline curvature comb - Afficher/masquer le peigne de courbure B-spline + Afficher/masquer le peigne de courbure de la B-spline Show/hide B-spline knot multiplicity - Afficher/masquer la multiplicité du nœud B-spline + Afficher/masquer la multiplicité du nœud de la B-spline @@ -140,7 +140,7 @@ Constrain radius - Contrainte radiale + Contrainte de rayon @@ -217,7 +217,7 @@ Center and rim point - Point de centre et de bord + Cercle par le centre et un point du bord @@ -573,7 +573,7 @@ on the selected vertex Constrain radius or weight - Contraindre le rayon ou le poids + Contrainte de rayon ou de poids @@ -749,7 +749,7 @@ with respect to a line or a third point Create a B-spline by control points in the sketch. - Créer une B-spline par points de contrôle dans l'esquisse. + Créer une B-spline par des points de contrôle dans l'esquisse. @@ -892,7 +892,7 @@ with respect to a line or a third point Create a periodic B-spline by control points in the sketch. - Créer une B-spline périodique par points de contrôle dans l'esquisse. + Créer une B-spline périodique par des points de contrôle dans l'esquisse. @@ -970,7 +970,7 @@ with respect to a line or a third point Create a regular polygon in the sketch - Créez un polygone régulier dans l'esquisse + Créer un polygone régulier dans l'esquisse @@ -978,12 +978,12 @@ with respect to a line or a third point Create slot - Créer une rainure + Créer un contour oblong Create a slot in the sketch - Créer un rainure dans l'esquisse + Créer un contour oblong dans l'esquisse @@ -1181,7 +1181,7 @@ with respect to a line or a third point First select the supporting geometry, for example, a face or an edge of a solid object, then call this command, then choose the desired sketch. Définir le "support" d'une esquisse. -Sélectionner d'abord la géométrie de support, par exemple, une face ou une arête d'un solide, +Sélectionner d'abord la géométrie de support, par exemple, une face ou une arête d'un solide, puis lancer cette commande et enfin choisir l'esquisse souhaitée. @@ -1230,7 +1230,7 @@ as mirroring reference. Wrong selection - Sélection invalide + Mauvaise sélection @@ -1507,7 +1507,7 @@ Cela effacera la propriété 'Support', le cas échéant. Toggles the toolbar or selected geometry to/from construction mode - Bascule la barre d'outils ou la géométrie sélectionnée vers/depuis le mode construction + Basculer la barre d'outils ou la géométrie sélectionnée vers/depuis le mode construction @@ -1946,7 +1946,7 @@ les contraintes invalides, les géométries dégénérées, etc. Add Pole circle - Ajouter un cercle polaire + Ajouter un cercle de pôles @@ -1982,7 +1982,7 @@ les contraintes invalides, les géométries dégénérées, etc. Add slot - Ajouter une rainure + Ajouter un contour oblong @@ -2164,59 +2164,59 @@ les contraintes invalides, les géométries dégénérées, etc. Erreur de contrainte automatique : esquisse insoluble après l'application des contraintes d'égalité. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. L'intersection des courbes n'a pas pu être trouvée. Essayez d’ajouter une contrainte de coïncidence entre les sommets des courbes sur lesquels vous souhaitez appliquer un congé. - - + + BSpline Geometry Index (GeoID) is out of bounds. L'Index de la géométrie de la B-spline (GeoID) est hors limites. - + You are requesting no change in knot multiplicity. Vous ne demandez aucun changement dans la multiplicité du nœud. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. L’Index de la géométrie (GeoID) fourni n’est pas une courbe B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. L’index du nœud est hors limites. Notez que, conformément à la notation OCC, le premier nœud a un indice de 1 et non pas de zéro. - + The multiplicity cannot be increased beyond the degree of the B-spline. La multiplicité ne peut pas être augmentée au-delà du degré de la B-spline. - + The multiplicity cannot be decreased beyond zero. La multiplicité ne peut pas être diminuée au-delà de zéro. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC ne parvient pas à diminuer la multiplicité selon la tolérance maximale. - + Knot cannot have zero multiplicity. Le nœud ne peut pas avoir zéro de multiplicité. - + Knot multiplicity cannot be higher than the degree of the BSpline. La multiplicité du nœud ne peut pas être supérieure au degré de la courbe BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Le nœud ne peut pas être inséré en dehors de la plage de paramètres de la B-spline. @@ -2448,7 +2448,7 @@ les contraintes invalides, les géométries dégénérées, etc. Not allowed to edit the datum because the sketch contains conflicting constraints - L'édition de cette valeur n'est pas autorisée car l'esquisse contient des contraintes conflictuelles + La modification de ce datum n'es autorisée parce que l'esquisse contient des contraintes contradictoires @@ -2583,7 +2583,7 @@ les contraintes invalides, les géométries dégénérées, etc. Select one vertex from the sketch other than the origin. - Sélectionner un sommet autre que l'origine dans l'esquisse. + Sélectionner un sommet de l'esquisse autre que l'origine. @@ -2635,7 +2635,7 @@ les contraintes invalides, les géométries dégénérées, etc. Select two or more points from the sketch. - Sélectionnez deux ou plusieurs points de l’esquisse. + Sélectionner deux ou plusieurs points de l’esquisse. @@ -2939,7 +2939,7 @@ Combinaisons acceptés : deux courbes ; un point d'extrémité et une courbe ; d Sketch axes cannot be used in equality constraints. - Les axes de l'esquisse ne peuvent pas être utilisés comme contrainte d'alignement interne. + Les axes de l'esquisse ne peuvent pas être utilisés comme des contraintes d'alignement interne. @@ -3014,7 +3014,7 @@ Combinaisons acceptés : deux courbes ; un point d'extrémité et une courbe ; d Select constraint(s) from the sketch. - Sélectionner les contraintes de l'esquisse. + Sélectionner la/les contrainte(s) de l'esquisse. @@ -3031,7 +3031,7 @@ Combinaisons acceptés : deux courbes ; un point d'extrémité et une courbe ; d CAD Kernel Error - Erreur de noyau CAO + Erreur du noyau de CAO @@ -3245,7 +3245,7 @@ Voir la documentation pour plus de détails. All - Tous + Tout @@ -3260,7 +3260,7 @@ Voir la documentation pour plus de détails. Point on Object - Point sur Objet + Point sur objet @@ -3305,12 +3305,12 @@ Voir la documentation pour plus de détails. Internal Alignment - Alignement Interne + Alignement interne Datums - Références + Contraintes @@ -3335,7 +3335,7 @@ Voir la documentation pour plus de détails. Weight - Poids + Épaisseur @@ -3599,7 +3599,7 @@ Voir la documentation pour plus de détails. Point on Object - Point sur Objet + Point sur objet @@ -3966,19 +3966,19 @@ reflected on copies Dragging performance - Performance des déplacements par glisser + Performance des déplacements effectués par glissement Special solver algorithm will be used while dragging sketch elements. Requires to re-enter edit mode to take effect. - Un algorithme spécial du solveur sera utilisé lors du déplacement par glisser des éléments de l'esquisse. -Requiert de ré-entrer en mode édition pour prendre effet. + Un algorithme spécial du solveur sera utilisé lors du déplacement des éléments de l'esquisse. +Nécessite de rentrer dans le mode édition pour que cela prenne effet. Improve solving while dragging - Améliorer la résolution pendant les déplacements par glisser + Améliorer la résolution pendant les déplacements effectués par glissement @@ -4274,8 +4274,8 @@ Requiert de ré-entrer en mode édition pour prendre effet. Base length units will not be displayed in constraints or cursor coordinates. Supports all unit systems except 'US customary' and 'Building US/Euro'. - L'unité de base de longueur ne sera pas affichée dans les contraintes ou les coordonées du curseur. -Supporte tous les systèmes d'unité sauf 'US customary' et 'Building US/Euro'. + Les unités de longueur de base ne seront pas affichées dans les contraintes ou les coordonnées du curseur. +Supporte tous les systèmes d'unité sauf les "unités de mesure états-uniennes" et celles des "constructions états-uniennes/européennes". @@ -4521,9 +4521,9 @@ Seuls les objets derrière le plan de l'esquisse sont visibles. %2 constraints are linking to the endpoints. The constraints have been listed in Report view (menu View -> Panels -> Report view). Click "Swap endpoints in constraints" button to reassign endpoints. Do this only once to sketches created in FreeCAD older than v0.15 - %1 arcs inversés ont été trouvés dans la géométrie externe. Leurs extrémités sont mises en évidence dans la vue 3D. + %1 arcs inversés ont été trouvés dans la géométrie externe. Leurs extrémités sont mises en évidence dans la vue 3D. -%2 contraintes sont appliquées aux extrémités. Ces contraintes sont affichées dans la vue rapport (menu Affichage -> Panneaux -> Vue rapport). +%2 contraintes sont appliquées aux extrémités. Ces contraintes sont affichées dans la vue rapport (menu Affichage -> Panneaux -> Vue rapport). Cliquez sur le bouton «Inverser les points d'extrémité des contraintes» pour réaffecter ces extrémités. Ne faites ceci qu'une seule fois pour les esquisses créés avec une version de FreeCAD antérieure à 0.15 @@ -4532,7 +4532,7 @@ Cliquez sur le bouton «Inverser les points d'extrémité des contraintes» pour %1 reversed external-geometry arcs were found. Their endpoints are encircled in 3d view. However, no constraints linking to the endpoints were found. - %1 arcs inversés ont été trouvés dans la géométrie externe. Leurs extrémités sont mises en évidence dans la vue 3D. + %1 arcs inversés ont été trouvés dans la géométrie externe. Leurs extrémités sont mises en évidence dans la vue 3D. Toutefois, aucune contrainte liée aux extrémités n'a été trouvée. @@ -4809,7 +4809,7 @@ Toutefois, aucune contrainte liée aux extrémités n'a été trouvée. BSpline - BSpline + B-spline @@ -6120,17 +6120,17 @@ L'espacement de la grille est modifié s'il devient inférieur à ce nombre de p Notifications - + The Sketch has malformed constraints! L'esquisse a des contraintes malformées ! - + The Sketch has partially redundant constraints! L'esquisse a des contraintes partiellement redondantes ! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Les paraboles ont été migrées. Les fichiers migrés ne pourront pas être ouverts par les versions précédentes de FreeCAD !! @@ -6478,12 +6478,12 @@ Les points doivent être placés à moins d'un cinquième de l'espacement de la Create B-spline by knots - Créer une B-spline par noeuds + Créer une B-spline par des noeuds Create a B-spline by knots, i.e. by interpolation, in the sketch. - Créer une B-spline par noeuds, c'est-à-dire par interpolation, dans l'esquisse. + Créer une B-spline par des noeuds, c'est-à-dire par interpolation, dans l'esquisse. @@ -6491,12 +6491,12 @@ Les points doivent être placés à moins d'un cinquième de l'espacement de la Create periodic B-spline by knots - Créer une B-spline périodique par noeuds + Créer une B-spline périodique par des noeuds Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. - Créer une B-spline périodique par noeuds, c'est-à-dire par interpolation, dans l'esquisse. + Créer une B-spline périodique par des noeuds, c'est-à-dire par interpolation, dans l'esquisse. diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_gl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_gl.ts index 5725c9c5cd..e1ddcbaa2a 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_gl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_gl.ts @@ -2169,59 +2169,59 @@ invalid constraints, degenerated geometry, etc. Erro auto constrición: esbozo sen solución despois de aplicar constricións de igualdade. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Non se pode adiviñar a intersección de curvas. Tenta engadir unha constrición entre os vértices das curvas que queres achaflanar. - - + + BSpline Geometry Index (GeoID) is out of bounds. A xeometría BSpline de Index (GeoID) está fora da construción. - + You are requesting no change in knot multiplicity. Vostede está solicitando sen troco en multiplicidade de nodo. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. A Xeometría Index (Geold) proporcionada non é unha curva BSpline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. O índice de nodo está fora dos límites. Note que según en concordancia coa notación da OCC, o primeiro nodo ten índice 1 e non 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. A multiplicidade non pode incrementada máis alá do grao da BSpline. - + The multiplicity cannot be decreased beyond zero. A multiplicidade non pode ser diminuida máis alá de cero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC non é quen de diminuir a multiplicidade dentro da tolerancia máxima. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6125,17 +6125,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts index ac3e7bf59a..7caeaa42d9 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts @@ -73,12 +73,12 @@ Create carbon copy - Create carbon copy + Napravi indigo kopiju Copy the geometry of another sketch - Copy the geometry of another sketch + Kopira geometriju druge skice @@ -232,7 +232,7 @@ Create conic - Create conic + Konstruiraj konus @@ -410,7 +410,7 @@ Block the selected edge from moving - Block the selected edge from moving + Blokira pomjeranje izabranog ruba @@ -449,7 +449,7 @@ Fix a length of a line or the distance between a line and a vertex or between two circles - Fix a length of a line or the distance between a line and a vertex or between two circles + Namjestiti duljinu linije ili rastojanje između linije i tjemene točke ili rastojanje između dva kruga @@ -515,8 +515,8 @@ Create both a horizontal and a vertical distance constraint on the selected vertex - Create both a horizontal and a vertical distance constraint -on the selected vertex + Napravi ograničenje vodoravno i okomito ograničenje udaljenosti +na odabranoj tjemenoj točki @@ -591,14 +591,13 @@ on the selected vertex Constrain refraction (Snell's law) - Constrain refraction (Snell's law) + Ograniči lom (Snell's zakon ') Create a refraction law (Snell's law)constraint between two endpoints of rays and an edge as an interface. - Create a refraction law (Snell's law)constraint between two endpoints of rays -and an edge as an interface. + Stvaranje zakona loma svijetla (Snell's law) ograničenje između dvije krajnje točke zrake i ruba kao sučelja. @@ -711,7 +710,7 @@ with respect to a line or a third point Create arc of ellipse - Create arc of ellipse + Stvaranje luka elipse @@ -724,7 +723,7 @@ with respect to a line or a third point Create arc of hyperbola - Create arc of hyperbola + Stvaranje luka hiperbole @@ -737,7 +736,7 @@ with respect to a line or a third point Create arc of parabola - Create arc of parabola + Stvaranje luka parabole @@ -755,7 +754,7 @@ with respect to a line or a third point Create a B-spline by control points in the sketch. - Create a B-spline by control points in the sketch. + Stvaranje B-spline krive putem kontrolnih točaka u skici. @@ -898,7 +897,7 @@ with respect to a line or a third point Create a periodic B-spline by control points in the sketch. - Create a periodic B-spline by control points in the sketch. + Napravite periodične B-spline putem kontrolnih točaka u skici. @@ -1101,7 +1100,7 @@ with respect to a line or a third point Create external geometry - Create external geometry + Napravi vanjsku geometriju @@ -1656,7 +1655,7 @@ nevaljana ograničenja, degenerirana geometrija itd. Add 'Lock' constraint - Dodajte 'Zaključaj' ograničenje + Dodajte 'Zaključaj' ograničenje @@ -1673,13 +1672,13 @@ nevaljana ograničenja, degenerirana geometrija itd. Add 'Block' constraint - Dodajte 'Blok' ograničenje + Dodajte 'Blok' ograničenje Add block constraint - Dodaje blok ograničenje + Dodaje blok ograničenje @@ -1687,7 +1686,7 @@ nevaljana ograničenja, degenerirana geometrija itd. Add coincident constraint - Dodajte podudarno ograničenje + Dodajte podudarno ograničenje @@ -1725,12 +1724,12 @@ nevaljana ograničenja, degenerirana geometrija itd. Add circle to circle distance constraint - Add circle to circle distance constraint + Dodaj ograničenje između dva kruga Add circle to line distance constraint - Add circle to line distance constraint + Dodaj ograničenje između kruga i linije @@ -2186,12 +2185,12 @@ nevaljana ograničenja, degenerirana geometrija itd. Add Knot Point - Add Knot Point + Dodaj čvor Create a carbon copy - Create a carbon copy + Napravi indigo kopiju @@ -2240,61 +2239,61 @@ nevaljana ograničenja, degenerirana geometrija itd. Automatsko ograničenje, pogreška: nerješiva skica nakon primjene izjednačavajućih ograničenja. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nije moguće odrediti sjecište krivulje. Pokušajte dodati podudarno ograničenje između vrhova krivulje koju namjeravate obrubiti. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Indeks Geometrije (GeoID) je izvan granica. - + You are requesting no change in knot multiplicity. Vi zahtijevate: bez promjena u mnoštvu čvorova. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Indeks Geometrija (GeoId) pod uvjetom da nije B-spline krivulja. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Čvor indeks je izvan granica. Imajte na umu da u skladu s OCC notacijom, prvi čvor ima indeks 1 a ne nula. - + The multiplicity cannot be increased beyond the degree of the B-spline. Mnoštvo se ne može povećavati iznad stupanja mnoštva b-spline krive. - + The multiplicity cannot be decreased beyond zero. Mnoštvo se ne može smanjiti ispod nule. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC je uspio smanjiti mnoštvo unutar maksimalne tolerancije. - + Knot cannot have zero multiplicity. Čvor ne može sa nulom multiplicirati. - + Knot multiplicity cannot be higher than the degree of the BSpline. Mnoštvo čvorova ne može biti veće od stupnja BSplina. - + Knot cannot be inserted outside the BSpline parameter range. Čvor se ne može umetnuti izvan raspona parametara BSpline. @@ -2691,7 +2690,7 @@ nevaljana ograničenja, degenerirana geometrija itd. Number of selected objects is not 3 - Number of selected objects is not 3 + Broj odabranih objekata nije 3 @@ -2703,7 +2702,7 @@ nevaljana ograničenja, degenerirana geometrija itd. Unexpected error. More information may be available in the Report View. - Unexpected error. More information may be available in the Report View. + Neočekivana greška. Potražite više informacija u Pregledu izvješća. @@ -2744,7 +2743,7 @@ nevaljana ograničenja, degenerirana geometrija itd. Select exactly one line or one point and one line or two points or two circles from the sketch. - Select exactly one line or one point and one line or two points or two circles from the sketch. + Izaberi točno jednu liniju ili jednu točku i jednu liniju ili dvije točke ili dva kruga na skici. @@ -2940,7 +2939,7 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Select either one point and several curves, or one curve and several points. - Select either one point and several curves, or one curve and several points. + Izaberi ili jednu točku i nekoliko krivih, ili jednu krivu i nekoliko točaka. @@ -3181,7 +3180,7 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Exactly two curves should end at the selected point to be able to join them. - Exactly two curves should end at the selected point to be able to join them. + Točno dvije krivulje trebaju završiti na odabranoj točki da bi se mogle spojiti. @@ -3261,27 +3260,27 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Unsupported visual layer operation - Unsupported visual layer operation + Operacija vizualnog sloja nije moguća It is currently unsupported to move external geometry to another visual layer. External geometry will be omitted - It is currently unsupported to move external geometry to another visual layer. External geometry will be omitted + Trenutno je nemoguće premjestiti vanjsku geometriju na drugi vizualni sloj. Vanjska geometrija će biti izostavljena. Set knot multiplicity - Set knot multiplicity + Postavi multiplicitet čvora Set knot multiplicity at the last point provided, between 1 and %1:Note that multiplicity may be ignored under certain circumstances.Please refer to documentation for details - Set knot multiplicity at the last point provided, between 1 and %1:Note that multiplicity may be ignored under certain circumstances.Please refer to documentation for details + Postavite multiplicitet čvora na posljednjoj točki koju ste naveli, između 1 i %1: Imajte na umu da se multiplicitet može zanemariti u određenim okolnostima. Za detalje se obratite dokumentaciji. Value Error - Value Error + Greška vrijednosti @@ -3465,7 +3464,7 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Select Elements - Select Elements + Odaberi elemente @@ -3681,7 +3680,7 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Point Coincidence - Point Coincidence + Podudarnost točke @@ -3691,32 +3690,34 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Vertical Constraint - Vertical Constraint + Uspravno ograničenje Horizontal Constraint - Horizontal Constraint + Vodoravno ograničenje + + Parallel Constraint - Parallel Constraint + Paralelno ograničenje Perpendicular Constraint - Perpendicular Constraint + Okomito ograničenje Tangent Constraint - Tangent Constraint + Tangencijalno ograničenje Equal Length - Equal Length + Jednaka duljina @@ -3726,12 +3727,12 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Block Constraint - Block Constraint + Ograničenje blokiranjem Lock Constraint - Lock Constraint + Ograničenje zaključavanjem @@ -3746,27 +3747,27 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Length Constraint - Length Constraint + Ograničenje dužine Radius Constraint - Radius Constraint + Ograničenje polumjera Diameter Constraint - Diameter Constraint + Ograničenje promjera Radiam Constraint - Radiam Constraint + Ograničenje polumjera/promjera Angle Constraint - Angle Constraint + Ograničenje kuta @@ -3776,22 +3777,22 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Select Constraints - Select Constraints + Odaberite ograničenja Select Origin - Select Origin + Odaberite izvornik Select Horizontal Axis - Select Horizontal Axis + Odaberite vodoravnu os Select Vertical Axis - Select Vertical Axis + Odaberite uspravnu os @@ -3801,12 +3802,12 @@ Prihvatljive kombinacije: dvije krivulje; jedna krajnja točka i krivulja; dvije Layer 0 - Layer 0 + Sloj 0 Layer 1 - Layer 1 + Sloj 1 @@ -4005,7 +4006,7 @@ u odnosu na ostale elemente korištenjem konstrukcijskih linija in the copies, so that a change in the original element is directly reflected on copies Ako je odabrano to je zamjena dimenzijskih ograničenja sa geometrijskim -ograničenjima u kopijama, tako da se promjena u originalnom elementu +ograničenjima u kopijama, tako da se promjena u originalnom elementu izravno odražava na kopijama @@ -4464,7 +4465,7 @@ Defaults to: %N = %V %N - name parameter %V - dimension value Format prezentacije niza dimenzijskih ograničenja. -Zadano na: %N = %V +Zadano na: %N = %V %N - ime parametra %V - vrijednost dimenzije @@ -4638,7 +4639,7 @@ Tada su vidljivi samo objekti iza ravnine skice. Click "Swap endpoints in constraints" button to reassign endpoints. Do this only once to sketches created in FreeCAD older than v0.15 %1 obrnuti lukovi su pronađeni u vanjskoj geometriji. Njihove krajnje točke su uokvirene u 3d prikazu. -%2 ograničenja su povezana sa krajnjim točkama. Ograničenja su navedena u kartici Ograničenja (izbornik: Kombinirani pregled -> Ograničenja). +%2 ograničenja su povezana sa krajnjim točkama. Ograničenja su navedena u kartici Ograničenja (izbornik: Kombinirani pregled -> Ograničenja). Kliknite "Zamijeni krajnje točke u ograničenja" gumb da biste ponovo pridružili krajnje točke. Napravite to samo jedanput za skice u FreeCAD prije v0.15 @@ -4793,12 +4794,12 @@ Međutim, nema povezanih ograničenja na krajnje točake. Impossible to update visibility tracking - Impossible to update visibility tracking + Praćenje vidljivosti nije moguće ažurirati. Impossible to update visibility tracking: - Impossible to update visibility tracking: + Praćenje vidljivosti nije moguće ažurirati: @@ -4969,27 +4970,27 @@ Međutim, nema povezanih ograničenja na krajnje točake. Click to select the conflicting constraints. - Click to select the conflicting constraints. + Kliknite za odabir suprotstavljenih ograničenja. Click to select the redundant constraints. - Click to select the redundant constraints. + Kliknite za odabir suvišnih ograničenja. The sketch has unconstrained elements giving rise to those Degrees Of Freedom. Click to select the unconstrained elements. - The sketch has unconstrained elements giving rise to those Degrees Of Freedom. Click to select the unconstrained elements. + Neograničeni elementi skice dovode do tih stupnjeva slobode.. Kliknite za odabir neograničenih elemenata skice. Click to select the malformed constraints. - Click to select the malformed constraints. + Kliknite za odabir deformiranih ograničenja. Some constraints in combination are partially redundant. Click to select the partially redundant constraints. - Some constraints in combination are partially redundant. Click to select the partially redundant constraints. + Neke su kombinacije ograničenja djelomično redundantne. Kliknite za odabir ograničenja koja su djelomično redundantna. @@ -5274,9 +5275,9 @@ To se radi analizom geometrije i ograničenja skice. %n DoF(s) - + + %n Stupanj slobode %n Stupnjeva slobode - %n DoF(s) %n Stupnevi slobode @@ -5978,7 +5979,7 @@ Eigen Sparse QR algoritam optimiziran je za rijetke matrice; obično brže Same as 'Sketch size multiplier', but for redundant solving - Isto kao i "Množitelj veličine skice", ali za rješavanje suvišnog + Isto kao i "Množitelj veličine skice", ali za rješavanje suvišnog @@ -6081,7 +6082,7 @@ Eigen Sparse QR algoritam optimiziran je za rijetke matrice; obično brže Sketcher edit mode - Sketcher edit mode + Način uređivanja crtača @@ -6111,7 +6112,7 @@ Eigen Sparse QR algoritam optimiziran je za rijetke matrice; obično brže Sketcher edit tools - Sketcher edit tools + Crtač - Alati uređivanja @@ -6187,22 +6188,22 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Minor grid lines - Minor grid lines + Sporedne linije koordinatne mreže Major grid lines - Major grid lines + Glavne linije koordinatne mreže Major grid line every: - Major grid line every: + Glavna linija mreže svakih: Every N lines there will be a major line. Set to 1 to disable major lines. - Every N lines there will be a major line. Set to 1 to disable major lines. + Svaki N-ti redak bit će glavna crta. Postavi na 1 da onemogućiš glavne crte. @@ -6250,7 +6251,7 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Grid auto spacing - Grid auto spacing + Mreža - Automatski razmak @@ -6265,27 +6266,27 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Distance between two subsequent grid lines. - Distance between two subsequent grid lines. + Udaljenost između dvije uzastopne linije rešetke. + Notifications - + The Sketch has malformed constraints! - The Sketch has malformed constraints! + Skica ima deformirana ograničenja! - + The Sketch has partially redundant constraints! - The Sketch has partially redundant constraints! + Skica ima djelomično suvišna ograničenja! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! - Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! - + Parabole su migrirane. Migrirane datoteke neće se otvoriti u prethodnim verzijama FreeCAD-a!! @@ -6327,17 +6328,17 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Failed to delete all geometry - Failed to delete all geometry + Nije uspjelo brisanje svih geometrija Failed to delete all constraints - Failed to delete all constraints + Nije uspjelo brisanje svih ograničenja The constraint has invalid index information and is malformed. - The constraint has invalid index information and is malformed. + Ograničenje ima neispravnu index informaciju i neispravno je. @@ -6353,149 +6354,150 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Invalid Constraint - Invalid Constraint + Neispravno ograničenje Failed to add arc - Failed to add arc + Nije uspjelo dodavanje luka Failed to add arc of ellipse - Failed to add arc of ellipse + Nije uspjelo dodavanje kuta elipse Cannot create arc of hyperbola from invalid angles, try again! - Cannot create arc of hyperbola from invalid angles, try again! + Nemoguće stvoriti luk hiperbole zbog pogrešnih uglova, pokušajte ponovo! Cannot create arc of hyperbola - Cannot create arc of hyperbola + Nemoguće napraviti luk hiperbole Cannot create arc of parabola - Cannot create arc of parabola + Nemoguće napraviti luk parabole Error adding B-Spline pole - Error adding B-Spline pole + Greška dodavanja pola B-krivulje Error creating B-spline pole - Error creating B-spline pole + Greška stvaranja pola B-krivulje Error creating B-spline - Error creating B-spline + Greška stvaranja B-krivulje Error deleting last pole - Error deleting last pole + +Greška kod brisanja zadnjeg pola B-krive Cannot add knot point - Cannot add knot point + Nemoguče dodati točku čvora Cannot add internal alignment points - Cannot add internal alignment points + Nemoguče dodati poravnanje unutarnjih točaka Error removing knot - Error removing knot + Greška prilikom uklanjanja čvora Failed to add carbon copy - Failed to add carbon copy + Nije uspjelo dodavanje Indigo kopije Failed to add circle - Failed to add circle + Nije uspjelo dodavanje kruga Failed to add an ellipse - Failed to add an ellipse + Nije uspjelo dodavanje elipse Failed to extend edge - Failed to extend edge + Nije uspjelo produžiti rub Failed to add external geometry - Failed to add external geometry + Nije uspjelo dodavanje vanjske geometrije Failed to create fillet - Failed to create fillet + Nije uspjelo stvaranje obruba Failed to add line - Failed to add line + Nije uspjelo dodavanje linije Failed to add point - Failed to add point + Nije uspjelo dodavanje točke Failed to add polygon - Failed to add polygon + Nije uspjelo dodavanje višekutnika Failed to add box - Failed to add box + Nije uspjelo dodavanje okvira Failed to add rounded rectangle - Failed to add rounded rectangle + Nije uspjelo dodavanje zaobljenog pravokutnika Failed to add slot - Failed to add slot + Nije uspjelo dodavanje utora Failed to add edge - Failed to add edge + Nije uspjelo dodavanje ruba Failed to trim edge - Failed to trim edge + Nije uspjelo skraćivanje ruba Value Error - Value Error + Greška vrijednosti @@ -6503,13 +6505,13 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. B-spline by knots - B-spline by knots + B-krivulja kroz čvorove Create a B-spline by knots - Create a B-spline by knots + Napravi B-krivulju pomoću čvorova @@ -6517,13 +6519,13 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Periodic B-spline by knots - Periodic B-spline by knots + Periodična B-krivulja kroz čvorove Create a periodic B-spline by knots - Create a periodic B-spline by knots + Stvaranje periodične B-spline krive kroz kontrolne točke @@ -6531,17 +6533,17 @@ Razmak mreže se mijenja ako postane manji od ovog broja piksela. Snap to objects - Snap to objects + Prikvači se na objekte New points will snap to the currently preselected object. It will also snap to the middle of lines and arcs. - New points will snap to the currently preselected object. It will also snap to the middle of lines and arcs. + Nove točke će se prikvačiti na trenutno predodabrani objekt. Prikvačit će se i na sredinu linija i lukova. Snap to grid - Snap to grid + Prikvači na mrežu @@ -6553,12 +6555,12 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Snap angle - Snap angle + Prikvači na kut Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. - Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. + Korak kuta za alate koji koriste 'Prikačai na kut' (na primjer, linija). Držite CTRL da biste omogućili 'Prikačai na kut'. Kut počinje od pozitivne X osi skice. @@ -6568,7 +6570,7 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Normal Geometry - Normal Geometry + Normalna Geometrija @@ -6582,7 +6584,7 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p External Geometry - External Geometry + Vanjska Geometrija @@ -6590,12 +6592,12 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Configure rendering order - Configure rendering order + Konfiguriraj redoslijed iscrtavanja Reorder the items in the list to configure rendering order. - Reorder the items in the list to configure rendering order. + Prilagodi redoslijed iscrtavanja promjenom stavki u listi. @@ -6608,7 +6610,7 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Toggle the grid in the sketch. In the menu you can change grid settings. - Toggle the grid in the sketch. In the menu you can change grid settings. + Uključi/isključi mrežu u skici. Postavke mreže možete promijeniti u meniju. @@ -6616,12 +6618,12 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Toggle snap - Toggle snap + Uključi/Isključi prikvači Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. - Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. + Postavke za prikači funkcije možete promijeniti u izborniku. @@ -6629,12 +6631,12 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Create B-spline by knots - Create B-spline by knots + Napravi B-krivulju pomoću čvorova Create a B-spline by knots, i.e. by interpolation, in the sketch. - Create a B-spline by knots, i.e. by interpolation, in the sketch. + Napravi B-krivulju kroz čvorove tj. interpolacijom na skici. @@ -6642,12 +6644,12 @@ Točke moraju biti postavljene bliže od petine razdaljine rešetke kako bi se p Create periodic B-spline by knots - Create periodic B-spline by knots + Napravi periodičnu B-spline krivulju pomoću čvorova Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. - Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. + Napravi periodičnu B-krivulju kroz čvorove tj. interpolacijom na skici. diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts index 1ba2825c33..292f7a8954 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts @@ -1233,7 +1233,7 @@ mint tükörreferencia hivatkozás. Wrong selection - Rossz kijelölés + Hibás kijelölés @@ -2167,59 +2167,59 @@ invalid constraints, degenerated geometry, etc. Autókényszer hiba: megoldhatatlan vázlat egyenlőségi kényszer alkalmazása után. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nem tudja meghatározni a görbék metszéspontját. Próbáljon meg hozzáadni egybeesés kényszerítést a görbék csúcsaihoz, melyeket le szeretné kerekíteni. - - + + BSpline Geometry Index (GeoID) is out of bounds. Bgörbe geometria Index (GeoID) nem rendelkezik kényszerítésekkel. - + You are requesting no change in knot multiplicity. Nem kér változtatást a csomó többszörözésére. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. A megadott geometria Index (GeoId) nem egy Bgörbe. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. A csomó jelölés határvonalakon kívülre esik. Ne feledje, hogy a megfelelő OCC jelölés szerint, az első csomót jelölése 1 és nem nulla. - + The multiplicity cannot be increased beyond the degree of the B-spline. A sokszorozás nem nőhet a B-görbe szögének értéke fölé. - + The multiplicity cannot be decreased beyond zero. A sokszorozást nem csökkentheti nulla alá. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC képtelen csökkenteni a sokszorozást a maximális megengedett tűrésen belül. - + Knot cannot have zero multiplicity. A csomónak nem lehet nulla sokszorozása. - + Knot multiplicity cannot be higher than the degree of the BSpline. Csomó sokszorozás nem lehet magasabb, mint a B-görbe mértéke. - + Knot cannot be inserted outside the BSpline parameter range. Csomó nem illeszthető be a B-görbe paramétertartományon kívülre. @@ -6123,17 +6123,17 @@ A rácsháló távolsága megváltozik, ha kisebb lesz, mint ez a pixelszám. Notifications - + The Sketch has malformed constraints! A vázlat hibásan formázott kényszerítéseket tartalmaz! - + The Sketch has partially redundant constraints! A vázlat részlegesen felesleges kényszerítéseket tartalmaz! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! A parabolákat áttelepítették. Az áttelepített fájlok nem nyílnak meg a FreeCAD korábbi verzióiban!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts index eed16bc828..c739d205c8 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts @@ -71,7 +71,7 @@ Create carbon copy - Create carbon copy + Crea copia carbone @@ -230,7 +230,7 @@ Create conic - Create conic + Crea conica @@ -707,7 +707,7 @@ rispetto a una linea o a un terzo punto Create arc of ellipse - Create arc of ellipse + Crea arco di ellisse @@ -720,7 +720,7 @@ rispetto a una linea o a un terzo punto Create arc of hyperbola - Create arc of hyperbola + Crea arco di iperbola @@ -733,7 +733,7 @@ rispetto a una linea o a un terzo punto Create arc of parabola - Create arc of parabola + Crea arco di parabola @@ -751,7 +751,7 @@ rispetto a una linea o a un terzo punto Create a B-spline by control points in the sketch. - Create a B-spline by control points in the sketch. + Crea una B-spline dai punti di controllo nello schizzo. @@ -894,7 +894,7 @@ rispetto a una linea o a un terzo punto Create a periodic B-spline by control points in the sketch. - Create a periodic B-spline by control points in the sketch. + Crea una B-spline periodica dai punti di controllo nello schizzo. @@ -1097,7 +1097,7 @@ rispetto a una linea o a un terzo punto Create external geometry - Create external geometry + Crea geometria esterna @@ -2168,59 +2168,59 @@ vincoli non validi, geometria degenerata, ecc. Errore di vincolo automatico: schizzo non risolvibile dopo l'applicazione dei vincoli di uguaglianza. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Impossibile determinare l'intersezione delle curve. Provare ad aggiungere un vincolo di coincidenza tra i vertici delle curve che si intende raccordare. - - + + BSpline Geometry Index (GeoID) is out of bounds. L'indice della geometria della B-spline (GeoID) è fuori limite. - + You are requesting no change in knot multiplicity. Non stai richiedendo modifiche nella molteplicità dei nodi. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. L'indice della geometria (GeoID) fornito non è una curva B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. L'indice del nodo è fuori dai limiti. Notare che, in conformità alla numerazione OCC, il primo nodo ha indice 1 e non zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. La molteplicità non può essere aumentata oltre il grado della B-spline. - + The multiplicity cannot be decreased beyond zero. La molteplicità non può essere diminuita al di là di zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC non è in grado di diminuire la molteplicità entro la tolleranza massima. - + Knot cannot have zero multiplicity. Il nodo non può avere una molteplicità zero. - + Knot multiplicity cannot be higher than the degree of the BSpline. La molteplicità del nodo non può essere superiore al grado della BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Il nodo non può essere inserito al di fuori dell'intervallo di parametri B-Spline. @@ -5932,7 +5932,7 @@ L'algoritmo di Eigen Sparse QR è ottimizzato per matrici sparsi; solitamente pi Sketcher edit mode - Sketcher edit mode + Modalità modifica Sketcher @@ -5962,7 +5962,7 @@ L'algoritmo di Eigen Sparse QR è ottimizzato per matrici sparsi; solitamente pi Sketcher edit tools - Sketcher edit tools + Strumenti di modifica Sketcher @@ -6099,7 +6099,7 @@ La spaziatura della griglia cambia se diventa più piccola di questo numero di p Grid auto spacing - Grid auto spacing + Spaziatura automatica griglia @@ -6114,23 +6114,23 @@ La spaziatura della griglia cambia se diventa più piccola di questo numero di p Distance between two subsequent grid lines. - Distance between two subsequent grid lines. + Distanza tra due linee successive della griglia. Notifications - + The Sketch has malformed constraints! Lo schizzo contiene vincoli malformati! - + The Sketch has partially redundant constraints! Lo schizzo contiene vincoli parzialmente ridondanti! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Le parabole sono state convertite. I file convertiti non si apriranno nelle versioni precedenti di FreeCAD!! @@ -6407,7 +6407,7 @@ I punti devono essere impostati più vicino di un quinto della spaziatura della Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. - Angular step for tools that use 'Snap at Angle' (line for instance). Hold CTRL to enable 'Snap at Angle'. The angle starts from the positive X axis of the sketch. + Passo angolare per gli strumenti che usano 'Snap at Angle' (linea per esempio). Tieni premuto CTRL per abilitare 'Aggancia ad angolo'. L'angolo parte dall'asse X positivo dello schizzo. @@ -6457,7 +6457,7 @@ I punti devono essere impostati più vicino di un quinto della spaziatura della Toggle the grid in the sketch. In the menu you can change grid settings. - Toggle the grid in the sketch. In the menu you can change grid settings. + Attiva/disattiva la griglia nello schizzo. Nel menu puoi modificare le impostazioni della griglia. @@ -6470,7 +6470,7 @@ I punti devono essere impostati più vicino di un quinto della spaziatura della Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. - Toggle all snap functionality. In the menu you can toggle 'Snap to grid' and 'Snap to objects' individually, and change further snap settings. + Attiva/disattiva tutte le funzionalità di snap. Nel menu puoi attivare 'Aggancia alla griglia' e 'Aggancia agli oggetti' individualmente, e modificare ulteriori impostazioni di snap. @@ -6478,12 +6478,12 @@ I punti devono essere impostati più vicino di un quinto della spaziatura della Create B-spline by knots - Create B-spline by knots + Crea B-spline con i nodi Create a B-spline by knots, i.e. by interpolation, in the sketch. - Create a B-spline by knots, i.e. by interpolation, in the sketch. + Creare una B-spline con i nodi, cioè per interpolazione, nello schizzo. @@ -6491,12 +6491,12 @@ I punti devono essere impostati più vicino di un quinto della spaziatura della Create periodic B-spline by knots - Create periodic B-spline by knots + Crea B-spline periodica con i nodi Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. - Create a periodic B-spline by knots, i.e. by interpolation, in the sketch. + Creare una B-spline periodica con i nodi, cioè per interpolazione, nello schizzo. diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts index 0f982cf200..b37cc7c571 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts @@ -2162,59 +2162,59 @@ invalid constraints, degenerated geometry, etc. 自動拘束エラー: 等値拘束の適用後にスケッチの求解に失敗しました。 - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. 曲線の交点を推定できません。フィレット対象の曲線の頂点の間に一致拘束を追加してみてください。 - - + + BSpline Geometry Index (GeoID) is out of bounds. B-スプラインのジオメトリー番号(ジオID)が範囲外です。 - + You are requesting no change in knot multiplicity. ノット多重度で変更が起きないように要求しています。 - - + + The Geometry Index (GeoId) provided is not a B-spline curve. 入力されたジオメトリー番号(ジオID)がB-スプライン曲線になりません。 - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. ノット・インデックスが境界外です。OCCの記法に従うと最初のノットは1と非ゼロのインデックスを持ちます。 - + The multiplicity cannot be increased beyond the degree of the B-spline. B-スプラインの次数を越えて多重度を増やすことはできません。 - + The multiplicity cannot be decreased beyond zero. 0を越えて多重度を減らすことはできません。 - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCCは最大許容範囲内で多重度を減らすことができまぜん。 - + Knot cannot have zero multiplicity. ノットがゼロ多重性を持つことはでいません。 - + Knot multiplicity cannot be higher than the degree of the BSpline. B-スプラインの次数を超えてノット多重度を増やすことはできません。 - + Knot cannot be inserted outside the BSpline parameter range. B-スプラインパラメーターの範囲外にノットを挿入することはできません。 @@ -6111,17 +6111,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! スケッチに不正な拘束があります! - + The Sketch has partially redundant constraints! スケッチに一部が冗長な拘束があります! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! 放物線がバージョン変換されました。変換されたファイルは以前のバージョンのFreeCADでは開けません!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ka.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ka.ts index b61a3a3622..691f081d9c 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ka.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ka.ts @@ -1744,7 +1744,7 @@ invalid constraints, degenerated geometry, etc. Swap coincident+tangency with ptp tangency - Swap coincident+tangency with ptp tangency + დამთხვევის+მხების ptp მხებთან მიმოცვლა @@ -2167,59 +2167,59 @@ invalid constraints, degenerated geometry, etc. ავტომატური შეზღუდვის შეცდომა: თანასწორობის შეზღუდვების გადატარების შემდეგ ესკიზი ამოხსნადი არაა. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. მრუდების კვეთის გამოცნობის შეცდომა. სცადეთ დაამატოთ დამთხვევების შეზღუდვები მრუდების წვეროებზე, რომლის მომრგვალებასაც ცდილობთ. - - + + BSpline Geometry Index (GeoID) is out of bounds. B-სპლაინის გეომეტრიის ინდექსი (GeoID) დაშვებულ ლიმიტებს გარეთაა. - + You are requesting no change in knot multiplicity. თქვენ არ ითხოვთ ცვლილებას კვანძის გაყოფადობაში. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. გეომეტრიის მითითებული ინდექსი (GeoID) B-სპლაინის მრუდს არ წარმოადგენს. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. კვანძის ინდექსი საზღვრებს გარეთაა. დაიმახსოვრეთ, რომ OCC ნოტაციების შესაბამისად, პირველი კვანძის ინდექსი 1-ია და არა 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. სიმრავლე არ შეიძლება გაიზარდოს B-სპლაინის დონის მიღმა. - + The multiplicity cannot be decreased beyond zero. სიმრავლე არ შეიძლება შემცირდეს ნულს მიღმა. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC-ს არ შეუძლია შეამციროს სიმრავლე მაქსიმალური ტოლერანტობის ფარგლებში. - + Knot cannot have zero multiplicity. კვანძებს არ შეიძლება ნულოვანი მამრავლი ჰქონდეს. - + Knot multiplicity cannot be higher than the degree of the BSpline. კვანძის მამრავლი არ შეიძლება B-სპლაინის დონეზე დიდი იყოს. - + Knot cannot be inserted outside the BSpline parameter range. კვანძის ჩასმა B-სპლაინის პარამეტრების დიაპაზონის გარეთ შეუძლებელია. @@ -5750,8 +5750,8 @@ BFGS ამომხსნელი იყენებს Broyden–Fletcher–G Threshold for squared error that is used to determine whether a solution converges or not - Threshold for squared error that is used -to determine whether a solution converges or not + ზღვარი კვადრტულობის შეცდომისთვის, +რომელიც გამოიყენება იმისა განსაზღვისთვის, არის გადაწყვეტა კონვერტენტული, თუ არა @@ -6124,17 +6124,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! ესკიზი არასწორ შეზღუდვებს შეიცავს! - + The Sketch has partially redundant constraints! ესკიზი ნაწილობრივ დამატებით შეზღუდვებს შეიცავს! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! პარაბოლები მიგრირებულია. მიგრირებული ფაილები FreeCAD-ის წინა ვერსიებში არ გაიხსნება!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ko.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ko.ts index fc9eccfeb8..692419b39e 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ko.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ko.ts @@ -2162,59 +2162,59 @@ invalid constraints, degenerated geometry, etc. 자동구속 오류: 동일 구속 적용 후 해결할 수 없는 스케치 - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. 곡선의 교차점을 추정할 수 없습니다. 모깎기 하려는 곡선의 정점들 사이에 일치 구속을 추가해 보십시오. - - + + BSpline Geometry Index (GeoID) is out of bounds. B스플라인 형상 인덱스(GeoID) 가 범위를 벗어났습니다. - + You are requesting no change in knot multiplicity. 매듭점 다중성에 대한 변경을 요청하지 않으셨습니다. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. 제공된 형상 지수(GeoId) 는 B-스플라인 곡선이 아닙니다. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. 매듭 지수가 범위를 벗어났습니다. OCC 표기법에 따라 첫 번째 매듭은 0이 아닌 지수 1을 가집니다. - + The multiplicity cannot be increased beyond the degree of the B-spline. 다중도는 B-스플라인의 정도 이상으로 증가할 수 없습니다. - + The multiplicity cannot be decreased beyond zero. 다중도는 0 이상으로 감소할 수 없습니다. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC는 최대 공차 내에서 다중도를 감소시킬 수 없습니다. - + Knot cannot have zero multiplicity. 매듭은 0개의 다중도를 가질 수 없습니다. - + Knot multiplicity cannot be higher than the degree of the BSpline. 매듭 다중도는 B스플라인의 정도보다 높을 수 없습니다. - + Knot cannot be inserted outside the BSpline parameter range. 매듭은 B스플라인 매개변수 범위 밖에서 삽입할 수 없습니다. @@ -6120,17 +6120,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts index 7c70c4cd4c..9ae11c1170 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts @@ -2167,59 +2167,59 @@ ongeldige constraints, gedegenereerde geometrie, etc. Autoconstrain error: Defecte schets tijdens aanleggen van gelijkheids-constraint. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Niet in staat om het snijpunt van de bochten te raden. Probeer een samenvallende beperking toe te voegen tussen de vertexen van de curven die u wilt afronden. - - + + BSpline Geometry Index (GeoID) is out of bounds. B-spline Geometrie Index (GeoID) buiten bereik. - + You are requesting no change in knot multiplicity. U vraagt geen verandering in de knoop multipliciteit. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. De Geometrie Index (Geold) aangeleverd is geen B-spline lijn. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. De knoop-index is buiten de grenzen. Merk op dat volgens de OCC-notatie de eerste knoop index 1 heeft en niet nul. - + The multiplicity cannot be increased beyond the degree of the B-spline. De multipliciteit mag niet groter zijn dan het aantal graden van de B-spline. - + The multiplicity cannot be decreased beyond zero. De multipliciteit kan niet lager zijn dan nul. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC is niet in staat om de multipliciteit binnen de maximale tolerantie te verlagen. - + Knot cannot have zero multiplicity. Knooppunt kan geen multipliciteit van nul hebben. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knooppunt multipliciteit kan niet hoger zijn dan de graad van de B-spline. - + Knot cannot be inserted outside the BSpline parameter range. Knooppunt kan niet worden toegevoegd buiten de parameters van de B-spline. @@ -6126,17 +6126,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! De schets heeft ongeldige beperkingen! - + The Sketch has partially redundant constraints! De schets heeft deels overbodige beperkingen! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolen zijn geconverteerd. Geconverteerde bestanden kunnen niet in vorige versies van FreeCAD worden geopend!! @@ -6313,12 +6313,12 @@ The grid spacing change if it becomes smaller than this number of pixel. Failed to add point - Failed to add point + Toevoegen van punt mislukt Failed to add polygon - Failed to add polygon + Polygoon toevoegen mislukt diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts index cf9f189038..a29bff36be 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts @@ -176,7 +176,7 @@ Create an arc in the sketcher - Utwórz łuk na szkicu + Tworzy łuk na szkicu @@ -199,7 +199,7 @@ Create a B-spline in the sketch - Utwórz krzywą złożoną na szkicu + Tworzy krzywą złożoną na szkicu @@ -212,7 +212,7 @@ Create a circle in the sketcher - Utwórz okrąg na szkicu + Tworzy okrąg na szkicu @@ -235,7 +235,7 @@ Create a conic in the sketch - Utwórz krzywą stożkową na szkicu + Tworzy krzywą stożkową na szkicu @@ -296,7 +296,7 @@ Creates a rectangle in the sketch - Utwórz prostokąt na szkicu + Tworzy prostokąt na szkicu @@ -324,7 +324,7 @@ Create a regular polygon in the sketcher - Utwórz wielokąt foremny na szkicu + Tworzy wielokąt foremny na szkicu @@ -713,7 +713,7 @@ w odniesieniu do linii lub trzeciego punktu Create an arc of ellipse in the sketch - Utwórz łuk elipsy na szkicu + Tworzy łuk elipsy na szkicu @@ -726,7 +726,7 @@ w odniesieniu do linii lub trzeciego punktu Create an arc of hyperbola in the sketch - Utwórz łuk hiperboli na szkicu + Tworzy łuk hiperboli na szkicu @@ -739,7 +739,7 @@ w odniesieniu do linii lub trzeciego punktu Create an arc of parabola in the sketch - Utwórz łuk paraboli na szkicu + Tworzy łuk paraboli na szkicu @@ -765,7 +765,7 @@ w odniesieniu do linii lub trzeciego punktu Create a circle in the sketch - Utwórz okrąg na szkicu + Tworzy okrąg na szkicu @@ -778,7 +778,7 @@ w odniesieniu do linii lub trzeciego punktu Create an ellipse by 3 points in the sketch - Utwórz elipsę przez trzy punkty na szkicu + Tworzy elipsę przez trzy punkty na szkicu @@ -791,7 +791,7 @@ w odniesieniu do linii lub trzeciego punktu Create an ellipse by center in the sketch - Utwórz elipsę przez środek na szkicu + Tworzy elipsę przez środek na szkicu @@ -817,7 +817,7 @@ w odniesieniu do linii lub trzeciego punktu Create a heptagon in the sketch - Utwórz siedmiokąt na szkicu + Tworzy siedmiokąt na szkicu @@ -830,7 +830,7 @@ w odniesieniu do linii lub trzeciego punktu Create a hexagon in the sketch - Utwórz sześciokąt na szkicu + Tworzy sześciokąt na szkicu @@ -843,7 +843,7 @@ w odniesieniu do linii lub trzeciego punktu Create a line in the sketch - Utwórz linię na szkicu + Tworzy linię na szkicu @@ -856,7 +856,7 @@ w odniesieniu do linii lub trzeciego punktu Create a rounded rectangle in the sketch - Utwórz zaokrąglony prostokąt na szkicu + Tworzy zaokrąglony prostokąt na szkicu @@ -869,7 +869,7 @@ w odniesieniu do linii lub trzeciego punktu Create an octagon in the sketch - Utwórz ośmiokąt na szkicu + Tworzy ośmiokąt na szkicu @@ -882,7 +882,7 @@ w odniesieniu do linii lub trzeciego punktu Create a pentagon in the sketch - Utwórz pięciokąt na szkicu + Tworzy pięciokąt na szkicu @@ -947,7 +947,7 @@ w odniesieniu do linii lub trzeciego punktu Create a rectangle in the sketch - Utwórz prostokąt na szkicu + Tworzy prostokąt na szkicu @@ -960,7 +960,7 @@ w odniesieniu do linii lub trzeciego punktu Create a centered rectangle in the sketch - Utwórz wyśrodkowany prostokąt na szkicu + Tworzy wyśrodkowany prostokąt na szkicu @@ -973,7 +973,7 @@ w odniesieniu do linii lub trzeciego punktu Create a regular polygon in the sketch - Utwórz wielokąt foremny na szkicu + Tworzy wielokąt foremny na szkicu @@ -999,7 +999,7 @@ w odniesieniu do linii lub trzeciego punktu Create a square in the sketch - Utwórz kwadrat na szkicu + Tworzy kwadrat na szkicu @@ -1012,7 +1012,7 @@ w odniesieniu do linii lub trzeciego punktu Create an equilateral triangle in the sketch - Utwórz trójkąt równoboczny na szkicu + Tworzy trójkąt równoboczny na szkicu @@ -1098,7 +1098,7 @@ w odniesieniu do linii lub trzeciego punktu Create external geometry - Utwórz zewnętrzną geometrię + Utwórz geometrię zewnętrzną @@ -2169,59 +2169,59 @@ nieprawidłowych wiązań, zdegenerowanej geometrii itp. Błąd wiązań automatycznych: Nierozwiązywalny szkic przy stosowaniu wiązania równości. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nie można ustalić punktu przecięcia się krzywych. Spróbuj dodać wiązanie zbieżne pomiędzy wierzchołkami krzywych, które zamierzasz zaokrąglić. - - + + BSpline Geometry Index (GeoID) is out of bounds. Indeks geometrii krzywej złożonej (GeoID) jest poza wiązaniem. - + You are requesting no change in knot multiplicity. Żądasz niezmienności w wielokrotności węzłów. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Podany indeks geometrii krzywej złożonej (GeoId) nie jest łukiem krzywej złożonej. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Indeks węzłów jest poza wiązaniem. Zauważ, że zgodnie z zapisem OCC, pierwszy węzeł ma indeks 1, a nie zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. Wielokrotność nie może być zwiększona poza stopień krzywej złożonej. - + The multiplicity cannot be decreased beyond zero. Wielokrotność nie może zostać zmniejszona poniżej zera. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC nie jest w stanie zmniejszyć wielokrotności w ramach maksymalnej tolerancji. - + Knot cannot have zero multiplicity. Węzeł nie może mieć zerowej krotności. - + Knot multiplicity cannot be higher than the degree of the BSpline. Krotność węzłów nie może być większa niż stopień krzywej złożonej. - + Knot cannot be inserted outside the BSpline parameter range. Węzła nie można wstawić poza zakresem parametrów krzywej złożonej. @@ -2788,7 +2788,7 @@ nieprawidłowych wiązań, zdegenerowanej geometrii itp. Accepted combinations: two curves; an endpoint and a curve; two endpoints; two curves and a point. perpendicular constraint - Istnieje wiele sposobów, gdzie to wiązanie to może być stosowane. + Istnieje wiele sposobów, gdzie to wiązanie to może być stosowane. Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywej; dwa punkty końcowe; dwie krzywe i punkt. @@ -2833,7 +2833,7 @@ Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywej; dwa punkty końco Accepted combinations: two curves; an endpoint and a curve; two endpoints; two curves and a point. tangent constraint - Istnieje wiele sposobów na zastosowanie tego wiązania. + Istnieje wiele sposobów na zastosowanie tego wiązania. Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywa; dwa punkty końcowe; dwie krzywe i punkt. @@ -2924,7 +2924,7 @@ Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywa; dwa punkty końcow An angle constraint cannot be set for two parallel lines. - Wiązania kąta nie można ustawić dla dwóch równoległych linii. + Nie można zdefiniować wiązania kąta dla dwóch linii równoległych. @@ -3235,7 +3235,8 @@ Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywa; dwa punkty końcow The XY axes of the selected sketch do not have the same direction as this sketch. Hold Ctrl+Alt to disregard it. - Osie XY wybranego rysunku nie mają tego samego kierunku jak ten rysunek. Przytrzymaj Ctrl + Alt, aby to zignorować. + Osie XY wybranego rysunku nie mają tego samego kierunku jak ten rysunek. +Przytrzymaj Ctrl + Alt, aby to zignorować. @@ -3892,7 +3893,7 @@ Akceptowane kombinacje: dwie krzywe; punkt końcowy i krzywa; dwa punkty końcow Makes the inter-row and inter-col spacing the same if clicked - Kliknięcie powoduje, że odstępy między wierszami i między kolumnami są takie same + Po kliknięciu odstępy między wierszami i między kolumnami będą jednakowe @@ -4537,9 +4538,9 @@ Kliknij na przycisk "Zamień punkty końcowe na wiązania" aby ponownie przyporz %1 reversed external-geometry arcs were found. Their endpoints are encircled in 3d view. However, no constraints linking to the endpoints were found. - %1 znaleziono odwrócone łuki geometrii zewnętrznej. Ich punkty końcowe są otoczone widokiem 3D. + Znaleziono %1 łuki o odwróconej geometrii zewnętrznej. Ich punkty końcowe są zaznaczone w oknie Widoku 3D. -Nie znaleziono jednak żadnych wiązań z punktami końcowymi. +Nie znaleziono jednak żadnych powiązań z punktami końcowymi. @@ -4549,13 +4550,13 @@ Nie znaleziono jednak żadnych wiązań z punktami końcowymi. %1 changes were made to constraints linking to endpoints of reversed arcs. - Dokonano zmian %1 w wiązaniach łączących z punktami końcowymi odwróconych łuków. + Dokonano %1 zmian w wiązaniach łączących z punktami końcowymi odwróconych łuków. Constraint orientation locking - Zamykanie orientacji wiązania + Blokada orientacji wiązania @@ -4722,7 +4723,7 @@ Nie znaleziono jednak żadnych wiązań z punktami końcowymi. Construction - Konstrukcja + Konstrukcyjny @@ -4765,7 +4766,7 @@ Nie znaleziono jednak żadnych wiązań z punktami końcowymi. Arc - Wzdłuż łuku + Łuk @@ -4932,7 +4933,7 @@ Jest to oparte wyłącznie na topologicznym kształcie szkicu, a nie na jego geo Ignore construction geometry - Ignoruj geometrię konstrukcji + Ignoruj geometrię konstrukcyjną @@ -5019,7 +5020,7 @@ Odbywa się to przez analizę geometrii szkicu i wiązań. Constraint orientation locking - Zamykanie orientacji wiązania + Blokada orientacji wiązania @@ -5122,7 +5123,7 @@ Odbywa się to przez analizę geometrii szkicu i wiązań. Over-constrained: - Przesadne wiązania: + Nadmiernie związany szkic: @@ -5672,7 +5673,7 @@ Solver BFGS wykorzystuje algorytm Broyden-Fletcher-Goldfarb-Shanno. LevenbergMarquardt - LevenbergMarquardt + Levenberg Marquardt @@ -5894,7 +5895,7 @@ Eigen Sparse QR, algorytm jest zoptymalizowany dla macierzy rzadkich, zwykle szy Iteration Level - Poziom iteracji + Stopień iteracji @@ -6128,17 +6129,17 @@ Rozstaw siatki zmienia się, jeśli staje się mniejszy niż określona liczba p Notifications - + The Sketch has malformed constraints! Szkic zawiera zniekształcone wiązania! - + The Sketch has partially redundant constraints! Szkic zawiera częściowo zbędne wiązania! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabole zostały poddane migracji. Pliki po imporcie nie otworzą się w poprzednich wersjach programu FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-BR.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-BR.ts index 5fcbf3b7a8..cf7a6947f8 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-BR.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-BR.ts @@ -2169,59 +2169,59 @@ restrições inválidas, geometria corrompida, etc. Erro de restrição automática: esboço insolúvel após a aplicação de restrições de igualdade. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Não é possível adivinhar a intersecção das curvas. Tente adicionar uma restrição coincidente entre os vértices das curvas que você pretende filetar. - - + + BSpline Geometry Index (GeoID) is out of bounds. Índice de geometria BSpline (GeoID) está fora dos limites. - + You are requesting no change in knot multiplicity. Você não solicitou nenhuma mudança de multiplicidade em nós. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. O índice de geometria (GeoId) fornecida não é uma curva B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. O índice do nó está fora dos limites. Note que, de acordo com a notação do OCC, o primeiro nó tem índice 1 e não zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. A multiplicidade não pode ser aumentada além do grau de B-spline. - + The multiplicity cannot be decreased beyond zero. A multiplicidade não pode ser diminuída abaixo de zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. O OCC não consegue diminuir a multiplicidade dentro de tolerância máxima. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -2630,7 +2630,7 @@ restrições inválidas, geometria corrompida, etc. Unexpected error. More information may be available in the Report View. - Unexpected error. More information may be available in the Report View. + Erro inesperado. Mais informações podem estar disponíveis na visualização do relatório. @@ -6126,17 +6126,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-PT.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-PT.ts index e62cc07ea8..fbce840a8e 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-PT.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt-PT.ts @@ -2169,59 +2169,59 @@ invalid constraints, degenerated geometry, etc. Erro de restrição automática: esboço insolúvel após a aplicação de restrições de igualdade. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Não é possível calcular a interseção das curvas. Tente adicionar uma restrição coincidente entre os vértices das curvas das quais pretende fazer a concordância. - - + + BSpline Geometry Index (GeoID) is out of bounds. Índice de geometria BSpline (GeoID) está fora dos limites. - + You are requesting no change in knot multiplicity. Você não está a solicitar nenhuma mudança na multiplicidade de nó. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. O índice de geometria (GeoId) fornecida não é uma curva B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. O índice do nó está fora dos limites. Note que, de acordo com a notação de OCC, o primeiro nó tem índice 1 e não zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. A multiplicidade não pode ser aumentada além do grau de B-spline. - + The multiplicity cannot be decreased beyond zero. A multiplicidade não pode ser diminuída, abaixo de zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC é incapaz de diminuir a multiplicidade dentro de tolerância máxima. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6127,17 +6127,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ro.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ro.ts index 9d21522b06..3c238a86bb 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ro.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ro.ts @@ -2169,59 +2169,59 @@ constrângeri nevalide, geometrie degenerată, etc. Eroare de autoconstrângere: schiță nerezolvabilă după aplicarea constrângerilor de egalitate. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nu puteți ghici intersecția curbelor. Încercați să adăugați o constrângere de potrivire între vârfurile curbelor pe care intenționați să le completați. - - + + BSpline Geometry Index (GeoID) is out of bounds. Indicele de geometrie BSpline (GeoID) nu este în limite maxime. - + You are requesting no change in knot multiplicity. Nu cereți nicio schimbare în multiplicitatea nodului. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Indicele de geometrie (GeoId) furnizat nu este o curbă B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Indexul nod este în afara limitelor. Reţineţi că în conformitate cu notaţia OCC, primul nod are indexul 1 şi nu zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. Multiplicitatea nu poate fi crescută dincolo de gradul curbei B-spline. - + The multiplicity cannot be decreased beyond zero. Multiplicitatea nu poate fi diminuată sub zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC este în imposibilitatea de a reduce multiplicarea în limitele toleranței maxime. - + Knot cannot have zero multiplicity. Nu poate avea multiplicitate zero. - + Knot multiplicity cannot be higher than the degree of the BSpline. Multiplicitatea nodului nu poate fi mai mare decât gradul BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Nu se poate insera un nod în afara intervalului parametrului BSpline. @@ -6124,17 +6124,17 @@ Schimbarea spațierii grilei dacă devine mai mică decât acest număr de pixel Notifications - + The Sketch has malformed constraints! Schița a malformat constrângerile! - + The Sketch has partially redundant constraints! Schița are constrângeri parțial redundante! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolele au fost migrate. Fișierele migrate nu vor fi deschise în versiunile anterioare de FreeCAD! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts index 1b7febd997..f0fda6a81b 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts @@ -2164,59 +2164,59 @@ invalid constraints, degenerated geometry, etc. Ошибка автоограничения: Эскиз нерешаем после добавлении ограничения равенства. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Не удалось рассчитать пересечение кривых. Попробуйте добавить ограничение совпадения между вершинами кривых, которые вы намерены скруглить. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline идентификатор геометрии (GeoID) находится вне границ. - + You are requesting no change in knot multiplicity. Вы не запрашиваете никаких изменений в множественности узлов. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Идентификатор геометрии (GeoId) не является B-сплайн кривой. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Индекс узла выходит за границы. Обратите внимание, что в соответствии с нотацией OCC первый узел имеет индекс 1, а не ноль. - + The multiplicity cannot be increased beyond the degree of the B-spline. Кратность не может быть увеличена сверх степени B-сплайна. - + The multiplicity cannot be decreased beyond zero. Кратность не может быть уменьшена ниже нуля. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC неспособен уменьшить кратность в пределах максимального допуска. - + Knot cannot have zero multiplicity. Узел не может иметь нулевой кратности. - + Knot multiplicity cannot be higher than the degree of the BSpline. Кратность узла не может быть выше степени BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Узел не может быть вставлен за пределы диапазона параметров BSpline. @@ -6118,17 +6118,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! В эскизе неправильно сформированы ограничения! - + The Sketch has partially redundant constraints! Sketch имеет частично избыточные ограничения! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Параболы были перенесены. Перемещенные файлы не будут открыты в предыдущих версиях FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sl.ts index 6cc7974851..dfc6f83aa9 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sl.ts @@ -76,7 +76,7 @@ Copy the geometry of another sketch - Copy the geometry of another sketch + Kopiraj geometrijo drugega očrta @@ -171,7 +171,7 @@ Create arc - Create arc + Ustvari lok @@ -186,7 +186,7 @@ End points and rim point - Končni točki in točka na obodu + Krajišči in točka na obodu @@ -403,12 +403,12 @@ Constrain block - Zaklep omejil + Omeji zbir Block the selected edge from moving - Block the selected edge from moving + Prepreči premikanje izbranega robu @@ -455,7 +455,7 @@ Constrain horizontal distance - Constrain horizontal distance + Omeji vodoravno razdaljo @@ -494,7 +494,7 @@ Constrain horizontally - Omeji vodoravno + Omeji na vodoravnost @@ -513,8 +513,7 @@ Create both a horizontal and a vertical distance constraint on the selected vertex - Create both a horizontal and a vertical distance constraint -on the selected vertex + Ustvari omejilo navpične in vodoravne oddaljenosti izbranega oglišča @@ -587,7 +586,7 @@ on the selected vertex Constrain refraction (Snell's law) - Constrain refraction (Snell's law) + Lomno omejilo (lomni zakon) @@ -635,7 +634,7 @@ glede na črto ali tretjo točko Create a vertical constraint on the selected item - Ustvari navpično omejilo na izbranem predmetu + Ustvari navpičnostno omejilo na izbranem predmetu @@ -1072,7 +1071,7 @@ glede na črto ali tretjo točko Edit sketch - Edit sketch + Uredi očrt @@ -1599,7 +1598,7 @@ neveljavna omejila, izrojene geometrije, ... Add horizontal constraint - Dodaj vodoravno omejilo + Dodaj vodoravnostno omejilo @@ -1612,7 +1611,7 @@ neveljavna omejila, izrojene geometrije, ... Add vertical constraint - Dodaj navpično omejilo + Dodaj navpičnostno omejilo @@ -1637,12 +1636,12 @@ neveljavna omejila, izrojene geometrije, ... Add 'Block' constraint - Dodaj popolno omejilo + Dodaj zbirno omejilo Add block constraint - Dodaj popolno omejilo + Dodaj zbirno omejilo @@ -1679,12 +1678,12 @@ neveljavna omejila, izrojene geometrije, ... Add circle to circle distance constraint - Dodaj krog omejilu razdalje medkrogoma + Dodaj omejilo razdalje med krogoma Add circle to line distance constraint - Add circle to line distance constraint + Dodaj omejilo razdalje med krogom in črto @@ -2119,7 +2118,7 @@ neveljavna omejila, izrojene geometrije, ... Create a carbon copy - Create a carbon copy + Ustvari dvojnika @@ -2168,59 +2167,59 @@ neveljavna omejila, izrojene geometrije, ... Napaka samodejnega omejila: Nerešljiv očrt po uveljavitiv enakostnega omejila. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Ni mogoče uganiti presečišča krivulj. Poskusite dodati omejilo sovpadanja med vozlišči krivulj, ki jih nameravate zaokrožiti. - - + + BSpline Geometry Index (GeoID) is out of bounds. Kazalo geometrije B-zlepka (GeoID) je izven omejitev. - + You are requesting no change in knot multiplicity. Ne zahtevate spremembe večkratnosti vozla. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Priskrbljeno kazalo geometrije (GeoId) ni krivulja B-zlepek. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Oznaka vozla je izven meja. Upoštevajte, da ima v skladu z OCC zapisom prvi vozel oznako 1 in ne nič. - + The multiplicity cannot be increased beyond the degree of the B-spline. Večkratnost ne more biti povečana preko stopnje B-zlepka. - + The multiplicity cannot be decreased beyond zero. Večkratnost ne more biti zmanjšana pod ničlo. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC ne more zmanjšati večkratnost znotraj največjega dopustnega odstopanja. - + Knot cannot have zero multiplicity. Večkratnost vozla ne more biti nič. - + Knot multiplicity cannot be higher than the degree of the BSpline. Večkratnost vozla ne more biti večja od stopnje B-zlepka. - + Knot cannot be inserted outside the BSpline parameter range. Vozla ni mogoče vstaviti izven razpona določilke B-zlepka. @@ -2452,7 +2451,7 @@ neveljavna omejila, izrojene geometrije, ... Not allowed to edit the datum because the sketch contains conflicting constraints - Osnovne mere ni mogoče urejati, ker vsebuje očrt omejila v sporu + Sklicnosti ni mogoče urejati, ker očrt vsebuje omejila v sporu @@ -2467,7 +2466,7 @@ neveljavna omejila, izrojene geometrije, ... Cannot add a constraint between two fixed geometries. Fixed geometries include external geometry, blocked geometry, and special points such as B-spline knot points. - Ni mogoče dodati omejila med dvema nespremenljivima geometrijama. Nespremenljive geometrije obsegajo zunanje geometrije, zamrznjene geometrije in posebne točke, kot so vozlišča B-zlepka. + Ni mogoče dodati omejila med dvema nespremenljivima geometrijama. Med nespremenljive geometrije spadajo zunanje geometrije, zamrznjene geometrije in posebne točke, kot so vozlišča B-zlepka. @@ -2542,14 +2541,14 @@ neveljavna omejila, izrojene geometrije, ... The selected edge already has a horizontal constraint! - Izbran rob že ima vodoravno omejitev! + Izbran rob je že omejen na vodoravnost! The selected edge already has a vertical constraint! - Izbran rob že ima navpično omejitev! + Izbran rob je že omejen na navpičnost! @@ -2559,12 +2558,12 @@ neveljavna omejila, izrojene geometrije, ... The selected edge already has a Block constraint! - Izbran rob že ima popolno omejitev! + Izbran rob je že zbirno omejen! The selected item(s) can't accept a horizontal constraint! - Izbranih predmetov ni mogoče vodoravno omejiti! + Izbranih predmetov ni mogoče vodoravnostno omejiti! @@ -2575,7 +2574,7 @@ neveljavna omejila, izrojene geometrije, ... The selected item(s) can't accept a vertical constraint! - Izbranih predmetov ni mogoče navpično omejiti! + Izbranih predmetov ni mogoče navpičnostno omejiti! @@ -2602,7 +2601,7 @@ neveljavna omejila, izrojene geometrije, ... A Block constraint cannot be added if the sketch is unsolved or there are redundant and conflicting constraints. - Popolnega omejila ni mogoče dodati, če očrt ni rešen ali ima čezmerna in nasprotujoča si omejila. + Zbirnega omejila ni mogoče dodati, če očrt ni rešen ali ima čezmerna in nasprotujoča si omejila. @@ -2629,7 +2628,7 @@ neveljavna omejila, izrojene geometrije, ... Unexpected error. More information may be available in the Report View. - Unexpected error. More information may be available in the Report View. + Nepričakovana napaka. Več lahko najdete v poročevalnem pogledu. @@ -2982,7 +2981,7 @@ Dovoljene kombinacije: dve krivulji, končna točka in krivulja, dve končni to Select two endpoints of lines to act as rays, and an edge representing a boundary. The first selected point corresponds to index n1, second to n2, and datum value sets the ratio n2/n1. Constraint_SnellsLaw - Izberite dve krajišči daljic, ki naj predstavljata žarka, in rob, ki naj predstavlja mejo. Prva izbrana točka ustreza kazalu n1, druga kazalu n2 in vrednost osnovne mere nastavi razmerje n2/n1. + Izberite dve krajišči daljic, ki naj predstavljata žarka, in rob, ki naj predstavlja mejo. Prva izbrana točka ustreza kazalu n1, druga kazalu n2 in sklicna vrednost nastavi razmerje n2/n1. @@ -3096,7 +3095,7 @@ Dovoljene kombinacije: dve krivulji, končna točka in krivulja, dve končni to Exactly two curves should end at the selected point to be able to join them. - Exactly two curves should end at the selected point to be able to join them. + V izbrani točki se morata končati natanko dve krivulji, da bi ju mogli združiti. @@ -3313,7 +3312,7 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Datums - Osnovne mere + Sklicnosti @@ -3381,7 +3380,7 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Select Elements - Select Elements + Izberite prvine @@ -3597,7 +3596,7 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Point Coincidence - Point Coincidence + Sovpadanje točk @@ -3607,32 +3606,32 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Vertical Constraint - Vertical Constraint + Navpičnostno omejilo Horizontal Constraint - Horizontal Constraint + Vodoravnostno omejilo Parallel Constraint - Parallel Constraint + Vzporednostno omejilo Perpendicular Constraint - Perpendicular Constraint + Pravokotnostno omejilo Tangent Constraint - Tangent Constraint + Dotikalnostno omejilo Equal Length - Equal Length + Enaka dolžina @@ -3642,12 +3641,12 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Block Constraint - Block Constraint + Zbirno omejilo Lock Constraint - Lock Constraint + Zaklepno omejilo @@ -3662,27 +3661,27 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Length Constraint - Length Constraint + Dolžinsko omejilo Radius Constraint - Radius Constraint + Polmerno omejilo Diameter Constraint - Diameter Constraint + Premerno omejilo Radiam Constraint - Radiam Constraint + Polmer-premerno omejilo Angle Constraint - Angle Constraint + Kotno omejilo @@ -3692,22 +3691,22 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Select Constraints - Select Constraints + Izberite omejila Select Origin - Select Origin + Izberite izhodišče Select Horizontal Axis - Select Horizontal Axis + Izberite vodoravno os Select Vertical Axis - Select Vertical Axis + Izberite navpično os @@ -3717,12 +3716,12 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Layer 0 - Layer 0 + Plast 0 Layer 1 - Layer 1 + Plast 1 @@ -3763,12 +3762,12 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Insert datum - Vstavi osnovno mero + Vstavi sklicnost datum: - osnovna mera: + sklicnost: @@ -3854,7 +3853,7 @@ Zaustavljati, Zapirati (pot), Zastirati (svetlobo, pogled) Reverse direction - Reverse direction + Nasprotna smer @@ -3961,7 +3960,7 @@ za prilagajanje nastavitev reševalnika: "Napredno krmiljenje reševalnika" Task Panel Widgets - Gradniki opravilne plošče + Gradniki opravilnega podokna @@ -4529,7 +4528,7 @@ V tem primeru je predmete mogoče videti le za očrtno ravnino. Click "Swap endpoints in constraints" button to reassign endpoints. Do this only once to sketches created in FreeCAD older than v0.15 Najdenih %1 obrnjenih lokov zunanje geometrije. V pogledu 3D so njihove točke obkrožene. -%2 omejil je vezanih na krajišča. Omejitve so navedene v Poročilnem pogledu (meni Pogled -> Plošče -> Poročilni pogled). +%2 omejil je vezanih na krajišča. Omejitve so navedene v Poročilnem pogledu (meni Pogled -> Podokna -> Poročilni pogled). Kliknite na "Zamenjaj krajišča v omejilih", da ponovno dodelite krajišča. Za skice, ki so bile ustvarjene v FreeCADu, starejšem od v0.15, naredite to le enkrat @@ -4559,12 +4558,12 @@ However, no constraints linking to the endpoints were found. Orientation locking was enabled and recomputed for %1 constraints. The constraints have been listed in Report view (menu View -> Panels -> Report view). - Zaklepanje usmeritve je bilo omogočeno in ponovno izračunano za %1 omejil. Omejila so bile navedene vPoročilnem pogledu (meni Pogled -> Plošče -> Poročilni pogled). + Zaklepanje usmeritve je bilo omogočeno in ponovno izračunano za %1 omejil. Omejila so bile navedene v poročilnem podoknu (meni Pogled -> Podokna -> Poročilno podokno). Orientation locking was disabled for %1 constraints. The constraints have been listed in Report view (menu View -> Panels -> Report view). Note that for all future constraints, the locking still defaults to ON. - Zaklepanje usmerjenosti je bilo omogočeno za %1 omejitev. Omejitve so bile navedene v pogledu poročil (meni Pogled -> Plošče -> pogled Poročila). Upoštevajte, da je za vse prihodnje omejitve zaklepanje privzeto še vedno VKLOPLJENO. + Zaklepanje usmerjenosti je bilo onemogočeno za %1 omejil. Omejila so bila navedena v poročilnem pogledu (meni Pogled -> Podokna -> Poročini pogled). Upoštevajte, da je za vsa prihodnja omejila zaklepanje privzeto še vedno VKLOPLJENO. @@ -4848,27 +4847,27 @@ However, no constraints linking to the endpoints were found. Click to select the conflicting constraints. - Click to select the conflicting constraints. + Kliknite za izbor nasprotujočih si omejil. Click to select the redundant constraints. - Click to select the redundant constraints. + Kliknite za izbor čezmernih omejil. The sketch has unconstrained elements giving rise to those Degrees Of Freedom. Click to select the unconstrained elements. - The sketch has unconstrained elements giving rise to those Degrees Of Freedom. Click to select the unconstrained elements. + Očrt vsebuje neomejene prvine, kar privede do takšnih prostostnih stopenj. Kliknite za izbor neomejenih prvin. Click to select the malformed constraints. - Click to select the malformed constraints. + Kliknite za izbor narobe oblikovanih omejil. Some constraints in combination are partially redundant. Click to select the partially redundant constraints. - Some constraints in combination are partially redundant. Click to select the partially redundant constraints. + Določena omejila so v medsebojni kombinaciji delno čezmerna. Kliknite za izbor delno čezmernih omejil. @@ -5023,7 +5022,7 @@ Izvede se s pregledom geometrij in omejil očrta. Enables/updates constraint orientation locking - Omogoči o. posodobi zaklepanje usmerjenosti omejil + Omogoči oz. posodobi zaklepanje usmerjenosti omejil @@ -5046,7 +5045,7 @@ Izvede se s pregledom geometrij in omejil očrta. Edit sketch - Edit sketch + Uredi očrt @@ -6127,17 +6126,17 @@ Medčrtna razdalja se spremeni, če postane manjša od tega števila slikovnih t Notifications - + The Sketch has malformed constraints! Očrt vsebuje narobe oblikovana omejila! - + The Sketch has partially redundant constraints! Očrt vsebuje deloma čezmerna omejila! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabole so bile preseljene. Preseljenih datotek ne bo mogoče odpreti v prejšnjih FreeCADih! @@ -6183,17 +6182,17 @@ Medčrtna razdalja se spremeni, če postane manjša od tega števila slikovnih t Failed to delete all geometry - Failed to delete all geometry + Brisanje vseh geometrij je spodletelo Failed to delete all constraints - Failed to delete all constraints + Brisanje vseh omejil je spodletelo The constraint has invalid index information and is malformed. - The constraint has invalid index information and is malformed. + Omejilo ima neveljavno informacijo kazala in je narobe oblikovano. @@ -6209,39 +6208,39 @@ Medčrtna razdalja se spremeni, če postane manjša od tega števila slikovnih t Invalid Constraint - Invalid Constraint + Neveljavno omejilo Failed to add arc - Failed to add arc + Dodajanje loka je spodletelo Failed to add arc of ellipse - Failed to add arc of ellipse + Dodajanje eliptičnega loka spodletelo Cannot create arc of hyperbola from invalid angles, try again! - Cannot create arc of hyperbola from invalid angles, try again! + Hiperboličnega loka ni mogoče ustvariti iz neveljavnih kotov. Poskusite ponovno! Cannot create arc of hyperbola - Cannot create arc of hyperbola + Ni mogoče ustvariti hiperboličnega loka Cannot create arc of parabola - Cannot create arc of parabola + Ni mogoče ustvariti paraboličnega loka Error adding B-Spline pole - Error adding B-Spline pole + Napaka pri dodajanju B-zlepkovega tečaja @@ -6257,48 +6256,48 @@ Medčrtna razdalja se spremeni, če postane manjša od tega števila slikovnih t Error deleting last pole - Error deleting last pole + Napaka pri brisanju zadnjega tečaja Cannot add knot point - Cannot add knot point + Vozliščne točke ni mogoče dodati Cannot add internal alignment points - Cannot add internal alignment points + Točk notranje poravnave ni mogoče dodati Error removing knot - Error removing knot + Napaka pri odstranjevanju vozla Failed to add carbon copy - Failed to add carbon copy + Dodajanje dvojnika spodletelo Failed to add circle - Failed to add circle + Dodajanje kroga spodletelo Failed to add an ellipse - Failed to add an ellipse + Dodajanje elipse spodletelo Failed to extend edge - Failed to extend edge + Podaljšanje roba spodletelo Failed to add external geometry - Failed to add external geometry + Dodajanje zunanje geometrije spodletelo @@ -6309,42 +6308,42 @@ Medčrtna razdalja se spremeni, če postane manjša od tega števila slikovnih t Failed to add line - Failed to add line + Dodajanje daljice spodletelo Failed to add point - Failed to add point + Dodajanje točke spoletelo Failed to add polygon - Failed to add polygon + Dodajanje mnogokotnika spodletelo Failed to add box - Failed to add box + Dodajanje kvadra spodletelo Failed to add rounded rectangle - Failed to add rounded rectangle + Dodajanje zaokroženega pravokotnika spodletelo Failed to add slot - Failed to add slot + Dodajanje utora spodletelo Failed to add edge - Failed to add edge + Dodajanje roba spodletelo Failed to trim edge - Failed to trim edge + Prirezovanje roba spodletelo @@ -6424,7 +6423,7 @@ Da bi se pripele, morajo biti točke oddaljene od črte do eno petino polja mre Normal Geometry - Normal Geometry + Osnovna geometrija @@ -6438,7 +6437,7 @@ Da bi se pripele, morajo biti točke oddaljene od črte do eno petino polja mre External Geometry - External Geometry + Zunanja geometrija diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr-CS.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr-CS.ts index 22dd47e8f8..84fcbb9304 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr-CS.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr-CS.ts @@ -2167,59 +2167,59 @@ nevažeća ograničenja, degenerisanu geometriju, itd. Greška automatskog ograničavanja: Nerešiva skica posle primene ograničenja jednakosti. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Nije moguće odrediti presečnu tačku krivih. Pokušaj da dodaš ograničenje podudarnosti između tačaka krivih gde nameravaš da napraviš zaobljenje. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Geometry Index (GeoID) is out of bounds. - + You are requesting no change in knot multiplicity. Ne zahtevate promenu u višestrukosti čvorova. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. The Geometry Index (GeoId) provided is not a B-spline curve. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. Višestrukost se ne može povećati iznad stepena B-splajn krive. - + The multiplicity cannot be decreased beyond zero. Višestrukost ne može biti manje od nule. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC nije u stanju da smanji višestrukost unutar maksimalne tolerancije. - + Knot cannot have zero multiplicity. Čvor ne može imati nultu višestrukost. - + Knot multiplicity cannot be higher than the degree of the BSpline. Višestrukost čvorova ne može biti veća od stepena B-Splajn krive. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6127,17 +6127,17 @@ Razmak mreže se menja ako postane manji od ovog broja piksela. Notifications - + The Sketch has malformed constraints! Skica ima deformisana ograničenja! - + The Sketch has partially redundant constraints! Skica ima delimično suvišna ograničenja! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr.ts index 8e87372601..6182add07d 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sr.ts @@ -2167,59 +2167,59 @@ invalid constraints, degenerated geometry, etc. Грешка аутоматског ограничавања: Нерешива скица после примене ограничења једнакости. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Није могуће одредити пресечну тачку кривих. Покушај да додаш ограничење подударности између тачака кривих где намераваш да направиш заобљење. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Geometry Index (GeoID) is out of bounds. - + You are requesting no change in knot multiplicity. Не захтевате промену у вишеструкости чворова. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. The Geometry Index (GeoId) provided is not a B-spline curve. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. Вишеструкост се не може повећати изнад степена Б-сплајн криве. - + The multiplicity cannot be decreased beyond zero. Вишеструкост не може бити мање од нуле. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC није у стању да смањи вишеструкост унутар максималне толеранције. - + Knot cannot have zero multiplicity. Чвор не може имати нулту вишеструкост. - + Knot multiplicity cannot be higher than the degree of the BSpline. Вишеструкост чворова не може бити већа од степена Б-Сплајн криве. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6127,17 +6127,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! Скица има деформисана ограничења! - + The Sketch has partially redundant constraints! Скица има делимично сувишна ограничења! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sv-SE.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sv-SE.ts index 9d8f5d948f..9c8ed0ef7a 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sv-SE.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_sv-SE.ts @@ -2169,59 +2169,59 @@ invalid constraints, degenerated geometry, etc. Auto-begränsningsfel: Olösbar skiss efter tillämpning av likhetsbegränsningar. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Kan inte finna skärning mellan kurvorna. Försök att lägga till en sammanfallande-begränsning mellan ändpunkterna på kurvorna du vill avrunda. - - + + BSpline Geometry Index (GeoID) is out of bounds. B-spline-geometriindex (GeoID) är inte giltigt. - + You are requesting no change in knot multiplicity. Du efterfrågar ingen ändring i knutmultipliciteten. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Geometriindex (GeoId) som är angivet är inte en B-spline-kurva. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Knutindex är inte giltigt. Notera att i enlighet med OCC-notation så har första knuten index 1 och inte index 0. - + The multiplicity cannot be increased beyond the degree of the B-spline. Multipliciteten kan inte ökas mer än graden av B-spline:n. - + The multiplicity cannot be decreased beyond zero. Multipliciteten kan inte minskas under 0. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC kan inte minsta multipliciteten inom den maximala toleransen. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6128,17 +6128,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_tr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_tr.ts index 5989907691..283dabe08d 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_tr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_tr.ts @@ -2165,59 +2165,59 @@ bozulmuş geometriye vb. bakarak bir eskizi doğrulayın. Otomatik kısıtlama hatası: Eşitlik kısıtlamaları uygulandıktan sonra eskiz çözülemez. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Eğrilerin kesişimini tahmin edemiyoruz. Dilimlemeyi planladığınız eğrilerin köşeleri arasında çakışan bir kısıtlama eklemeyi deneyin. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline Geometri Dizini (GeoID) sınırların dışında. - + You are requesting no change in knot multiplicity. Düğüm çokluğunda herhangi bir değişiklik istemiyorsunuz. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Sağlanan Geometri Dizini (GeoId) bir B-spline eğrisi değil. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Düğüm endeksi sınırların dışındadır. OCC gösterimine göre, ilk düğümün indeks 1'i olduğunu ve sıfır olmadığını unutmayın. - + The multiplicity cannot be increased beyond the degree of the B-spline. Çeşitlilik, B-spline'nın derecesinin ötesinde artırılamaz. - + The multiplicity cannot be decreased beyond zero. Çokluk sıfırdan aşağıya düşürülemez. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC, maksimum tolerans dahilinde çokluğu azaltamıyor. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6120,17 +6120,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! @@ -6296,7 +6296,7 @@ The grid spacing change if it becomes smaller than this number of pixel. Failed to create fillet - Failed to create fillet + Yuvarlama oluşturma hatası diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts index 89e45e68dd..c818ce9ac5 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts @@ -2166,59 +2166,59 @@ invalid constraints, degenerated geometry, etc. Помилка автообмеження: Ескіз не вирішується після додавання обмеження рівності. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. Не вдалося розрахувати перетин кривих. Спробуйте додати обмеження збігу між вершинами кривих, які ви хочете заокруглити. - - + + BSpline Geometry Index (GeoID) is out of bounds. BSpline ідентифікатор геометрії (GeoID) знаходиться поза межами. - + You are requesting no change in knot multiplicity. Ви просите не змінювати кратність вузлів. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. Ідентифікатор геометрії (GeoId) не є кривою B-сплайн. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. Індекс вузла виходить за межі. Зверніть увагу, що відповідно до нотації OCC перший вузол має індекс 1, а не нуль. - + The multiplicity cannot be increased beyond the degree of the B-spline. Кратність не може бути збільшена понад ступінь B-сплайну. - + The multiplicity cannot be decreased beyond zero. Кратність не може бути зменшена нижче нуля. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC нездатний зменшити кратність у межах максимального допуску. - + Knot cannot have zero multiplicity. Вузол не може мати нульову кратність. - + Knot multiplicity cannot be higher than the degree of the BSpline. Кратність вузла не повинна перевищувати ступінь B-сплайна. - + Knot cannot be inserted outside the BSpline parameter range. Вузол не можна розмістити за межами діапазону параметрів B-сплайну. @@ -6128,17 +6128,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! Скетч має помилкові обмеження! - + The Sketch has partially redundant constraints! Скетч має частково надлишкові обмеження! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Перенесено параболи. Перенесені файли не відкриватимуться у попередніх версіях FreeCAD!!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_val-ES.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_val-ES.ts index 561a7764d4..4baef90052 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_val-ES.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_val-ES.ts @@ -2169,59 +2169,59 @@ invalid constraints, degenerated geometry, etc. Error de restricció: esbós irresoluble si s'apliquen restriccions d'igualtat. - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. No s'ha trobat la intersecció de les corbes. Intenteu afegir una restricció coincident entre els vèrtexs de les corbes que esteu intentant arrodonir. - - + + BSpline Geometry Index (GeoID) is out of bounds. L'índex de geometria BSpline (GeoID) està fora de les restriccions. - + You are requesting no change in knot multiplicity. Se us ha demanat que no canvieu la multiplicitat del nus. - - + + The Geometry Index (GeoId) provided is not a B-spline curve. L'índex de geometria (GeoId) proporcionat no és una corba de B-spline. - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. L'índex del nus és fora dels límits. Tingueu en compte que d'acord amb la notació d'OCC, el primer nus té l'índex 1 i no zero. - + The multiplicity cannot be increased beyond the degree of the B-spline. La multiplicitat no es pot augmentar més enllà del grau del B-spline. - + The multiplicity cannot be decreased beyond zero. La multiplicitat no es pot reduir més enllà de zero. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC no pot reduir la multiplicitat dins de la tolerància màxima. - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. Knot cannot be inserted outside the BSpline parameter range. @@ -6109,17 +6109,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-CN.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-CN.ts index 5faac89a16..20904da14d 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-CN.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-CN.ts @@ -2165,59 +2165,59 @@ invalid constraints, degenerated geometry, etc. 自动约束错误: 应用相等约束后草图无法求解。 - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. 无法猜测曲线的交叉点。尝试在你打算做圆角的曲线顶点之间添加一个重合约束。 - - + + BSpline Geometry Index (GeoID) is out of bounds. 贝赛尔样条几何图形索引(GeoID) 超出了界限。 - + You are requesting no change in knot multiplicity. 你被要求不对多重性节点做任何修改。 - - + + The Geometry Index (GeoId) provided is not a B-spline curve. 提供的几何图形索引 (GeoId) 不是贝赛尔样条曲线 - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. 结指数超出界限。请注意, 按照 OCC 符号, 第一个节点的索引为1, 而不是0。 - + The multiplicity cannot be increased beyond the degree of the B-spline. 无法重复增加到超过贝塞尔曲线的自由度。 - + The multiplicity cannot be decreased beyond zero. 多重性不能小于0. - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC 无法在最大公差范围内减少多重性。 - + Knot cannot have zero multiplicity. Knot cannot have zero multiplicity. - + Knot multiplicity cannot be higher than the degree of the BSpline. Knot multiplicity cannot be higher than the degree of the BSpline. - + Knot cannot be inserted outside the BSpline parameter range. 不能在B样条参数范围之外插入节点。 @@ -6119,17 +6119,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-TW.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-TW.ts index 37495b7cd3..514a912049 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-TW.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh-TW.ts @@ -71,7 +71,7 @@ Create carbon copy - Create carbon copy + 建立副本 @@ -230,7 +230,7 @@ Create conic - Create conic + 建立圓錐 @@ -408,7 +408,7 @@ Block the selected edge from moving - Block the selected edge from moving + 阻止選定邊的移動 @@ -421,7 +421,7 @@ Create a coincident constraint between points, or a concentric constraint between circles, arcs, and ellipses - 在點之間建立重合約束,或在圓、圓弧和橢圓之間建立同心約束 + Create a coincident constraint between points, or a concentric constraint between circles, arcs, and ellipses @@ -707,7 +707,7 @@ with respect to a line or a third point Create arc of ellipse - Create arc of ellipse + 建立橢圓弧 @@ -720,7 +720,7 @@ with respect to a line or a third point Create arc of hyperbola - Create arc of hyperbola + 建立雙曲線弧 @@ -733,7 +733,7 @@ with respect to a line or a third point Create arc of parabola - Create arc of parabola + 建立拋物線弧 @@ -751,7 +751,7 @@ with respect to a line or a third point Create a B-spline by control points in the sketch. - Create a B-spline by control points in the sketch. + 由草圖中的控制點建立B雲形線 @@ -894,7 +894,7 @@ with respect to a line or a third point Create a periodic B-spline by control points in the sketch. - Create a periodic B-spline by control points in the sketch. + 在草圖中使用控制點創建週期性B雲形線。 @@ -1097,7 +1097,7 @@ with respect to a line or a third point Create external geometry - Create external geometry + 建立外部幾何 @@ -1149,12 +1149,12 @@ with respect to a line or a third point Join curves - Join curves + 連接曲線 Join two curves at selected end points - Join two curves at selected end points + 將兩個曲線在選定的端點處連接起來 @@ -1207,7 +1207,7 @@ then call this command, then choose the desired sketch. Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -1232,7 +1232,7 @@ as mirroring reference. Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -1555,7 +1555,7 @@ invalid constraints, degenerated geometry, etc. Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -1849,7 +1849,7 @@ invalid constraints, degenerated geometry, etc. Create a new sketch - 建立一個新的草圖 + 建立一個新的sketch @@ -2022,7 +2022,7 @@ invalid constraints, degenerated geometry, etc. Join Curves - Join Curves + 連接曲線 @@ -2110,7 +2110,7 @@ invalid constraints, degenerated geometry, etc. Add Knot Point - Add Knot Point + 添加節點 @@ -2164,59 +2164,59 @@ invalid constraints, degenerated geometry, etc. 自動拘束錯誤: 套用對稱拘束後無法解出此草圖 - + Unable to guess intersection of curves. Try adding a coincident constraint between the vertices of the curves you are intending to fillet. 無法猜測曲線交叉點。試著添加共點拘束在你要倒圓角的點及曲線間。 - - + + BSpline Geometry Index (GeoID) is out of bounds. B 雲形線幾何索引 (GeoID) 超出範圍。 - + You are requesting no change in knot multiplicity. 您正在要求不要改變結點多重性 - - + + The Geometry Index (GeoId) provided is not a B-spline curve. 提供的幾何索引 (GeoId) 不是 B 雲形線曲線。 - + The knot index is out of bounds. Note that in accordance with OCC notation, the first knot has index 1 and not zero. 結點索引超過範圍。請注意在 OCC 表示中,第一個結點的索引為 1 而不是 0。 - + The multiplicity cannot be increased beyond the degree of the B-spline. 結點多重性不能比 B 雲形線之多項式次數高 - + The multiplicity cannot be decreased beyond zero. 多重性不能減少到超過零。 - + OCC is unable to decrease the multiplicity within the maximum tolerance. OCC 無法在最大容差範圍內降低多重性。 - + Knot cannot have zero multiplicity. 結點之多重性不能為零。 - + Knot multiplicity cannot be higher than the degree of the BSpline. 結點多重性不能比 B 雲形線之次數高。 - + Knot cannot be inserted outside the BSpline parameter range. 結點不能在 B 雲形線參數範圍外面插入 @@ -2437,7 +2437,7 @@ invalid constraints, degenerated geometry, etc. Wrong selection - 錯誤的選擇 + 錯誤的選取 @@ -2613,7 +2613,7 @@ invalid constraints, degenerated geometry, etc. Number of selected objects is not 3 - Number of selected objects is not 3 + 選取之物件數量非為3 @@ -2645,12 +2645,12 @@ invalid constraints, degenerated geometry, etc. Select two or more vertices from the sketch for a coincident constraint, or two or more circles, ellipses, arcs or arcs of ellipse for a concentric constraint. - 從草圖中選擇兩個或多個頂點作為重合約束,或兩個或多個圓、橢圓、圓弧或橢圓弧作為同心約束。 + Select two or more vertices from the sketch for a coincident constraint, or two or more circles, ellipses, arcs or arcs of ellipse for a concentric constraint. Select two vertices from the sketch for a coincident constraint, or two circles, ellipses, arcs or arcs of ellipse for a concentric constraint. - 從草圖中選擇兩個頂點作為重合約束,或選擇兩個圓、橢圓、圓弧或橢圓弧作為同心約束。 + Select two vertices from the sketch for a coincident constraint, or two circles, ellipses, arcs or arcs of ellipse for a concentric constraint. @@ -3064,7 +3064,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Selection is empty - 選擇為空 + 選擇為空。 @@ -3084,7 +3084,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Too many curves on point - Too many curves on point + 點上的曲線過多 @@ -3095,7 +3095,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Too few curves on point - Too few curves on point + 點上的曲線過少 @@ -3180,7 +3180,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Set knot multiplicity - Set knot multiplicity + 設定節點多重性 @@ -3190,7 +3190,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Value Error - Value Error + 錯誤的值 @@ -3223,12 +3223,12 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c The selected sketch is not parallel to this sketch. Hold Ctrl+Alt to allow non-parallel sketches. - 所選草圖與此草圖並不平行。按下不放 Ctrl+Alt 以允許非平行草圖 + 所選草圖與此草圖並不平行。同時按住 Ctrl+Alt 以允許非平行草圖 The XY axes of the selected sketch do not have the same direction as this sketch. Hold Ctrl+Alt to disregard it. - 所選草圖的XY軸與此草圖的方向不同。按住Ctrl + Alt 以忽略它 + 所選草圖的XY軸與此草圖的方向不同。同時按住 Ctrl + Alt 以忽略它 @@ -3266,7 +3266,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Horizontal - 水平 + 水平的 @@ -3276,7 +3276,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Perpendicular - Perpendicular + 垂直 @@ -3291,7 +3291,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Symmetric - Symmetric + 對稱 @@ -3361,12 +3361,12 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Selected constraints - 選定約束 + Selected constraints Associated constraints - 關聯約束 + Associated constraints @@ -3374,7 +3374,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Select Elements - Select Elements + 選擇元件 @@ -3447,7 +3447,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Angle: - 角度: + 角度: @@ -3537,7 +3537,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c All types - 所有類型 + All types @@ -3562,27 +3562,27 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Arc of circle - 圓弧 + Arc of circle Arc of ellipse - 橢圓弧 + Arc of ellipse Arc of hyperbola - 曲線弧 + Arc of hyperbola Arc of parabola - 拋物線弧 + Arc of parabola B-Spline - 貝茲曲線 + B-Spline @@ -3590,7 +3590,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Point Coincidence - Point Coincidence + 點重合 @@ -3600,47 +3600,47 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Vertical Constraint - Vertical Constraint + 垂直拘束 Horizontal Constraint - Horizontal Constraint + 水平拘束 Parallel Constraint - Parallel Constraint + 平行拘束 Perpendicular Constraint - Perpendicular Constraint + 垂直拘束 Tangent Constraint - Tangent Constraint + 相切拘束 Equal Length - Equal Length + 相同長度 Symmetric - Symmetric + 對稱 Block Constraint - Block Constraint + 定位拘束 Lock Constraint - Lock Constraint + 鎖定拘束 @@ -3655,17 +3655,17 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Length Constraint - Length Constraint + 長度拘束 Radius Constraint - Radius Constraint + 半徑拘束 Diameter Constraint - Diameter Constraint + 直徑拘束 @@ -3675,7 +3675,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Angle Constraint - Angle Constraint + 角度拘束 @@ -3685,27 +3685,27 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Select Constraints - Select Constraints + 選擇拘束 Select Origin - Select Origin + 選擇原點 Select Horizontal Axis - Select Horizontal Axis + 選擇水平軸 Select Vertical Axis - Select Vertical Axis + 選取垂直軸 Layer - 圖層 + Layer @@ -3847,7 +3847,7 @@ Accepted combinations: two curves; an endpoint and a curve; two endpoints; two c Reverse direction - Reverse direction + 反轉方向 @@ -4353,7 +4353,7 @@ Defaults to: %N = %V Show coordinates beside cursor while editing - 編輯時在游標旁顯示座標 + Show coordinates beside cursor while editing @@ -4601,22 +4601,22 @@ However, no constraints linking to the endpoints were found. Check to toggle filters - 檢查以切換篩選過濾器 + Check to toggle filters Click to show filters - 點擊並顯示篩選選項 + 點選以顯示過濾器 Filters - 篩選條件 + 過濾器 Show/hide all listed constraints from 3D view. (same as ticking/unticking all listed constraints in list below) - 從 3D 視圖顯示/隱藏所有列出的約束。(與勾選/取消勾選下面列表中列出的所有約束相同) + Show/hide all listed constraints from 3D view. (same as ticking/unticking all listed constraints in list below) @@ -4641,7 +4641,7 @@ However, no constraints linking to the endpoints were found. Show only filtered Constraints - Show only filtered Constraints + 只顯示過濾後之拘束 @@ -4680,17 +4680,17 @@ However, no constraints linking to the endpoints were found. Check to toggle filters - 檢查以切換篩選過濾器 + Check to toggle filters Click to show filters - 點擊並顯示篩選選項 + 點選以顯示過濾器 Filters - 篩選條件 + 過濾器 @@ -4752,7 +4752,7 @@ However, no constraints linking to the endpoints were found. Arc - 圓弧 + @@ -4836,12 +4836,12 @@ However, no constraints linking to the endpoints were found. Click to select the conflicting constraints. - Click to select the conflicting constraints. + 點擊以選擇相衝突拘束。 Click to select the redundant constraints. - Click to select the redundant constraints. + 點擊以選擇冗餘拘束。 @@ -5978,7 +5978,7 @@ Eigen Sparse QR 算法針對稀疏矩陣進行了優化;通常更快 Grid settings - Grid settings + 網格設定 @@ -5993,7 +5993,7 @@ Eigen Sparse QR 算法針對稀疏矩陣進行了優化;通常更快 Grid Auto Spacing - Grid Auto Spacing + 網格自動間距 @@ -6022,17 +6022,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Grid display - Grid display + 顯示格線 Minor grid lines - Minor grid lines + 次要格線 Major grid lines - Major grid lines + 主要格線 @@ -6088,7 +6088,7 @@ The grid spacing change if it becomes smaller than this number of pixel. Grid auto spacing - Grid auto spacing + 網格自動間距 @@ -6098,7 +6098,7 @@ The grid spacing change if it becomes smaller than this number of pixel. Spacing - Spacing + 間距 @@ -6109,17 +6109,17 @@ The grid spacing change if it becomes smaller than this number of pixel. Notifications - + The Sketch has malformed constraints! The Sketch has malformed constraints! - + The Sketch has partially redundant constraints! The Sketch has partially redundant constraints! - + Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! Parabolas were migrated. Migrated files won't open in previous versions of FreeCAD!! @@ -6333,7 +6333,7 @@ The grid spacing change if it becomes smaller than this number of pixel. Value Error - Value Error + 錯誤的值 @@ -6441,7 +6441,7 @@ Points must be set closer than a fifth of the grid spacing to a grid line to sna Toggle grid - 切換格線 + Toggle grid diff --git a/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp b/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp index 3460a30833..b927ec8ac3 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp @@ -56,9 +56,10 @@ #include "ui_TaskSketcherConstraints.h" +// clang-format off using namespace SketcherGui; using namespace Gui::TaskView; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; // Translation block for context menu: do not remove #if 0 @@ -73,13 +74,9 @@ QT_TRANSLATE_NOOP("SketcherGui::ConstraintView", "Select Elements"); /// ACTSONSELECTION is a true/false value to activate the command only if a selection is made #define CONTEXT_ITEM(ICONSTR, NAMESTR, CMDSTR, FUNC, ACTSONSELECTION) \ QIcon icon_##FUNC(Gui::BitmapFactory().pixmap(ICONSTR)); \ - QAction* constr_##FUNC = menu.addAction( \ - icon_##FUNC, \ - tr(NAMESTR), \ - this, \ - SLOT(FUNC()), \ - QKeySequence(QString::fromUtf8( \ - Gui::Application::Instance->commandManager().getCommandByName(CMDSTR)->getAccel()))); \ + QAction* constr_##FUNC = menu.addAction(icon_##FUNC, tr(NAMESTR), this, SLOT(FUNC())); \ + constr_##FUNC->setShortcut(QKeySequence(QString::fromUtf8( \ + Gui::Application::Instance->commandManager().getCommandByName(CMDSTR)->getAccel()))); \ if (ACTSONSELECTION) \ constr_##FUNC->setEnabled(!items.isEmpty()); \ else \ @@ -586,24 +583,18 @@ void ConstraintView::contextMenuEvent(QContextMenuEvent* event) doSelectConstraints, true) - QAction* rename = menu.addAction(tr("Rename"), - this, - &ConstraintView::renameCurrentItem + QAction* rename = menu.addAction(tr("Rename"), this, &ConstraintView::renameCurrentItem); #ifndef Q_OS_MAC// on Mac F2 doesn't seem to trigger an edit signal - , - QKeySequence(Qt::Key_F2) + rename->setShortcut(QKeySequence(Qt::Key_F2)); #endif - ); rename->setEnabled(item != nullptr); QAction* center = menu.addAction(tr("Center sketch"), this, &ConstraintView::centerSelectedItems); center->setEnabled(item != nullptr); - QAction* remove = menu.addAction(tr("Delete"), - this, - &ConstraintView::deleteSelectedItems, - QKeySequence(QKeySequence::Delete)); + QAction* remove = menu.addAction(tr("Delete"), this, &ConstraintView::deleteSelectedItems); + remove->setShortcut(QKeySequence(QKeySequence::Delete)); remove->setEnabled(!items.isEmpty()); QAction* swap = menu.addAction( @@ -953,8 +944,10 @@ TaskSketcherConstraints::TaskSketcherConstraints(ViewProviderSketch* sketchView) this, &TaskSketcherConstraints::onFilterListItemChanged); + //NOLINTBEGIN connectionConstraintsChanged = sketchView->signalConstraintsChanged.connect( - boost::bind(&SketcherGui::TaskSketcherConstraints::slotConstraintsChanged, this)); + std::bind(&SketcherGui::TaskSketcherConstraints::slotConstraintsChanged, this)); + //NOLINTEND this->groupLayout()->addWidget(proxy); @@ -962,9 +955,11 @@ TaskSketcherConstraints::TaskSketcherConstraints(ViewProviderSketch* sketchView) ui->listWidgetConstraints->setStyleSheet(QString::fromLatin1("margin-top: 0px")); + //NOLINTBEGIN Gui::Application* app = Gui::Application::Instance; changedSketchView = app->signalChangedObject.connect( - boost::bind(&TaskSketcherConstraints::onChangedSketchView, this, bp::_1, bp::_2)); + std::bind(&TaskSketcherConstraints::onChangedSketchView, this, sp::_1, sp::_2)); + //NOLINTEND slotConstraintsChanged();// Populate constraints list // Initialize special filters @@ -1791,3 +1786,4 @@ void TaskSketcherConstraints::onFilterListItemChanged(QListWidgetItem* item) #include "moc_TaskSketcherConstraints.cpp" +// clang-format on diff --git a/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp b/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp index 378f25f6dc..cb1b9d079c 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp @@ -53,6 +53,7 @@ #include "ViewProviderSketch.h" #include "ui_TaskSketcherElements.h" +// clang-format off using namespace SketcherGui; using namespace Gui::TaskView; @@ -91,13 +92,9 @@ QT_TRANSLATE_NOOP("SketcherGui::ElementView", "Select Vertical Axis"); /// ACTSONSELECTION is a true/false value to activate the command only if a selection is made #define CONTEXT_ITEM(ICONSTR, NAMESTR, CMDSTR, FUNC, ACTSONSELECTION) \ QIcon icon_##FUNC(Gui::BitmapFactory().pixmap(ICONSTR)); \ - QAction* constr_##FUNC = menu.addAction( \ - icon_##FUNC, \ - tr(NAMESTR), \ - this, \ - SLOT(FUNC()), \ - QKeySequence(QString::fromUtf8( \ - Gui::Application::Instance->commandManager().getCommandByName(CMDSTR)->getAccel()))); \ + QAction* constr_##FUNC = menu.addAction(icon_##FUNC, tr(NAMESTR), this, SLOT(FUNC())); \ + constr_##FUNC->setShortcut(QKeySequence(QString::fromUtf8( \ + Gui::Application::Instance->commandManager().getCommandByName(CMDSTR)->getAccel()))); \ if (ACTSONSELECTION) \ constr_##FUNC->setEnabled(!items.isEmpty()); \ else \ @@ -686,8 +683,8 @@ void ElementView::contextMenuEvent(QContextMenuEvent* event) menu.addSeparator(); - QAction* remove = menu.addAction( - tr("Delete"), this, &ElementView::deleteSelectedItems, QKeySequence(QKeySequence::Delete)); + QAction* remove = menu.addAction(tr("Delete"), this, &ElementView::deleteSelectedItems); + remove->setShortcut(QKeySequence(QKeySequence::Delete)); remove->setEnabled(!items.isEmpty()); menu.menuAction()->setIconVisibleInMenu(true); @@ -1073,8 +1070,10 @@ void TaskSketcherElements::connectSignals() QObject::connect( ui->filterButton, &QToolButton::clicked, ui->filterButton, &QToolButton::showMenu); + //NOLINTBEGIN connectionElementsChanged = sketchView->signalElementsChanged.connect( - boost::bind(&SketcherGui::TaskSketcherElements::slotElementsChanged, this)); + std::bind(&SketcherGui::TaskSketcherElements::slotElementsChanged, this)); + //NOLINTEND } /* filter functions --------------------------------------------------- */ @@ -1543,7 +1542,7 @@ void TaskSketcherElements::leaveEvent(QEvent* event) ui->listWidgetElements->clearFocus(); } -void TaskSketcherElements::slotElementsChanged(void) +void TaskSketcherElements::slotElementsChanged() { assert(sketchView); // Build up ListView with the elements @@ -1827,3 +1826,4 @@ void TaskSketcherElements::onSettingsExtendedInformationChanged() #include "TaskSketcherElements.moc"// For Delegate as it is QOBJECT #include "moc_TaskSketcherElements.cpp" +// clang-format on diff --git a/src/Mod/Sketcher/Gui/TaskSketcherElements.h b/src/Mod/Sketcher/Gui/TaskSketcherElements.h index d810f05b47..53a62429f1 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherElements.h +++ b/src/Mod/Sketcher/Gui/TaskSketcherElements.h @@ -94,7 +94,7 @@ protected Q_SLOTS: // Other Commands void doToggleConstruction(); - // Acelerators + // Accelerators void doSelectConstraints(); void doSelectOrigin(); void doSelectHAxis(); diff --git a/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp b/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp index de341e89b3..e82b2ceced 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp @@ -35,9 +35,10 @@ #include "ui_TaskSketcherMessages.h" +// clang-format off using namespace SketcherGui; using namespace Gui::TaskView; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; TaskSketcherMessages::TaskSketcherMessages(ViewProviderSketch* sketchView) : TaskBox(Gui::BitmapFactory().pixmap("document-new"), tr("Solver messages"), true, nullptr) @@ -51,8 +52,10 @@ TaskSketcherMessages::TaskSketcherMessages(ViewProviderSketch* sketchView) this->groupLayout()->addWidget(proxy); - connectionSetUp = sketchView->signalSetUp.connect(boost::bind( - &SketcherGui::TaskSketcherMessages::slotSetUp, this, bp::_1, bp::_2, bp::_3, bp::_4)); + //NOLINTBEGIN + connectionSetUp = sketchView->signalSetUp.connect(std::bind( + &SketcherGui::TaskSketcherMessages::slotSetUp, this, sp::_1, sp::_2, sp::_3, sp::_4)); + //NOLINTEND ui->labelConstrainStatus->setOpenExternalLinks(false); @@ -187,3 +190,4 @@ void TaskSketcherMessages::onManualUpdateClicked(bool checked) } #include "moc_TaskSketcherMessages.cpp" +// clang-format on diff --git a/src/Mod/Sketcher/Gui/TaskSketcherValidation.h b/src/Mod/Sketcher/Gui/TaskSketcherValidation.h index 8141357901..310e1f046c 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherValidation.h +++ b/src/Mod/Sketcher/Gui/TaskSketcherValidation.h @@ -86,7 +86,7 @@ class TaskSketcherValidation: public Gui::TaskView::TaskDialog public: explicit TaskSketcherValidation(Sketcher::SketchObject* Obj); ~TaskSketcherValidation() override; - QDialogButtonBox::StandardButtons getStandardButtons(void) const override + QDialogButtonBox::StandardButtons getStandardButtons() const override { return QDialogButtonBox::Close; } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index d224179aa4..442d530793 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -72,11 +72,12 @@ #include "Workbench.h" +// clang-format off FC_LOG_LEVEL_INIT("Sketch", true, true) using namespace SketcherGui; using namespace Sketcher; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /************** ViewProviderSketch::ParameterObserver *********************/ @@ -3231,10 +3232,12 @@ bool ViewProviderSketch::setEdit(int ModNum) // a draw(true) via ViewProvider::UpdateData. getSketchObject()->solve(true); + //NOLINTBEGIN connectUndoDocument = getDocument()->signalUndoDocument.connect( - boost::bind(&ViewProviderSketch::slotUndoDocument, this, bp::_1)); + std::bind(&ViewProviderSketch::slotUndoDocument, this, sp::_1)); connectRedoDocument = getDocument()->signalRedoDocument.connect( - boost::bind(&ViewProviderSketch::slotRedoDocument, this, bp::_1)); + std::bind(&ViewProviderSketch::slotRedoDocument, this, sp::_1)); + //NOLINTEND // Enable solver initial solution update while dragging. getSketchObject()->setRecalculateInitialSolutionWhileMovingPoint( @@ -4137,3 +4140,4 @@ bool ViewProviderSketch::isInEditMode() const { return editCoinManager != nullptr; } +// clang-format on diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 86aff41e2d..9bf7c3e068 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -163,7 +163,7 @@ private: { public: explicit ParameterObserver(ViewProviderSketch& client); - ~ParameterObserver(); + ~ParameterObserver() override; void initParameters(); diff --git a/src/Mod/Spreadsheet/App/Cell.cpp b/src/Mod/Spreadsheet/App/Cell.cpp index 3c4075533b..a94bab0c7f 100644 --- a/src/Mod/Spreadsheet/App/Cell.cpp +++ b/src/Mod/Spreadsheet/App/Cell.cpp @@ -250,12 +250,7 @@ bool Cell::getStringContent(std::string & s, bool persistent) const s = "=" + expression->toString(persistent); else if (freecad_dynamic_cast(expression.get())) { s = static_cast(expression.get())->getText(); - char * end; - errno = 0; - double d = strtod(s.c_str(), &end); - (void)d; // fix gcc warning - if (!*end && errno == 0) - s = "'" + s; + s = "'" + s; } else if (freecad_dynamic_cast(expression.get())) s = "=" + expression->toString(); @@ -288,7 +283,7 @@ void Cell::setContent(const char * value) if (owner->sheet()->isRestoring()) { if (value[0] == '\0' || (value[0] == '\'' && value[1] == '\0')) return; - expression.reset(new App::StringExpression(owner->sheet(), value)); + expression = std::make_unique(owner->sheet(), value); setUsed(EXPRESSION_SET, true); return; } @@ -1016,7 +1011,7 @@ App::Color Cell::decodeColor(const std::string & color, const App::Color & defau } //roughly based on Spreadsheet/Gui/SheetModel.cpp -std::string Cell::getFormattedQuantity(void) +std::string Cell::getFormattedQuantity() { std::string result; QString qFormatted; diff --git a/src/Mod/Spreadsheet/App/PropertyRowHeightsPyImp.cpp b/src/Mod/Spreadsheet/App/PropertyRowHeightsPyImp.cpp index dd019a91fc..34bb95278d 100644 --- a/src/Mod/Spreadsheet/App/PropertyRowHeightsPyImp.cpp +++ b/src/Mod/Spreadsheet/App/PropertyRowHeightsPyImp.cpp @@ -31,7 +31,7 @@ using namespace Spreadsheet; // returns a string which represents the object e.g. when printed in python -std::string PropertyRowHeightsPy::representation(void) const +std::string PropertyRowHeightsPy::representation() const { return std::string(""); } diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index f1f89be227..07e0881e4e 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -51,7 +51,7 @@ FC_LOG_LEVEL_INIT("Spreadsheet", true, true) using namespace App; using namespace Base; using namespace Spreadsheet; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; TYPESYSTEM_SOURCE(Spreadsheet::PropertySheet , App::PropertyExpressionContainer) @@ -286,7 +286,7 @@ PropertySheet::~PropertySheet() clear(); } -App::Property *PropertySheet::Copy(void) const +App::Property *PropertySheet::Copy() const { return new PropertySheet(*this); } @@ -373,7 +373,7 @@ void PropertySheet::Save(Base::Writer &writer) const } writer.Stream() << writer.ind() << "" << std::endl; + << R"(" xlink="1">)" << std::endl; writer.incInd(); @@ -849,7 +849,7 @@ void PropertySheet::insertRows(int row, int count) boost::copy( data | boost::adaptors::map_keys, std::back_inserter(keys)); /* Sort them */ - std::sort(keys.begin(), keys.end(), boost::bind(&PropertySheet::rowSortFunc, this, bp::_1, bp::_2)); + std::sort(keys.begin(), keys.end(), std::bind(&PropertySheet::rowSortFunc, this, sp::_1, sp::_2)); //NOLINT MoveCellsExpressionVisitor visitor(*this, CellAddress(row, CellAddress::MAX_COLUMNS), count, 0); @@ -919,7 +919,7 @@ void PropertySheet::removeRows(int row, int count) boost::copy(data | boost::adaptors::map_keys, std::back_inserter(keys)); /* Sort them */ - std::sort(keys.begin(), keys.end(), boost::bind(&PropertySheet::rowSortFunc, this, bp::_1, bp::_2)); + std::sort(keys.begin(), keys.end(), std::bind(&PropertySheet::rowSortFunc, this, sp::_1, sp::_2)); MoveCellsExpressionVisitor visitor(*this, CellAddress(row + count - 1, CellAddress::MAX_COLUMNS), -count, 0); @@ -1047,7 +1047,7 @@ void PropertySheet::removeColumns(int col, int count) boost::copy(data | boost::adaptors::map_keys, std::back_inserter(keys)); /* Sort them */ - std::sort(keys.begin(), keys.end(), boost::bind(&PropertySheet::colSortFunc, this, bp::_1, bp::_2)); + std::sort(keys.begin(), keys.end(), std::bind(&PropertySheet::colSortFunc, this, sp::_1, sp::_2)); //NOLINT MoveCellsExpressionVisitor visitor(*this, CellAddress(CellAddress::MAX_ROWS, col + count - 1), 0, -count); @@ -1414,8 +1414,10 @@ void PropertySheet::slotChangedObject(const App::DocumentObject &obj, const App: } void PropertySheet::onAddDep(App::DocumentObject *obj) { - depConnections[obj] = obj->signalChanged.connect(boost::bind( - &PropertySheet::slotChangedObject, this, bp::_1, bp::_2)); + //NOLINTBEGIN + depConnections[obj] = obj->signalChanged.connect(std::bind( + &PropertySheet::slotChangedObject, this, sp::_1, sp::_2)); + //NOLINTEND } void PropertySheet::onRemoveDep(App::DocumentObject *obj) { diff --git a/src/Mod/Spreadsheet/App/PropertySheet.h b/src/Mod/Spreadsheet/App/PropertySheet.h index 32c1944695..bb3b55d4ab 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.h +++ b/src/Mod/Spreadsheet/App/PropertySheet.h @@ -65,7 +65,7 @@ public: void afterRestore() override; void onContainerRestored() override; - Property *Copy(void) const override; + Property *Copy() const override; void Paste(const Property &from) override; @@ -149,7 +149,7 @@ public: void removeColumns(int col, int count); - unsigned int getMemSize (void) const override; + unsigned int getMemSize () const override; bool mergeCells(App::CellAddress from, App::CellAddress to); @@ -171,7 +171,7 @@ public: void recomputeDependencies(App::CellAddress key); - PyObject *getPyObject(void) override; + PyObject *getPyObject() override; void setPyObject(PyObject *) override; PyObject *getPyValue(PyObject *key); diff --git a/src/Mod/Spreadsheet/App/PropertySheetPyImp.cpp b/src/Mod/Spreadsheet/App/PropertySheetPyImp.cpp index 2343bfb83a..8d735b8e27 100644 --- a/src/Mod/Spreadsheet/App/PropertySheetPyImp.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheetPyImp.cpp @@ -31,7 +31,7 @@ using namespace Spreadsheet; // returns a string which represents the object e.g. when printed in python -std::string PropertySheetPy::representation(void) const +std::string PropertySheetPy::representation() const { return std::string(""); } diff --git a/src/Mod/Spreadsheet/App/Sheet.cpp b/src/Mod/Spreadsheet/App/Sheet.cpp index e4f2288205..18decff708 100644 --- a/src/Mod/Spreadsheet/App/Sheet.cpp +++ b/src/Mod/Spreadsheet/App/Sheet.cpp @@ -408,7 +408,7 @@ void Sheet::setCell(CellAddress address, const char * value) * @returns The Python object. */ -PyObject *Sheet::getPyObject(void) +PyObject *Sheet::getPyObject() { if (PythonObject.is(Py::_None())){ // ref counter is set to 1 @@ -675,7 +675,7 @@ void Sheet::updateProperty(CellAddress key) std::string s; if (cell->getStringContent(s) && !s.empty()) - output.reset(new StringExpression(this, s)); + output = std::make_unique(this, s); else { this->removeDynamicProperty(key.toString().c_str()); return; @@ -901,7 +901,7 @@ void Sheet::updateBindings() * */ -DocumentObjectExecReturn *Sheet::execute(void) +DocumentObjectExecReturn *Sheet::execute() { updateBindings(); @@ -1057,7 +1057,7 @@ DocumentObjectExecReturn *Sheet::execute(void) * */ -short Sheet::mustExecute(void) const +short Sheet::mustExecute() const { if (!cellErrors.empty() || cells.isDirty()) return 1; diff --git a/src/Mod/Spreadsheet/App/Sheet.h b/src/Mod/Spreadsheet/App/Sheet.h index 2c4e6469fe..ba3cd3a9b5 100644 --- a/src/Mod/Spreadsheet/App/Sheet.h +++ b/src/Mod/Spreadsheet/App/Sheet.h @@ -58,10 +58,10 @@ class SpreadsheetExport PropertySpreadsheetQuantity : public App::PropertyQuanti { TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - PropertySpreadsheetQuantity(void){} + PropertySpreadsheetQuantity(){} ~PropertySpreadsheetQuantity() override{} - Property *Copy(void) const override; + Property *Copy() const override; void Paste(const Property &from) override; }; @@ -76,7 +76,7 @@ public: ~Sheet() override; /// returns the type name of the ViewProvider - const char* getViewProviderName(void) const override { + const char* getViewProviderName() const override { return "SpreadsheetGui::ViewProviderSheet"; } @@ -177,9 +177,9 @@ public: void getPropertyNamedList(std::vector > &List) const override; - short mustExecute(void) const override; + short mustExecute() const override; - App::DocumentObjectExecReturn *execute(void) override; + App::DocumentObjectExecReturn *execute() override; bool getCellAddress(const App::Property *prop, App::CellAddress &address); diff --git a/src/Mod/Spreadsheet/App/SheetPyImp.cpp b/src/Mod/Spreadsheet/App/SheetPyImp.cpp index 21662e76a7..fa472ca8ae 100644 --- a/src/Mod/Spreadsheet/App/SheetPyImp.cpp +++ b/src/Mod/Spreadsheet/App/SheetPyImp.cpp @@ -38,7 +38,7 @@ using namespace Spreadsheet; using namespace App; // returns a string which represents the object e.g. when printed in python -std::string SheetPy::representation(void) const +std::string SheetPy::representation() const { return std::string(""); } diff --git a/src/Mod/Spreadsheet/Gui/AppSpreadsheetGui.cpp b/src/Mod/Spreadsheet/Gui/AppSpreadsheetGui.cpp index 70b6327469..aa644f70de 100644 --- a/src/Mod/Spreadsheet/Gui/AppSpreadsheetGui.cpp +++ b/src/Mod/Spreadsheet/Gui/AppSpreadsheetGui.cpp @@ -42,7 +42,7 @@ #include "Workbench.h" // use a different name to CreateCommand() -void CreateSpreadsheetCommands(void); +void CreateSpreadsheetCommands(); void loadSpreadsheetResource() { diff --git a/src/Mod/Spreadsheet/Gui/Command.cpp b/src/Mod/Spreadsheet/Gui/Command.cpp index ef558b3cca..d78a2d8646 100644 --- a/src/Mod/Spreadsheet/Gui/Command.cpp +++ b/src/Mod/Spreadsheet/Gui/Command.cpp @@ -905,7 +905,7 @@ bool CmdCreateSpreadsheet::isActive() //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -void CreateSpreadsheetCommands(void) +void CreateSpreadsheetCommands() { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); diff --git a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_ca.ts b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_ca.ts index 3441412697..58fa7b5dd1 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_ca.ts +++ b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_ca.ts @@ -391,32 +391,32 @@ Bind Spreadsheet Cells - Bind Spreadsheet Cells + Enllaça cel·les del full de càlcul To cells: - To cells: + Fins les cel·les: Sheet: - Sheet: + Full: First cell in range - First cell in range + Primera cel·la del rang Last cell in range - Last cell in range + Última cel·la del rang Bind cells: - Bind cells: + Enllaça cel·les: @@ -449,7 +449,7 @@ The expression must evaluate to a string of some cell address. Which spread sheet to bind to - Which spread sheet to bind to + A quin full de càlcul s'ha de vincular @@ -467,7 +467,7 @@ Useful to avoid cyclic dependencies, but use with caution! Unbind - Unbind + Desvincula @@ -485,12 +485,12 @@ Useful to avoid cyclic dependencies, but use with caution! Setup Configuration Table - Setup Configuration Table + Configura la Taula de Configuració Cell range: - Cell range: + Rang de cel·les: @@ -537,7 +537,7 @@ by that property. Property: - Property: + Propietat: @@ -549,12 +549,12 @@ switch the design configuration. The property will be created if not exist. Group: - Group: + Grup: Optional property group name. - Optional property group name. + Camp opcional pel nom del Grup de Propietats. @@ -885,7 +885,7 @@ Spreadsheet.my_alias_name enlloc de Spreadsheet.B1 Bind cells - Bind cells + Vincula cel·les @@ -898,7 +898,7 @@ Vols continuar? Bind Spreadsheet Cells - Bind Spreadsheet Cells + Enllaça cel·les del full de càlcul @@ -910,7 +910,7 @@ Vols continuar? Unbind cells - Unbind cells + Desvincula cel·les @@ -923,7 +923,7 @@ Vols continuar? Display Settings - Display Settings + Mostra la configuració @@ -951,7 +951,7 @@ Defaults to: %V = %A Import/Export Settings - Import/Export Settings + Configuració d'Importació/Exportació @@ -994,7 +994,7 @@ Defaults to: %V = %A Setup configuration table - Setup configuration table + Configura la taula de configuració @@ -1007,65 +1007,65 @@ Defaults to: %V = %A Insert %n row(s) above - + Insereix %n fila/es a sobre - Insert %n row(s) above + Insereix %n files a sobre Insert %n row(s) below - + Insereix %n fila/es a sota - Insert %n row(s) below + Insereix %n files a sota Insert %n non-contiguous rows - + + Insereix %n fila no contingua Insereix %n files no contingues - Insert %n non-contiguous rows Remove row(s) - + Elimina fila/es - Remove row(s) + Elimina files Insert %n column(s) left - + Insereix %n columna/es a l'esquerra - Insert %n column(s) left + Insereix %n columnes a l'esquerra Insert %n column(s) right - + Insereix %n columna/es a la dreta - Insert %n column(s) right + Insereix %n columnes a la dreta Insert %n non-contiguous columns - + + Insereix %n columnes no contingues Insereix %n columnes no contingues - Insert %n non-contiguous columns Remove column(s) - + Elimina columna/es - Remove column(s) + Elimina les columnes @@ -1078,19 +1078,19 @@ Defaults to: %V = %A Recompute - Recompute + Recalcula Bind... - Bind... + Vincula... Configuration table... - Configuration table... + Taula de configuració... @@ -1102,7 +1102,7 @@ Defaults to: %V = %A Split cells - Split cells + Separa cel·les @@ -1152,7 +1152,7 @@ Defaults to: %V = %A &Spreadsheet - &Spreadsheet + &Full de càlcul @@ -1162,7 +1162,7 @@ Defaults to: %V = %A &Styles - &Styles + &Estils diff --git a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_de.ts b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_de.ts index 37ff6cba91..3e47d28503 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_de.ts +++ b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_de.ts @@ -605,7 +605,7 @@ switch the design configuration. The property will be created if not exist. Left - Links + Seitenansicht von links @@ -616,7 +616,7 @@ switch the design configuration. The property will be created if not exist. Right - Rechts + Seitenansicht von rechts @@ -626,12 +626,12 @@ switch the design configuration. The property will be created if not exist. Top - Oben + Draufsicht Bottom - Unten + Untersicht diff --git a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_fr.ts b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_fr.ts index 454003cf22..680dcb5bb2 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_fr.ts +++ b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_fr.ts @@ -6,7 +6,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -24,7 +24,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -42,7 +42,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -60,7 +60,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -78,7 +78,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -96,7 +96,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -114,7 +114,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -132,7 +132,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -150,7 +150,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -168,7 +168,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -186,7 +186,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -204,7 +204,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -222,7 +222,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -240,7 +240,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -258,7 +258,7 @@ Spreadsheet - Tableur + Spreadsheet @@ -740,7 +740,7 @@ Spreadsheet.my_alias_name instead of Spreadsheet.B1 Spreadsheet - Tableur + Spreadsheet @@ -917,7 +917,7 @@ Voulez-vous continuer ? Spreadsheet - Tableur + Spreadsheet @@ -1146,7 +1146,7 @@ Par défaut : %V = %A Spreadsheet - Tableur + Spreadsheet diff --git a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_nl.ts b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_nl.ts index 458005f557..65c5b97b77 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_nl.ts +++ b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_nl.ts @@ -491,7 +491,7 @@ Useful to avoid cyclic dependencies, but use with caution! Cell range: - Cell range: + Celbereik: @@ -925,7 +925,7 @@ Do you want to continue? Display Settings - Display Settings + Weergave-instellingen @@ -1009,17 +1009,17 @@ Defaults to: %V = %A Insert %n row(s) above - - Insert %n row(s) above - Insert %n row(s) above + + Voeg %n rij(en) hierboven in + Voeg %n rij(en) hierboven in Insert %n row(s) below - - Insert %n row(s) below - Insert %n row(s) below + + Voeg %n rij(en) hieronder in + Voeg %n rij(en) hieronder in @@ -1049,9 +1049,9 @@ Defaults to: %V = %A Insert %n column(s) right - - Insert %n column(s) right - Insert %n column(s) right + + Rechts %n kolom(men) invoegen + Rechts %n kolom(men) invoegen @@ -1092,7 +1092,7 @@ Defaults to: %V = %A Configuration table... - Configuration table... + Configuratie tabel... diff --git a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_zh-TW.ts b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_zh-TW.ts index 3a5027edab..4b78e0195a 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_zh-TW.ts +++ b/src/Mod/Spreadsheet/Gui/Resources/translations/Spreadsheet_zh-TW.ts @@ -47,12 +47,12 @@ Align center - 水平置中對齊 + 水平中央對齊 Center-align contents of selected cells - 所選單元之儲存格水平置中對齊 + 所選單元之儲存格水平中央對齊 @@ -119,7 +119,7 @@ Vertically center-align - 垂直置中對齊 + 垂直中央對齊 @@ -191,12 +191,12 @@ Set alias - 設定別名 + 設定名稱 Set alias for selected cell - 對所選之儲存格設定別名 + 對所選之儲存格設定名稱 @@ -391,83 +391,84 @@ Bind Spreadsheet Cells - 綁定試算表儲存格 + Bind Spreadsheet Cells To cells: - 到儲存格: + To cells: Sheet: - 工作表: + Sheet: First cell in range - 範圍內的第一個儲存格 + First cell in range Last cell in range - 範圍內的最後一個儲存格 + Last cell in range Bind cells: - 綁定儲存格: + Bind cells: Start cell address - 開始儲存格位址 + Start cell address End cell address - 結束儲存格位址 + End cell address Start cell address to bind to. Type '=' if you want to use an expression. The expression must evaluate to a string of some cell address. - 要綁定到的起始儲存格位址. -如果要使用表達式,請輸入'='. -該表達式的計算結果必須是一些儲存格位址的字串. + Start cell address to bind to. +Type '=' if you want to use an expression. +The expression must evaluate to a string of some cell address. End cell address to bind to. Type '=' if you want to use an expression. The expression must evaluate to a string of some cell address. - 要綁定到的結束儲存格位址. -如果要使用表達式,請輸入'='. -該表達式的計算結果必須是某個儲存格位址的字串. + End cell address to bind to. +Type '=' if you want to use an expression. +The expression must evaluate to a string of some cell address. Which spread sheet to bind to - 要綁定到哪個試算表 + Which spread sheet to bind to The dependency with the referenced spreadsheet will be hidden to the dependency checking. Useful to avoid cyclic dependencies, but use with caution! - 與引用試算表的依賴關係將隱藏到依賴關係檢查中。 -有助於避免循環依賴,但要謹慎使用! + The dependency with the referenced spreadsheet will +be hidden to the dependency checking. +Useful to avoid cyclic dependencies, but use with caution! Hide dependency of binding - 隱藏綁定的依賴 + Hide dependency of binding Unbind - 解除綁定 + Unbind @@ -485,12 +486,12 @@ Useful to avoid cyclic dependencies, but use with caution! Setup Configuration Table - 設定參數設定面板 + Setup Configuration Table Cell range: - 儲存格範圍: + Cell range: @@ -503,11 +504,14 @@ property for user to dynamically switch configuration. The first row of the range will be bound to whatever row (indirectly) selected by that property. - 起始儲存格位地址. + Starting cell address. -假設範圍的第一列包含一個屬性名稱列表,它將用於產生一個字串列表並綁定到給定的屬性,供使用者動態切換屬性. +The first column of the range is assumed to contain a list of configuration +names, which will be used to generate a string list and bind to the given +property for user to dynamically switch configuration. -範圍的第一行將綁定到該屬性選擇的任何行(間接). +The first row of the range will be bound to whatever row (indirectly) selected +by that property. @@ -521,38 +525,42 @@ property for user to dynamically switch configuration. The first row of the range will be bound to whatever row (indirectly) selected by that property. - 結束儲存格位地址. + Ending cell address. -假設範圍的第一列包含一個屬性名稱列表,它將用於產生一個字串列表並綁定到給定的屬性,供使用者動態切換屬性. +The first column of the range is assumed to contain a list of configuration +names, which will be used to generate a string list and bind to the given +property for user to dynamically switch configuration. -範圍的第一行將綁定到該屬性選擇的任何行(間接). +The first row of the range will be bound to whatever row (indirectly) selected +by that property. Property: - 屬性: + Property: Type in an expression to specify the object and property name to dynamically switch the design configuration. The property will be created if not exist. - 輸入表達式以指定對象和屬性名稱以動態切換設計屬性參數. 如果不存在,將建立該屬性. + Type in an expression to specify the object and property name to dynamically +switch the design configuration. The property will be created if not exist. Group: - 群組: + Group: Optional property group name. - 可選屬性組名稱. + Optional property group name. Unsetup - 取消設定 + Unsetup @@ -595,7 +603,7 @@ switch the design configuration. The property will be created if not exist. Horizontal - 水平 + 水平的 @@ -631,7 +639,7 @@ switch the design configuration. The property will be created if not exist. &Style - 樣式(&S) + 型式(&S) @@ -661,7 +669,7 @@ switch the design configuration. The property will be created if not exist. A&lias - 別名(&A) + 別名 @@ -878,33 +886,33 @@ Spreadsheet.my_alias_name取代Spreadsheet.B1 Bind cells - 綁定儲存格 + Bind cells Source and target cell count mismatch. Partial binding may still work. Do you want to continue? - 來源儲存格和目標儲存格計數不匹配. 部分綁定可能仍然有效. + Source and target cell count mismatch. Partial binding may still work. -你想繼續嗎? +Do you want to continue? Bind Spreadsheet Cells - 綁定試算表儲存格 + Bind Spreadsheet Cells Error: - 錯誤: + Error: Unbind cells - 解除綁定儲存格 + Unbind cells @@ -917,17 +925,17 @@ Do you want to continue? Display Settings - 顯示設定 + Display Settings If checked, use the custom presentation to display cell string. - 如果勾選,使用自定義文稿顯示單元格字串. + If checked, use the custom presentation to display cell string. Show alias in cell with format - 用格式顯示單元格中的別名 + Show alias in cell with format @@ -936,51 +944,51 @@ Defaults to: %V = %A %A - alias name %V - cell value - 自定義單元格字串的格式. -預設為: %V =%A + The format of the custom cell string presentation. +Defaults to: %V = %A -%A - 別名名稱 -%V - 單元格值 +%A - alias name +%V - cell value Import/Export Settings - 匯入/匯出 設定 + Import/Export Settings Delimiter Character: - 分隔字元: + Delimiter Character: <html><head/><body><p>Character to use as field delimiter. Default is tab, but also commonly used are commas (,) and semicolons (;). Select from the list or enter your own in the field. Must be a single character or the words <span style=" font-style:italic;">tab</span>, <span style=" font-style:italic;">comma</span>, or <span style=" font-style:italic;">semicolon</span>.</p></body></html> - <html><head/><body><p>用作欄位分隔的字元. 預設是定位字元,但也常用的是逗號(,)和分號(;). 從列表中選擇或在欄位中輸入您自己的. 必須是單個字元或字詞 <span style=" font-style:italic;">定位</span>、<span style=" font-style:italic;">逗號</span> 或 <span style =" font-style:italic;">分號</span>.</p></body></html> + <html><head/><body><p>Character to use as field delimiter. Default is tab, but also commonly used are commas (,) and semicolons (;). Select from the list or enter your own in the field. Must be a single character or the words <span style=" font-style:italic;">tab</span>, <span style=" font-style:italic;">comma</span>, or <span style=" font-style:italic;">semicolon</span>.</p></body></html> tab - 分頁 + tab Quote Character: - 引用字元: + Quote Character: <html><head/><body><p>Character used to delimit strings, typically is single quote (') or double quote (&quot;). Must be a single character.</p></body></html> - <html><head/><body><p>用於分隔字串的字元,通常是單引號 (') 或雙引號 (&quot;). 必須是單個字元.</p></body></html> + <html><head/><body><p>Character used to delimit strings, typically is single quote (') or double quote (&quot;). Must be a single character.</p></body></html> Escape Character: - 跳脫字元: + Escape Character: <html><head/><body><p>Escape character, typically the backslash (\), used to indicate special unprintable characters, e.g. \t = tab. Must be a single character.</p></body></html> - <html><head/><body><p>跳脫字元,通常是反斜線 (\),用於指示特殊的無法列印字元,例如 \t = 定位字元. 必須是單個字元.</p></body></html> + <html><head/><body><p>Escape character, typically the backslash (\), used to indicate special unprintable characters, e.g. \t = tab. Must be a single character.</p></body></html> @@ -988,12 +996,12 @@ Defaults to: %V = %A Setup configuration table - 設定參數設定面板 + Setup configuration table Unsetup configuration table - 取消設定參數設定面板 + Unsetup configuration table @@ -1001,57 +1009,57 @@ Defaults to: %V = %A Insert %n row(s) above - - 在上面插入 %n 行 + + Insert %n row(s) above Insert %n row(s) below - - 在下面插入 %n 行 + + Insert %n row(s) below Insert %n non-contiguous rows - - 插入 %n 個不連續的行 + + Insert %n non-contiguous rows Remove row(s) - - 刪除列 + + Remove row(s) Insert %n column(s) left - - 在左方插入 %n 行 + + Insert %n column(s) left Insert %n column(s) right - - 在右方插入 %n 行 + + Insert %n column(s) right Insert %n non-contiguous columns - - 插入 %n 個不連續的列 + + Insert %n non-contiguous columns Remove column(s) - - 刪除欄 + + Remove column(s) @@ -1064,19 +1072,19 @@ Defaults to: %V = %A Recompute - 重新計算 + Recompute Bind... - 綁定... + Bind... Configuration table... - 參數設定面板... + Configuration table... @@ -1088,7 +1096,7 @@ Defaults to: %V = %A Split cells - 分割儲存格 + Split cells @@ -1138,7 +1146,7 @@ Defaults to: %V = %A &Spreadsheet - 試算表(&S) + &Spreadsheet @@ -1148,7 +1156,7 @@ Defaults to: %V = %A &Styles - 樣式(&S) + &Styles diff --git a/src/Mod/Spreadsheet/Gui/SheetModel.cpp b/src/Mod/Spreadsheet/Gui/SheetModel.cpp index 86c18726c2..cc41d105d7 100644 --- a/src/Mod/Spreadsheet/Gui/SheetModel.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetModel.cpp @@ -41,14 +41,16 @@ using namespace SpreadsheetGui; using namespace Spreadsheet; using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; SheetModel::SheetModel(Sheet* _sheet, QObject* parent) : QAbstractTableModel(parent), sheet(_sheet) { + //NOLINTBEGIN cellUpdatedConnection = - sheet->cellUpdated.connect(bind(&SheetModel::cellUpdated, this, bp::_1)); + sheet->cellUpdated.connect(bind(&SheetModel::cellUpdated, this, sp::_1)); rangeUpdatedConnection = - sheet->rangeUpdated.connect(bind(&SheetModel::rangeUpdated, this, bp::_1)); + sheet->rangeUpdated.connect(bind(&SheetModel::rangeUpdated, this, sp::_1)); + //NOLINTEND ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/Mod/Spreadsheet"); diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp index bce7a09483..e7583f68c9 100644 --- a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp @@ -55,7 +55,7 @@ using namespace SpreadsheetGui; using namespace Spreadsheet; using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; void SheetViewHeader::mouseReleaseEvent(QMouseEvent *event) { @@ -370,7 +370,7 @@ void SheetTableView::removeRows() /* Make sure rows are sorted in descending order */ for (QModelIndexList::const_iterator it = rows.cbegin(); it != rows.cend(); ++it) sortedRows.push_back(it->row()); - std::sort(sortedRows.begin(), sortedRows.end(), std::greater()); + std::sort(sortedRows.begin(), sortedRows.end(), std::greater<>()); /* Remove rows */ Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Remove rows")); @@ -443,7 +443,7 @@ void SheetTableView::removeColumns() /* Make sure rows are sorted in descending order */ for (QModelIndexList::const_iterator it = cols.cbegin(); it != cols.cend(); ++it) sortedColumns.push_back(it->column()); - std::sort(sortedColumns.begin(), sortedColumns.end(), std::greater()); + std::sort(sortedColumns.begin(), sortedColumns.end(), std::greater<>()); /* Remove columns */ Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Remove rows")); diff --git a/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp b/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp index 9b90bcfe04..660b7a2d9d 100644 --- a/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp +++ b/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp @@ -55,7 +55,7 @@ using namespace SpreadsheetGui; using namespace Spreadsheet; using namespace Gui; using namespace App; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR SpreadsheetGui::SheetView */ @@ -95,11 +95,13 @@ SheetView::SheetView(Gui::Document *pcDocument, App::DocumentObject *docObj, QWi connect(delegate, &SpreadsheetDelegate::finishedWithKey, this, &SheetView::editingFinishedWithKey); connect(ui->cellContent, &ExpressionLineEdit::returnPressed, this, [this]() {confirmContentChanged(ui->cellContent->text()); }); - connect(ui->cellAlias, &ExpressionLineEdit::returnPressed, this, [this]() {confirmAliasChanged(ui->cellAlias->text()); }); + connect(ui->cellAlias, &ExpressionLineEdit::editingFinished, this, [this]() {confirmAliasChanged(ui->cellAlias->text()); }); connect(ui->cellAlias, &LineEdit::textEdited, this, &SheetView::aliasChanged); - columnWidthChangedConnection = sheet->columnWidthChanged.connect(bind(&SheetView::resizeColumn, this, bp::_1, bp::_2)); - rowHeightChangedConnection = sheet->rowHeightChanged.connect(bind(&SheetView::resizeRow, this, bp::_1, bp::_2)); + //NOLINTBEGIN + columnWidthChangedConnection = sheet->columnWidthChanged.connect(bind(&SheetView::resizeColumn, this, sp::_1, sp::_2)); + rowHeightChangedConnection = sheet->rowHeightChanged.connect(bind(&SheetView::resizeRow, this, sp::_1, sp::_2)); + //NOLINTEND connect( model, &QAbstractItemModel::dataChanged, this, &SheetView::modelUpdated); @@ -255,6 +257,8 @@ void SheetView::printPdf() QString::fromLatin1("%1 (*.pdf)").arg(tr("PDF file"))); if (!filename.isEmpty()) { QPrinter printer(QPrinter::ScreenResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setPageOrientation(QPageLayout::Landscape); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); diff --git a/src/Mod/Spreadsheet/Gui/SpreadsheetView.h b/src/Mod/Spreadsheet/Gui/SpreadsheetView.h index 46bb880409..44117e83f6 100644 --- a/src/Mod/Spreadsheet/Gui/SpreadsheetView.h +++ b/src/Mod/Spreadsheet/Gui/SpreadsheetView.h @@ -64,7 +64,7 @@ public: SheetView(Gui::Document* pcDocument, App::DocumentObject* docObj, QWidget* parent); ~SheetView() override; - const char *getName(void) const override {return "SheetView";} + const char *getName() const override {return "SheetView";} bool onMsg(const char* pMsg,const char** ppReturn) override; bool onHasMsg(const char* pMsg) const override; @@ -96,7 +96,7 @@ public: void deleteSelection(); - PyObject *getPyObject(void) override; + PyObject *getPyObject() override; void deleteSelf() override; diff --git a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp index 73607da6d9..4d9d70378f 100644 --- a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp +++ b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.cpp @@ -67,7 +67,7 @@ void ViewProviderSheet::setDisplayMode(const char* ModeName) ViewProviderDocumentObject::setDisplayMode(ModeName); } -std::vector ViewProviderSheet::getDisplayModes(void) const +std::vector ViewProviderSheet::getDisplayModes() const { std::vector StrList; StrList.emplace_back("Spreadsheet"); diff --git a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h index 62e5021588..c695e30dd8 100644 --- a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h +++ b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheet.h @@ -52,10 +52,10 @@ public: ~ViewProviderSheet() override; void setDisplayMode(const char* ModeName) override; - bool useNewSelectionModel(void) const override {return false;} + bool useNewSelectionModel() const override {return false;} std::vector getDisplayModes() const override; - bool doubleClicked(void) override; + bool doubleClicked() override; void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; Spreadsheet::Sheet* getSpreadsheetObject() const; @@ -66,7 +66,7 @@ public: bool setEdit(int ModNum) override; - bool isShow(void) const override { return true; } + bool isShow() const override { return true; } Gui::MDIView *getMDIView() const override; diff --git a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheetPyImp.cpp b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheetPyImp.cpp index 933d39b99a..6d60b1c504 100644 --- a/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheetPyImp.cpp +++ b/src/Mod/Spreadsheet/Gui/ViewProviderSpreadsheetPyImp.cpp @@ -30,7 +30,7 @@ using namespace SpreadsheetGui; // returns a string which represents the object e.g. when printed in python -std::string ViewProviderSpreadsheetPy::representation(void) const +std::string ViewProviderSpreadsheetPy::representation() const { return std::string(""); } diff --git a/src/Mod/Spreadsheet/TestSpreadsheet.py b/src/Mod/Spreadsheet/TestSpreadsheet.py index bd82a36c61..80b2ad3e04 100644 --- a/src/Mod/Spreadsheet/TestSpreadsheet.py +++ b/src/Mod/Spreadsheet/TestSpreadsheet.py @@ -1082,7 +1082,7 @@ class SpreadsheetCases(unittest.TestCase): self.doc.recompute() sheet.set('A3', '') sheet.set('A3', 'A1') - self.assertEqual(sheet.getContents('A3'), 'A1') + self.assertEqual(sheet.getContents('A3'), '\'A1') def testInsertRowsAlias(self): """ Regression test for issue 4429; insert rows to sheet with aliases""" @@ -1448,6 +1448,21 @@ class SpreadsheetCases(unittest.TestCase): self.assertEqual(sheet.getContents('A1'), '=1 == 1 ? 1 : 0') self.assertEqual(sheet.A1, 1) + def testIssue6395(self): + """ Testing strings are correctly saved and restored""" + sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet') + sheet.set('A1', '\'36C') # Use a string that may be parsed as a quantity + self.doc.recompute() + + self.doc.saveAs(self.TempPath + os.sep + 'string.fcstd') + FreeCAD.closeDocument(self.doc.Name) + + self.doc = FreeCAD.openDocument(self.TempPath + os.sep + 'string.fcstd') + + sheet = self.doc.getObject('Spreadsheet') + self.assertEqual(sheet.getContents('A1'), '\'36C') + self.assertEqual(sheet.get('A1'), '36C') + def tearDown(self): #closing doc FreeCAD.closeDocument(self.doc.Name) diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_ca.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_ca.ts index ff6196cd08..97bbdd3dca 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_ca.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_ca.ts @@ -91,12 +91,12 @@ By using ";;" to separate paths, you can add several folders here Displays help tips in the Start workbench Documents tab - Displays help tips in the Start workbench Documents tab + Mostra consells d'ajuda a la pestanya Documents del banc de treball Start Show scrollbars - Show scrollbars + Mostra les barres de desplaçament @@ -266,7 +266,7 @@ By using ";;" to separate paths, you can add several folders here If checked, will automatically close the Start page when FreeCAD launches - If checked, will automatically close the Start page when FreeCAD launches + Si està marcat, tancarà automàticament la pàgina d'inici quan s'iniciï FreeCAD @@ -393,27 +393,27 @@ By using ";;" to separate paths, you can add several folders here The <a href="http://forum.freecad.org">FreeCAD forum</a> is a great place to get help from other FreeCAD users and developers. The forum has many sections for different types of issues and discussion subjects. If in doubt, post in the more general <a href="https://forum.freecad.org/viewforum.php?f=3">Help on using FreeCAD</a> section. - The <a href="http://forum.freecad.org">FreeCAD forum</a> is a great place to get help from other FreeCAD users and developers. The forum has many sections for different types of issues and discussion subjects. If in doubt, post in the more general <a href="https://forum.freecad.org/viewforum.php?f=3">Help on using FreeCAD</a> section. + El <a href="http://forum.freecad.org">fòrum de FreeCAD</a> és un lloc fantàstic per obtenir ajuda d'altres usuaris i desenvolupadors de FreeCAD. El fòrum té moltes seccions per a diferents tipus de qüestions i temes de discussió. En cas de dubte, publica a la secció més general <a href="https://forum.freecad.org/viewforum.php?f=3">Ajuda per utilitzar FreeCAD</a>. If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! - If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! + Si és la primera vegada que publiques al fòrum, assegura't de llegir primer <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">les instruccions i normes</a>! FreeCAD also maintains a public <a href="https://www.freecad.org/tracker">bug tracker</a> where anybody can submit bugs and propose new features. To avoid causing extra work and give the best chances to see your bug solved, make sure you read the <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">bug submission guide</a> before posting. - FreeCAD also maintains a public <a href="https://www.freecad.org/tracker">bug tracker</a> where anybody can submit bugs and propose new features. To avoid causing extra work and give the best chances to see your bug solved, make sure you read the <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">bug submission guide</a> before posting. + FreeCAD també manté un <a href="https://www.freecad.org/tracker">seguidor d'errors</a> públic on qualsevol persona pot enviar errors i proposar noves funcions. Per evitar que es produeixi treball addicional i donar les millors oportunitats de veure el vostre error resolt, assegura'ts de llegir la <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">guia d'enviament d'errors </a> abans de publicar. Below are the latest changes added to the <a href="http://github.com/FreeCAD/FreeCAD/">FreeCAD source code</a>. These changes might not reflect yet in the FreeCAD version that you are currently running. Check the <a href="https://www.freecad.org/wiki/Downloads">available options</a> if you wish to obtain a development version. - Below are the latest changes added to the <a href="http://github.com/FreeCAD/FreeCAD/">FreeCAD source code</a>. These changes might not reflect yet in the FreeCAD version that you are currently running. Check the <a href="https://www.freecad.org/wiki/Downloads">available options</a> if you wish to obtain a development version. + A continuació es mostren els darrers canvis afegits al <a href="http://github.com/FreeCAD/FreeCAD/">codi font de FreeCAD</a>. És possible que aquests canvis encara no es reflecteixin a la versió de FreeCAD que estàs executant actualment. Comprova les <a href="https://www.freecad.org/wiki/Downloads">opcions disponibles</a> si vols obtenir una versió en desenvolupament. The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: - The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: + Els articles més recents al <a href="https://forum.freecad.org">fòrum FreeCAD</a>: diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_es-AR.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_es-AR.ts index c307a4b9b5..1d84e4715a 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_es-AR.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_es-AR.ts @@ -6,7 +6,7 @@ Start - Iniciar + Inicio @@ -251,12 +251,12 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí Switch workbench after loading - Cambiar el entorno de trabajo después de cargar + Cambiar el banco de trabajo después de cargar Choose which workbench to switch to after the program launches - Elegí el entorno de trabajo al que cambiar después del lanzamiento del programa + Elige el banco de trabajo al que cambiar después del lanzamiento del programa @@ -293,7 +293,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí Start - Iniciar + Inicio @@ -343,7 +343,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí This section contains documentation useful for FreeCAD users in general: a list of all the workbenches, detailed instructions on how to install and use the FreeCAD application, tutorials, and all you need to get started. - Esta sección contiene documentación útil para los usuarios de FreeCAD en general: una lista de todos los entornos de trabajo, instrucciones detalladas sobre cómo instalar y usar FreeCAD, tutoriales y todo lo que necesitás para empezar. + Esta sección contiene documentación útil para los usuarios de FreeCAD en general: una lista de todos los bancos de trabajo, instrucciones detalladas sobre cómo instalar y usar FreeCAD, tutoriales y todo lo que necesitás para empezar. @@ -378,7 +378,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí Workbenches documentation - Documentación de entornos de trabajo + Documentación de bancos de trabajo @@ -393,7 +393,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí The <a href="http://forum.freecad.org">FreeCAD forum</a> is a great place to get help from other FreeCAD users and developers. The forum has many sections for different types of issues and discussion subjects. If in doubt, post in the more general <a href="https://forum.freecad.org/viewforum.php?f=3">Help on using FreeCAD</a> section. - El <a href="http://forum.freecad.org"> foro de FreeCAD </a> es un excelente lugar para obtener ayuda de otros usuarios y desarrolladores de FreeCAD. El foro tiene muchas secciones para diferentes tipos de problemas y temas de discusión. En caso de duda, publique en la sección <a href="https://forum.freecad.org/viewforum.php?f=3"> Ayuda sobre el uso de FreeCAD </a>. + El foro <a href="http://forum.freecad.org">FreeCAD</a> es un buen lugar para obtener ayuda de otros usuarios y desarrolladores de FreeCAD. El foro tiene muchas secciones para diferentes tipos de temas y temas de discusión. En caso de duda, publique en la sección <a href="https://forum.freecad.org/viewforum.php?f=3">Ayuda general sobre el uso de FreeCAD</a>. @@ -428,7 +428,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí If not bundled with your FreeCAD version, install the FreeCAD documentation package to get documentation hubs, workbench help and individual command documentation without an internet connection. - Si no está incluido con tu versión de FreeCAD, instalá el paquete de documentación de FreeCAD para obtener los centros de documentación, la ayuda de entorno de trabajo y la documentación de comandos individuales sin conexión a Internet. + Si no está incluido con tu versión de FreeCAD, instalá el paquete de documentación de FreeCAD para obtener los centros de documentación, la ayuda del banco de trabajo y la documentación de comandos individuales sin conexión a Internet. @@ -506,7 +506,7 @@ Al usar ";;" para separar las rutas, puede añadir varias carpetas aquí Start - Iniciar + Inicio diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_eu.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_eu.ts index 101f7a4eec..376a9ca27a 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_eu.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_eu.ts @@ -70,8 +70,8 @@ An optional custom folder to be displayed at the bottom of the first page. By using ";;" to separate paths, you can add several folders here - Lehen orriaren beheko aldean bistaratuko den A¡aukerako karpeta pertsonalizatu bat. -Karpeta anitz gehitu daitezke hemen bideak bereizteko ";;" erabilita. + An optional custom folder to be displayed at the bottom of the first page. +By using ";;" to separate paths, you can add several folders here @@ -323,7 +323,7 @@ Karpeta anitz gehitu daitezke hemen bideak bereizteko ";;" erabilita. Adjust the number of recent files to be shown here in menu Edit -> Preferences -> General -> Size of recent file list - Egokitu hemen erakutsiko diren azken fitxategiak 'Editatu -> Hobespenak -> Orokorra -> Azken fitxategien zerrendaren luzera' menuan + Hemen erakutsiko diren azken fitxategiak antolatzeko, joan 'Editatu -> Hobespenak -> Orokorra -> Azken fitxategien zerrendaren luzera' menura @@ -448,7 +448,7 @@ Karpeta anitz gehitu daitezke hemen bideak bereizteko ";;" erabilita. You can configure a custom folder to display here in menu Edit -> Preferences -> Start -> Show additional folder - Karpeta pertsonalizatu bat konfiguratu daiteke hemen erakutsia izan dadin. Horretarako aukera: 'Editatu -> Hobespenak -> Hasiera -> Erakutsi karpeta gehigarria' + Hemen karpeta pertsonalizatu bat erakutsi daiteke. Hori konfiguratzeko: 'Editatu -> Hobespenak -> Hasiera -> Erakutsi karpeta gehigarria' diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_fr.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_fr.ts index 64548b4d33..2e2bd7147d 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_fr.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_fr.ts @@ -323,7 +323,7 @@ En utilisant ";;" pour séparer les chemins, vous pouvez ajouter plusieurs dossi Adjust the number of recent files to be shown here in menu Edit -> Preferences -> General -> Size of recent file list - Définissez le nombre de fichiers récents à montrer ici dans le menu Édition -> Préférences -> Général -> Taille de la liste des fichiers récents + Définissez le nombre de fichiers récents à montrer ici à partir du menu Édition → Préférences → Général → Taille de la liste des fichiers récents. diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_hr.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_hr.ts index b58ed06243..6ff101d4df 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_hr.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_hr.ts @@ -96,7 +96,7 @@ Koristite ";;" da biste odvojili putove, ovdje možete dodati nekoliko mapa Show scrollbars - Show scrollbars + Prikaži trake za pomeranje @@ -393,27 +393,27 @@ Koristite ";;" da biste odvojili putove, ovdje možete dodati nekoliko mapa The <a href="http://forum.freecad.org">FreeCAD forum</a> is a great place to get help from other FreeCAD users and developers. The forum has many sections for different types of issues and discussion subjects. If in doubt, post in the more general <a href="https://forum.freecad.org/viewforum.php?f=3">Help on using FreeCAD</a> section. - The <a href="http://forum.freecad.org">FreeCAD forum</a> is a great place to get help from other FreeCAD users and developers. The forum has many sections for different types of issues and discussion subjects. If in doubt, post in the more general <a href="https://forum.freecad.org/viewforum.php?f=3">Help on using FreeCAD</a> section. + <a href="http://forum.freecad.org">Forum FreeCAD-a</a> je sjajno mjesto za dobijanje pomoći od drugih korisnika i programera FreeCAD-a. Forum ima puno odjeljaka za različite vrste problema i teme diskusije. Ako imaš nedoumice, objavi u glavnom odeljku <a href="https://forum.freecad.org/viewforum.php?f=3">Pomoć pri korištenju FreeCAD-a</a>. If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! - If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! + Ako prvi put postavljate na forumu, budite sigurni da <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">Prvo pročitati upute!</a>! FreeCAD also maintains a public <a href="https://www.freecad.org/tracker">bug tracker</a> where anybody can submit bugs and propose new features. To avoid causing extra work and give the best chances to see your bug solved, make sure you read the <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">bug submission guide</a> before posting. - FreeCAD also maintains a public <a href="https://www.freecad.org/tracker">bug tracker</a> where anybody can submit bugs and propose new features. To avoid causing extra work and give the best chances to see your bug solved, make sure you read the <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">bug submission guide</a> before posting. + FreeCAD održava javno <a href="https://www.freecad.org/tracker">traženje grešaka</a> gdje svatko može slati greške i predložiti nove značajke programa. Da izbjegnete dodatni rad i dobijete najbolju šansu da vaša pronađena greška bude riješena, obavezno pročitajte <a href="https://forum.freecad.org/viewtopic.php?f=3&t=5236">vodič prijave greške</a> prije "postanja". Below are the latest changes added to the <a href="http://github.com/FreeCAD/FreeCAD/">FreeCAD source code</a>. These changes might not reflect yet in the FreeCAD version that you are currently running. Check the <a href="https://www.freecad.org/wiki/Downloads">available options</a> if you wish to obtain a development version. - Below are the latest changes added to the <a href="http://github.com/FreeCAD/FreeCAD/">FreeCAD source code</a>. These changes might not reflect yet in the FreeCAD version that you are currently running. Check the <a href="https://www.freecad.org/wiki/Downloads">available options</a> if you wish to obtain a development version. + Ovdje su najnovije dodane promjene <a href="http://github.com/FreeCAD/FreeCAD/">FreeCAD izvorni kod</a>. Ove promjene možda još ne možete koristiti u FreeCAD verziji koju trenutno koristite. Provjerite dostupne opcije <a href="https://www.freecad.org/wiki/Downloads"></a> ako želite da koristite verziju u razvoju. The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: - The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: + Najnoviji postovi na <a href="https://forum.freecad.org">FreeCAD forumu</a>: diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_nl.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_nl.ts index 0b8193b3bd..f22fb36c64 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_nl.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_nl.ts @@ -413,7 +413,7 @@ Door ";" te gebruiken kan je ook meerdere mappen toevoegen The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: - The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: + De nieuwste berichten op het <a href="https://forum.freecad.org">FreeCAD forum</a>: diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_sl.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_sl.ts index f1198f71d4..adc6eed4dd 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_sl.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_sl.ts @@ -323,7 +323,7 @@ Z ločevanjem poti z znaki ";;", lahko dodate več map Adjust the number of recent files to be shown here in menu Edit -> Preferences -> General -> Size of recent file list - Prilagodi število tukaj prikazanih nedavnih datotek v meniju Uredi -> Prednastavitve -> Splošne nastavitve -> Velikost seznama nedavnih datotek + Število tukaj prikazanih nedavnih datotek lahko prilagodite v meniju Uredi -> Prednastavitve -> Splošne nastavitve -> Velikost seznama nedavnih datotek diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_sv-SE.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_sv-SE.ts index 1ba2925639..6b92041e52 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_sv-SE.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_sv-SE.ts @@ -313,7 +313,7 @@ By using ";;" to separate paths, you can add several folders here Recent files - Nyligen öppnade filer + Senaste filer diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_tr.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_tr.ts index 291f427419..fa9a652f4f 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_tr.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_tr.ts @@ -96,7 +96,7 @@ Yolları ayırmak için ";;" (çift noktalı virgül) kullanarak birden fazla di Show scrollbars - Show scrollbars + Kaydırma çubuklarını göster @@ -398,7 +398,7 @@ Yolları ayırmak için ";;" (çift noktalı virgül) kullanarak birden fazla di If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! - If it is the first time you are posting on the forum, be sure to <a href="https://forum.freecad.org/viewtopic.php?f=3&t=2264">read the guidelines</a> first! + Eğer bu, forumda yayınlayacağınız ilk gönderi ise, öncelikle < A href="http://forum.freecadweb.org/viewtopic.php?f=3&t=2264" > yönergeleri okuyun! < / a >! @@ -413,7 +413,7 @@ Yolları ayırmak için ";;" (çift noktalı virgül) kullanarak birden fazla di The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: - The latest posts on the <a href="https://forum.freecad.org">FreeCAD forum</a>: + <a href="https://forum.freecad.org">FreeCAD forum</a> Sayfasındaki son gönderiler: diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage_zh-TW.ts b/src/Mod/Start/Gui/Resources/translations/StartPage_zh-TW.ts index 8e7e44c2ba..2e6a4b6e96 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage_zh-TW.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage_zh-TW.ts @@ -6,7 +6,7 @@ Start - 起點 + Start @@ -16,7 +16,7 @@ Displays the start page in a browser view - 在瀏覽頁面中顯示開始頁面 + Displays the start page in a browser view @@ -34,7 +34,7 @@ An optional HTML template that will be used instead of the default start page. - An optional HTML template that will be used instead of the default start page. + An optional HTML template that will be used instead of the default start page. @@ -49,7 +49,7 @@ Shows a notepad next to the file thumbnails, where you can keep notes across sessions - Shows a notepad next to the file thumbnails, where you can keep notes across sessions + Shows a notepad next to the file thumbnails, where you can keep notes across sessions @@ -70,7 +70,7 @@ An optional custom folder to be displayed at the bottom of the first page. By using ";;" to separate paths, you can add several folders here - An optional custom folder to be displayed at the bottom of the first page. + An optional custom folder to be displayed at the bottom of the first page. By using ";;" to separate paths, you can add several folders here @@ -86,12 +86,12 @@ By using ";;" to separate paths, you can add several folders here Show tips - 顯示提示 + Show tips Displays help tips in the Start workbench Documents tab - Displays help tips in the Start workbench Documents tab + Displays help tips in the Start workbench Documents tab @@ -111,7 +111,7 @@ By using ";;" to separate paths, you can add several folders here If this is checked and a style sheet is specified in General preferences, it will be used and override the colors below - If this is checked and a style sheet is specified in General preferences, it will be used and override the colors below + If this is checked and a style sheet is specified in General preferences, it will be used and override the colors below @@ -126,12 +126,12 @@ By using ";;" to separate paths, you can add several folders here Background color down gradient - 背景色調梯度 + Background color down gradient The down gradient for the background color (currently unsupported) - The down gradient for the background color (currently unsupported) + The down gradient for the background color (currently unsupported) @@ -141,7 +141,7 @@ By using ";;" to separate paths, you can add several folders here An optional image to display as background - An optional image to display as background + An optional image to display as background @@ -161,7 +161,7 @@ By using ";;" to separate paths, you can add several folders here The background of the main start page area - The background of the main start page area + The background of the main start page area @@ -206,7 +206,7 @@ By using ";;" to separate paths, you can add several folders here Arial,Helvetica,sans - Arial,Helvetica,sans + Arial,Helvetica,sans @@ -241,7 +241,7 @@ By using ";;" to separate paths, you can add several folders here If this is selected, the 'New File' icon shows a gradient icon instead of the normal icon - If this is selected, the 'New File' icon shows a gradient icon instead of the normal icon + If this is selected, the 'New File' icon shows a gradient icon instead of the normal icon @@ -256,7 +256,7 @@ By using ";;" to separate paths, you can add several folders here Choose which workbench to switch to after the program launches - Choose which workbench to switch to after the program launches + Choose which workbench to switch to after the program launches @@ -266,17 +266,17 @@ By using ";;" to separate paths, you can add several folders here If checked, will automatically close the Start page when FreeCAD launches - If checked, will automatically close the Start page when FreeCAD launches + If checked, will automatically close the Start page when FreeCAD launches Close and switch on opening file - 關閉並切換到開啟文件 + Close and switch on opening file If application is started by opening a file, apply the two settings above - If application is started by opening a file, apply the two settings above + If application is started by opening a file, apply the two settings above @@ -293,7 +293,7 @@ By using ";;" to separate paths, you can add several folders here Start - 起點 + Start @@ -303,7 +303,7 @@ By using ";;" to separate paths, you can add several folders here Help - 求助說明 + 説明 @@ -343,7 +343,7 @@ By using ";;" to separate paths, you can add several folders here This section contains documentation useful for FreeCAD users in general: a list of all the workbenches, detailed instructions on how to install and use the FreeCAD application, tutorials, and all you need to get started. - This section contains documentation useful for FreeCAD users in general: a list of all the workbenches, detailed instructions on how to install and use the FreeCAD application, tutorials, and all you need to get started. + This section contains documentation useful for FreeCAD users in general: a list of all the workbenches, detailed instructions on how to install and use the FreeCAD application, tutorials, and all you need to get started. @@ -353,7 +353,7 @@ By using ";;" to separate paths, you can add several folders here This section gathers documentation for advanced users and people interested in writing python scripts. You will also find there a repository of macros, instructions on how to install and use them, and more information about customizing FreeCAD to your specific needs. - This section gathers documentation for advanced users and people interested in writing python scripts. You will also find there a repository of macros, instructions on how to install and use them, and more information about customizing FreeCAD to your specific needs. + This section gathers documentation for advanced users and people interested in writing python scripts. You will also find there a repository of macros, instructions on how to install and use them, and more information about customizing FreeCAD to your specific needs. @@ -363,7 +363,7 @@ By using ";;" to separate paths, you can add several folders here This section contains material for developers: How to compile FreeCAD yourself, how the FreeCAD source code is structured + how to navigate in it, how to develop new workbenches and/or embed FreeCAD in your own application. - This section contains material for developers: How to compile FreeCAD yourself, how the FreeCAD source code is structured + how to navigate in it, how to develop new workbenches and/or embed FreeCAD in your own application. + This section contains material for developers: How to compile FreeCAD yourself, how the FreeCAD source code is structured + how to navigate in it, how to develop new workbenches and/or embed FreeCAD in your own application. @@ -373,7 +373,7 @@ By using ";;" to separate paths, you can add several folders here The FreeCAD manual is another, more linear way to present the information contained in this wiki. It is made to be read like a book, and will gently introduce you to many other pages from the hubs above. <a href="https://www.gitbook.com/book/yorikvanhavre/a-freecad-manual/details">e-book versions</a> are also available. - The FreeCAD manual is another, more linear way to present the information contained in this wiki. It is made to be read like a book, and will gently introduce you to many other pages from the hubs above. <a href="https://www.gitbook.com/book/yorikvanhavre/a-freecad-manual/details">e-book versions</a> are also available. + The FreeCAD manual is another, more linear way to present the information contained in this wiki. It is made to be read like a book, and will gently introduce you to many other pages from the hubs above. <a href="https://www.gitbook.com/book/yorikvanhavre/a-freecad-manual/details">e-book versions</a> are also available. @@ -383,7 +383,7 @@ By using ";;" to separate paths, you can add several folders here These are the help pages of all the workbenches currently installed on this computer. - These are the help pages of all the workbenches currently installed on this computer. + These are the help pages of all the workbenches currently installed on this computer. @@ -423,17 +423,17 @@ By using ";;" to separate paths, you can add several folders here Below is a list of available extra workbenches that can be added to your FreeCAD installation. Browse and install them from menu Tools -> Addons manager. You can learn more about any of them by clicking the links below. - Below is a list of available extra workbenches that can be added to your FreeCAD installation. Browse and install them from menu Tools -> Addons manager. You can learn more about any of them by clicking the links below. + Below is a list of available extra workbenches that can be added to your FreeCAD installation. Browse and install them from menu Tools -> Addons manager. You can learn more about any of them by clicking the links below. If not bundled with your FreeCAD version, install the FreeCAD documentation package to get documentation hubs, workbench help and individual command documentation without an internet connection. - If not bundled with your FreeCAD version, install the FreeCAD documentation package to get documentation hubs, workbench help and individual command documentation without an internet connection. + If not bundled with your FreeCAD version, install the FreeCAD documentation package to get documentation hubs, workbench help and individual command documentation without an internet connection. Cannot fetch information from GitHub. <a href="EnableDownload.py">Authorize FreeCAD to access the internet</a> and reload the Start page. - Cannot fetch information from GitHub. <a href="EnableDownload.py">Authorize FreeCAD to access the internet</a> and reload the Start page. + Cannot fetch information from GitHub. <a href="EnableDownload.py">Authorize FreeCAD to access the internet</a> and reload the Start page. @@ -448,7 +448,7 @@ By using ";;" to separate paths, you can add several folders here You can configure a custom folder to display here in menu Edit -> Preferences -> Start -> Show additional folder - You can configure a custom folder to display here in menu Edit -> Preferences -> Start -> Show additional folder + You can configure a custom folder to display here in menu Edit -> Preferences -> Start -> Show additional folder @@ -478,7 +478,7 @@ By using ";;" to separate paths, you can add several folders here To open any of the links above in your desktop browser, Right-click -> Open in external browser - To open any of the links above in your desktop browser, Right-click -> Open in external browser + To open any of the links above in your desktop browser, Right-click -> Open in external browser @@ -506,7 +506,7 @@ By using ";;" to separate paths, you can add several folders here Start - 起點 + Start diff --git a/src/Mod/Start/StartPage/LoadCustom.py b/src/Mod/Start/StartPage/LoadCustom.py index 803e678be0..e2401b2903 100644 --- a/src/Mod/Start/StartPage/LoadCustom.py +++ b/src/Mod/Start/StartPage/LoadCustom.py @@ -1,23 +1,23 @@ -#*************************************************************************** -#* Copyright (c) 2018 Yorik van Havre * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library 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 * -#* * -#*************************************************************************** +# *************************************************************************** +# * Copyright (c) 2018 Yorik van Havre * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library 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 * +# * * +# *************************************************************************** import os import FreeCAD @@ -27,7 +27,9 @@ from urllib.parse import unquote # filename will be given before this script is run -cfolders = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("ShowCustomFolder","") +cfolders = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString( + "ShowCustomFolder", "" +) if cfolders: dirnumber = int(filename[0]) filename = filename[2:] @@ -36,8 +38,22 @@ if cfolders: cfolder = os.path.dirname(cfolder) f = unquote(filename).replace("+", " ") ext = os.path.splitext(filename)[1].lower().strip(".") - mod = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("DefaultImport"+ext,"") - FreeCADGui.loadFile(os.path.join(cfolder, f),mod) + mod = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString( + "DefaultImport" + ext, "" + ) + if ( + ext.lower() in ("fcstd", "stp", "step", "iges", "igs") + ): + FreeCAD.loadFile(os.path.join(cfolder, f), mod) + elif ( + ext.lower() in ("bmp", "cur", "gif", "ico", "pbm", "pgm", "png", "jpg", + "jpeg", "ppm", "svg", "svgz", "xbm", "xpm") + ): + FreeCAD.newDocument() + FreeCADGui.insert(os.path.join(cfolder, f), FreeCAD.activeDocument().Name) + FreeCAD.activeDocument().recompute() + else: + FreeCADGui.loadFile(os.path.join(cfolder, f), mod) FreeCADGui.activeDocument().sendMsgToViews("ViewFit") from StartPage import StartPage diff --git a/src/Mod/Start/StartPage/LoadMRU.py b/src/Mod/Start/StartPage/LoadMRU.py index 95421f095e..4de8c69c8c 100644 --- a/src/Mod/Start/StartPage/LoadMRU.py +++ b/src/Mod/Start/StartPage/LoadMRU.py @@ -27,8 +27,23 @@ import FreeCADGui rf = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/RecentFiles") filename = rf.GetString("MRU"+str(MRU)) ext = os.path.splitext(filename)[1].lower().strip(".") -mod = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString("DefaultImport"+ext, "") -FreeCADGui.loadFile(filename, mod) +mod = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Start").GetString( + "DefaultImport"+ext, "" +) +if ( + ext.lower() in ("fcstd", "stp", "step", "iges", "igs") +): + FreeCAD.loadFile(filename, mod) +elif ( + ext.lower() in ("bmp", "cur", "gif", "ico", "pbm", "pgm", "png", "jpg", + "jpeg", "ppm", "svg", "svgz", "xbm", "xpm") +): + FreeCAD.newDocument() + FreeCADGui.insert(filename, FreeCAD.activeDocument().Name) + FreeCAD.activeDocument().recompute() +else: + FreeCADGui.loadFile(filename, mod) +FreeCADGui.activeDocument().sendMsgToViews("ViewFit") from StartPage import StartPage StartPage.postStart() diff --git a/src/Mod/Start/StartPage/StartPage.html b/src/Mod/Start/StartPage/StartPage.html index 1a6eb0c637..12c6ab2446 100644 --- a/src/Mod/Start/StartPage/StartPage.html +++ b/src/Mod/Start/StartPage/StartPage.html @@ -11,7 +11,7 @@
- VERSIONSTRING + VERSIONSTRING T_VTOOLTIP @@ -21,34 +21,35 @@
  • T_DOCUMENTS
  • T_HELP
  • T_ACTIVITY
  • -
  • BLOG
  • +
  • BLOG
  • - +
    SECTION_RECENTFILES - +
    T_TIP: T_ADJUSTRECENT
    - + SECTION_EXAMPLES - + SECTION_CUSTOM - +
    T_CUSTOM
    - +
    - +

    T_NOTES

    - + - +
    @@ -99,9 +100,9 @@

    T_COMMUNITYHELP

    T_DESCR_COMMUNITYHELP1

    - +

    T_DESCR_COMMUNITYHELP2

    - +

    T_DESCR_COMMUNITYHELP3

    @@ -157,11 +158,6 @@
    - - - diff --git a/src/Mod/Start/StartPage/StartPage.py b/src/Mod/Start/StartPage/StartPage.py index 5fbdeba26c..24e78efd5f 100644 --- a/src/Mod/Start/StartPage/StartPage.py +++ b/src/Mod/Start/StartPage/StartPage.py @@ -151,7 +151,7 @@ def getInfo(filename): # check for meta-file if it's really a FreeCAD document if files[0] == "Document.xml": try: - doc = str(zfile.read(files[0])) + doc = zfile.read(files[0]).decode('utf-8') except OSError as e: print ("Fail to load corrupted FCStd file: '{0}' with this error: {1}".format(filename, str(e))) return None diff --git a/src/Mod/Surface/App/Blending/BlendCurve.cpp b/src/Mod/Surface/App/Blending/BlendCurve.cpp index 7af7a67ab0..d6396f2187 100644 --- a/src/Mod/Surface/App/Blending/BlendCurve.cpp +++ b/src/Mod/Surface/App/Blending/BlendCurve.cpp @@ -131,9 +131,8 @@ void BlendCurve::setSize(int i, double f, bool relative) double size = f; try { if (relative) { - double nb_poles = blendPoints.front().nbVectors() + blendPoints[1].nbVectors(); Base::Vector3d diff = blendPoints[1].vectors[0] - blendPoints[0].vectors[0]; - size = size * diff.Length() / nb_poles; + size = size * diff.Length(); } blendPoints[i].setSize(size); } diff --git a/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp b/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp index 0a6f4a18a9..0964bcdc2c 100644 --- a/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp +++ b/src/Mod/Surface/App/Blending/FeatureBlendCurve.cpp @@ -127,7 +127,7 @@ BlendPoint FeatureBlendCurve::GetBlendPoint(App::PropertyLinkSub &link, App::Pro return bp; } -App::DocumentObjectExecReturn *FeatureBlendCurve::execute(void) +App::DocumentObjectExecReturn *FeatureBlendCurve::execute() { BlendPoint bp1 = GetBlendPoint(StartEdge, StartParameter, StartContinuity); BlendPoint bp2 = GetBlendPoint(EndEdge, EndParameter, EndContinuity); diff --git a/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.cpp b/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.cpp index 333c4c6051..b64893f76a 100644 --- a/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.cpp +++ b/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.cpp @@ -32,7 +32,7 @@ namespace SurfaceGui QIcon ViewProviderBlendCurve::getIcon() const { - return Gui::BitmapFactory().pixmap("BlendCurve"); + return Gui::BitmapFactory().pixmap("Surface_BlendCurve"); } }//namespace SurfaceGui diff --git a/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.h b/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.h index 09e4b70c89..88f8d6d155 100644 --- a/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.h +++ b/src/Mod/Surface/Gui/Blending/ViewProviderBlendCurve.h @@ -30,10 +30,10 @@ namespace SurfaceGui class ViewProviderBlendCurve: public PartGui::ViewProviderSpline { - PROPERTY_HEADER(SurfaceGui::ViewProviderBlendCurve); + PROPERTY_HEADER_WITH_OVERRIDE(SurfaceGui::ViewProviderBlendCurve); public: - QIcon getIcon() const; + QIcon getIcon() const override; }; }//namespace SurfaceGui diff --git a/src/Mod/Surface/Gui/Command.cpp b/src/Mod/Surface/Gui/Command.cpp index ff650769aa..7a914f8fa0 100644 --- a/src/Mod/Surface/Gui/Command.cpp +++ b/src/Mod/Surface/Gui/Command.cpp @@ -209,38 +209,7 @@ bool CmdSurfaceCurveOnMesh::isActive() } //=========================================================================== -// CmdBlendSurface THIS IS THE BLEND SURFACE COMMAND -//=========================================================================== -DEF_STD_CMD_A(CmdBlendSurface) - -CmdBlendSurface::CmdBlendSurface() - : Command("Surface_BlendSurface") -{ - sAppModule = "Surface"; - sGroup = QT_TR_NOOP("Surface"); - sMenuText = QT_TR_NOOP("Blend Surface"); - sToolTipText = QT_TR_NOOP("This is the blend Surface feature"); - sStatusTip = sToolTipText; - sWhatsThis = "BlendSurface"; - sPixmap = "BlendSurface"; -} - -void CmdBlendSurface::activated(int) -{ - -} - -bool CmdBlendSurface::isActive() -{ - return true; -} - - - - - -//=========================================================================== -// CmdBlendCurve THIS IS THE BLEND CURVE COMMAND +// CmdBlendCurve : Blend Curve Command //=========================================================================== DEF_STD_CMD_A(CmdBlendCurve) @@ -253,43 +222,16 @@ CmdBlendCurve::CmdBlendCurve() sToolTipText = QT_TR_NOOP("Join two edges with high continuity"); sStatusTip = sToolTipText; sWhatsThis = "BlendCurve"; - sPixmap = "BlendCurve"; + sPixmap = "Surface_BlendCurve"; } void CmdBlendCurve::activated(int) { - // To do add pickpoints to parameters std::string docName = App::GetApplication().getActiveDocument()->getName(); std::string objName[2]; std::string edge[2]; std::string featName = getUniqueObjectName("BlendCurve"); - std::vector sel = getSelection().getSelectionEx(0, Part::Feature::getClassTypeId()); - //std::vector pickedPoints = sel[0].getPickedPoints(); - //App::DocumentObject *obj1 = sel[0].getObject(); - //App::DocumentObject *obj2 = sel[1].getObject(); - //std::vector edge1SubName = sel[0].getSubNames(); - //std::vector edge2SubName = sel[1].getSubNames(); - - //TopoDS_Shape edge1 = static_cast(obj1) - // ->Shape.getShape() - // .getSubShape(edge1SubName[0].c_str()); - //if (edge1.IsNull() || edge1.ShapeType() != TopAbs_EDGE) - // return; - //TopoDS_Shape edge2 = static_cast(obj2) - // ->Shape.getShape() - // .getSubShape(edge2SubName[0].c_str()); - //if (edge2.IsNull() || edge2.ShapeType() != TopAbs_EDGE) - // return; - - //const TopoDS_Edge &e1 = TopoDS::Edge(edge1); - //BRepAdaptor_Curve adapt1(e1); - //gp_Pnt pnt1(pickedPoints[0].x, pickedPoints[0].y, pickedPoints[0].z); - - //GeomAdaptor_Curve geomCurve = adapt1.Curve(); - //GeomAPI_ProjectPointOnCurve geomAPI(pnt1, geomCurve.Curve()); - //double par = geomAPI.LowerDistanceParameter(); - - //edge2.Curve.closestParameter(vec, par) + std::vector sel = getSelection().getSelectionEx(nullptr, Part::Feature::getClassTypeId()); objName[0] = sel[0].getFeatName(); edge[0] = sel[0].getSubNames()[0]; @@ -316,10 +258,6 @@ bool CmdBlendCurve::isActive() return edgeFilter.match(); } - - - - DEF_STD_CMD_A(CmdSurfaceExtendFace) CmdSurfaceExtendFace::CmdSurfaceExtendFace() @@ -403,5 +341,4 @@ void CreateSurfaceCommands() rcCmdMgr.addCommand(new CmdSurfaceExtendFace()); rcCmdMgr.addCommand(new CmdSurfaceCurveOnMesh()); rcCmdMgr.addCommand(new CmdBlendCurve()); - rcCmdMgr.addCommand(new CmdBlendSurface()); } diff --git a/src/Mod/Surface/Gui/Resources/Surface.qrc b/src/Mod/Surface/Gui/Resources/Surface.qrc index a0840c7967..db576e80ba 100644 --- a/src/Mod/Surface/Gui/Resources/Surface.qrc +++ b/src/Mod/Surface/Gui/Resources/Surface.qrc @@ -4,7 +4,7 @@ icons/Surface_BSplineSurface.svg icons/Surface_CurveOnMesh.svg icons/Surface_Cut.svg - icons/BlendCurve.svg + icons/Surface_BlendCurve.svg icons/Surface_ExtendFace.svg icons/Surface_Filling.svg icons/Surface_GeomFillSurface.svg @@ -12,7 +12,6 @@ icons/Surface_Sewing.svg icons/Surface_Surface.svg icons/Surface_Workbench.svg - icons/BlendSurface.svg diff --git a/src/Mod/Surface/Gui/Resources/icons/BlendSurface.svg b/src/Mod/Surface/Gui/Resources/icons/BlendSurface.svg deleted file mode 100644 index 96587889a5..0000000000 --- a/src/Mod/Surface/Gui/Resources/icons/BlendSurface.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - Surface_Sewing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Surface_Sewing - - - [bitacovir] - - - Part_Shape_from_Mesh - 2020/10/03 - http://www.freecad.org/wiki/index.php?title=Artwork - - - FreeCAD - - - - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - - - - - - surface - - - - - - - - - - - - - - - - - diff --git a/src/Mod/Surface/Gui/Resources/icons/BlendCurve.svg b/src/Mod/Surface/Gui/Resources/icons/Surface_BlendCurve.svg similarity index 100% rename from src/Mod/Surface/Gui/Resources/icons/BlendCurve.svg rename to src/Mod/Surface/Gui/Resources/icons/Surface_BlendCurve.svg diff --git a/src/Mod/Surface/Gui/ViewProviderExtend.cpp b/src/Mod/Surface/Gui/ViewProviderExtend.cpp index faaaf28891..60b4bc6fec 100644 --- a/src/Mod/Surface/Gui/ViewProviderExtend.cpp +++ b/src/Mod/Surface/Gui/ViewProviderExtend.cpp @@ -33,7 +33,7 @@ PROPERTY_SOURCE(SurfaceGui::ViewProviderExtend, PartGui::ViewProviderSpline) namespace SurfaceGui { -QIcon ViewProviderExtend::getIcon(void) const +QIcon ViewProviderExtend::getIcon() const { return Gui::BitmapFactory().pixmap("Surface_ExtendFace"); } diff --git a/src/Mod/TechDraw/App/CenterLine.cpp b/src/Mod/TechDraw/App/CenterLine.cpp index 80b7c02d62..c03fd66a11 100644 --- a/src/Mod/TechDraw/App/CenterLine.cpp +++ b/src/Mod/TechDraw/App/CenterLine.cpp @@ -159,7 +159,7 @@ CenterLine* CenterLine::CenterLineBuilder(DrawViewPart* partFeat, int mode, bool flip) { -// Base::Console().Message("CL::CLBuilder()\n - subNames: %d", subNames.size()); +// Base::Console().Message("CL::CLBuilder()\n - subNames: %d\n", subNames.size()); std::pair ends; std::vector faces; std::vector edges; @@ -405,7 +405,6 @@ std::pair CenterLine::calcEndPoints(DrawViewPart if (faceBox.IsVoid()) { Base::Console().Error("CL::calcEndPoints - faceBox is void!\n"); -// return result; throw Base::IndexError("CenterLine wrong number of faces."); } @@ -527,7 +526,6 @@ std::pair CenterLine::calcEndPoints2Lines(DrawVi // if the proposed end points prevent the creation of a vertical or horizontal centerline, we need // to prevent the "orientation" code below from creating identical endpoints. This would create a // zero length edge and cause problems later. - // this should probably be prevented in the creation task? bool inhibitVertical = false; bool inhibitHorizontal = false; if (DU::fpCompare(p1.y, p2.y, EWTOLERANCE)) { @@ -586,7 +584,7 @@ std::pair CenterLine::calcEndPoints2Points(DrawV double rotate, bool flip) { -// Base::Console().Message("CL::calc2Points()\n"); +// Base::Console().Message("CL::calc2Points() - mode: %d\n", mode); if (vertNames.empty()) { Base::Console().Warning("CL::calcEndPoints2Points - no points!\n"); return std::pair(); @@ -606,17 +604,41 @@ std::pair CenterLine::calcEndPoints2Points(DrawV } } if (points.size() != 2) { - //this should fail harder. maybe be in a try/catch. -// Base::Console().Message("CL::calcEndPoints2Points - wrong number of points!\n"); -// return result; throw Base::IndexError("CenterLine wrong number of points."); } Base::Vector3d v1 = points.front()->point(); Base::Vector3d v2 = points.back()->point(); - Base::Vector3d mid = (v1 + v2) / 2.0; Base::Vector3d dir = v2 - v1; + + // if the proposed end points prevent the creation of a vertical or horizontal centerline, we need + // to prevent the "orientation" code below from creating identical endpoints. This would create a + // zero length edge and cause problems later. + + bool inhibitVertical = false; + bool inhibitHorizontal = false; + if (DU::fpCompare(v1.y, v2.y, EWTOLERANCE)) { + // proposed end points are aligned horizontally, can not draw horizontal CL + inhibitHorizontal = true; + } + if (DU::fpCompare(v1.x, v2.x, EWTOLERANCE)) { + // proposed end points are aligned vertically, can not draw vertical CL + inhibitVertical = true; + } + + if (mode == 0 && !inhibitVertical) { + //Vertical + v1.x = mid.x; + v2.x = mid.x; + } else if (mode == 1 && !inhibitHorizontal) { + //Horizontal + v1.y = mid.y; + v2.y = mid.y; + } else if (mode == 2) { //Aligned + // no op + } + double length = dir.Length(); dir.Normalize(); Base::Vector3d clDir(dir.y, -dir.x, dir.z); @@ -630,17 +652,6 @@ std::pair CenterLine::calcEndPoints2Points(DrawV p2 = temp; } - if (mode == 0) { //Vertical - p1.x = mid.x; - p2.x = mid.x; - } else if (mode == 1) { //Horizontal - p1.y = mid.y; - p2.y = mid.y; - } else if (mode == 2) { //Aligned - // no op - } - - //extend p1 = p1 + (clDir * ext); p2 = p2 - (clDir * ext); diff --git a/src/Mod/TechDraw/App/DrawComplexSection.h b/src/Mod/TechDraw/App/DrawComplexSection.h index b342dd4ec2..9da0e55f4d 100644 --- a/src/Mod/TechDraw/App/DrawComplexSection.h +++ b/src/Mod/TechDraw/App/DrawComplexSection.h @@ -41,7 +41,7 @@ class TechDrawExport DrawComplexSection: public DrawViewSection public: DrawComplexSection(); - ~DrawComplexSection() = default; + ~DrawComplexSection() override = default; App::PropertyLink CuttingToolWireObject; App::PropertyEnumeration ProjectionStrategy;//Offset or Aligned diff --git a/src/Mod/TechDraw/App/DrawDimHelper.cpp b/src/Mod/TechDraw/App/DrawDimHelper.cpp index 28912e8802..73e188c31e 100644 --- a/src/Mod/TechDraw/App/DrawDimHelper.cpp +++ b/src/Mod/TechDraw/App/DrawDimHelper.cpp @@ -195,7 +195,12 @@ DrawDimHelper::minMax(DrawViewPart* dvp, std::vector edgeNames, int } } else { - edgeGeomList = dvp->getEdgeGeometry();//do the whole View + for (auto& edge : dvp->getEdgeGeometry()) { + if (!edge->getCosmetic()) { + // skip cosmetic edges + edgeGeomList.push_back(edge); + } + } } if (edgeGeomList.empty()) { diff --git a/src/Mod/TechDraw/App/DrawGeomHatch.h b/src/Mod/TechDraw/App/DrawGeomHatch.h index 04bf1b1cf7..55e8c0fc7d 100644 --- a/src/Mod/TechDraw/App/DrawGeomHatch.h +++ b/src/Mod/TechDraw/App/DrawGeomHatch.h @@ -54,7 +54,7 @@ class TechDrawExport DrawGeomHatch : public App::DocumentObject public: DrawGeomHatch(); - ~DrawGeomHatch() = default; + ~DrawGeomHatch() override = default; App::PropertyLinkSub Source; //the dvX & face(s) this crosshatch belongs to App::PropertyFile FilePattern; diff --git a/src/Mod/TechDraw/App/DrawHatch.cpp b/src/Mod/TechDraw/App/DrawHatch.cpp index 56ae60e96c..162988decb 100644 --- a/src/Mod/TechDraw/App/DrawHatch.cpp +++ b/src/Mod/TechDraw/App/DrawHatch.cpp @@ -192,27 +192,13 @@ void DrawHatch::unsetupObject(void) bool DrawHatch::isSvgHatch(void) const { Base::FileInfo fi(HatchPattern.getValue()); - if (fi.extension() == "svg" || - fi.extension() == "SVG") { - return true; - } - return false; + return fi.hasExtension("svg"); } bool DrawHatch::isBitmapHatch(void) const { Base::FileInfo fi(HatchPattern.getValue()); - if (fi.extension() == "bmp" || - fi.extension() == "BMP" || - fi.extension() == "png" || - fi.extension() == "PNG" || - fi.extension() == "jpg" || - fi.extension() == "JPG" || - fi.extension() == "jpeg" || - fi.extension() == "JPEG" ) { - return true; - } - return false; + return fi.hasExtension({"bmp", "png", "jpg", "jpeg"}); } //standard preference getters diff --git a/src/Mod/TechDraw/App/DrawLeaderLine.h b/src/Mod/TechDraw/App/DrawLeaderLine.h index a52c4a7ef7..46f28baa34 100644 --- a/src/Mod/TechDraw/App/DrawLeaderLine.h +++ b/src/Mod/TechDraw/App/DrawLeaderLine.h @@ -40,7 +40,7 @@ class TechDrawExport DrawLeaderLine : public TechDraw::DrawView public: DrawLeaderLine(); - ~DrawLeaderLine() = default; + ~DrawLeaderLine() override = default; App::PropertyLink LeaderParent; App::PropertyVectorList WayPoints; diff --git a/src/Mod/TechDraw/App/DrawParametricTemplate.h b/src/Mod/TechDraw/App/DrawParametricTemplate.h index c3f6c7b414..38a22347fd 100644 --- a/src/Mod/TechDraw/App/DrawParametricTemplate.h +++ b/src/Mod/TechDraw/App/DrawParametricTemplate.h @@ -43,31 +43,31 @@ namespace TechDraw class TechDrawExport DrawParametricTemplate: public TechDraw::DrawTemplate { - PROPERTY_HEADER(TechDraw::DrawParametricTemplate); + PROPERTY_HEADER_WITH_OVERRIDE(TechDraw::DrawParametricTemplate); public: DrawParametricTemplate(); /// Constructor - ~DrawParametricTemplate(); + ~DrawParametricTemplate() override; App::PropertyFile Template; /** @name methods override Feature */ //@{ /// recalculate the Feature - virtual App::DocumentObjectExecReturn *execute(); + App::DocumentObjectExecReturn *execute() override; //@} - short mustExecute() const; + short mustExecute() const override; /// returns the type name of the ViewProvider - virtual const char* getViewProviderName() const { + const char* getViewProviderName() const override { return "TechDrawGui::ViewProviderTemplate"; } // from base class - virtual PyObject *getPyObject(); - virtual unsigned int getMemSize() const; + PyObject *getPyObject() override; + unsigned int getMemSize() const override; public: std::vector getGeometry() { return geom; } @@ -76,11 +76,11 @@ public: // Template Drawing Methods int drawLine(double x1, double y1, double x2, double y2); - double getHeight() const; - double getWidth() const; + double getHeight() const override; + double getWidth() const override; protected: - void onChanged(const App::Property* prop); + void onChanged(const App::Property* prop) override; protected: std::vector geom; diff --git a/src/Mod/TechDraw/App/DrawProjGroup.h b/src/Mod/TechDraw/App/DrawProjGroup.h index 3197c4bd4f..b7cea65fcf 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.h +++ b/src/Mod/TechDraw/App/DrawProjGroup.h @@ -55,7 +55,7 @@ class TechDrawExport DrawProjGroup : public TechDraw::DrawViewCollection public: /// Constructor DrawProjGroup(); - ~DrawProjGroup() = default; + ~DrawProjGroup() override = default; App::PropertyLinkList Source; App::PropertyXLinkList XSource; diff --git a/src/Mod/TechDraw/App/DrawProjGroupItem.h b/src/Mod/TechDraw/App/DrawProjGroupItem.h index e394f5450a..7e1a93fe4d 100644 --- a/src/Mod/TechDraw/App/DrawProjGroupItem.h +++ b/src/Mod/TechDraw/App/DrawProjGroupItem.h @@ -55,7 +55,7 @@ class TechDrawExport DrawProjGroupItem : public TechDraw::DrawViewPart public: /// Constructor DrawProjGroupItem(); - ~DrawProjGroupItem() = default; + ~DrawProjGroupItem() override = default; App::PropertyEnumeration Type; App::PropertyVector RotationVector; //this is superseded by dvp xdirection diff --git a/src/Mod/TechDraw/App/DrawRichAnno.h b/src/Mod/TechDraw/App/DrawRichAnno.h index 0f0131fded..0118cbf989 100644 --- a/src/Mod/TechDraw/App/DrawRichAnno.h +++ b/src/Mod/TechDraw/App/DrawRichAnno.h @@ -39,7 +39,7 @@ class TechDrawExport DrawRichAnno : public TechDraw::DrawView public: DrawRichAnno(); - ~DrawRichAnno() = default; + ~DrawRichAnno() override = default; App::PropertyLink AnnoParent; App::PropertyString AnnoText; diff --git a/src/Mod/TechDraw/App/DrawTemplate.h b/src/Mod/TechDraw/App/DrawTemplate.h index 868385618a..4849381aab 100644 --- a/src/Mod/TechDraw/App/DrawTemplate.h +++ b/src/Mod/TechDraw/App/DrawTemplate.h @@ -63,7 +63,7 @@ public: } // from base class - virtual PyObject *getPyObject(void) override; + PyObject *getPyObject(void) override; private: static const char* OrientationEnums[]; diff --git a/src/Mod/TechDraw/App/DrawTile.h b/src/Mod/TechDraw/App/DrawTile.h index ee8c4dbb5c..04c30e1323 100644 --- a/src/Mod/TechDraw/App/DrawTile.h +++ b/src/Mod/TechDraw/App/DrawTile.h @@ -39,7 +39,7 @@ class TechDrawExport DrawTile : public App::DocumentObject public: DrawTile(); - ~DrawTile() = default; + ~DrawTile() override = default; App::PropertyLink TileParent; //eg DrawWeldSymbol App::PropertyIntegerConstraint TileRow; diff --git a/src/Mod/TechDraw/App/DrawViewAnnotation.h b/src/Mod/TechDraw/App/DrawViewAnnotation.h index 7f99903f78..bec639f85d 100644 --- a/src/Mod/TechDraw/App/DrawViewAnnotation.h +++ b/src/Mod/TechDraw/App/DrawViewAnnotation.h @@ -42,7 +42,7 @@ class TechDrawExport DrawViewAnnotation : public TechDraw::DrawView public: /// Constructor DrawViewAnnotation(); - ~DrawViewAnnotation() = default; + ~DrawViewAnnotation() override = default; App::PropertyStringList Text; App::PropertyFont Font; diff --git a/src/Mod/TechDraw/App/DrawViewArch.h b/src/Mod/TechDraw/App/DrawViewArch.h index 5ae47e01f8..ef3b55d280 100644 --- a/src/Mod/TechDraw/App/DrawViewArch.h +++ b/src/Mod/TechDraw/App/DrawViewArch.h @@ -41,7 +41,7 @@ class TechDrawExport DrawViewArch : public TechDraw::DrawViewSymbol public: /// Constructor DrawViewArch(); - ~DrawViewArch() = default; + ~DrawViewArch() override = default; App::PropertyLink Source; App::PropertyBool AllOn; diff --git a/src/Mod/TechDraw/App/DrawViewClip.h b/src/Mod/TechDraw/App/DrawViewClip.h index 3f7a60bc91..fa6e915362 100644 --- a/src/Mod/TechDraw/App/DrawViewClip.h +++ b/src/Mod/TechDraw/App/DrawViewClip.h @@ -42,7 +42,7 @@ class TechDrawExport DrawViewClip: public TechDraw::DrawView public: /// Constructor DrawViewClip(); - ~DrawViewClip() = default; + ~DrawViewClip() override = default; App::PropertyLength Width; App::PropertyLength Height; diff --git a/src/Mod/TechDraw/App/DrawViewDimExtent.h b/src/Mod/TechDraw/App/DrawViewDimExtent.h index 562a4e83c2..962b3e41cc 100644 --- a/src/Mod/TechDraw/App/DrawViewDimExtent.h +++ b/src/Mod/TechDraw/App/DrawViewDimExtent.h @@ -41,7 +41,7 @@ class TechDrawExport DrawViewDimExtent : public TechDraw::DrawViewDimension public: /// Constructor DrawViewDimExtent(); - ~DrawViewDimExtent() = default; + ~DrawViewDimExtent() override = default; App::PropertyLinkSubList Source; //DrawViewPart & SubElements(Edges) //Cosmetic End points are stored in DVD::References2d diff --git a/src/Mod/TechDraw/App/DrawViewDraft.h b/src/Mod/TechDraw/App/DrawViewDraft.h index 287bc22083..062a4be8c3 100644 --- a/src/Mod/TechDraw/App/DrawViewDraft.h +++ b/src/Mod/TechDraw/App/DrawViewDraft.h @@ -42,7 +42,7 @@ class TechDrawExport DrawViewDraft : public TechDraw::DrawViewSymbol public: /// Constructor DrawViewDraft(); - ~DrawViewDraft() = default; + ~DrawViewDraft() override = default; App::PropertyLink Source; App::PropertyFloat LineWidth; diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index ac01c1a1c2..45187a316a 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -748,7 +748,7 @@ std::vector DrawViewPart::getDimensions() const { std::vector result; std::vector children = getInList(); - std::sort(children.begin(), children.end(), std::less()); + std::sort(children.begin(), children.end(), std::less<>()); std::vector::iterator newEnd = std::unique(children.begin(), children.end()); for (std::vector::iterator it = children.begin(); it != newEnd; ++it) { @@ -764,7 +764,7 @@ std::vector DrawViewPart::getBalloons() const { std::vector result; std::vector children = getInList(); - std::sort(children.begin(), children.end(), std::less()); + std::sort(children.begin(), children.end(), std::less<>()); std::vector::iterator newEnd = std::unique(children.begin(), children.end()); for (std::vector::iterator it = children.begin(); it != newEnd; ++it) { @@ -1216,12 +1216,12 @@ const BaseGeomPtrVector DrawViewPart::getVisibleFaceEdges() const bool DrawViewPart::handleFaces() { - return Preferences::getPreferenceGroup("General")->GetBool("HandleFaces", 1l); + return Preferences::getPreferenceGroup("General")->GetBool("HandleFaces", true); } bool DrawViewPart::newFaceFinder(void) { - return Preferences::getPreferenceGroup("General")->GetBool("NewFaceFinder", 0l); + return Preferences::getPreferenceGroup("General")->GetBool("NewFaceFinder", false); } //! remove features that are useless without this DVP @@ -1664,7 +1664,7 @@ bool DrawViewPart::prefHardViz() bool DrawViewPart::prefSeamViz() { - return Preferences::getPreferenceGroup("HLR")->GetBool("SeamViz", true); + return Preferences::getPreferenceGroup("HLR")->GetBool("SeamViz", false); } bool DrawViewPart::prefSmoothViz() @@ -1699,7 +1699,7 @@ bool DrawViewPart::prefIsoHid() int DrawViewPart::prefIsoCount() { - return Preferences::getPreferenceGroup("HLR")->GetBool("IsoCount", 0); + return Preferences::getPreferenceGroup("HLR")->GetBool("IsoCount", false); } // Python Drawing feature --------------------------------------------------------- diff --git a/src/Mod/TechDraw/App/DrawViewSection.cpp b/src/Mod/TechDraw/App/DrawViewSection.cpp index 1a81c07c4a..57aa28f903 100644 --- a/src/Mod/TechDraw/App/DrawViewSection.cpp +++ b/src/Mod/TechDraw/App/DrawViewSection.cpp @@ -1124,14 +1124,13 @@ void DrawViewSection::makeLineSets(void) std::string fileSpec = PatIncluded.getValue(); Base::FileInfo fi(fileSpec); - std::string ext = fi.extension(); if (!fi.isReadable()) { Base::Console().Message("%s can not read hatch file: %s\n", getNameInDocument(), fileSpec.c_str()); return; } - if (ext == "pat" || ext == "PAT") { + if (fi.hasExtension("pat")) { if (!fileSpec.empty() && !NameGeomPattern.isEmpty()) { m_lineSets.clear(); m_lineSets = DrawGeomHatch::makeLineSets(fileSpec, NameGeomPattern.getValue()); diff --git a/src/Mod/TechDraw/App/DrawWeldSymbol.h b/src/Mod/TechDraw/App/DrawWeldSymbol.h index c25c1f3980..0e85712990 100644 --- a/src/Mod/TechDraw/App/DrawWeldSymbol.h +++ b/src/Mod/TechDraw/App/DrawWeldSymbol.h @@ -41,7 +41,7 @@ class TechDrawExport DrawWeldSymbol : public TechDraw::DrawView public: DrawWeldSymbol(); - ~DrawWeldSymbol() = default; + ~DrawWeldSymbol() override = default; App::PropertyLink Leader; App::PropertyBool AllAround; diff --git a/src/Mod/TechDraw/App/FeatureProjection.h b/src/Mod/TechDraw/App/FeatureProjection.h index 0d04915581..9ac49ef3a0 100644 --- a/src/Mod/TechDraw/App/FeatureProjection.h +++ b/src/Mod/TechDraw/App/FeatureProjection.h @@ -38,12 +38,12 @@ namespace TechDraw */ class TechDrawExport FeatureProjection : public Part::Feature { - PROPERTY_HEADER(TechDraw::FeatureProjection); + PROPERTY_HEADER_WITH_OVERRIDE(TechDraw::FeatureProjection); public: /// Constructor FeatureProjection(); - virtual ~FeatureProjection(); + ~FeatureProjection() override; App::PropertyLink Source; App::PropertyVector Direction; @@ -61,7 +61,7 @@ public: /** @name methods override feature */ //@{ /// recalculate the Feature - virtual App::DocumentObjectExecReturn *execute(void); + App::DocumentObjectExecReturn *execute() override; //@} }; diff --git a/src/Mod/TechDraw/App/Preferences.cpp b/src/Mod/TechDraw/App/Preferences.cpp index 7278ee04db..a1792c53c5 100644 --- a/src/Mod/TechDraw/App/Preferences.cpp +++ b/src/Mod/TechDraw/App/Preferences.cpp @@ -303,6 +303,7 @@ double Preferences::GapASME() return factor; } +//! current setting for reporting progress of HLR/face finding bool Preferences::reportProgress() { return getPreferenceGroup("General")->GetBool("ReportProgress", false); @@ -318,11 +319,13 @@ void Preferences::lightOnDark(bool state) getPreferenceGroup("Colors")->SetBool("LightOnDark", state); } +//! current setting (on/off) for monochrome display bool Preferences::monochrome() { return getPreferenceGroup("Colors")->GetBool("Monochrome", false); } +//! set monochrome display on/off void Preferences::monochrome(bool state) { Base::Console().Message("Pref::useLightText - set to %d\n", state); @@ -336,6 +339,8 @@ App::Color Preferences::lightTextColor() return result; } +//! attempt to lighten the give color +// not currently used App::Color Preferences::lightenColor(App::Color orig) { // get component colours on [0, 255] @@ -366,6 +371,7 @@ App::Color Preferences::lightenColor(App::Color orig) return App::Color(redF, greenF, blueF, orig.a); } +//! color to use for monochrome display App::Color Preferences::getAccessibleColor(App::Color orig) { if (Preferences::lightOnDark() && Preferences::monochrome()) { @@ -377,12 +383,22 @@ App::Color Preferences::getAccessibleColor(App::Color orig) return orig; } +//! automatic correction of dimension references on/off bool Preferences::autoCorrectDimRefs() { return getPreferenceGroup("Dimensions")->GetBool("AutoCorrectRefs", true); } +//! number of times to clean the output edges from HLR int Preferences::scrubCount() { return getPreferenceGroup("General")->GetInt("ScrubCount", 0); } + +//! Returns the factor for the overlap of svg tiles when hatching faces +double Preferences::svgHatchFactor() +{ + double factor = getPreferenceGroup("Decorations")->GetFloat("SvgOverlapFactor", 1.25); + return factor; +} + diff --git a/src/Mod/TechDraw/App/Preferences.h b/src/Mod/TechDraw/App/Preferences.h index e4757e9348..0467599b6b 100644 --- a/src/Mod/TechDraw/App/Preferences.h +++ b/src/Mod/TechDraw/App/Preferences.h @@ -102,6 +102,8 @@ public: static bool autoCorrectDimRefs(); static int scrubCount(); + + static double svgHatchFactor(); }; }//end namespace TechDraw diff --git a/src/Mod/TechDraw/App/PropertyCenterLineList.h b/src/Mod/TechDraw/App/PropertyCenterLineList.h index f13ed00efe..7fbf2146cf 100644 --- a/src/Mod/TechDraw/App/PropertyCenterLineList.h +++ b/src/Mod/TechDraw/App/PropertyCenterLineList.h @@ -39,14 +39,14 @@ class CenterLine; class TechDrawExport PropertyCenterLineList: public App::PropertyLists { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: PropertyCenterLineList(); - virtual ~PropertyCenterLineList(); + ~PropertyCenterLineList() override; - virtual void setSize(int newSize); - virtual int getSize(void) const; + void setSize(int newSize) override; + int getSize() const override; /** Sets the property */ @@ -58,20 +58,20 @@ public: return _lValueList[idx]; } - const std::vector &getValues(void) const { + const std::vector &getValues() const { return _lValueList; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + PyObject *getPyObject() override; + void setPyObject(PyObject *) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + void Save(Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; - virtual App::Property *Copy(void) const; - virtual void Paste(const App::Property &from); + App::Property *Copy() const override; + void Paste(const App::Property &from) override; - virtual unsigned int getMemSize(void) const; + unsigned int getMemSize() const override; private: std::vector _lValueList; diff --git a/src/Mod/TechDraw/App/PropertyCosmeticEdgeList.h b/src/Mod/TechDraw/App/PropertyCosmeticEdgeList.h index d3c0b8ee6d..63f7c7849f 100644 --- a/src/Mod/TechDraw/App/PropertyCosmeticEdgeList.h +++ b/src/Mod/TechDraw/App/PropertyCosmeticEdgeList.h @@ -39,7 +39,7 @@ class CosmeticEdge; class TechDrawExport PropertyCosmeticEdgeList: public App::PropertyLists { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -52,10 +52,10 @@ public: * A destructor. * A more elaborate description of the destructor. */ - virtual ~PropertyCosmeticEdgeList(); + ~PropertyCosmeticEdgeList() override; - virtual void setSize(int newSize); - virtual int getSize(void) const; + void setSize(int newSize) override; + int getSize(void) const override; /** Sets the property */ @@ -68,20 +68,20 @@ public: return _lValueList[idx]; } - const std::vector &getValues(void) const { + const std::vector &getValues() const { return _lValueList; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + PyObject *getPyObject() override; + void setPyObject(PyObject *) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + void Save(Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; - virtual App::Property *Copy(void) const; - virtual void Paste(const App::Property &from); + App::Property *Copy() const override; + void Paste(const App::Property &from) override; - virtual unsigned int getMemSize(void) const; + unsigned int getMemSize(void) const override; private: std::vector _lValueList; diff --git a/src/Mod/TechDraw/App/PropertyCosmeticVertexList.h b/src/Mod/TechDraw/App/PropertyCosmeticVertexList.h index c5eec43816..385556bccc 100644 --- a/src/Mod/TechDraw/App/PropertyCosmeticVertexList.h +++ b/src/Mod/TechDraw/App/PropertyCosmeticVertexList.h @@ -41,7 +41,7 @@ class CosmeticVertex; class TechDrawExport PropertyCosmeticVertexList: public App::PropertyLists { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -54,10 +54,10 @@ public: * A destructor. * A more elaborate description of the destructor. */ - virtual ~PropertyCosmeticVertexList(); + ~PropertyCosmeticVertexList() override; - virtual void setSize(int newSize); - virtual int getSize(void) const; + void setSize(int newSize) override; + int getSize(void) const override; /** Sets the property */ @@ -69,20 +69,20 @@ public: return _lValueList[idx]; } - const std::vector &getValues(void) const { + const std::vector &getValues() const { return _lValueList; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + PyObject *getPyObject() override; + void setPyObject(PyObject *) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + void Save(Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; - virtual App::Property *Copy(void) const; - virtual void Paste(const App::Property &from); + App::Property *Copy() const override; + void Paste(const App::Property &from) override; - virtual unsigned int getMemSize(void) const; + unsigned int getMemSize() const override; private: std::vector _lValueList; diff --git a/src/Mod/TechDraw/App/PropertyGeomFormatList.h b/src/Mod/TechDraw/App/PropertyGeomFormatList.h index 1ca3abfb96..7e2e6d61e7 100644 --- a/src/Mod/TechDraw/App/PropertyGeomFormatList.h +++ b/src/Mod/TechDraw/App/PropertyGeomFormatList.h @@ -38,7 +38,7 @@ class GeomFormat; class TechDrawExport PropertyGeomFormatList: public App::PropertyLists { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: /** @@ -51,10 +51,10 @@ public: * A destructor. * A more elaborate description of the destructor. */ - virtual ~PropertyGeomFormatList(); + ~PropertyGeomFormatList() override; - virtual void setSize(int newSize); - virtual int getSize(void) const; + void setSize(int newSize) override; + int getSize() const override; /** Sets the property */ @@ -66,20 +66,20 @@ public: return _lValueList[idx]; } - const std::vector &getValues(void) const { + const std::vector &getValues() const { return _lValueList; } - virtual PyObject *getPyObject(void); - virtual void setPyObject(PyObject *); + PyObject *getPyObject() override; + void setPyObject(PyObject *) override; - virtual void Save(Base::Writer &writer) const; - virtual void Restore(Base::XMLReader &reader); + void Save(Base::Writer &writer) const override; + void Restore(Base::XMLReader &reader) override; - virtual App::Property *Copy(void) const; - virtual void Paste(const App::Property &from); + App::Property *Copy() const override; + void Paste(const App::Property &from) override; - virtual unsigned int getMemSize(void) const; + unsigned int getMemSize() const override; private: std::vector _lValueList; diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index e88d55fbf0..bd3bdd11e4 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -171,7 +171,7 @@ void CmdTechDrawPageTemplate::activated(int iMsg) QString templateDir = Preferences::defaultTemplateDir(); QString templateFileName = Gui::FileDialog::getOpenFileName( Gui::getMainWindow(), QString::fromUtf8(QT_TR_NOOP("Select a Template File")), templateDir, - QString::fromUtf8(QT_TR_NOOP("Template (*.svg *.dxf)"))); + QString::fromUtf8(QT_TR_NOOP("Template (*.svg)"))); Gui::FileDialog::setWorkingDirectory(work_dir);// Don't overwrite WD with templateDir if (templateFileName.isEmpty()) { @@ -1370,6 +1370,11 @@ void CmdTechDrawDraftView::activated(int iMsg) std::pair dirs = DrawGuiUtil::get3DDirAndRot(); for (std::vector::iterator it = objects.begin(); it != objects.end(); ++it) { + if ((*it)->isDerivedFrom(TechDraw::DrawPage::getClassTypeId()) || + (*it)->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) { + // skip over TechDraw objects as they are not valid subjects for a DraftView + continue; + } std::string FeatName = getUniqueObjectName("DraftView"); std::string SourceName = (*it)->getNameInDocument(); openCommand(QT_TRANSLATE_NOOP("Command", "Create DraftView")); @@ -1420,6 +1425,11 @@ void CmdTechDrawArchView::activated(int iMsg) App::DocumentObject* archObject = nullptr; int archCount = 0; for (auto& obj : objects) { + if (obj->isDerivedFrom(TechDraw::DrawPage::getClassTypeId()) || + obj->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) { + // skip over TechDraw objects as they are not valid subjects for a ArchView + continue; + } if (DrawGuiUtil::isArchSection(obj)) { archCount++; archObject = obj; diff --git a/src/Mod/TechDraw/Gui/DlgPageChooser.h b/src/Mod/TechDraw/Gui/DlgPageChooser.h index 591c464531..8fee2d50bb 100644 --- a/src/Mod/TechDraw/Gui/DlgPageChooser.h +++ b/src/Mod/TechDraw/Gui/DlgPageChooser.h @@ -37,11 +37,11 @@ public: DlgPageChooser(const std::vector labels, const std::vector names, QWidget* parent = nullptr, Qt::WindowFlags fl = Qt::WindowFlags()); - ~DlgPageChooser(); + ~DlgPageChooser() override; std::string getSelection() const; - void accept(); - void reject(); + void accept() override; + void reject() override; private Q_SLOTS: diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawColors.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawColors.ui index f344e14b46..1fe564dd84 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawColors.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawColors.ui @@ -617,7 +617,7 @@ - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. + If checked FreeCAD will use a single color for all text and lines. diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLR.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLR.ui index 15e0f4fa4d..dbccf1d150 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLR.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLR.ui @@ -260,7 +260,7 @@ Fast, but result is a collection of short straight lines. Show Seam Lines
    - true + false SeamViz diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLRImp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLRImp.cpp index c8a3c62e7c..9b1419e723 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLRImp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawHLRImp.cpp @@ -58,7 +58,9 @@ void DlgPrefsTechDrawHLRImp::saveSettings() void DlgPrefsTechDrawHLRImp::loadSettings() { + // set defaults for HLR ui->pcbSeamViz->onRestore(); + ui->pcbSmoothViz->onRestore(); ui->pcbHardViz->onRestore(); ui->pcbPolygon->onRestore(); diff --git a/src/Mod/TechDraw/Gui/DlgStringListEditor.h b/src/Mod/TechDraw/Gui/DlgStringListEditor.h index eadc48da90..b8a28c2e06 100644 --- a/src/Mod/TechDraw/Gui/DlgStringListEditor.h +++ b/src/Mod/TechDraw/Gui/DlgStringListEditor.h @@ -40,11 +40,11 @@ class TechDrawGuiExport DlgStringListEditor : public QDialog public: DlgStringListEditor(const std::vector texts, QWidget* parent = nullptr, Qt::WindowFlags fl = Qt::WindowFlags()); - ~DlgStringListEditor(); + ~DlgStringListEditor() override; std::vector getTexts() const; - void accept(); - void reject(); + void accept() override; + void reject() override; public Q_SLOTS: void slotItemActivated(QListWidgetItem* item); diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index 15467bc1d1..2b2ae95c9b 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -78,7 +78,7 @@ using namespace TechDrawGui; using namespace TechDraw; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; /* TRANSLATOR TechDrawGui::MDIViewPage */ @@ -114,10 +114,12 @@ MDIViewPage::MDIViewPage(ViewProviderPage* pageVp, Gui::Document* doc, QWidget* tabText += QString::fromUtf8("[*]"); setWindowTitle(tabText); + //NOLINTBEGIN //get informed by App side about deleted DocumentObjects App::Document* appDoc = m_vpPage->getDocument()->getDocument(); - auto bnd = boost::bind(&MDIViewPage::onDeleteObject, this, bp::_1); + auto bnd = std::bind(&MDIViewPage::onDeleteObject, this, sp::_1); connectDeletedObject = appDoc->signalDeletedObject.connect(bnd); + //NOLINTEND } MDIViewPage::~MDIViewPage() { connectDeletedObject.disconnect(); } @@ -288,9 +290,9 @@ void MDIViewPage::printPdf() Gui::WaitCursor wc; std::string utf8Content = fn.toUtf8().constData(); - m_scene->setExporting(true); + m_scene->setExportingPdf(true); printPdf(utf8Content); - m_scene->setExporting(false); + m_scene->setExportingPdf(false); } void MDIViewPage::printPdf(std::string file) @@ -303,6 +305,8 @@ void MDIViewPage::printPdf(std::string file) QString filename = QString::fromUtf8(file.data(), file.size()); QPrinter printer(QPrinter::HighResolution); + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setFullPage(true); printer.setOutputFileName(filename); @@ -513,6 +517,8 @@ void MDIViewPage::printAll(QPrinter* printer, App::Document* doc) //static routine to print all pages in a document to pdf void MDIViewPage::printAllPdf(QPrinter* printer, App::Document* doc) { + // setPdfVersion sets the printied PDF Version to comply with PDF/A-1b, more details under: https://www.kdab.com/creating-pdfa-documents-qt/ + printer->setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); // Base::Console().Message("MDIVP::printAllPdf()\n"); QString outputFile = printer->outputFileName(); QString documentName = QString::fromUtf8(doc->getName()); diff --git a/src/Mod/TechDraw/Gui/QGCustomBorder.h b/src/Mod/TechDraw/Gui/QGCustomBorder.h index 103bcb1a8a..30a740452a 100644 --- a/src/Mod/TechDraw/Gui/QGCustomBorder.h +++ b/src/Mod/TechDraw/Gui/QGCustomBorder.h @@ -40,13 +40,13 @@ namespace TechDrawGui class TechDrawGuiExport QGCustomBorder : public QGraphicsRectItem { public: - explicit QGCustomBorder(void); - ~QGCustomBorder() {} + explicit QGCustomBorder(); + ~QGCustomBorder() override = default; enum {Type = QGraphicsItem::UserType + 136}; - int type() const { return Type;} + int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; virtual void centerAt(QPointF centerPos); virtual void centerAt(double cX, double cY); diff --git a/src/Mod/TechDraw/Gui/QGCustomLabel.h b/src/Mod/TechDraw/Gui/QGCustomLabel.h index 3d429527a3..2652a2b189 100644 --- a/src/Mod/TechDraw/Gui/QGCustomLabel.h +++ b/src/Mod/TechDraw/Gui/QGCustomLabel.h @@ -40,13 +40,13 @@ namespace TechDrawGui class TechDrawGuiExport QGCustomLabel : public QGraphicsTextItem { public: - explicit QGCustomLabel(void); - ~QGCustomLabel() {} + explicit QGCustomLabel(); + ~QGCustomLabel() override = default; enum {Type = QGraphicsItem::UserType + 135}; - int type() const { return Type;} + int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; virtual void centerAt(QPointF centerPos); virtual void centerAt(double cX, double cY); diff --git a/src/Mod/TechDraw/Gui/QGCustomRect.h b/src/Mod/TechDraw/Gui/QGCustomRect.h index 866cf509e3..e330b3b821 100644 --- a/src/Mod/TechDraw/Gui/QGCustomRect.h +++ b/src/Mod/TechDraw/Gui/QGCustomRect.h @@ -40,13 +40,13 @@ namespace TechDrawGui class TechDrawGuiExport QGCustomRect : public QGraphicsRectItem { public: - explicit QGCustomRect(void); - ~QGCustomRect() {} + explicit QGCustomRect(); + ~QGCustomRect() override = default; enum {Type = QGraphicsItem::UserType + 133}; - int type() const { return Type;} + int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; virtual void centerAt(QPointF centerPos); virtual void centerAt(double cX, double cY); diff --git a/src/Mod/TechDraw/Gui/QGCustomSvg.h b/src/Mod/TechDraw/Gui/QGCustomSvg.h index c7d38b79cf..c9a9fd2c6d 100644 --- a/src/Mod/TechDraw/Gui/QGCustomSvg.h +++ b/src/Mod/TechDraw/Gui/QGCustomSvg.h @@ -43,15 +43,15 @@ namespace TechDrawGui class TechDrawGuiExport QGCustomSvg : public QGraphicsSvgItem { public: - explicit QGCustomSvg(void); - ~QGCustomSvg(); + explicit QGCustomSvg(); + ~QGCustomSvg() override; enum {Type = QGraphicsItem::UserType + 131}; int type() const override { return Type;} - virtual void paint( QPainter *painter, - const QStyleOptionGraphicsItem *option, - QWidget *widget = nullptr ) override; + void paint( QPainter *painter, + const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr ) override; virtual void centerAt(QPointF centerPos); virtual void centerAt(double cX, double cY); virtual bool load(QByteArray *svgString); diff --git a/src/Mod/TechDraw/Gui/QGCustomText.h b/src/Mod/TechDraw/Gui/QGCustomText.h index bdf3787b7f..47951086a6 100644 --- a/src/Mod/TechDraw/Gui/QGCustomText.h +++ b/src/Mod/TechDraw/Gui/QGCustomText.h @@ -44,12 +44,12 @@ class TechDrawGuiExport QGCustomText : public QGraphicsTextItem { public: explicit QGCustomText(QGraphicsItem* parent = nullptr); - ~QGCustomText() {} + ~QGCustomText() override {} enum {Type = QGraphicsItem::UserType + 130}; int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; - virtual QRectF boundingRect() const override; + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; + QRectF boundingRect() const override; QRectF tightBoundingRect() const; QPointF tightBoundingAdjust() const; @@ -65,12 +65,12 @@ public: virtual void justifyRightAt(QPointF centerPos, bool vCenter = true); virtual void justifyRightAt(double cX, double cY, bool vCenter = true); - virtual double getHeight(void); - virtual double getWidth(void); + virtual double getHeight(); + virtual double getWidth(); - virtual QColor getNormalColor(void); - virtual QColor getPreColor(void); - virtual QColor getSelectColor(void); + virtual QColor getNormalColor(); + virtual QColor getPreColor(); + virtual QColor getSelectColor(); virtual void setColor(QColor c); virtual void setTightBounding(bool tight); @@ -79,11 +79,11 @@ public: void makeMark(Base::Vector3d v); protected: - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; - Base::Reference getParmGroup(void); + Base::Reference getParmGroup(); bool isHighlighted; bool tightBounding; // Option to use tighter boundingRect(), works only for plaintext QGCustomText diff --git a/src/Mod/TechDraw/Gui/QGDisplayArea.h b/src/Mod/TechDraw/Gui/QGDisplayArea.h index 3acd564d71..9fc116017b 100644 --- a/src/Mod/TechDraw/Gui/QGDisplayArea.h +++ b/src/Mod/TechDraw/Gui/QGDisplayArea.h @@ -40,14 +40,14 @@ namespace TechDrawGui class TechDrawGuiExport QGDisplayArea : public QGraphicsItemGroup { public: - explicit QGDisplayArea(void); - ~QGDisplayArea() {} + explicit QGDisplayArea(); + ~QGDisplayArea() override {} enum {Type = QGraphicsItem::UserType + 137}; - int type() const { return Type;} - virtual QRectF boundingRect() const; + int type() const override { return Type;} + QRectF boundingRect() const override; - void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; virtual void centerAt(QPointF centerPos); virtual void centerAt(double cX, double cY); diff --git a/src/Mod/TechDraw/Gui/QGEPath.h b/src/Mod/TechDraw/Gui/QGEPath.h index 35ac3081ca..c03298fec0 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.h +++ b/src/Mod/TechDraw/Gui/QGEPath.h @@ -45,7 +45,7 @@ class TechDrawGuiExport QGMarker : public QObject, public QGIVertex Q_OBJECT public: explicit QGMarker(int idx); - ~QGMarker() = default; + ~QGMarker() override = default; enum {Type = QGraphicsItem::UserType + 302}; int type() const override { return Type;} @@ -78,7 +78,7 @@ class TechDrawGuiExport QGEPath : public QObject, public QGIPrimPath public: explicit QGEPath(QGILeaderLine* leader); - ~QGEPath() = default; + ~QGEPath() override = default; enum {Type = QGraphicsItem::UserType + 301}; int type() const override { return Type;} diff --git a/src/Mod/TechDraw/Gui/QGIArrow.h b/src/Mod/TechDraw/Gui/QGIArrow.h index 215dfecf6c..ea69594509 100644 --- a/src/Mod/TechDraw/Gui/QGIArrow.h +++ b/src/Mod/TechDraw/Gui/QGIArrow.h @@ -52,10 +52,10 @@ class TechDrawGuiExport QGIArrow : public QGIPrimPath { public: explicit QGIArrow(); - ~QGIArrow() {} + ~QGIArrow() override {} enum {Type = QGraphicsItem::UserType + 109}; - int type() const { return Type;} + int type() const override { return Type;} public: void draw(); diff --git a/src/Mod/TechDraw/Gui/QGICMark.h b/src/Mod/TechDraw/Gui/QGICMark.h index bee5b8201d..4cb3481cef 100644 --- a/src/Mod/TechDraw/Gui/QGICMark.h +++ b/src/Mod/TechDraw/Gui/QGICMark.h @@ -34,21 +34,21 @@ class TechDrawGuiExport QGICMark : public QGIVertex { public: explicit QGICMark(int index); - ~QGICMark() {} + ~QGICMark() override {} enum {Type = QGraphicsItem::UserType + 171}; int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; - virtual QRectF boundingRect() const override; - virtual QPainterPath shape() const override; + QRectF boundingRect() const override; + QPainterPath shape() const override; void draw(void); float getSize() { return m_size; } void setSize(float s); float getThick() { return m_width; } void setThick(float t); - virtual void setPrettyNormal() override; + void setPrettyNormal() override; double getMarkFuzz(void) const; diff --git a/src/Mod/TechDraw/Gui/QGICaption.h b/src/Mod/TechDraw/Gui/QGICaption.h index 5683891895..179972ace0 100644 --- a/src/Mod/TechDraw/Gui/QGICaption.h +++ b/src/Mod/TechDraw/Gui/QGICaption.h @@ -33,11 +33,11 @@ namespace TechDrawGui class TechDrawGuiExport QGICaption : public QGCustomText { public: - explicit QGICaption(void); - ~QGICaption() {} + explicit QGICaption(); + ~QGICaption() override {} enum {Type = QGraphicsItem::UserType + 180}; - int type() const { return Type;} + int type() const override { return Type;} }; diff --git a/src/Mod/TechDraw/Gui/QGICenterLine.h b/src/Mod/TechDraw/Gui/QGICenterLine.h index fbdc8678eb..37b00b2fee 100644 --- a/src/Mod/TechDraw/Gui/QGICenterLine.h +++ b/src/Mod/TechDraw/Gui/QGICenterLine.h @@ -37,15 +37,15 @@ class TechDrawGuiExport QGICenterLine : public QGIDecoration { public: explicit QGICenterLine(); - ~QGICenterLine() {} + ~QGICenterLine() override = default; enum {Type = QGraphicsItem::UserType + 174}; - int type() const { return Type;} + int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; void setBounds(double x1, double y1, double x2, double y2); - virtual void draw(); + void draw() override; void setIntersection(bool isIntersecting); diff --git a/src/Mod/TechDraw/Gui/QGIDecoration.h b/src/Mod/TechDraw/Gui/QGIDecoration.h index f773720e06..1b9701c605 100644 --- a/src/Mod/TechDraw/Gui/QGIDecoration.h +++ b/src/Mod/TechDraw/Gui/QGIDecoration.h @@ -50,8 +50,8 @@ namespace TechDrawGui class TechDrawGuiExport QGIDecoration : public QGraphicsItemGroup { public: - explicit QGIDecoration(void); - ~QGIDecoration() {} + explicit QGIDecoration(); + ~QGIDecoration() override = default; enum {Type = QGraphicsItem::UserType + 173}; int type() const override { return Type;} @@ -72,7 +72,7 @@ public: double getWidth() { return m_width; } void setStyle(Qt::PenStyle s); void setColor(QColor c); - QColor getColor(void) { return m_colNormal; } + QColor getColor() { return m_colNormal; } void setFill(Qt::BrushStyle bs) { m_brushCurrent = bs; } void makeMark(double x, double y); void makeMark(Base::Vector3d v); @@ -81,9 +81,9 @@ protected: void setPrettyNormal(); void setPrettyPre(); void setPrettySel(); - virtual QColor prefNormalColor(void); - virtual QColor prefPreColor(void); - virtual QColor prefSelectColor(void); + virtual QColor prefNormalColor(); + virtual QColor prefPreColor(); + virtual QColor prefSelectColor(); QPen m_pen; QBrush m_brush; QColor m_colCurrent; diff --git a/src/Mod/TechDraw/Gui/QGIDimLines.h b/src/Mod/TechDraw/Gui/QGIDimLines.h index 281a6acc5b..e234eaa57a 100644 --- a/src/Mod/TechDraw/Gui/QGIDimLines.h +++ b/src/Mod/TechDraw/Gui/QGIDimLines.h @@ -39,12 +39,12 @@ class TechDrawGuiExport QGIDimLines : public QGIPrimPath { public: explicit QGIDimLines(); - ~QGIDimLines() {} + ~QGIDimLines() override = default; enum {Type = QGraphicsItem::UserType + 175}; int type() const override { return Type;} - virtual QRectF boundingRect() const override; - virtual QPainterPath shape() const override; + QRectF boundingRect() const override; + QPainterPath shape() const override; public: void draw(); @@ -55,7 +55,7 @@ public: protected: //QVariant itemChange(GraphicsItemChange change, const QVariant &value); - double getEdgeFuzz(void) const; + double getEdgeFuzz() const; private: diff --git a/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h b/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h index e1667dfaf7..e0d68a350e 100644 --- a/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h +++ b/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h @@ -46,14 +46,14 @@ class TechDrawGuiExport QGIDrawingTemplate : public QGITemplate public: explicit QGIDrawingTemplate(QGSPage *); - ~QGIDrawingTemplate(); + ~QGIDrawingTemplate() override; enum {Type = QGraphicsItem::UserType + 151}; - int type() const { return Type;} + int type() const override { return Type;} void clearContents(); - void draw(); - virtual void updateView(bool update = false); + void draw() override; + void updateView(bool update = false) override; protected: TechDraw::DrawParametricTemplate * getParametricTemplate(); diff --git a/src/Mod/TechDraw/Gui/QGIEdge.h b/src/Mod/TechDraw/Gui/QGIEdge.h index 13dba5d014..d8ed9b974b 100644 --- a/src/Mod/TechDraw/Gui/QGIEdge.h +++ b/src/Mod/TechDraw/Gui/QGIEdge.h @@ -34,13 +34,13 @@ class TechDrawGuiExport QGIEdge : public QGIPrimPath { public: explicit QGIEdge(int index); - ~QGIEdge() {} + ~QGIEdge() override = default; enum {Type = QGraphicsItem::UserType + 103}; int type() const override { return Type;} - virtual QRectF boundingRect() const override; - virtual QPainterPath shape() const override; + QRectF boundingRect() const override; + QPainterPath shape() const override; int getProjIndex() const { return projIndex; } @@ -49,7 +49,7 @@ public: bool getHiddenEdge() { return(isHiddenEdge); } void setSmoothEdge(bool b) { isSmoothEdge = b; } bool getSmoothEdge() { return(isSmoothEdge); } - virtual void setPrettyNormal() override; + void setPrettyNormal() override; double getEdgeFuzz(void) const; diff --git a/src/Mod/TechDraw/Gui/QGIFace.cpp b/src/Mod/TechDraw/Gui/QGIFace.cpp index 4d74070f07..b09af8cf34 100644 --- a/src/Mod/TechDraw/Gui/QGIFace.cpp +++ b/src/Mod/TechDraw/Gui/QGIFace.cpp @@ -81,8 +81,12 @@ QGIFace::QGIFace(int index) : getParameters(); + // set up style & colour defaults m_styleDef = Qt::SolidPattern; m_styleSelect = Qt::SolidPattern; + App::Color temp {static_cast(Preferences::getPreferenceGroup("Colors")->GetUnsigned("FaceColor",0xffffffff))}; + setFillColor(temp.asValue()); + m_colDefFill = temp.asValue(); if (m_defClearFace) { setFillMode(NoFill); @@ -90,16 +94,18 @@ QGIFace::QGIFace(int index) : setFill(Qt::transparent, m_styleDef); } else { setFillMode(PlainFill); - m_colDefFill = Qt::white; setFill(m_colDefFill, m_styleDef); } + + m_sharedRender = new QSvgRenderer(); } QGIFace::~QGIFace() { - //nothing to do. every item is a child of QGIFace & will get removed/deleted when QGIF is deleted + delete m_sharedRender; } +/// redraw this face void QGIFace::draw() { setPath(m_outline); //Face boundary @@ -152,6 +158,7 @@ void QGIFace::draw() show(); } +/// show the face style & colour in normal configuration void QGIFace::setPrettyNormal() { // Base::Console().Message("QGIF::setPrettyNormal() - hatched: %d\n", isHatched()); if (isHatched() && @@ -164,6 +171,7 @@ void QGIFace::setPrettyNormal() { QGIPrimPath::setPrettyNormal(); } +/// show the face style & colour in pre-select configuration void QGIFace::setPrettyPre() { // Base::Console().Message("QGIF::setPrettyPre()\n"); m_fillStyleCurrent = Qt::SolidPattern; @@ -171,6 +179,7 @@ void QGIFace::setPrettyPre() { QGIPrimPath::setPrettyPre(); } +/// show the face style & colour in selected configuration void QGIFace::setPrettySel() { // Base::Console().Message("QGIF::setPrettySel()\n"); m_fillStyleCurrent = Qt::SolidPattern; @@ -178,6 +187,7 @@ void QGIFace::setPrettySel() { QGIPrimPath::setPrettySel(); } +/// show or hide the edges of this face. Usually just for debugging void QGIFace::setDrawEdges(bool b) { if (b) { setStyle(Qt::DashLine); @@ -191,6 +201,7 @@ void QGIFace::setHatchFile(std::string fileSpec) m_fileSpec = fileSpec; } +/// get the .svg file to use for hatching this face void QGIFace::loadSvgHatch(std::string fileSpec) { QString qfs(QString::fromUtf8(fileSpec.data(), fileSpec.size())); @@ -224,22 +235,26 @@ void QGIFace::setFillMode(QGIFace::fillMode m) } } +/// update the outline of this face void QGIFace::setOutline(const QPainterPath & path) { m_outline = path; } +/// remove the PAT hatch lines void QGIFace::clearLineSets() { m_dashSpecs.clear(); clearFillItems(); } +/// add PAT hatch line set void QGIFace::addLineSet(LineSet& ls) { m_lineSets.push_back(ls); } +/// convert the PAT line set to QGraphicsPathItems void QGIFace::lineSetToFillItems(LineSet& ls) { m_segCount = 0; @@ -284,6 +299,7 @@ void QGIFace::lineSetToFillItems(LineSet& ls) } } +/// create a PAT fill line from 2 points and a dash configuration QGraphicsPathItem* QGIFace::lineFromPoints(Base::Vector3d start, Base::Vector3d end, DashSpec ds) { QGraphicsPathItem* fillItem = new QGraphicsPathItem(this); @@ -293,6 +309,7 @@ QGraphicsPathItem* QGIFace::lineFromPoints(Base::Vector3d start, Base::Vector3d return fillItem; } +/// create a PAT fill line from geometry QGraphicsPathItem* QGIFace::geomToLine(TechDraw::BaseGeomPtr base, LineSet& ls) { QGraphicsPathItem* fillItem = new QGraphicsPathItem(this); @@ -348,7 +365,7 @@ QPen QGIFace::setGeomPen() return result; } -//!convert from mm to scene units +//! convert from mm to scene units std::vector QGIFace::decodeDashSpec(DashSpec patDash) { double penWidth = Rez::guiX(m_geomWeight); @@ -483,6 +500,7 @@ double QGIFace::getXForm() return 1.0; } +/// remove the children that make up a PAT fill void QGIFace::clearFillItems() { for (auto& f: m_fillItems) { @@ -492,6 +510,7 @@ void QGIFace::clearFillItems() } } +/// debugging tool draws a mark at a position on this face void QGIFace::makeMark(double x, double y) { QGICMark* cmItem = new QGICMark(-1); @@ -502,39 +521,43 @@ void QGIFace::makeMark(double x, double y) cmItem->setZValue(ZVALUE::VERTEX); } +/// make an array of svg tiles to cover this face void QGIFace::buildSvgHatch() { // Base::Console().Message("QGIF::buildSvgHatch() - offset: %s\n", DrawUtil::formatVector(getHatchOffset()).c_str()); double wTile = SVGSIZEW * m_fillScale; double hTile = SVGSIZEH * m_fillScale; - double w = m_outline.boundingRect().width(); - double h = m_outline.boundingRect().height(); - //make the hatch tiled area big enough to handle rotations - double hatchOverlaySize = 2.0 * std::max(w, h); + double faceWidth = m_outline.boundingRect().width(); + double faceHeight = m_outline.boundingRect().height(); + double faceOverlaySize = Preferences::svgHatchFactor() * std::max(faceWidth, faceHeight); QPointF faceCenter = m_outline.boundingRect().center(); - double nw = ceil(hatchOverlaySize / wTile); - double nh = ceil(hatchOverlaySize / hTile); - w = nw * wTile; - h = nh * hTile; - m_svgHatchArea->setRect(0., 0., w,-h); + double tilesWide = ceil(faceOverlaySize / wTile); + double tilesHigh = ceil(faceOverlaySize / hTile); + + double overlayWidth = tilesWide * wTile; + double overlayHeight = tilesHigh * hTile; + m_svgHatchArea->setRect(0., 0., overlayWidth,-overlayHeight); m_svgHatchArea->centerAt(faceCenter); QByteArray before, after; before = QString::fromStdString(SVGCOLPREFIX + SVGCOLDEFAULT).toUtf8(); after = QString::fromStdString(SVGCOLPREFIX + m_svgCol).toUtf8(); QByteArray colorXML = m_svgXML.replace(before, after); + if (!m_sharedRender->load(colorXML)) { + Base::Console().Message("QGIF::buildSvgHatch - failed to load svg string\n"); + return; + } long int tileCount = 0; - for (int iw = 0; iw < int(nw); iw++) { - for (int ih = 0; ih < int(nh); ih++) { + for (int iw = 0; iw < int(tilesWide); iw++) { + for (int ih = 0; ih < int(tilesHigh); ih++) { QGCustomSvg* tile = new QGCustomSvg(); tile->setScale(m_fillScale); - if (tile->load(&colorXML)) { - tile->setParentItem(m_svgHatchArea); - tile->setPos(iw*wTile + getHatchOffset().x, - -h + ih*hTile + getHatchOffset().y); - } + tile->setSharedRenderer(m_sharedRender); + tile->setParentItem(m_svgHatchArea); + tile->setPos(iw*wTile + getHatchOffset().x, + -overlayWidth + ih*hTile + getHatchOffset().y); tileCount++; if (tileCount > m_maxTile) { - Base::Console().Warning("SVG tile count exceeded: %ld\n", tileCount); + Base::Console().Warning("SVG tile count exceeded: %ld. Change hatch scale or raise limit.\n", tileCount); break; } } @@ -552,6 +575,7 @@ void QGIFace::clearSvg() hideSvg(true); } +/// make an array of bitmap tiles to cover this face void QGIFace::buildPixHatch() { // Base::Console().Message("QGIF::buildPixHatch() - offset: %s\n", DrawUtil::formatVector(getHatchOffset()).c_str()); @@ -561,7 +585,7 @@ void QGIFace::buildPixHatch() double faceHeight = m_outline.boundingRect().height(); QRectF faceRect = m_outline.boundingRect(); QPointF faceCenter = faceRect.center(); - double hatchOverlaySize = 2.0 * std::max(faceWidth, faceHeight); + double hatchOverlaySize = Preferences::svgHatchFactor() * std::max(faceWidth, faceHeight); double numberWide = ceil(hatchOverlaySize / wTile); double numberHigh = ceil(hatchOverlaySize / hTile); double overlayWidth = numberWide * wTile; @@ -594,7 +618,7 @@ void QGIFace::buildPixHatch() pm = QPixmap::fromImage(imageIn); pm = pm.scaled(wTile, hTile); if (pm.isNull()) { - Base::Console().Error("QGIF::buildPixHatch - pm is null\n"); + Base::Console().Error("QGIF::buildPixHatch - pixmap is null\n"); return; } @@ -602,7 +626,6 @@ void QGIFace::buildPixHatch() QImage tileField(overlayWidth, overlayHeight, QImage::Format_ARGB32); QPointF fieldCenter(overlayWidth / 2.0, overlayHeight / 2.0); - //do we have to rotate the field before we clip it?? tileField.fill(Qt::transparent); QPainter painter2(&tileField); QPainter::RenderHints hints = painter2.renderHints(); @@ -622,7 +645,7 @@ void QGIFace::buildPixHatch() QRectF(0, 0, wTile, hTile)); //source rect tileCount++; if (tileCount > m_maxTile) { - Base::Console().Warning("Pixmap tile count exceeded: %ld\n", tileCount); + Base::Console().Warning("Pixmap tile count exceeded: %ld. Change hatch scale or raise limit.\n", tileCount); break; } } @@ -667,12 +690,17 @@ void QGIFace::setHatchScale(double s) m_fillScale = s; } -//QtSvg does not handle clipping, so we must be able to turn the hatching on/off +/// turn svg tiles on or off. QtSvg does not handle clipping, +/// so we must be able to turn the hatching on/off when exporting a face with an +/// svg hatch. Otherwise the full tile pattern is shown in the export. void QGIFace::hideSvg(bool b) { m_hideSvgTiles = b; } + +/// create a QPixmap from a bitmap file. The QPixmap will be used as a QBrush +/// texture. QPixmap QGIFace::textureFromBitmap(std::string fileSpec) { QPixmap pix; @@ -702,9 +730,6 @@ void QGIFace::getParameters() m_maxSeg = Preferences::getPreferenceGroup("PAT")->GetInt("MaxSeg", 10000l); m_maxTile = Preferences::getPreferenceGroup("Decorations")->GetInt("MaxSVGTile", 10000l); - App::Color temp {static_cast(Preferences::getPreferenceGroup("Colors")->GetUnsigned("FaceColor",0xffffffff))}; - setFillColor(temp.asValue()); - m_defClearFace = Preferences::getPreferenceGroup("Colors")->GetBool("ClearFace", false); } diff --git a/src/Mod/TechDraw/Gui/QGIFace.h b/src/Mod/TechDraw/Gui/QGIFace.h index be9f9cdd8a..e3d3834af2 100644 --- a/src/Mod/TechDraw/Gui/QGIFace.h +++ b/src/Mod/TechDraw/Gui/QGIFace.h @@ -27,6 +27,9 @@ #include #include +#include + +#include #include @@ -166,6 +169,8 @@ private: double m_hatchRotation; Base::Vector3d m_hatchOffset; + QSvgRenderer *m_sharedRender; + }; } diff --git a/src/Mod/TechDraw/Gui/QGIGhostHighlight.h b/src/Mod/TechDraw/Gui/QGIGhostHighlight.h index 9c37a6a388..4035721edf 100644 --- a/src/Mod/TechDraw/Gui/QGIGhostHighlight.h +++ b/src/Mod/TechDraw/Gui/QGIGhostHighlight.h @@ -42,7 +42,7 @@ class TechDrawGuiExport QGIGhostHighlight : public QObject, public QGIHighlight Q_OBJECT public: explicit QGIGhostHighlight(); - ~QGIGhostHighlight(); + ~QGIGhostHighlight() override; enum {Type = QGraphicsItem::UserType + 177}; int type() const override { return Type;} @@ -54,8 +54,8 @@ Q_SIGNALS: void positionChange(QPointF p); protected: - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; bool m_dragging; diff --git a/src/Mod/TechDraw/Gui/QGIHighlight.h b/src/Mod/TechDraw/Gui/QGIHighlight.h index c83ac81028..18409846fc 100644 --- a/src/Mod/TechDraw/Gui/QGIHighlight.h +++ b/src/Mod/TechDraw/Gui/QGIHighlight.h @@ -43,7 +43,7 @@ class TechDrawGuiExport QGIHighlight : public QGIDecoration { public: explicit QGIHighlight(); - ~QGIHighlight(); + ~QGIHighlight() override; enum {Type = QGraphicsItem::UserType + 176}; int type() const override { return Type;} @@ -55,7 +55,7 @@ public: void setBounds(double x1, double y1, double x2, double y2); void setReference(const char* sym); void setFont(QFont f, double fsize); - virtual void draw() override; + void draw() override; void setInteractive(bool state); void setFeatureName(std::string name) { m_featureName = name; } std::string getFeatureName() { return m_featureName; } @@ -69,7 +69,7 @@ protected: void makeHighlight(); void makeReference(); void setTools(); - int getHoleStyle(void); + int getHoleStyle(); private: QString m_refText; diff --git a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp index f73d0fbff5..5c313119ba 100644 --- a/src/Mod/TechDraw/Gui/QGILeaderLine.cpp +++ b/src/Mod/TechDraw/Gui/QGILeaderLine.cpp @@ -493,7 +493,6 @@ void QGILeaderLine::setArrows(std::vector pathPoints) if (featLeader->StartSymbol.getValue() != ArrowType::NONE) { m_arrow1->setStyle(featLeader->StartSymbol.getValue()); m_arrow1->setWidth(getLineWidth()); - // TODO: variable size arrow heads m_arrow1->setSize(QGIArrow::getPrefArrowSize()); m_arrow1->setDirMode(true); m_arrow1->setDirection(stdX); @@ -516,6 +515,7 @@ void QGILeaderLine::setArrows(std::vector pathPoints) if (featLeader->EndSymbol.getValue() != ArrowType::NONE) { m_arrow2->setStyle(featLeader->EndSymbol.getValue()); m_arrow2->setWidth(getLineWidth()); + m_arrow2->setSize(QGIArrow::getPrefArrowSize()); m_arrow2->setDirMode(true); m_arrow2->setDirection(-stdX); if (pathPoints.size() > 1) { diff --git a/src/Mod/TechDraw/Gui/QGILeaderLine.h b/src/Mod/TechDraw/Gui/QGILeaderLine.h index 689e07545b..002a205ee3 100644 --- a/src/Mod/TechDraw/Gui/QGILeaderLine.h +++ b/src/Mod/TechDraw/Gui/QGILeaderLine.h @@ -62,7 +62,7 @@ public: }; explicit QGILeaderLine(); - ~QGILeaderLine() = default; + ~QGILeaderLine() override = default; int type() const override { diff --git a/src/Mod/TechDraw/Gui/QGIPrimPath.h b/src/Mod/TechDraw/Gui/QGIPrimPath.h index bdcb4adacf..36128243d0 100644 --- a/src/Mod/TechDraw/Gui/QGIPrimPath.h +++ b/src/Mod/TechDraw/Gui/QGIPrimPath.h @@ -43,13 +43,13 @@ class TechDrawGuiExport QGIPrimPath : public QGraphicsPathItem { public: explicit QGIPrimPath(); - ~QGIPrimPath() {} + ~QGIPrimPath() override = default; enum {Type = QGraphicsItem::UserType + 170}; int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; - virtual QPainterPath shape() const override { return path(); } + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; + QPainterPath shape() const override { return path(); } void setHighlighted(bool state); virtual void setPrettyNormal(); @@ -71,20 +71,20 @@ public: void setFill(QBrush b); void resetFill(); void setFillColor(QColor c); - QColor getFillColor(void) { return m_colDefFill; } + QColor getFillColor() { return m_colDefFill; } void setFillOverride(bool b) { m_fillOverride = b; } protected: - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; - virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; - virtual QColor getNormalColor(void); - virtual QColor getPreColor(void); - virtual QColor getSelectColor(void); - Base::Reference getParmGroup(void); - virtual Qt::PenCapStyle prefCapStyle(void); + virtual QColor getNormalColor(); + virtual QColor getPreColor(); + virtual QColor getSelectColor(); + Base::Reference getParmGroup(); + virtual Qt::PenCapStyle prefCapStyle(); bool isHighlighted; diff --git a/src/Mod/TechDraw/Gui/QGIRichAnno.cpp b/src/Mod/TechDraw/Gui/QGIRichAnno.cpp index 6890195794..f33ac921fb 100644 --- a/src/Mod/TechDraw/Gui/QGIRichAnno.cpp +++ b/src/Mod/TechDraw/Gui/QGIRichAnno.cpp @@ -54,7 +54,7 @@ using namespace TechDrawGui; //************************************************************** QGIRichAnno::QGIRichAnno() : - m_isExporting(false), m_hasHover(false) + m_isExportingPdf(false), m_isExportingSvg(false), m_hasHover(false) { setHandlesChildEvents(false); setAcceptHoverEvents(false); @@ -78,18 +78,6 @@ QGIRichAnno::QGIRichAnno() : } -//void QGIRichAnno::select(bool state) -//{ -// setSelected(state); -// draw(); -//} - -//void QGIRichAnno::hover(bool state) -//{ -// m_hasHover = state; -// draw(); -//} - void QGIRichAnno::updateView(bool update) { // Base::Console().Message("QGIRA::updateView() - %s\n", getViewName()); @@ -100,8 +88,17 @@ void QGIRichAnno::updateView(bool update) } auto vp = static_cast(getViewProvider(getViewObject())); - if (!vp) + if (!vp) { return; + } + + //allow/prevent dragging + if (getViewObject()->isLocked()) { + setFlag(QGraphicsItem::ItemIsMovable, false); + } else { + setFlag(QGraphicsItem::ItemIsMovable, true); + } + if (annoFeat->X.isTouched() || annoFeat->Y.isTouched()) { float x = Rez::guiX(annoFeat->X.getValue()); @@ -148,94 +145,121 @@ void QGIRichAnno::setTextItem() // Base::Console().Message("QGIRA::setTextItem() - %s\n", getViewName()); TechDraw::DrawRichAnno* annoFeat = getFeature(); QString inHtml = QString::fromUtf8(annoFeat->AnnoText.getValue()); + QRectF inRect = m_text->boundingRect(); + double fontSize = m_text->font().pointSizeF(); - //don't do this multiplication if exporting to SVG as other apps interpret - //font sizes differently from QGraphicsTextItem (?) - if (!getExporting()) { - //convert point font sizes to (Rez, mm) font sizes - QRegularExpression rxFontSize(QString::fromUtf8("font-size:([0-9]*)pt;")); - QRegularExpressionMatch match; - double mmPerPoint = 0.353; - double sizeConvert = Rez::getRezFactor() * mmPerPoint; - int pos = 0; - QStringList findList; - QStringList replList; - while ((pos = inHtml.indexOf(rxFontSize, pos, &match)) != -1) { - QString found = match.captured(0); - findList << found; - QString qsOldSize = match.captured(1); + QRegularExpression rxFontSize(QString::fromUtf8("font-size:([0-9]*)pt;")); + QRegularExpressionMatch match; + double mmPerPoint = 0.353; // 25.4 mm/in / 72 points/inch + double cssPxPerPoint = 16.0 / 12.0; // CSS says 12 pt text is 16 px high + double sceneUnitsPerPoint = Rez::getRezFactor() * mmPerPoint; // scene units per point: 3.53 + int pos = 0; + QStringList findList; + QStringList replList; + while ((pos = inHtml.indexOf(rxFontSize, pos, &match)) != -1) { + QString found = match.captured(0); + findList << found; + QString qsOldSize = match.captured(1); - QString repl = found; - double newSize = qsOldSize.toDouble(); - newSize = newSize * sizeConvert; - QString qsNewSize = QString::number(newSize, 'f', 2); - repl.replace(qsOldSize, qsNewSize); - replList << repl; - pos += match.capturedLength(); - } - QString outHtml = inHtml; - int iRepl = 0; - //TODO: check list for duplicates? - for ( ; iRepl < findList.size(); iRepl++) { - outHtml = outHtml.replace(findList[iRepl], replList[iRepl]); - } - - m_text->setTextWidth(Rez::guiX(annoFeat->MaxWidth.getValue())); - m_text->setHtml(outHtml); -// setLineSpacing(50); //this has no effect on the display?! -// m_text->update(); - - if (annoFeat->ShowFrame.getValue()) { - QRectF r = m_text->boundingRect().adjusted(1, 1,-1, -1); - m_rect->setPen(rectPen()); - m_rect->setBrush(Qt::NoBrush); - m_rect->setRect(r); - m_rect->show(); + QString repl = found; + double newSize = qsOldSize.toDouble(); // in points + // The font size in the QGraphicsTextItem html is interpreted differently + // in svg rendering compared to the screen or pdf? + if (getExportingSvg()) { + // scale point size to CSS pixels + newSize = newSize * cssPxPerPoint; } else { - m_rect->hide(); + // scale point size to scene units + newSize = newSize * sceneUnitsPerPoint; } + QString qsNewSize = QString::number(newSize, 'f', 2); + repl.replace(qsOldSize, qsNewSize); + replList << repl; + pos += match.capturedLength(); + } + QString outHtml = inHtml; + int iRepl = 0; + //TODO: check list for duplicates? + for ( ; iRepl < findList.size(); iRepl++) { + outHtml = outHtml.replace(findList[iRepl], replList[iRepl]); + } + + prepareGeometryChange(); + double actualWidth = m_text->textWidth(); + m_text->setTextWidth(Rez::guiX(annoFeat->MaxWidth.getValue())); + m_text->setHtml(outHtml); + if (getExportingSvg()) { + m_text->setTextWidth(actualWidth); + // lines are correctly spaced on screen or in pdf, but svg needs this + setLineSpacing(100); + } + + if (annoFeat->ShowFrame.getValue()) { + QRectF outRect = m_text->boundingRect().adjusted(1, 1,-1, -1); + m_rect->setPen(rectPen()); + m_rect->setBrush(Qt::NoBrush); + m_rect->setRect(outRect); + if (getExportingSvg()) { + // the original text bounding rect is closer to the right size vs + // the bounding rect after the text size is changed + m_rect->setRect(inRect); + } + m_rect->centerAt(0.0, 0.0); + m_rect->show(); } else { - // don't force line wrap & strip formatting that doesn't export well! - double realWidth = m_text->boundingRect().width(); - m_text->setTextWidth(realWidth); - - QFont f = prefFont(); - double ptSize = prefPointSize(); - f.setPointSizeF(ptSize); - m_text->setFont(f); - - QString plainText = QTextDocumentFragment::fromHtml( inHtml ).toPlainText(); - m_text->setPlainText(plainText); - setLineSpacing(100); //this doesn't appear in the generated Svg, but does space the lines! m_rect->hide(); - m_rect->update(); } m_text->centerAt(0.0, 0.0); - m_rect->centerAt(0.0, 0.0); -} - -void QGIRichAnno::setLineSpacing(int lineSpacing) -{ - //this line spacing should be px, but seems to be %? in any event, it does - //space out the lines. - QTextBlock block = m_text->document()->begin(); - for (; block.isValid(); block = block.next()) { - QTextCursor tc = QTextCursor(block); - QTextBlockFormat fmt = block.blockFormat(); -// fmt.setTopMargin(lineSpacing); //no effect??? - fmt.setBottomMargin(lineSpacing); //spaces out the lines! - tc.setBlockFormat(fmt); -// } + if (getExportingSvg()) { + // m_text position will be wrong in svg, but m_rect will be correct, so + // we adjust the position of m_text + // double spaced default font size in px + double verticalAdjust = cssPxPerPoint * fontSize * 2.0; + QPointF textPos(m_rect->pos().x() + 1.0, m_rect->pos().y() + verticalAdjust); + m_text->setPos(textPos); } } -//void QGIRichAnno::drawBorder() -//{ -//////Leaders have no border! -//// QGIView::drawBorder(); //good for debugging -//} +// attempt to space the lines correctly after the font sizes are changed to match +// the Svg rendering of the QGraphicsTextItem. +void QGIRichAnno::setLineSpacing(int lineSpacing) +{ + // left to itself, Qt appears to space the lines according to this formula + // DeltaY(in mm) = (1 + 2*pointSize + margin) which vastly under spaces the + // lines + m_text->document()->setUseDesignMetrics(true); + QTextBlock block = m_text->document()->begin(); + for (; block.isValid(); block = block.next()) { + QTextCursor tc = QTextCursor(block); + QTextBlockFormat fmt = tc.blockFormat(); + QTextCharFormat cFmt = tc.charFormat(); + // this is already converted to pixels in setTextItem + // + double cssPixelSize = cFmt.font().pointSizeF(); + // css Pixels are treated as if they were points in the conversion to Svg + double textHeightSU = Rez::guiX(cssPixelSize * 25.4 / 72.0); // actual height of text in scene units + double pointSize = cssPixelSize * 72.0 / 96.0; + double deltaYSU = 1.0 + 2.0 * pointSize; // how far Qt will space lines (based on samples) + double linegap = 0.4 * cssPixelSize; // 20% gaps above and below + // margins will be included in Qt's calculation of spacing + + double margin = linegap * pointSize / 10.0; + QTextBlockFormat spacerFmt = QTextBlockFormat(); + if (block.previous().isValid()) { + // there is a block before this one, so add a top margin + spacerFmt.setTopMargin(margin); + } + if (block.next().isValid()) { + // there is another block after this, so add a bottom margin + spacerFmt.setBottomMargin(margin); + } + double requiredSpacing = (textHeightSU / (deltaYSU - 1.0)) * lineSpacing; + spacerFmt.setLineHeight(requiredSpacing, QTextBlockFormat::ProportionalHeight); + tc.mergeBlockFormat(spacerFmt); + } +} TechDraw::DrawRichAnno* QGIRichAnno::getFeature() { @@ -286,17 +310,6 @@ QFont QGIRichAnno::prefFont() return PreferencesGui::labelFontQFont(); } -double QGIRichAnno::prefPointSize() -{ -// Base::Console().Message("QGIRA::prefPointSize()\n"); - double fontSize = Preferences::dimFontSizeMM(); - //this conversion is only approximate. the factor changes for different fonts. -// double mmToPts = 2.83; //theoretical value - double mmToPts = 2.00; //practical value. seems to be reasonable for common fonts. - - return round(fontSize * mmToPts); -} - void QGIRichAnno::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) { Q_UNUSED(event); diff --git a/src/Mod/TechDraw/Gui/QGIRichAnno.h b/src/Mod/TechDraw/Gui/QGIRichAnno.h index 3e4499d032..bc6d70d96e 100644 --- a/src/Mod/TechDraw/Gui/QGIRichAnno.h +++ b/src/Mod/TechDraw/Gui/QGIRichAnno.h @@ -58,41 +58,36 @@ public: enum {Type = QGraphicsItem::UserType + 233}; explicit QGIRichAnno(); - ~QGIRichAnno() = default; + ~QGIRichAnno() override = default; int type() const override { return Type;} - virtual void paint( QPainter * painter, - const QStyleOptionGraphicsItem * option, - QWidget * widget = nullptr ) override; - virtual QRectF boundingRect() const override; + void paint( QPainter * painter, + const QStyleOptionGraphicsItem * option, + QWidget * widget = nullptr ) override; + QRectF boundingRect() const override; - virtual void drawBorder() override; - virtual void updateView(bool update = false) override; + void drawBorder() override; + void updateView(bool update = false) override; - void setTextItem(void); + void setTextItem(); - virtual TechDraw::DrawRichAnno* getFeature(void); + virtual TechDraw::DrawRichAnno* getFeature(); QPen rectPen() const; - void setExporting(bool b) { m_isExporting = b; } - bool getExporting(void) { return m_isExporting; } - - -public Q_SLOTS: -/* void textDragging(void);*/ -/* void textDragFinished(void);*/ -/* void hover(bool state);*/ -/* void select(bool state);*/ + void setExportingPdf(bool b) { m_isExportingPdf = b; } + bool getExportingPdf() { return m_isExportingPdf; } + void setExportingSvg(bool b) { m_isExportingSvg = b; } + bool getExportingSvg() { return m_isExportingSvg; } protected: - virtual void draw() override; + void draw() override; void setLineSpacing(int lineSpacing); - double prefPointSize(void); QFont prefFont(void); - virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; - bool m_isExporting; + bool m_isExportingPdf; + bool m_isExportingSvg; QGCustomText* m_text; bool m_hasHover; QGCustomRect* m_rect; diff --git a/src/Mod/TechDraw/Gui/QGISectionLine.h b/src/Mod/TechDraw/Gui/QGISectionLine.h index ebb6dbbdec..ca2f927f8e 100644 --- a/src/Mod/TechDraw/Gui/QGISectionLine.h +++ b/src/Mod/TechDraw/Gui/QGISectionLine.h @@ -47,12 +47,12 @@ class TechDrawGuiExport QGISectionLine : public QGIDecoration { public: explicit QGISectionLine(); - ~QGISectionLine() {} + ~QGISectionLine() override = default; enum {Type = QGraphicsItem::UserType + 172}; - int type() const { return Type;} + int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ); + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; void setEnds(Base::Vector3d l1, Base::Vector3d l2); void setBounds(double x1, double y1, double x2, double y2); @@ -68,7 +68,7 @@ public: bool pathMode() { return m_pathMode; } void setChangePoints(TechDraw::ChangePointVector changePoints); void clearChangePoints(); - virtual void draw(); + void draw() override; protected: QColor getSectionColor(); diff --git a/src/Mod/TechDraw/Gui/QGITemplate.h b/src/Mod/TechDraw/Gui/QGITemplate.h index 38cc3a073e..52202b4574 100644 --- a/src/Mod/TechDraw/Gui/QGITemplate.h +++ b/src/Mod/TechDraw/Gui/QGITemplate.h @@ -47,10 +47,10 @@ class TechDrawGuiExport QGITemplate : public QObject, public QGraphicsItemGroup public: QGITemplate(QGSPage *); - ~QGITemplate(); + ~QGITemplate() override; enum {Type = QGraphicsItem::UserType + 150}; - int type() const { return Type;} + int type() const override { return Type;} void clearContents(); @@ -60,7 +60,7 @@ public: inline qreal getY() { return y() * -1; } virtual void updateView(bool update = false); - std::vector getTextFields(void) { return textFields; }; + std::vector getTextFields() { return textFields; }; virtual void draw() = 0; diff --git a/src/Mod/TechDraw/Gui/QGITile.h b/src/Mod/TechDraw/Gui/QGITile.h index d307f2b3c5..a9eb95d321 100644 --- a/src/Mod/TechDraw/Gui/QGITile.h +++ b/src/Mod/TechDraw/Gui/QGITile.h @@ -47,12 +47,12 @@ class TechDrawGuiExport QGITile : public QGIDecoration { public: explicit QGITile(TechDraw::DrawTileWeld*); - ~QGITile(void); + ~QGITile() override; enum {Type = QGraphicsItem::UserType + 325}; - int type(void) const { return Type;} + int type(void) const override { return Type;} - virtual QRectF boundingRect() const; + QRectF boundingRect() const override; void setTileTextLeft(std::string s); void setTileTextRight(std::string s); @@ -64,8 +64,8 @@ public: void setTileScale(double s); void setTailRight(bool b) { m_tailRight = b; } void setAltWeld(bool b) { m_altWeld = b; } - bool isTailRight(void); - virtual void draw(void); + bool isTailRight(); + void draw() override; protected: QColor getTileColor(void) const; diff --git a/src/Mod/TechDraw/Gui/QGIVertex.h b/src/Mod/TechDraw/Gui/QGIVertex.h index 3f846a8682..31ed77576c 100644 --- a/src/Mod/TechDraw/Gui/QGIVertex.h +++ b/src/Mod/TechDraw/Gui/QGIVertex.h @@ -34,11 +34,11 @@ class TechDrawGuiExport QGIVertex : public QGIPrimPath { public: explicit QGIVertex(int index); - ~QGIVertex() {} + ~QGIVertex() override = default; enum {Type = QGraphicsItem::UserType + 105}; int type() const override { return Type;} - virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; + void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; int getProjIndex() const { return projIndex; } diff --git a/src/Mod/TechDraw/Gui/QGIView.h b/src/Mod/TechDraw/Gui/QGIView.h index 983f4d933a..ee3e132e0c 100644 --- a/src/Mod/TechDraw/Gui/QGIView.h +++ b/src/Mod/TechDraw/Gui/QGIView.h @@ -77,7 +77,7 @@ class TechDrawGuiExport QGIView : public QObject, public QGraphicsItemGroup Q_OBJECT public: QGIView(); - ~QGIView(); + ~QGIView() override; enum {Type = QGraphicsItem::UserType + 101}; int type() const override { return Type;} diff --git a/src/Mod/TechDraw/Gui/QGIViewBalloon.h b/src/Mod/TechDraw/Gui/QGIViewBalloon.h index f37b3f4162..00cccbbf73 100644 --- a/src/Mod/TechDraw/Gui/QGIViewBalloon.h +++ b/src/Mod/TechDraw/Gui/QGIViewBalloon.h @@ -62,7 +62,7 @@ class QGIBalloonLabel: public QGraphicsObject public: QGIBalloonLabel(); - ~QGIBalloonLabel() = default; + ~QGIBalloonLabel() override = default; enum { @@ -174,7 +174,7 @@ public: }; explicit QGIViewBalloon(); - ~QGIViewBalloon() = default; + ~QGIViewBalloon() override = default; void setViewPartFeature(TechDraw::DrawViewBalloon* balloonFeat); int type() const override diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.h b/src/Mod/TechDraw/Gui/QGIViewDimension.h index ce6708a68a..46e16e802c 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.h +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.h @@ -62,7 +62,7 @@ Q_OBJECT public: QGIDatumLabel(); - ~QGIDatumLabel() = default; + ~QGIDatumLabel() override = default; enum {Type = QGraphicsItem::UserType + 107}; int type() const override { return Type;} @@ -159,7 +159,7 @@ public: enum {Type = QGraphicsItem::UserType + 106}; QGIViewDimension(); - ~QGIViewDimension() = default; + ~QGIViewDimension() override = default; void setViewPartFeature(TechDraw::DrawViewDimension *obj); int type() const override { return Type;} diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.cpp b/src/Mod/TechDraw/Gui/QGIViewPart.cpp index 30c5de1244..8066f74922 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewPart.cpp @@ -1280,7 +1280,7 @@ void QGIViewPart::rotateView() {} bool QGIViewPart::prefFaceEdges() { bool result = false; - result = Preferences::getPreferenceGroup("General")->GetBool("DrawFaceEdges", 0l); + result = Preferences::getPreferenceGroup("General")->GetBool("DrawFaceEdges", false); return result; } diff --git a/src/Mod/TechDraw/Gui/QGMText.h b/src/Mod/TechDraw/Gui/QGMText.h index 1e42aed927..d65759e6b3 100644 --- a/src/Mod/TechDraw/Gui/QGMText.h +++ b/src/Mod/TechDraw/Gui/QGMText.h @@ -46,21 +46,21 @@ Q_OBJECT public: explicit QGMText(void); - ~QGMText() {} + ~QGMText() override = default; enum {Type = QGraphicsItem::UserType + 300}; int type() const override { return Type;} - virtual void paint( QPainter * painter, - const QStyleOptionGraphicsItem * option, - QWidget * widget = nullptr ) override; + void paint( QPainter * painter, + const QStyleOptionGraphicsItem * option, + QWidget * widget = nullptr ) override; - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; virtual void showBox(bool b) { m_showBox = b; } - virtual bool showBox(void) { return m_showBox; } + virtual bool showBox() { return m_showBox; } - virtual void setPrettyNormal() override; - virtual void setPrettyPre() override; - virtual void setPrettySel() override; + void setPrettyNormal() override; + void setPrettyPre() override; + void setPrettySel() override; Q_SIGNALS: void dragging(); @@ -69,9 +69,9 @@ Q_SIGNALS: void dragFinished(); protected: - virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; - virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; - virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; + QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; + void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; private: bool m_showBox; diff --git a/src/Mod/TechDraw/Gui/QGSPage.cpp b/src/Mod/TechDraw/Gui/QGSPage.cpp index 346830b101..501e060a77 100644 --- a/src/Mod/TechDraw/Gui/QGSPage.cpp +++ b/src/Mod/TechDraw/Gui/QGSPage.cpp @@ -1051,7 +1051,7 @@ void QGSPage::redraw1View(TechDraw::DrawView* dView) } } -void QGSPage::setExporting(bool enable) +void QGSPage::setExportingPdf(bool enable) { QList sceneItems = items(); std::vector dvps; @@ -1063,7 +1063,7 @@ void QGSPage::setExporting(bool enable) dvps.push_back(qgiPart); } if (qgiRTA) { - qgiRTA->setExporting(enable); + qgiRTA->setExportingPdf(enable); } } for (auto& v : dvps) { @@ -1071,6 +1071,19 @@ void QGSPage::setExporting(bool enable) } } +// RichTextAnno needs to know when it is rendering an Svg as the font size +// is handled differently in Svg compared to the screen or Pdf. +void QGSPage::setExportingSvg(bool enable) +{ + QList sceneItems = items(); + for (auto& qgi : sceneItems) { + QGIRichAnno* qgiRTA = dynamic_cast(qgi); + if (qgiRTA) { + qgiRTA->setExportingSvg(enable); + } + } +} + void QGSPage::saveSvg(QString filename) { // TODO: We only have m_vpPage because constructor gets passed a view provider... @@ -1106,7 +1119,7 @@ void QGSPage::saveSvg(QString filename) bool saveState = m_vpPage->getFrameState(); m_vpPage->setFrameState(false); m_vpPage->setTemplateMarkers(false); - setExporting(true); + setExportingSvg(true); // Here we temporarily hide the page template, because Qt would otherwise convert the SVG template // texts into series of paths, making the later document edits practically unfeasible. @@ -1119,7 +1132,6 @@ void QGSPage::saveSvg(QString filename) } refreshViews(); - // viewport()->repaint(); double width = Rez::guiX(page->getPageWidth()); double height = Rez::guiX(page->getPageHeight()); @@ -1135,13 +1147,12 @@ void QGSPage::saveSvg(QString filename) m_vpPage->setFrameState(saveState); m_vpPage->setTemplateMarkers(saveState); - setExporting(false); + setExportingSvg(false); if (templateVisible && svgTemplate) { svgTemplate->show(); } refreshViews(); - // viewport()->repaint(); temporaryFile.close(); postProcessXml(temporaryFile, filename, pageName); diff --git a/src/Mod/TechDraw/Gui/QGSPage.h b/src/Mod/TechDraw/Gui/QGSPage.h index 99f7249656..dfb1a6b899 100644 --- a/src/Mod/TechDraw/Gui/QGSPage.h +++ b/src/Mod/TechDraw/Gui/QGSPage.h @@ -75,7 +75,7 @@ class TechDrawGuiExport QGSPage: public QGraphicsScene public: explicit QGSPage(ViewProviderPage* vpPage, QWidget* parent = nullptr); - ~QGSPage() = default; + ~QGSPage() override = default; bool addView(const App::DocumentObject* obj); bool attachView(App::DocumentObject* obj); @@ -132,7 +132,8 @@ public: TechDraw::DrawPage* getDrawPage(); - void setExporting(bool enable); + void setExportingPdf(bool enable); + void setExportingSvg(bool enable); virtual void refreshViews(); /// Renders the page to SVG with filename. diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 803b37349d..18bb6e419a 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -122,8 +122,8 @@ public: } void init() { - page->m_atCursor = hGrp->GetBool("ZoomAtCursor", 1l); - page->m_invertZoom = hGrp->GetBool("InvertZoom", 0l); + page->m_atCursor = hGrp->GetBool("ZoomAtCursor", true); + page->m_invertZoom = hGrp->GetBool("InvertZoom", false); page->m_zoomIncrement = hGrp->GetFloat("ZoomStep", 0.02); page->m_reversePan = Preferences::getPreferenceGroup("General")->GetInt("KbPan", 1); diff --git a/src/Mod/TechDraw/Gui/QGVPage.h b/src/Mod/TechDraw/Gui/QGVPage.h index 780d845821..7ae6a8e486 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.h +++ b/src/Mod/TechDraw/Gui/QGVPage.h @@ -85,7 +85,7 @@ public: }; QGVPage(ViewProviderPage* vpPage, QGSPage* scenePage, QWidget* parent = nullptr); - ~QGVPage(); + ~QGVPage() override; void setRenderer(RendererType type = Native); void drawBackground(QPainter* painter, const QRectF& rect) override; @@ -97,8 +97,6 @@ public: TechDraw::DrawPage* getDrawPage(); - void setExporting(bool enable); - void makeGrid(int width, int height, double step); void showGrid(bool state) { m_showGrid = state; } void updateViewport() { viewport()->repaint(); } diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw.ts index a63c31b5c9..c98f57769e 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw - + Insert Arch Workbench Object - + Insert a View of a Section Plane from Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File - + Export Page as DXF - + Save DXF file - + DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File - + Export Page as SVG @@ -1601,7 +1601,7 @@ - Template (*.svg *.dxf) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw - + Project shape... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw - + Insert Spreadsheet View - + Insert View to a spreadsheet @@ -1999,23 +1999,23 @@ - + Create DraftView - + Create ArchView - + Create spreadsheet view - - + + Save page to dxf @@ -2086,7 +2086,7 @@ - + Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex + + + TechDraw Insert Prefix + + Insert Prefix + + + TechDraw Remove Prefix + + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim + + + TechDraw Hole Circle + + Bolt Circle Centerlines + + + TechDraw Circle Centerlines + + Circle Centerlines + + + TechDraw Thread Hole Side + + Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + + Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + + Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + + Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + + Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + + Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + + Cosmetic Arc + + + TechDraw Cosmetic Circle + + Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + + Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + + Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + + Lock/Unlock View + + + TechDraw Extend/Shorten Line + + Extend/Shorten Line + + + TechDraw calculate selected area + + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection @@ -2765,37 +2850,37 @@ - + Please select only 1 Arch Section. - + No Arch Sections in selection. - + Select exactly one Spreadsheet object. - + No Drawing View - + Open Drawing View before attempting export to SVG. - + Can not export selection - + Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ - + PDF (*.pdf) - - + + All Files (*.*) - + Export Page As PDF - + Document Name: - + SVG (*.svg) - + Export page as SVG - + Are you sure you want to continue? - + Show drawing - + Toggle KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor @@ -3400,7 +3485,7 @@ - + Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty - + No object selected @@ -3628,12 +3713,12 @@ - + TechDraw Thread Hole Side - + Please select two straight lines @@ -3741,16 +3826,19 @@ it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + + + + - + @@ -3763,25 +3851,22 @@ it has a weld symbol that would become broken. - You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: @@ -4705,13 +4790,6 @@ when hatching a face with a PAT pattern Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - - Detail Highlight @@ -4752,6 +4830,13 @@ when hatching a face with a PAT pattern Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + + Monochrome @@ -5414,79 +5499,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated - + Toggle &Frames - + &Export SVG - + Export DXF - + Export PDF - + Print All Pages - + Different orientation - + The printer uses a different orientation than the drawing. Do you want to continue? - + Different paper size - + The printer uses a different paper size than the drawing. Do you want to continue? - + Opening file failed - + Can not open file %1 for writing. - + Save DXF file - + DXF (*.dxf) - + Selected: @@ -8494,7 +8579,7 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_be.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_be.ts index c661c8c320..23e5739453 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_be.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_be.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Тэхнічны чарцёж - + Insert Arch Workbench Object Уставіць аб'ект варштату Архітэктура - + Insert a View of a Section Plane from Arch Workbench Уставіць выгляд плоскасці перасеку з варштату Архітэктура @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Файл - + Export Page as DXF Экспартаваць старонку ў DXF - + Save DXF file Захаваць файл DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Файл - + Export Page as SVG Экспартаваць старонку ў SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Шаблон (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw Тэхнічны чарцёж - + Project shape... Праекцыя фігуры... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Тэхнічны чарцёж - + Insert Spreadsheet View Уставіць прагляд аркуша - + Insert View to a spreadsheet Уставіць прагляд аркуша @@ -1999,23 +1999,23 @@ Стварыць знак - + Create DraftView Стварыць выгляд Чарнавіка - + Create ArchView Стварыць выгляд Архітэктуры - + Create spreadsheet view Стварыць выгляд Аркуша - - + + Save page to dxf Захаваць старонку ў файл dxf @@ -2086,7 +2086,7 @@ Стварыць бягучы выгляд - + Create CenterLine Стварыць цэнтральную лінію @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Дадаць касметычную вяршыню + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Уставіць прыстаўку + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Стварыць вымярэнне даўжыні дугі + + + TechDraw Hole Circle + Акружнасць адтуліны Тэхнічнага чарцяжа + Bolt Circle Centerlines Цэнтральныя лініі адтуліны ў акружнасці + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Цэнтральныя лініі акружнасці + + + TechDraw Thread Hole Side + Тэхнічны чарцёж: Адтуліна з разьбой, выгляд збоку + Cosmetic Thread Hole Side Касметычная адтуліна з разьбой збоку + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Касметычная разьба збоку + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Касметычная адтуліна з разьбой знізу + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Касметычная разьба знізу + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Змяніць атрыбуты лініі + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Касметычнае перакрыжаванне вяршынь + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Касметычная дуга + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Касметычная акружнасць + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Касметычная акружнасць па трох кропках + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Касметычная паралельная/перпендыкулярная лінія + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Заблакаваць/разблакаваць выгляд + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Выцягнуць/скараціць лінію + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Няправільны выбар @@ -2765,37 +2850,37 @@ Абярыце хаця б адзін аб'ект. - + Please select only 1 Arch Section. Калі ласка, абярыце толькі адзін перасек Архітэктуры. - + No Arch Sections in selection. Без перасек Архітэктуры ў абраным. - + Select exactly one Spreadsheet object. Выберыце толькі адзін аб'ект Зводнай табліцы. - + No Drawing View Без выгляду чарцяжоў - + Open Drawing View before attempting export to SVG. Адчыніце выгляд чарцяжа перад экспартаваннем у SVG. - + Can not export selection Не атрымалася экспартаваць абранае - + Page contains DrawViewArch which will not be exported. Continue? Старонка ўтрымлівае DrawViewArch, які не будзе экспартаваны. Ці працягнуць? @@ -3285,50 +3370,50 @@ Без старонак Аркуша чарцяжа ў дакуменце. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Усе файлы (*.*) - + Export Page As PDF Экспартаваць старонку ў DXF - + Document Name: Назва дакументу: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Экспартаваць старонку ў SVG - + Are you sure you want to continue? Ці ўпэўненыя вы, што жадаеце працягнуць? - + Show drawing Паказаць чарцёж - + Toggle KeepUpdated Пераключыць абнаўленне @@ -3355,7 +3440,7 @@ - + Rich text editor Рэдактар адфарматаванага тэксту @@ -3400,7 +3485,7 @@ Стварыць цэнтральную лінію - + Edit Center Line Змяніць цэнтральную лінію @@ -3596,14 +3681,14 @@ - + Selection is empty Выбар пусты - + No object selected Без абранага аб'екту @@ -3628,12 +3713,12 @@ Без граней у абраным. - + TechDraw Thread Hole Side Тэхнічны чарцёж: Адтуліна з разьбой, выгляд збоку - + Please select two straight lines Калі ласка, абярыце дзве прамыя лініі @@ -3741,19 +3826,22 @@ You cannot delete this leader line because it has a weld symbol that would become broken. - Вы не можаце выдаліць лінію зноскі, таму што на ёй ёсць знак зварнога шва, які можа стаць пашкоджаным. + Вы не можаце выдаліць лінію зноскі, бо на ёй ёсць знак зварнога шва, які можа стаць пашкоджаным. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. Вы не можаце выдаліць прывязку выгляду суполкі праекцый. - You cannot delete this view because it has a section view that would become broken. - Вы не можаце выдаліць выгляд, таму што ў яго ёсць прагляд перасеку, які можа стаць пашкоджаным. + Вы не можаце выдаліць выгляд, бо ў яго ёсць прагляд перасеку, які можа стаць пашкоджаным. - You cannot delete this view because it has a detail view that would become broken. - Вы не можаце выдаліць выгляд, таму што ў яго ёсць вынасны элемент, які можа стаць пашкоджаным. + Вы не можаце выдаліць выгляд, бо ў яго ёсць вынасны элемент, які можа стаць пашкоджаным. - You cannot delete this view because it has a leader line that would become broken. - Вы не можаце выдаліць выгляд, таму што ў яго ёсць лінія зноскі, якая можа стаць пашкоджанай. + Вы не можаце выдаліць выгляд, бо ў яго ёсць лінія зноскі, якая можа стаць пашкоджанай. - + The page is not empty, therefore the following referencing objects might be lost: Старонка не з'яўляецца пустой, таму наступныя спасылачныя аб'екты могуць быць страчаныя: @@ -4724,16 +4809,6 @@ when hatching a face with a PAT pattern Color of vertices in views Колер вяршынь ў выглядах - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Калі птушка, FreeCAD будзе ўжываць адзін колер для ўсіх тэкстаў і радкоў. -Калі не птушка, FreeCAD паспрабуе ўжываць больш светлыя версіі пераважных колераў. - - - Detail Highlight @@ -4776,6 +4851,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Колер грані (калі не празрысты) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5451,81 +5535,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Пераключыць &абнаўленне - + Toggle &Frames Пераключыць &рамку - + &Export SVG &Экспартаваць у CSV - + Export DXF Экспартаваць у DXF - + Export PDF Экспартаваць у PDF - + Print All Pages Надрукаваць усе старонкі - + Different orientation Адрозная арыентацыя - + The printer uses a different orientation than the drawing. Do you want to continue? Друкарка ўжывае арыентацыю, якая выдатная ад арыентацыі чарцяжа. Ці жадаеце в вы працягнуць? - + Different paper size Адрозны памер паперы - + The printer uses a different paper size than the drawing. Do you want to continue? Друкарка ўжывае памер паперы, адрозны ад чарцяжа. Вы жадаеце працягнуць? - + Opening file failed Немагчыма адчыніць файл - + Can not open file %1 for writing. Не атрымалася адчыніць файл %1 для запісу. - + Save DXF file Захаваць файл DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Абраны: @@ -8544,7 +8628,7 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Дадае пасадку адтуліны ці вала ў вымярэнні<br> @@ -8676,7 +8760,7 @@ using the given X/Y Spacing You cannot delete this balloon now because there is an open task dialog. - Цяпер вы не можаце выдаліць пазіцыйную зноску, таму што адчынена дыялогавае акно задачы. + Цяпер вы не можаце выдаліць пазіцыйную зноску, бо адчынена дыялогавае акно задачы. diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ca.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ca.ts index 9ac0fd84f1..54fe821ba5 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ca.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ca.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Insereix un objecte del banc de treball d'arquitectura - + Insert a View of a Section Plane from Arch Workbench Insereix una vista d'un pla de secció des d'un banc de treball d'arquitectura @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fitxer - + Export Page as DXF Exporta la pàgina com a DXF - + Save DXF file Desa el fitxer DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fitxer - + Export Page as SVG Exportar una pàgina com a SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Plantilla (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projecta la forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Insereix una vista de full de càlcul - + Insert View to a spreadsheet Insereix vista a un full de càlcul @@ -1999,23 +1999,23 @@ Crear Símbol - + Create DraftView Crea una vista d'Esbós - + Create ArchView Crea una vista d'Arquitectura - + Create spreadsheet view Crea una vista de full de càlcul - - + + Save page to dxf Guardar pàgina com dxf @@ -2086,7 +2086,7 @@ Crea una Vista Activa - + Create CenterLine Crea una línia central @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Afegeix un vèrtex cosmètic + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Canvia els atributs de la línia + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Selecció incorrecta @@ -2765,37 +2850,37 @@ Selecciona com a mínim un objecte. - + Please select only 1 Arch Section. Seleccioneu només 1 secció d'arquitectura. - + No Arch Sections in selection. No hi ha cap secció d'arquitectura en la selecció. - + Select exactly one Spreadsheet object. Selecciona exactament un objecte de full de càlcul. - + No Drawing View Sense vistes de dibuix - + Open Drawing View before attempting export to SVG. Obri les vistes de dibuix abans d'intentar l'exportació a SVG. - + Can not export selection No es pot exportar la selecció - + Page contains DrawViewArch which will not be exported. Continue? La pàgina conté DrawViewArch que no s'exportaran. Voleu continuar? @@ -3285,50 +3370,50 @@ No hi ha cap pàgina de dibuix en el document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Tots els arxius (*.*) - + Export Page As PDF Exporta la Pàgina com a PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exporta la Pàgina com a SVG - + Are you sure you want to continue? Segur que voleu continuar? - + Show drawing Mostra el dibuix - + Toggle KeepUpdated Activa/desactiva l'actualització automàtica @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de text enriquit @@ -3400,7 +3485,7 @@ Crea una línia central - + Edit Center Line Edita la línia central @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. No podeu suprimir aquesta línia guia perquè conté un símbol de soldadura que es trencaria. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. No podeu eliminar la vista ancorada a un grup de projecció. - You cannot delete this view because it has a section view that would become broken. No podeu suprimir aquesta vista perquè conté una vista de secció que es trencaria. - You cannot delete this view because it has a detail view that would become broken. No podeu suprimir aquesta vista perquè conté una vista de detall que es trencaria. - You cannot delete this view because it has a leader line that would become broken. No podeu suprimir aquesta vista perquè conté una línia guia que es trencaria. - + The page is not empty, therefore the following referencing objects might be lost: La pàgina no està buida, per tant @@ -4723,15 +4808,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color dels vèrtexs en les vistes - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4772,6 +4848,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Color de la cara (si no és transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5442,79 +5527,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Activa/desactiva l'&actualització automàtica - + Toggle &Frames Activa/desactiva els &marcs - + &Export SVG &Exporta SVG - + Export DXF Exporta DXF - + Export PDF Exporta a PDF - + Print All Pages Print All Pages - + Different orientation Orientació diferent - + The printer uses a different orientation than the drawing. Do you want to continue? La impressora utilitza una orientació diferent que la del dibuix. Voleu continuar? - + Different paper size Mida de paper diferent - + The printer uses a different paper size than the drawing. Do you want to continue? La impressora utilitza una mida de paper diferent que la del dibuix. Voleu continuar? - + Opening file failed No s'ha pogut obrir el fitxer - + Can not open file %1 for writing. No s'ha pogut obrir el fitxer %1 per a escriure-hi. - + Save DXF file Desa el fitxer DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Seleccionat: @@ -8539,12 +8624,12 @@ usant l'espaiat X/Y donat Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_cs.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_cs.ts index b4fdb329bf..e57ffa51ff 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_cs.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_cs.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Vložit objekt pracovního prostředí Arch - + Insert a View of a Section Plane from Arch Workbench Vložit pohled roviny řezu z pracovního prostředí Arch @@ -222,12 +222,12 @@ Insert Complex Section - Insert Complex Section + Vložit komplexní sekci Insert a Complex Section - Insert a Complex Section + Vložit komplexní sekci @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Soubor - + Export Page as DXF Exportovat stránku do DXF - + Save DXF file - Save DXF file + Uložit soubor DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Soubor - + Export Page as SVG Exportovat stránku do SVG @@ -395,7 +395,7 @@ Extend Line - Extend Line + Rozšířit řádek @@ -418,7 +418,7 @@ Select several faces<br> - click this tool - Select several faces<br> - click this tool + Vyberte několik ploch<br> - klikněte na tento nástroj @@ -470,13 +470,13 @@ Cascade Oblique Dimensions - Cascade Oblique Dimensions + Rozměry kaskádové krychle Evenly space oblique dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool - Evenly space oblique dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool + Rozměry dvojité kliky:<br>- Určete mezeru mezi kaskádami (volitelné)<br>- Vyberte dva nebo více paralelních rozměrů lomu<br>- První rozměr definuje pozici<br>- Klikněte na tento nástroj @@ -490,7 +490,7 @@ Cascade Vertical Dimensions - Cascade Vertical Dimensions + Svislé rozměry kaskády @@ -797,12 +797,12 @@ Customize Format Label - Customize Format Label + Přizpůsobit popisek formátu Select a dimension or a balloon<br> - click this tool<br> - edit the Format field, using the keyboard and/or the special buttons - Select a dimension or a balloon<br> - click this tool<br> - edit the Format field, using the keyboard and/or the special buttons + Vyberte rozměr nebo balón<br> - klikněte na tento nástroj<br> - upravte pole formátu pomocí klávesnice a/nebo speciálních tlačítek @@ -816,13 +816,13 @@ Decrease Decimal Places - Decrease Decimal Places + Snížit desetinná místa Decrease the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Decrease the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Snížit počet desetinných míst textu dimenze:<br>- Vyberte jeden nebo více rozměrů<br>- klikněte na tento nástroj @@ -835,12 +835,12 @@ Add Cosmetic Circle - Add Cosmetic Circle + Přidat Kosmetický kruh Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool - Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool + Přidat kosmetický kruh na základě dvou vrcholů:<br>- Specifikujte atributy řádků (volitelné)<br>- vyberte vrchol 1 (středový bod)<br>- vyberte vrchol 2 (radius)<br>- Klikněte na tento nástroj @@ -854,13 +854,13 @@ Add Cosmetic Arc - Add Cosmetic Arc + Přidat kosmetický oblouk Add a cosmetic counter clockwise arc based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius and start angle)<br>- Select vertex 3 (end angle)<br>- Click this tool - Add a cosmetic counter clockwise arc based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius and start angle)<br>- Select vertex 3 (end angle)<br>- Click this tool + Přidat kosmetický oblouk proti směru hodinových ručiček založený na třech vrcholech:<br>- Specifikujte atributy řádků (volitelné)<br>- vyberte vrchol 1 (středový bod)<br>- vyberte vrchol 2 (poloměr a počáteční úhel)<br>- Vyberte vrchol 3 (koncový úhel)<br>- klikněte na tento nástroj @@ -874,13 +874,13 @@ Add Cosmetic Circle - Add Cosmetic Circle + Přidat Kosmetický kruh Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool - Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool + Přidat kosmetický kruh na základě dvou vrcholů:<br>- Specifikujte atributy řádků (volitelné)<br>- vyberte vrchol 1 (středový bod)<br>- vyberte vrchol 2 (radius)<br>- Klikněte na tento nástroj @@ -894,12 +894,12 @@ Add Cosmetic Circle 3 Points - Add Cosmetic Circle 3 Points + Přidat kosmetický kruh o 3 body Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select 3 vertexes<br>- Click this tool - Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select 3 vertexes<br>- Click this tool + Přidat kosmetický kruh na základě tří vrcholů:<br>- Specifikujte atributy řádků (volitelné)<br>- Vyberte 3 vrcholy<br>- klikněte na tento nástroj @@ -918,7 +918,7 @@ Extend Line - Extend Line + Rozšířit řádek @@ -938,13 +938,13 @@ Add Bolt Circle Centerlines - Add Bolt Circle Centerlines + Přidat kružnice s Boltem Add centerlines to a circular pattern of circles:<br>- Specify the line attributes (optional)<br>- Select three or more circles forming a circular pattern<br>- Click this tool - Add centerlines to a circular pattern of circles:<br>- Specify the line attributes (optional)<br>- Select three or more circles forming a circular pattern<br>- Click this tool + Přidat středové čáry do kruhového vzorce kruhů:<br>- Určete atributy řádků (volitelné)<br>- Vyberte tři nebo více kruhů tvořících kruhový vzor<br>- Klikněte na tento nástroj @@ -958,7 +958,7 @@ Increase Decimal Places - Increase Decimal Places + Zvýšit desetinná místa @@ -977,7 +977,7 @@ Increase Decimal Places - Increase Decimal Places + Zvýšit desetinná místa @@ -1002,7 +1002,7 @@ Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Vložte symbol '⌀' na začátku textu kótu:<br>- Vyberte jeden nebo více rozměrů<br>- Klikněte na tento nástroj @@ -1020,7 +1020,7 @@ Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Vložte symbol '⌀' na začátku textu kótu:<br>- Vyberte jeden nebo více rozměrů<br>- Klikněte na tento nástroj @@ -1034,13 +1034,13 @@ Insert '□' Prefix - Insert '□' Prefix + Insert '□' Prefix Insert a '□' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '□' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Vložte symbol '□' na začátku textu kótu:<br>- Vyberte jeden nebo více rozměrů<br>- Klikněte na tento nástroj @@ -1053,12 +1053,12 @@ Add Cosmetic Parallel Line - Add Cosmetic Parallel Line + Přidat osmetickou paralelní linku Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + Přidej kosmetickou čáru rovnoběžnou k jinému řádku pomocí vrcholu:<br>- Vyberte řádek<br>- Vyberte vrchol<br>- klikněte na tento nástroj @@ -1072,13 +1072,13 @@ Add Cosmetic Parallel Line - Add Cosmetic Parallel Line + Přidat osmetickou paralelní linku Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + Přidej kosmetickou čáru rovnoběžnou k jinému řádku pomocí vrcholu:<br>- Vyberte řádek<br>- Vyberte vrchol<br>- klikněte na tento nástroj @@ -1092,13 +1092,13 @@ Add Cosmetic Perpendicular Line - Add Cosmetic Perpendicular Line + Přidat osmetickou kolmou čáru Add a cosmetic line perpendicular to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line perpendicular to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + Přidejte kosmetickou čáru kolmou k jiné čáře pomocí vrcholu:<br>- Vyberte čáru<br>- Vyberte vrchol<br>- klikněte na tento nástroj @@ -1111,12 +1111,12 @@ Lock/Unlock View - Lock/Unlock View + Zamknout / Odemknout zobrazení Lock or unlock the position of a view:<br>- Select a single view<br>- Click this tool - Lock or unlock the position of a view:<br>- Select a single view<br>- Click this tool + Zamknout nebo odemknout pozici zobrazení:<br>- Vyberte jedno zobrazení<br>- klikněte na tento nástroj @@ -1129,12 +1129,12 @@ Position Horizontal Chain Dimensions - Position Horizontal Chain Dimensions + Poloha vodorovného řetězce Align horizontal dimensions to create a chain dimension:<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool - Align horizontal dimensions to create a chain dimension:<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool + Zarovnejte vodorovné rozměry a vytvořte dimenzi řetězce:<br>- Vyberte dva nebo více horizontálních rozměrů<br>- První rozměr definuje pozici<br>- Klikněte na tento nástroj @@ -1148,13 +1148,13 @@ Position Horizontal Chain Dimensions - Position Horizontal Chain Dimensions + Poloha vodorovného řetězce Align horizontal dimensions to create a chain dimension:<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool - Align horizontal dimensions to create a chain dimension:<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool + Zarovnejte vodorovné rozměry a vytvořte dimenzi řetězce:<br>- Vyberte dva nebo více horizontálních rozměrů<br>- První rozměr definuje pozici<br>- Klikněte na tento nástroj @@ -1168,13 +1168,13 @@ Position Oblique Chain Dimensions - Position Oblique Chain Dimensions + Rozměry segmentu pozice Align oblique dimensions to create a chain dimension:<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool - Align oblique dimensions to create a chain dimension:<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool + Zarovnejte šikmé rozměry a vytvořte dimenzi řetězce:<br>- Vyberte dva nebo více paralelních zlomků<br>- První rozměr definuje pozici<br>- klikněte na tento nástroj @@ -1188,13 +1188,13 @@ Position Vertical Chain Dimensions - Position Vertical Chain Dimensions + Poloha vertikálního řetězce Align vertical dimensions to create a chain dimension:<br>- Select two or more vertical dimensions<br>- The first dimension defines the position<br>- Click this tool - Align vertical dimensions to create a chain dimension:<br>- Select two or more vertical dimensions<br>- The first dimension defines the position<br>- Click this tool + Zarovnejte vertikální rozměry a vytvořte dimenzi řetězce:<br>- Vyberte dva nebo více vertikálních rozměrů<br>- První rozměr definuje pozici<br>- klikněte na tento nástroj @@ -1207,12 +1207,12 @@ Position Section View - Position Section View + Zobrazení sekce pozice Orthogonally align a section view with its source view:<br>- Select a single section view<br>- Click this tool - Orthogonally align a section view with its source view:<br>- Select a single section view<br>- Click this tool + Orthogonicky zarovnat zobrazení sekce se zdrojovým zobrazením:<br>- Vyberte jedno zobrazení sekce<br>- Klikněte na tento nástroj @@ -1225,12 +1225,12 @@ Remove Prefix - Remove Prefix + Odstranit předponu Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Odstranit prefix symbolů na začátku textu kótu:<br>- Vyberte jeden nebo více rozměrů<br>- klikněte na tento nástroj @@ -1243,12 +1243,12 @@ Select Line Attributes, Cascade Spacing and Delta Distance - Select Line Attributes, Cascade Spacing and Delta Distance + Vyberte atributy řádků, mezery Cascade a vzdálenost delta Select the attributes for new cosmetic lines and centerlines, and specify the cascade spacing and delta distance:<br>- Click this tool<br>- Specify the attributes, spacing and distance in the dialog box<br>- Press OK - Select the attributes for new cosmetic lines and centerlines, and specify the cascade spacing and delta distance:<br>- Click this tool<br>- Specify the attributes, spacing and distance in the dialog box<br>- Press OK + Vyberte atributy pro nové kosmetické linky a centerlinky, a specifikujte mezeru mezi kaskádami a vzdálenost delta:<br>- Klikněte na tento nástroj<br>- Specifikujte atributy, mezery a vzdálenost v dialogovém okně<br>- stiskněte tlačítko OK @@ -1262,13 +1262,13 @@ Shorten Line - Shorten Line + Zkrácená čára Shorten a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Shorten a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool + Zkrátit kosmetickou čáru nebo osu na obou koncích:<br>- Určete vzdálenost delta (volitelná)<br>- vyberte jeden řádek<br>- klikněte na tento nástroj @@ -1282,13 +1282,13 @@ Add Cosmetic Thread Bolt Bottom View - Add Cosmetic Thread Bolt Bottom View + Přidat kosmetické vlákno do spodního zobrazení Add a cosmetic thread to the top or bottom view of bolts/screws/rods:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool - Add a cosmetic thread to the top or bottom view of bolts/screws/rods:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool + Přidejte kosmetické vlákno do horního nebo dolního pohledu šrouby/prutů:<br>- specifikujte atributy řádků (volitelné)<br>- vyberte jeden nebo více kruhů<br>- klikněte na tento nástroj @@ -1302,13 +1302,13 @@ Add Cosmetic Thread Bolt Side View - Add Cosmetic Thread Bolt Side View + Přidat kosmetické vlákno z Bolt Boční zobrazení Add a cosmetic thread to the side view of a bolt/screw/rod:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool - Add a cosmetic thread to the side view of a bolt/screw/rod:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool + Přidejte kosmetické vlákno do bočního pohledu bolt/screw/rod:<br>- Specifikujte atributy řádků (volitelné)<br>- vyberte dvě rovnoběžné řádky<br>- klikněte na tento nástroj @@ -1322,13 +1322,13 @@ Add Cosmetic Thread Hole Bottom View - Add Cosmetic Thread Hole Bottom View + Přidat kosmetické vlákno dole díry Add a cosmetic thread to the top or bottom view of holes:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool - Add a cosmetic thread to the top or bottom view of holes:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool + Přidat kosmetické vlákno do horního nebo dolního pohledu díry:<br>- Specifikujte atributy řádků (volitelné)<br>- vyberte jeden nebo více kruhů<br>- klikněte na tento nástroj @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Šablona (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projekce tvaru... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Vložit zobrazení tabulky - + Insert View to a spreadsheet Vložit pohled do tabulky @@ -1999,23 +1999,23 @@ Vytvořit symbol - + Create DraftView Vytvořit Draft pohled - + Create ArchView Vytvořit Arch pohled - + Create spreadsheet view Vytvořit pohled tabulky - - + + Save page to dxf Uložit stránku do dxf @@ -2086,7 +2086,7 @@ Vytvořit aktivní pohled - + Create CenterLine Vytvořit osu @@ -2161,15 +2161,25 @@ Add Cosmetic Vertex Přidat pomocný vrchol + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix - Remove Prefix + Odstranit předponu @@ -2251,95 +2261,170 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw vlákno dole + Cosmetic Thread Bolt Bottom - Cosmetic Thread Bolt Bottom + Kosmetické vlákno dole + + + + TechDraw Change Line Attributes + TechDraw změněné atributy řádku Change Line Attributes Změnit atributy řádku + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Kosmetický Intersection Vertex(y) + Cosmetic Intersection Vertex(es) - Cosmetic Intersection Vertex(es) + Vertex(y) kosmetického intersekce + + + + TechDraw Cosmetic Arc + TechDraw kosmetický oblouk Cosmetic Arc - Cosmetic Arc + Kosmetický oblouk + + + + TechDraw Cosmetic Circle + TechDraw Kosmetický kruh Cosmetic Circle - Cosmetic Circle + Kosmetický kruh + + + + TechDraw Cosmetic Circle 3 Points + TechDraw Kosmetický kruh 3 body Cosmetic Circle 3 Points - Cosmetic Circle 3 Points + Kosmetický kruh 3 body + + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw paralelní/kolmá kosmetická čára Cosmetic Line Parallel/Perpendicular - Cosmetic Line Parallel/Perpendicular + Souběžná osmetická čára + + + + TechDraw Lock/Unlock View + TechDraw zamknutí/odemknutí zobrazení Lock/Unlock View - Lock/Unlock View + Zamknout / Odemknout zobrazení + + + + TechDraw Extend/Shorten Line + TechDraw rozšíření/zkrácený řádek Extend/Shorten Line - Extend/Shorten Line + Rozšíření/Zkrácená čára + + + + TechDraw calculate selected area + TechDraw vypočítejte vybranou oblast Calculate Face Area - Calculate Face Area + Vypočítat plochu tváře Customize Format - Customize Format + Přizpůsobit formát Surface Finish Symbols - Surface Finish Symbols + Symboly pro povrchovou konečnou úpravu Repair Dimension - Repair Dimension + Rozměr opravy @@ -2347,22 +2432,22 @@ View Direction as Angle - View Direction as Angle + Zobrazit směr jako úhel The view direction angle relative to +X in the BaseView. - The view direction angle relative to +X in the BaseView. + Úhel směru pohledu vzhledem k +X v BaseView. Advance the view direction in clockwise direction. - Advance the view direction in clockwise direction. + Posunout směr pohledu ve směru hodinových ručiček. Advance the view direction in anti-clockwise direction. - Advance the view direction in anti-clockwise direction. + Posunout pohled ve směru proti směru hodinových ručiček. @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Neplatný výběr @@ -2648,17 +2733,17 @@ I do not know what base view to use. - I do not know what base view to use. + Nevím, jaký základní pohled se má použít. No Base View, Shapes, Groups or Links in this selection - No Base View, Shapes, Groups or Links in this selection + Žádné základní zobrazení, tvary, skupiny nebo odkazy v tomto výběru No profile object found in selection - No profile object found in selection + Ve výběru nebyl nalezen žádný objekt profilu @@ -2765,37 +2850,37 @@ Vyberte alespoň jeden objekt. - + Please select only 1 Arch Section. Prosím, vyberte pouze 1 sekci z prostředí Arch. - + No Arch Sections in selection. Žádná sekce z prostředí Arch ve výběru. - + Select exactly one Spreadsheet object. Vyberte právě jeden objekt Tabulky. - + No Drawing View Žádné zobrazení výkresu - + Open Drawing View before attempting export to SVG. Otevřete zobrazení výkresu před exportem do SVG. - + Can not export selection Nelze exportovat výběr - + Page contains DrawViewArch which will not be exported. Continue? Stránka obsahuje pohled kresby z prostředí Arch, který nebude exportován. Pokračovat? @@ -2853,33 +2938,33 @@ Can not make 2d radius dimension from selection - Can not make 2d radius dimension from selection + Nelze vytvořit 2d poloměr z výběru Can not make 3d radius dimension from selection - Can not make 3d radius dimension from selection + Nelze vytvořit dimenzi 3d poloměru z výběru BSpline Curve Error - BSpline Curve Error + Chyba BSpline křivky Selected edge is a BSpline and a radius can not be calculated. - Selected edge is a BSpline and a radius can not be calculated. + Vybraný okraj je BSplajn a poloměr nelze spočítat. Can not make 2d diameter dimension from selection - Can not make 2d diameter dimension from selection + Z výběru nelze udělat dimenzi průměru 2d Can not make 3d diameter dimension from selection - Can not make 3d diameter dimension from selection + Nelze vytvořit rozměr průměru 3d z výběru @@ -2894,64 +2979,64 @@ Selected edge is a BSpline and a diameter can not be calculated. - Selected edge is a BSpline and a diameter can not be calculated. + Vybraný okraj je BSplajn a průměr nelze spočítat. Can not make 2d linear dimension from selection - Can not make 2d linear dimension from selection + Nelze vytvořit 2d lineární dimenzi z výběru Can not make 3d linear dimension from selection - Can not make 3d linear dimension from selection + Nelze vytvořit lineární dimenzi 3d z výběru Can not make 2d horizontal dimension from selection - Can not make 2d horizontal dimension from selection + Nelze vytvořit 2d vodorovnou dimenzi z výběru Can not make 3d horizontal dimension from selection - Can not make 3d horizontal dimension from selection + Nelze vytvořit 3d vodorovnou dimenzi z výběru Can not make 2d vertical dimension from selection - Can not make 2d vertical dimension from selection + Nelze vytvořit 2d vertikální dimenzi z výběru Can not make 3d vertical dimension from selection - Can not make 3d vertical dimension from selection + Nelze vytvořit 3d vertikální dimenzi z výběru Can not make 2d angle dimension from selection - Can not make 2d angle dimension from selection + Nelze vytvořit 2d úhlovou dimenzi z výběru Can not make 3d angle dimension from selection - Can not make 3d angle dimension from selection + Nelze vytvořit úhlovou kótu 3d z výběru Can not make 2d extent dimension from selection - Can not make 2d extent dimension from selection + Nelze vytvořit 2d rozsah z výběru Can not make 3d extent dimension from selection - Can not make 3d extent dimension from selection + Nelze vytvořit dimenzi v rozsahu 3d z výběru There is no Dimension in your selection - There is no Dimension in your selection + Ve výběru není žádná dimenze @@ -3215,17 +3300,17 @@ SurfaceFinishSymbols - SurfaceFinishSymbols + SurfaceFinishSymboly No Part View in Selection - No Part View in Selection + Ve výběru není zobrazena žádná část No %1 in Selection - No %1 in Selection + Žádný %1 ve výběru @@ -3277,7 +3362,7 @@ No Drawing Pages available. - No Drawing Pages available. + Žádné stránky výkresu nejsou k dispozici. @@ -3285,50 +3370,50 @@ V dokumentu nejsou žádné stránky s výkresy. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Všechny soubory (*.*) - + Export Page As PDF Exportovat stránku do PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportovat stránku do SVG - + Are you sure you want to continue? Opravdu si přejete pokračovat? - + Show drawing Zobrazit výkres - + Toggle KeepUpdated Přepnout průběžné aktualizace @@ -3355,7 +3440,7 @@ - + Rich text editor Rozšířený editor textu @@ -3400,7 +3485,7 @@ Vytvořit osu - + Edit Center Line Upravit osu @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3716,12 +3801,12 @@ Can not make a dimension from selection - Can not make a dimension from selection + Nelze vytvořit rozměr z výběru Can not make dimension from selection - Can not make dimension from selection + Nelze vytvořit rozměr z výběru @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. Nemůžete smazat tento odkaz, protože obsahuje symbol svaru, který by se rozbil. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Nemůžete smazat tento názor, protože má jeden nebo více závislých názorů, které by byly porušeny. + + + - + @@ -3763,28 +3851,25 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete the anchor view of a projection group. + Nelze odstranit zobrazení kotevního úchytu skupiny projekcí. - You cannot delete this view because it has a section view that would become broken. Nemůžete odstranit tento pohled, protože obsahuje pohled řezu, který by se rozbil. - You cannot delete this view because it has a detail view that would become broken. Nemůžete odstranit tento pohled, protože obsahuje detailní pohled, který by se rozbil. - You cannot delete this view because it has a leader line that would become broken. Nemůžete odstranit tento pohled, protože obsahuje odkazovou čáru, která by se rozbila. - + The page is not empty, therefore the following referencing objects might be lost: Stránka není prázdná, následující referenční objekty budou možná ztraceny: @@ -3812,8 +3897,8 @@ mohou být ztraceny tyto odkazující objekty: You cannot delete this weld symbol because it has a tile weld that would become broken. - You cannot delete this weld symbol because -it has a tile weld that would become broken. + Tento svar nemůžeš odstranit, protože +má dlaždiční svar, který by se rozbit. @@ -3826,47 +3911,47 @@ it has a tile weld that would become broken. If Crop Image is checked, crop captured image to this width. - If Crop Image is checked, crop captured image to this width. + Je-li zaškrtnut Oříznutí obrázku, ořízněte zachycený obrázek na tuto šířku. Select a color for solid background - Select a color for solid background + Vyberte barvu pro pevné pozadí Crop To Height - Crop To Height + Oříznout do výšky Use 3d Background - Use 3d Background + Použít 3d pozadí If Crop Image is checked, crop captured image to this height. - If Crop Image is checked, crop captured image to this height. + Je-li zaškrtnutý obrázek oříznut, ořízněte zachycený obrázek do této výšky. Solid Background - Solid Background + Plné pozadí No Background - No Background + Žádné pozadí Crop To Width - Crop To Width + Oříznout na šířku Crop Image - Crop Image + Oříznout obrázek @@ -3879,7 +3964,7 @@ it has a tile weld that would become broken. No direction set - No direction set + Není nastaven směr @@ -3887,22 +3972,22 @@ it has a tile weld that would become broken. Move View - Move View + Přesunout zobrazení View to move - View to move + Zobrazit k přesunutí From Page - From Page + Z stránky To Page - To Page + Na stránku @@ -3911,7 +3996,7 @@ it has a tile weld that would become broken. updates pending - updates pending + čeká na aktualizace @@ -3919,7 +4004,7 @@ it has a tile weld that would become broken. No direction set - No direction set + Není nastaven směr @@ -3933,15 +4018,15 @@ it has a tile weld that would become broken. Text above arrow side symbol Angle, surface finish, root - Text above arrow side symbol -Angle, surface finish, root + Text nad šipkou symbol +Úhl, povrchová úprava, kořen Text before arrow side symbol Preparation depth, (weld size) - Text before arrow side symbol -Preparation depth, (weld size) + Text před šipkou symbolu +Hloubka přípravy (velikost svaru) @@ -3958,15 +4043,15 @@ Preparation depth, (weld size) Text after arrow side symbol Number of welds × length, (gap) - Text after arrow side symbol -Number of welds × length, (gap) + Text za šipkou +Počet svarů × délka, (mezera) Text before other side symbol Preparation depth, (weld size) - Text before other side symbol -Preparation depth, (weld size) + Text před jiným bočním symbolem +Hloubka přípravy (velikost svaru) @@ -3977,8 +4062,8 @@ Preparation depth, (weld size) Text after other side symbol Number of welds × length, (gap) - Text after other side symbol -Number of welds × length, (gap) + Text za jiným bočním symbolem +Počet svarů × délka, (mezera) @@ -3994,8 +4079,8 @@ Number of welds × length, (gap) Text below arrow side symbol Angle, surface finish, root - Text below arrow side symbol -Angle, surface finish, root + Text pod šipkou boční symbol +Úhl, povrchová úprava, kořen @@ -4005,7 +4090,7 @@ Angle, surface finish, root Flip Sides - Flip Sides + Flip Sides @@ -4034,12 +4119,12 @@ na odkazovou čáru Offsets the lower symbol to indicate alternating welds - Offsets the lower symbol to indicate alternating welds + Vyváží spodní symbol pro označení střídavých svarů Alternating - Alternating + Alternativní @@ -4060,8 +4145,8 @@ na odkazovou čáru Directory path for welding symbols. This directory will be used for the symbol selection. - Directory path for welding symbols. -This directory will be used for the symbol selection. + Adresářová cesta pro sváření symbolů. +Tento adresář bude použit pro výběr symbolů. @@ -4074,17 +4159,17 @@ This directory will be used for the symbol selection. Page Chooser - Page Chooser + Výběr stránky FreeCAD could not determine which Page to use. Please select a Page. - FreeCAD could not determine which Page to use. Please select a Page. + FreeCAD nemohl určit, která stránka má být použita. Vyberte stránku. Select a Page that should be used - Select a Page that should be used + Vyberte stránku, která by měla být použita @@ -4112,7 +4197,7 @@ Plochy musí být detekovány za účelem použití šrafování, ale může doj Highlights border of section cut in section views - Highlights border of section cut in section views + Zvýrazní okraj řezu v pohledu na sekci @@ -4122,7 +4207,7 @@ Plochy musí být detekovány za účelem použití šrafování, ale může doj Dump intermediate results during Section view processing - Dump intermediate results during Section view processing + Vypsat průběžné výsledky během zpracování sekcí @@ -4132,12 +4217,12 @@ Plochy musí být detekovány za účelem použití šrafování, ale může doj Dump intermediate results during Detail view processing - Dump intermediate results during Detail view processing + Vypsat průběžné výsledky při zpracování podrobného zobrazení Debug Detail - Debug Detail + Detail ladění @@ -4147,12 +4232,12 @@ Plochy musí být detekovány za účelem použití šrafování, ale může doj Allow Crazy Edges - Allow Crazy Edges + Povolit ostré hrany Perform a fuse operation on input shape(s) before Section view processing - Perform a fuse operation on input shape(s) before Section view processing + Provést sloučení vstupního tvaru(y) před zpracováním sekce @@ -4184,7 +4269,7 @@ Každá část je přibližně 0,1 mm široká Mark Fuzz - Mark Fuzz + Označit Fuzz @@ -4196,12 +4281,12 @@ Každá část je přibližně 0,1 mm široká If checked, system will attempt to automatically correct dimension references when the model changes. - If checked, system will attempt to automatically correct dimension references when the model changes. + Je-li zaškrtnuto, systém se pokusí při změně modelu automaticky opravit reference dimenze. Auto Correct Dimension Refs - Auto Correct Dimension Refs + Automaticky opravit správné rozměry @@ -4233,12 +4318,12 @@ Změňte pouze, pokud víte co děláte! Use New Face Finder Algorithm - Use New Face Finder Algorithm + Použít nový algoritmus Finder The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. - The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. + Čas, kolikrát by se FreeCAD měl pokusit odstranit překrývající se hrany vrácené algoritmem odstranění skryté linky. Hodnota 0 znamená, že nedochází k praní, 1 označuje jediný průchod a 2 označuje druhý průchod. Hodnoty vyšší než 2 nejsou obecně produktivní. Každá hodnota se přidává k času potřebnému k vytvoření výkresu. @@ -4257,34 +4342,34 @@ Pak je třeba limit dlaždic zvýšit. Max PAT Hatch Segments - Max PAT Hatch Segments + Max segmentů průniku PAT Maximum hatch line segments to use when hatching a face with a PAT pattern - Maximum hatch line segments to use -when hatching a face with a PAT pattern + Maximální segmenty šrafování k použití +při vylíhnutí plochy s modelem PAT Issue progress messages while building View geometry - Issue progress messages while building View geometry + Zpráva o pokroku při vytváření geometrie pohledu Report Progress - Report Progress + Nahlásit průběh If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. - If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. + Je-li zaškrtnuto, FreeCAD použije nový algoritmus hledače obličeje. Pokud není zaškrtnuto, FreeCAD použije původní hledač obličeje. Overlap Edges Scrub Passes - Overlap Edges Scrub Passes + Hrany překrývající se hrany projdou @@ -4727,15 +4812,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4776,6 +4852,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Barva povrchu (pokud není průhledná) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5448,81 +5533,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Přepnout průběžné aktualizace - + Toggle &Frames Přepnout rámce - + &Export SVG &Exportovat SVG - + Export DXF Exportovat DXF - + Export PDF Export PDF - + Print All Pages Print All Pages - + Different orientation Jiná orientace - + The printer uses a different orientation than the drawing. Do you want to continue? Tiskárna používá jinou orientaci než výkres. Chcete pokračovat? - + Different paper size Jiný formát papíru - + The printer uses a different paper size than the drawing. Do you want to continue? Tiskárna používá jiný formát papíru než výkres. Chcete pokračovat? - + Opening file failed Otevření souboru selhalo - + Can not open file %1 for writing. Soubor %1 nelze otevřít pro zápis. - + Save DXF file - Save DXF file + Uložit soubor DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Vybráno: @@ -6430,7 +6515,7 @@ Chcete pokračovat? Customize Format - Customize Format + Přizpůsobit formát @@ -7898,7 +7983,7 @@ using the given X/Y Spacing Surface Finish Symbols - Surface Finish Symbols + Symboly pro povrchovou konečnou úpravu @@ -8119,12 +8204,12 @@ using the given X/Y Spacing Remove Prefix - Remove Prefix + Odstranit předponu Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + Odstranit prefix symbolů na začátku textu kótu:<br>- Vyberte jeden nebo více rozměrů<br>- klikněte na tento nástroj @@ -8326,7 +8411,7 @@ using the given X/Y Spacing Move View - Move View + Přesunout zobrazení @@ -8548,12 +8633,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_de.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_de.ts index ad7ae5cfd4..7d8d0136a1 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_de.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_de.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Objekt des Arbeitsbereichs Arch einfügen - + Insert a View of a Section Plane from Arch Workbench Fügt die Ansicht einer Schnittebene aus dem Arbeitsbereich Arch ein @@ -341,33 +341,33 @@ Insert Draft Workbench Object - Objekt des Draft-Arbeitsbereiches einfügen + Objekt des Arbeitsbereichs Draft einfügen Insert a View of a Draft Workbench object - Ansicht eines Objekts des Draft-Arbeitsbereichs einfügen + Fügt die Ansicht eines Objekts des Arbeitsbereichs Draft ein CmdTechDrawExportPageDXF - + File Datei - + Export Page as DXF Seite als DXF-Datei exportieren - + Save DXF file DXF-Datei speichern - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Datei - + Export Page as SVG Seite als SVG-Datei exportieren @@ -1111,12 +1111,12 @@ Lock/Unlock View - Ansicht fixieren/lösen + Ansicht sperren/entsperren Lock or unlock the position of a view:<br>- Select a single view<br>- Click this tool - Die Position einer Ansicht fixieren/lösen:<br>- Eine einzige Ansicht auswählen<br>- Dieses Werkzeug anklicken + Die Position einer Ansicht sperren/entsperren:<br>- Eine einzelne Ansicht auswählen<br>- Dieses Werkzeug anklicken @@ -1248,7 +1248,7 @@ Select the attributes for new cosmetic lines and centerlines, and specify the cascade spacing and delta distance:<br>- Click this tool<br>- Specify the attributes, spacing and distance in the dialog box<br>- Press OK - Linienmerkmale für neue Hilfslinien und Mittellinien auswählen, sowie Zeilenabstand und Längendifferenz angeben:<br>- Dieses Werkzeug anklicken<br>- Im Dialogfenster Merkmale auswählen, Zeilenabstand und Längendifferenz angeben<br>- OK drücken + Linienmerkmale für neue Hilfslinien und Mittellinien auswählen sowie Zeilenabstand und Längendifferenz angeben:<br>- Dieses Werkzeug anklicken<br>- Im Dialogfenster Merkmale auswählen, Zeilenabstand und Längendifferenz angeben<br>- OK drücken @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Vorlage (*.svg *.dxf) + Template (*.svg) + Vorlage (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Form projizieren... @@ -1716,7 +1716,7 @@ Section View - Schnitt, Schnittansicht + Schnittansicht @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Tabellenansicht einfügen - + Insert View to a spreadsheet Ansicht in eine Tabelle einfügen @@ -1999,23 +1999,23 @@ Symbol erstellen - + Create DraftView Draft Ansicht erstellen - + Create ArchView Arch-Ansicht erstellen - + Create spreadsheet view Kalkulationstabellenansicht erstellen - - + + Save page to dxf Seite als dxf speichern @@ -2086,7 +2086,7 @@ Aktuelle Ansicht erstellen - + Create CenterLine Mittellinie erstellen @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Hilfspunkt hinzufügen + + + TechDraw Insert Prefix + TechDraw Symbol voranstellen + Insert Prefix Präfixsymbol einfügen + + + TechDraw Remove Prefix + TechDraw Symbol entfernen + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Bogenmaß erstellen + + + TechDraw Hole Circle + TechDraw Lochkreis + Bolt Circle Centerlines Lochkreismittellinien + + + TechDraw Circle Centerlines + TechDraw Kreismittellinien + Circle Centerlines Kreismittellinien + + + TechDraw Thread Hole Side + TechDraw Gewindebohrung in der Seitenansicht + Cosmetic Thread Hole Side Hilfslinien für Innengewinde in Seitenansicht + + + TechDraw Thread Bolt Side + TechDraw Außengewinde in Seitenansicht + Cosmetic Thread Bolt Side Hilfslinien für Außengewinde in Seitenansicht + + + TechDraw Thread Hole Bottom + TechDraw Innengewinde in Achsansicht + Cosmetic Thread Hole Bottom Hilfslinien für Innengewinde in Achsansicht + + + TechDraw Thread Bolt Bottom + TechDraw Außengewinde in Achsansicht + Cosmetic Thread Bolt Bottom Hilfslinien für Außengewinde in Achsansicht + + + TechDraw Change Line Attributes + TechDraw Linienmerkmale ändern + Change Line Attributes Linienmerkmale ändern + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Hilfsschnittpunkt(e) hinzufügen + Cosmetic Intersection Vertex(es) Hilfsschnittpunkt(e) + + + TechDraw Cosmetic Arc + TechDraw Hilfsbogen + Cosmetic Arc Hilfsbogen + + + TechDraw Cosmetic Circle + TechDraw Hilfskreis + Cosmetic Circle Hilfskreis + + + TechDraw Cosmetic Circle 3 Points + TechDraw Hilfskreis durch 3 Punkte + Cosmetic Circle 3 Points Hilfskreis über 3 Punkte + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Hilfslinie parallel/senkrecht + Cosmetic Line Parallel/Perpendicular Hilfslinie Parallel/Senkrecht + + + TechDraw Lock/Unlock View + TechDraw Ansicht sperren/entsperren + Lock/Unlock View - Ansicht fixieren/lösen + Ansicht sperren/entsperren + + + + TechDraw Extend/Shorten Line + TechDraw Linie verlängern/kürzen Extend/Shorten Line Linie verlängern/kürzen + + + TechDraw calculate selected area + TechDraw ausgewählte Fläche berechnen + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Falsche Auswahl @@ -2643,7 +2728,7 @@ Select at least 1 DrawViewPart object as Base. - Wähle mindestens 1 DrawViewPart-Objekt als Basis aus + Mindestens 1 DrawViewPart-Objekt als Basis auswählen. @@ -2762,40 +2847,40 @@ Select at least one object. - Wähle mindestens ein Objekt. + Mindestens ein Objekt auswählen. - + Please select only 1 Arch Section. Bitte nur einen Schnitt aus dem Arbeitsbereich Arch auswählen. - + No Arch Sections in selection. Es wurde kein Schnitt aus dem Arbeitsbereich Arch ausgewählt. - + Select exactly one Spreadsheet object. Wählen Sie genau ein Kalkulationstabellen-Objekt. - + No Drawing View Keine Zeichnungsansicht - + Open Drawing View before attempting export to SVG. Öffnen Sie die Zeichnungsansichten vor dem Export nach SVG. - + Can not export selection Kann die Auswahl nicht exportieren - + Page contains DrawViewArch which will not be exported. Continue? Seite enthält DrawViewArch, die nicht exportiert werden wird. Fortfahren? @@ -3285,50 +3370,50 @@ Das Dokument enthält keine Zeichnungsblätter. - + PDF (*.pdf) PDF (*.PDF) - - + + All Files (*.*) Alle Dateien (*.*) - + Export Page As PDF Seite als PDF-Datei exportieren - + Document Name: Dokumentname: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Seite als SVG-Datei exportieren - + Are you sure you want to continue? Bist du sicher, dass du fortfahren möchtest? - + Show drawing Zeichnung anzeigen - + Toggle KeepUpdated Automatisches Aktualisieren umschalten @@ -3355,7 +3440,7 @@ - + Rich text editor Rich-Text Editor @@ -3400,7 +3485,7 @@ Mittellinie erstellen - + Edit Center Line Mittellinie bearbeiten @@ -3596,14 +3681,14 @@ - + Selection is empty Nichts ausgewählt - + No object selected Kein Objekt ausgewählt @@ -3628,12 +3713,12 @@ Keine Fläche in der Auswahl. - + TechDraw Thread Hole Side TechDraw Gewindebohrung in der Seitenansicht - + Please select two straight lines Bitte zwei gerade Linien auswählen @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. Diese Hinweislinie kann nicht gelöscht werden, weil ihr ein Schweißsymbol zugeordnet ist, das dadurch unbrauchbar werden würde. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Diese Ansicht kann nicht gelöscht werden, da von ihr eine oder mehrere Ansichten abhängen, die beschädigt werden könnten. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. Die Basisansicht einer Ansichtengruppe kann nicht gelöscht werden. - You cannot delete this view because it has a section view that would become broken. Diese Ansicht kann nicht gelöscht werden, da sie eine Schnittansicht enthält, die dadurch unbrauchbar werden würde. - You cannot delete this view because it has a detail view that would become broken. Diese Ansicht kann nicht gelöscht werden, da sie eine Detailansicht hat, die beschädigt werden könnte. - You cannot delete this view because it has a leader line that would become broken. Diese Ansicht kann nicht gelöscht werden, weil ihr eine Hinweislinie zugeordnet ist, die dadurch unbrauchbar werden würde. - + The page is not empty, therefore the following referencing objects might be lost: Das Zeichnungsblatt ist nicht leer, deshalb könnten die @@ -4194,12 +4279,12 @@ Jede Einheit ist etwa 0,1 mm breit If checked, system will attempt to automatically correct dimension references when the model changes. - Wenn diese Option aktiviert ist, wird das System versuchen, die Bemassungsreferenzen automatisch zu korrigieren, wenn sich das Modell ändert. + Wenn aktiviert, wird das System versuchen, Maßreferenzen automatisch zu korrigieren, wenn sich das Modell ändert. Auto Correct Dimension Refs - Automatische Korrektur der Bemassungsreferenz + Automatische Korrektur der Maßreferenzen @@ -4236,7 +4321,7 @@ Nur ändern, wenn du weißt, was du machst! The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. - The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. + Die Anzahl, wie oft FreeCAD versuchen soll, überlappende Kanten zu entfernen, die vom Algorithmus zur Entfernung verdeckter Linien erkannt wurden. Ein Wert von 0 bedeutet, dass kein Versuch durchgeführt wird, 1 bedeutet einen einzigen Durchgang und 2 bedeutet, dass ein zweiter Durchgang durchgeführt werden sollte. Werte über 2 sind im Allgemeinen nicht produktiv. Jeder Durchgang erhöht die Zeit, die für die Erstellung der Zeichnung benötigt wird. @@ -4248,8 +4333,8 @@ Nur ändern, wenn du weißt, was du machst! Limit of 64x64 pixel SVG tiles used to hatch a single face. For large scalings you might get an error about to many SVG tiles. Then you need to increase the tile limit. - Begrenzung auf 64x64 Pixel-SVG-Kacheln, um eine einzelne Fläche zu schraffieren. -Bei großen Schraffurflächen könnte es zu einem Fehler durch zu viele SVG-Kacheln kommen. + Maximale Anzahl von SVG-Kacheln einer Größe von 64x64 Pixeln zum Schraffieren einer einzelnen Fläche. +Bei großen Maßstäben könnte es zu einem Fehler durch zu viele SVG-Kacheln kommen. Dann muss das Kachellimit erhöht werden. @@ -4282,7 +4367,7 @@ das Schraffieren einer Fläche mit einem PAT-Schraffurmuster Overlap Edges Scrub Passes - Überlappung Schruppdurchgang + Schruppdurchgänge für überlappende Kanten @@ -4725,15 +4810,6 @@ das Schraffieren einer Fläche mit einem PAT-Schraffurmuster Color of vertices in views Farbe der Knotenpunkte in den Ansichten - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Wenn aktiviert, verwendet FreeCAD eine einzige Farbe für alle Texte und Linien. Wenn nicht aktiviert, wird FreeCAD versuchen, hellere Versionen von bevorzugten Farben zu verwenden. - - - Detail Highlight @@ -4774,6 +4850,15 @@ das Schraffieren einer Fläche mit einem PAT-Schraffurmuster Face color (if not transparent) Farbe für Flächen (wenn nicht transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + Wenn aktiviert, wird FreeCAD eine einzelne Farbe für alle Texte und Linien verwenden. + + + Monochrome @@ -5446,79 +5531,79 @@ Schnell, aber das Ergebnis ist eine Sammlung von kurzen geraden Linien. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Automatisches Aktualisieren umschalten - + Toggle &Frames Rahmen umschalten - + &Export SVG &Exportiere SVG - + Export DXF Export nach DXF - + Export PDF PDF exportieren - + Print All Pages Alle Seiten drucken - + Different orientation Andere Ausrichtung - + The printer uses a different orientation than the drawing. Do you want to continue? Der Drucker verwendet eine andere Ausrichtung als die Zeichnung. Möchten Sie fortfahren? - + Different paper size Anderes Papierformat - + The printer uses a different paper size than the drawing. Do you want to continue? Der Drucker verwendet eine andere Papiergröße als die Zeichnung. Möchten Sie fortfahren? - + Opening file failed Fehler beim Öffnen der Datei - + Can not open file %1 for writing. Datei %1 kann nicht zum Schreiben geöffnet werden. - + Save DXF file DXF-Datei speichern - + DXF (*.dxf) DXF (*.dxf) - + Selected: Ausgewählt: @@ -7332,7 +7417,7 @@ Du kannst weitere Punkte auswählen, um Liniensegmente zu erhalten. Top - Oben + Draufsicht @@ -7342,7 +7427,7 @@ Du kannst weitere Punkte auswählen, um Liniensegmente zu erhalten. Left - Links + Seitenansicht von links @@ -7352,12 +7437,12 @@ Du kannst weitere Punkte auswählen, um Liniensegmente zu erhalten. Right - Rechts + Seitenansicht von rechts Rear - Hinten + Rückansicht @@ -7367,7 +7452,7 @@ Du kannst weitere Punkte auswählen, um Liniensegmente zu erhalten. Bottom - Unten + Untersicht @@ -7893,22 +7978,22 @@ mit dem vorgegebenen X/Y-Abstand Material removal prohibited, whole part - Material removal prohibited, whole part + Entfernung des Werkstoffes nicht möglich, ganzer Teil Any method allowed, whole part - Any method allowed, whole part + Beliebige Methode erlaubt, ganzer Teil Material removal required, whole part - Material removal required, whole part + Entfernung des Werkstoffes erforderlich, ganzer Teil Material removal required - Material removal required + Entfernung des Werkstoffes erforderlich @@ -8538,7 +8623,7 @@ mit dem vorgegebenen X/Y-Abstand Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Fügt einem Maß eine Bohrungs- oder Wellenpassung hinzu <br> @@ -8583,7 +8668,7 @@ mit dem vorgegebenen X/Y-Abstand Tick - Senkrechter Strich + Schrägstrich @@ -8616,32 +8701,32 @@ mit dem vorgegebenen X/Y-Abstand Front - Vorne + Vorderansicht Left - Links + Seitenansicht von links Right - Rechts + Seitenansicht von rechts Rear - Hinten + Rückansicht Top - Oben + Draufsicht Bottom - Unten + Untersicht diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_el.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_el.ts index 2be5832cc7..f5fe2f504d 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_el.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_el.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Τεχνική Σχεδίαση - + Insert Arch Workbench Object Insert Arch Workbench Object - + Insert a View of a Section Plane from Arch Workbench Insert a View of a Section Plane from Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Αρχείο - + Export Page as DXF Εξαγωγή σελίδας ως DXF - + Save DXF file Αποθήκευση αρχείου DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Αρχείο - + Export Page as SVG Εξαγωγή σελίδας ως SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Template (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw Τεχνική Σχεδίαση - + Project shape... Προβάλετε σχήμα... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Τεχνική Σχεδίαση - + Insert Spreadsheet View Εισαγωγή Προβολής Υπολογιστικού Φύλλου - + Insert View to a spreadsheet Εισαγωγή Προβολής σε υπολογιστικό φύλλο @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Save page to dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Add Cosmetic Vertex + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Εισαγωγή προθέματος + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Λάθος επιλογή @@ -2765,37 +2850,37 @@ Επιλέξτε τουλάχιστον ένα αντικείμενο. - + Please select only 1 Arch Section. Επιλέξτε μόνο 1 τμήμα Arch - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Επιλέξτε ακριβώς ένα Υπολογιστικό Φύλλο. - + No Drawing View Καμία Προβολή Σχεδίασης - + Open Drawing View before attempting export to SVG. Ανοίξτε την Προβολή Σχεδίασης πριν επιχειρήσετε να κάνετε εξαγωγή σε SVG. - + Can not export selection Δεν είναι δυνατή η επιλογή εξαγωγή - + Page contains DrawViewArch which will not be exported. Continue? Η σελίδα περιέχει Σχέδιο Προβολήσ Arch που δεν θα εξαχθούν. Να συνεχίσει; @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Όλα τα αρχεία (*.*) - + Export Page As PDF Εξαγωγή Σελίδας ως PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Εξαγωγή Σελίδας ως SVG - + Are you sure you want to continue? Are you sure you want to continue? - + Show drawing Εμφανίστε σχέδιο - + Toggle KeepUpdated Εναλλαγή Ενημέρωσης της σελίδας @@ -3355,7 +3440,7 @@ - + Rich text editor Rich text editor @@ -3400,7 +3485,7 @@ Create Center Line - + Edit Center Line Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,81 +5537,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Εναλλαγή & Διατήρηση Ενημερωμένων - + Toggle &Frames Toggle &Frames - + &Export SVG &Εξαγωγή SVG - + Export DXF Εξαγωγή DXF - + Export PDF Εξαγωγή σε PDF - + Print All Pages Print All Pages - + Different orientation Διαφορετικός προσανατολισμός - + The printer uses a different orientation than the drawing. Do you want to continue? Ο εκτυπωτής χρησιμοποιεί διαφορετικό προσανατολισμό από το σχέδιο. Θέλετε να συνεχίσετε; - + Different paper size Διαφορετικό μέγεθος χαρτιού - + The printer uses a different paper size than the drawing. Do you want to continue? Ο εκτυπωτής χρησιμοποιεί διαφορετικό μέγεθος χαρτιού από το σχέδιο. Θέλετε να συνεχίσετε; - + Opening file failed Αποτυχία ανοίγματος αρχείου - + Can not open file %1 for writing. Can not open file %1 for writing. - + Save DXF file Αποθήκευση αρχείου DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Επιλεγμένα: @@ -8552,12 +8637,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-AR.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-AR.ts index 07452bde0c..5cf470fb4e 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-AR.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-AR.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw DibujoTécnico - + Insert Arch Workbench Object - Insertar objeto del entorno de trabajo Arq + Insertar objeto del banco de trabajo Arq - + Insert a View of a Section Plane from Arch Workbench Inserta una vista de un plano de corte desde el entorno de trabajo Arq. @@ -341,7 +341,7 @@ Insert Draft Workbench Object - Insertar objeto del entorno de trabajo Draft + Insertar objeto del banco de trabajo Draft @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Archivo - + Export Page as DXF Exportar página como DXF - + Save DXF file Guardar archivo DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Archivo - + Export Page as SVG Exportar página como SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Plantilla (*.svg *.dxf) + Template (*.svg) + Plantilla (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw DibujoTécnico - + Project shape... Formas del proyecto... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw DibujoTécnico - + Insert Spreadsheet View Insertar Vista de Hoja de cálculo - + Insert View to a spreadsheet Inserta una hoja de cálculo a la Vista @@ -1999,23 +1999,23 @@ Crear símbolo - + Create DraftView Crear vista de Draft - + Create ArchView Crear vista de Arq. - + Create spreadsheet view Crear vista de hoja de cálculo - - + + Save page to dxf Guardar página como dxf @@ -2086,7 +2086,7 @@ Crear vista activa - + Create CenterLine Crear línea central @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Agregar vértice adicional + + + TechDraw Insert Prefix + Insertar prefijo + Insert Prefix Insertar prefijo + + + TechDraw Remove Prefix + Eliminar prefijo + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Crear cot long arc + + + TechDraw Hole Circle + Círculo de Agujero TechDraw + Bolt Circle Centerlines Líneas centrales del círculo de perno + + + TechDraw Circle Centerlines + Centros de línea de círculo + Circle Centerlines Centros de línea de círculo + + + TechDraw Thread Hole Side + Dibuja lateral del agujero de la rosca + Cosmetic Thread Hole Side Lado de agujero roscado cosmético + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Lado de perno roscado cosmético + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Planta de agujero roscado cosmética + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Planta de perno roscado cosmética + + + TechDraw Change Line Attributes + Cambio de atributos de línea + Change Line Attributes Cambiar atributos de línea + + + TechDraw Cosmetic Intersection Vertex(es) + Añadir vértice(s) de intersección estético(s) en TechDraw + Cosmetic Intersection Vertex(es) Vértice(s) de intersección cosmético(s) + + + TechDraw Cosmetic Arc + Arco estético en TechDraw + Cosmetic Arc Arco cosmético + + + TechDraw Cosmetic Circle + Círculo estético en TechDraw + Cosmetic Circle Círculo cosmético + + + TechDraw Cosmetic Circle 3 Points + Añadir círculo estético con 3 puntos en TechDraw + Cosmetic Circle 3 Points Círculo cosmético 3 puntos + + + TechDraw Cosmetic Line Parallel/Perpendicular + Línea estética paralela/perpendicular en TechDraw + Cosmetic Line Parallel/Perpendicular Línea cosmética paralela/perpendicular + + + TechDraw Lock/Unlock View + Bloquear/desbloquear vista + Lock/Unlock View Bloquear/desbloquear Vista + + + TechDraw Extend/Shorten Line + Extender/acortar línea + Extend/Shorten Line Extender/Acortar Línea + + + TechDraw calculate selected area + Cálculo del área seleccionada + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Selección Incorrecta @@ -2765,37 +2850,37 @@ Seleccione al menos un objeto. - + Please select only 1 Arch Section. Por favor, seleccione solamente 1 Corte Arquitectónico. - + No Arch Sections in selection. No existen Cortes Arquitectónicos en esta selección. - + Select exactly one Spreadsheet object. Seleccione exactamente un objeto de hoja de cálculo. - + No Drawing View Sin Vista de Dibujo - + Open Drawing View before attempting export to SVG. Abra la Vista de Dibujo antes de intentar exportar a SVG. - + Can not export selection No se puede exportar la selección - + Page contains DrawViewArch which will not be exported. Continue? La página contiene DibujoVistaArq que no será exportada. ¿Desea continuar? @@ -2869,7 +2954,7 @@ Selected edge is a BSpline and a radius can not be calculated. - El borde seleccionado es una BSpline, así un radio no se puede calcular. + El borde seleccionado es una BSpline y el radio no se puede calcular. @@ -2894,7 +2979,7 @@ Selected edge is a BSpline and a diameter can not be calculated. - El borde seleccionado es una BSpline, así un diámetro no se puede calcular. + El borde seleccionado es una BSpline y no se puede calcular el diámetro. @@ -3285,50 +3370,50 @@ No hay Páginas de Dibujo en el documento. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Todos los archivos (*.*) - + Export Page As PDF Exportar Página Como PDF - + Document Name: Nombre del documento: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportar página como SVG - + Are you sure you want to continue? ¿Estás seguro/a de que quieres continuar? - + Show drawing Mostrar dibujo - + Toggle KeepUpdated Activar MantenerActualizado @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de texto enriquecido @@ -3400,7 +3485,7 @@ Crear Línea Centro - + Edit Center Line Editar Línea Centro @@ -3555,27 +3640,27 @@ TechDraw Create Horizontal Coord Dimension - TechDraw Create Horizontal Coord Dimension + Insertar cota de coordenadas horizontales TechDraw Create Vertical Coord Dimension - TechDraw Create Vertical Coord Dimension + Insertar cota de coordenadas verticales TechDraw Create Oblique Coord Dimension - TechDraw Create Oblique Coord Dimension + Crear cotas verticales encadenadas oblicuas TechDraw Create Horizontal Chamfer Dimension - TechDraw Create Horizontal Chamfer Dimension + Insertar cota de chaflán horizontal TechDraw Create Vertical Chamfer Dimension - TechDraw Create Vertical Chamfer Dimension + Crear cotas verticales encadenadas @@ -3596,14 +3681,14 @@ - + Selection is empty La selección está vacía - + No object selected Ningún objeto seleccionado @@ -3628,12 +3713,12 @@ No hay caras en la selección. - + TechDraw Thread Hole Side Dibuja lateral del agujero de la rosca - + Please select two straight lines Por favor, seleccione dos líneas rectas @@ -3711,7 +3796,7 @@ Can not use references from a different View - No se pueden usar referencias de una vista diferente + No se pueden utilizar referencias de una vista diferente @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. tiene un símbolo de soldadura que se rompería. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + No puede eliminar esta vista porque tiene una o más vistas dependientes que se romperían. + + + - + @@ -3767,25 +3855,22 @@ tiene un símbolo de soldadura que se rompería. No puede eliminar la vista de anclaje de un grupo de proyección. - You cannot delete this view because it has a section view that would become broken. No puede eliminar esta vista porque tiene una vista de corte que se rompería. - You cannot delete this view because it has a detail view that would become broken. No puede eliminar esta vista porque tiene una vista de detalle que se rompería. - You cannot delete this view because it has a leader line that would become broken. No puede eliminar esta vista porque contiene una línea de referencia que se rompería. - + The page is not empty, therefore the following referencing objects might be lost: La página no está vacía, por lo tanto el @@ -3935,8 +4020,8 @@ tiene un cuadro de soldadura que se rompería. Text above arrow side symbol Angle, surface finish, root - Texto sobre el símbolo de la flecha de lado -Ángulo, acabado de la superficie, raíz + Texto sobre el símbolo de flecha +ángulo, acabado superficial, raíz @@ -4569,7 +4654,7 @@ al rayar una cara con un patrón PAT Show or hide marks at direction changes on ComplexSection lines. - Mostrar u ocultar las marcas en los cambios de dirección en las líneas ComplexSection. + Mostrar u ocultar las marcas en los cambios de dirección en las líneas ComplexSection. @@ -4730,15 +4815,6 @@ al rayar una cara con un patrón PAT Color of vertices in views Color de los vértices en vistas - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Si está marcado, FreeCAD utilizará un solo color para todos los textos y líneas. Si no está marcada FreeCAD intentará usar versiones más ligeras de los colores preferidos. - - - Detail Highlight @@ -4779,6 +4855,15 @@ al rayar una cara con un patrón PAT Face color (if not transparent) Color de la cara (si no es transparente) + + + If checked FreeCAD will use a single color for all text and lines. + + + Si está marcado, FreeCAD usará un solo color para todo los textos y líneas. + + + Monochrome @@ -5450,81 +5535,81 @@ Rápido, pero el resultado es una colección de líneas rectas cortas. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Alternar &Mantener Actualizado - + Toggle &Frames Alternar &Marcos - + &Export SVG &Exportar SVG - + Export DXF Exportar DXF - + Export PDF Exportar a PDF - + Print All Pages Imprimir todas las páginas - + Different orientation Orientación diferente de la hoja - + The printer uses a different orientation than the drawing. Do you want to continue? La impresora utiliza una orientación de papel distinta a la del dibujo. ¿Desea continuar? - + Different paper size Tamaño de papel diferente - + The printer uses a different paper size than the drawing. Do you want to continue? La impresora usa un tamaño de papel distinto al del dibujo. ¿Desea continuar? - + Opening file failed No se pudo abrir el archivo - + Can not open file %1 for writing. No se puede abrir el archivo %1 para escritura. - + Save DXF file Guardar archivo DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Seleccionado: @@ -5875,7 +5960,7 @@ Do you want to continue? Use Selection - Usar Selección + Usar selección @@ -7920,12 +8005,12 @@ usando el espacio X/Y dado Material removal required - Material removal required + Requiere eliminar material Material removal prohibited - Material removal prohibited + Eliminación de material prohibida @@ -8300,7 +8385,7 @@ usando el espacio X/Y dado TechDraw Tool Attributes - Atributos de herramienta TechDraw + Atributos de herramienta @@ -8353,7 +8438,7 @@ usando el espacio X/Y dado Select From Page. - Seleccionar desde la página. + Seleccionar desde Página. @@ -8364,7 +8449,7 @@ usando el espacio X/Y dado Select To Page. - Seleccionar a página. + Seleccionar a Página. @@ -8402,7 +8487,7 @@ usando el espacio X/Y dado Select From Page. - Seleccionar desde la página. + Seleccionar desde Página. @@ -8413,7 +8498,7 @@ usando el espacio X/Y dado Select To Page. - Seleccionar a página. + Seleccionar a Página. @@ -8550,7 +8635,7 @@ usando el espacio X/Y dado Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Añade un ajuste de agujero o eje a una cota<br> @@ -8682,12 +8767,13 @@ usando el espacio X/Y dado You cannot delete this balloon now because there is an open task dialog. - No se puede borrar esta viñeta ahora porque hay un diálogo de tareas abierto. + No puede eliminar este globo ahora porque +hay un diálogo de tareas abiertas. Can Not Delete - No se puede borrar + No se puede eliminar diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-ES.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-ES.ts index 683089f958..7e04882427 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-ES.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_es-ES.ts @@ -38,7 +38,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -51,7 +51,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -64,7 +64,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -77,7 +77,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -90,7 +90,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -103,7 +103,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -116,7 +116,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw - TechDraw + Dibujo técnico - + Insert Arch Workbench Object Insertar objeto Arch Workbench - + Insert a View of a Section Plane from Arch Workbench Insertar una vista de un plano de sección desde el banco de trabajo Arch @@ -147,7 +147,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -160,7 +160,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -178,7 +178,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -191,7 +191,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -204,7 +204,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -217,7 +217,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -235,7 +235,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -248,7 +248,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -261,7 +261,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -279,7 +279,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -297,7 +297,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -310,7 +310,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -323,7 +323,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -336,7 +336,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Archivo - + Export Page as DXF Exportar página como DXF - + Save DXF file Guardar archivo Dxf - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Archivo - + Export Page as SVG Exportar página como SVG @@ -390,7 +390,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -408,7 +408,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -426,7 +426,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -444,7 +444,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -464,7 +464,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -484,7 +484,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -504,7 +504,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -522,7 +522,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -540,7 +540,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -560,7 +560,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -578,7 +578,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -596,7 +596,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -614,7 +614,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -634,7 +634,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -654,7 +654,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -674,7 +674,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -692,7 +692,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -712,7 +712,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -732,7 +732,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -752,7 +752,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -772,7 +772,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -792,7 +792,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -810,7 +810,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -830,7 +830,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -848,7 +848,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -868,7 +868,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -888,7 +888,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -912,7 +912,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -932,7 +932,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -952,7 +952,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -972,7 +972,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -990,7 +990,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1010,7 +1010,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1028,7 +1028,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1048,7 +1048,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1066,7 +1066,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1086,7 +1086,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1106,7 +1106,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1124,7 +1124,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1142,7 +1142,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1162,7 +1162,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1182,7 +1182,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1202,7 +1202,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1220,7 +1220,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1238,7 +1238,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1256,7 +1256,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1276,7 +1276,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1296,7 +1296,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1316,7 +1316,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1336,7 +1336,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1356,7 +1356,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1374,7 +1374,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1392,7 +1392,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1415,7 +1415,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1428,7 +1428,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1441,7 +1441,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1454,7 +1454,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1467,7 +1467,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1480,7 +1480,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1509,7 +1509,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1522,7 +1522,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1535,7 +1535,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1548,7 +1548,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1561,7 +1561,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1574,7 +1574,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1587,7 +1587,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Plantilla (*.svg *.dxf) + Template (*.svg) + Plantilla (*.svg) @@ -1610,7 +1610,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw - TechDraw + Dibujo técnico - + Project shape... Formas del proyecto... @@ -1636,7 +1636,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1654,7 +1654,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1667,7 +1667,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1680,7 +1680,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1693,7 +1693,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1706,7 +1706,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1729,7 +1729,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1742,7 +1742,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw - TechDraw + Dibujo técnico - + Insert Spreadsheet View Insertar Vista de Hoja de Cálculo - + Insert View to a spreadsheet Insertar Vista a una hoja de cálculo @@ -1773,7 +1773,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1786,7 +1786,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1799,7 +1799,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1832,7 +1832,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1845,7 +1845,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1858,7 +1858,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1876,7 +1876,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1894,7 +1894,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1908,7 +1908,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1921,7 +1921,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1934,7 +1934,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1952,7 +1952,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -1999,23 +1999,23 @@ Crear Símbolo - + Create DraftView Crear Vista Draft - + Create ArchView Crear vista de Arch - + Create spreadsheet view Crear vista de hoja de cálculo - - + + Save page to dxf Guardar página como dxf @@ -2086,7 +2086,7 @@ Crear Vista Activa - + Create CenterLine Crear Línea Central @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Añadir vértice cosmético + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insertar prefijo + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Crear cot long arc + + + TechDraw Hole Circle + Círculo de Agujero TechDraw + Bolt Circle Centerlines Líneas centrales del círculo de perno + + + TechDraw Circle Centerlines + Líneas centrales de círculo en TechDraw + Circle Centerlines Líneas centrales del círculo + + + TechDraw Thread Hole Side + Dibuja lateral del agujero de la rosca + Cosmetic Thread Hole Side Lado de agujero roscado cosmético + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Lado de perno roscado cosmético + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Planta de agujero roscado cosmética + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Planta de perno roscado cosmética + + + TechDraw Change Line Attributes + Cambiar atributos de línea en TechDraw + Change Line Attributes Cambiar atributos de línea + + + TechDraw Cosmetic Intersection Vertex(es) + Añadir vértice(s) de intersección estético(s) en TechDraw + Cosmetic Intersection Vertex(es) Vértice(s) de intersección cosmético(s) + + + TechDraw Cosmetic Arc + Arco estético en TechDraw + Cosmetic Arc Arco cosmético + + + TechDraw Cosmetic Circle + Círculo estético en TechDraw + Cosmetic Circle Círculo cosmético + + + TechDraw Cosmetic Circle 3 Points + Añadir círculo estético con 3 puntos en TechDraw + Cosmetic Circle 3 Points Círculo cosmético 3 puntos + + + TechDraw Cosmetic Line Parallel/Perpendicular + Línea estética paralela/perpendicular en TechDraw + Cosmetic Line Parallel/Perpendicular Línea cosmética paralela/perpendicular + + + TechDraw Lock/Unlock View + bloquear/desbloquear vista en TechDraw + Lock/Unlock View Bloquear/Desbloquear vista + + + TechDraw Extend/Shorten Line + extender/acortar línea en TechDraw + Extend/Shorten Line Extender / Acortar línea + + + TechDraw calculate selected area + TechDraw calcular el área seleccionada + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Selección incorrecta @@ -2765,37 +2850,37 @@ Seleccione al menos un objeto. - + Please select only 1 Arch Section. Por favor, seleccione solamente 1 sección Arch. - + No Arch Sections in selection. No existen secciones Arch en esta selección. - + Select exactly one Spreadsheet object. Seleccione exactamente un objeto de hoja de cálculo. - + No Drawing View Sin vistas de dibujo - + Open Drawing View before attempting export to SVG. Vista del dibujo abierta antes de intentar exportar a SVG. - + Can not export selection No se puede exportar selección - + Page contains DrawViewArch which will not be exported. Continue? La página contiene DrawViewArch que no será exportada. ¿Desea continuar? @@ -3285,50 +3370,50 @@ No hay páginas de dibujo en el documento. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Todos los archivos (*.*) - + Export Page As PDF Exportar página como PDF - + Document Name: Nombre del documento: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportar página como SVG - + Are you sure you want to continue? ¿Está seguro de que desea continuar? - + Show drawing Mostrar dibujo - + Toggle KeepUpdated Activar KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de texto enriquecido @@ -3400,7 +3485,7 @@ Crear Línea Central - + Edit Center Line Editar Línea Central @@ -3481,7 +3566,7 @@ TechDraw Increase/Decrease Decimal - TechDraw Increase/Decrease Decimal + Incrementar/Reducir decimales @@ -3540,52 +3625,52 @@ TechDraw Create Horizontal Chain Dimension - TechDraw Create Horizontal Chain Dimension + Crear cotas horizontales encadenadas TechDraw Create Vertical Chain Dimension - TechDraw Create Vertical Chain Dimension + Crear cotas verticales encadenadas TechDraw Create Oblique Chain Dimension - TechDraw Create Oblique Chain Dimension + Crear cotas verticales encadenadas oblicuas TechDraw Create Horizontal Coord Dimension - TechDraw Create Horizontal Coord Dimension + Insertar cota de coordenadas horizontales TechDraw Create Vertical Coord Dimension - TechDraw Create Vertical Coord Dimension + Insertar cota de coordenadas verticales TechDraw Create Oblique Coord Dimension - TechDraw Create Oblique Coord Dimension + Crear cotas verticales encadenadas oblicuas TechDraw Create Horizontal Chamfer Dimension - TechDraw Create Horizontal Chamfer Dimension + Insertar cota de chaflán horizontal TechDraw Create Vertical Chamfer Dimension - TechDraw Create Vertical Chamfer Dimension + Crear cotas verticales encadenadas TechDraw Create Arc Length Dimension - TechDraw Create Arc Length Dimension + Insertar cota de longitud del arco TechDraw Customize Format - TechDraw Customize Format + TechDraw personalizar formato @@ -3596,14 +3681,14 @@ - + Selection is empty No ha seleccionado nada - + No object selected Ningún objeto seleccionado @@ -3628,12 +3713,12 @@ No hay caras en la selección. - + TechDraw Thread Hole Side Dibuja lateral del agujero de la rosca - + Please select two straight lines Por favor, seleccione dos líneas rectas @@ -3732,7 +3817,7 @@ TechDraw - TechDraw + Dibujo técnico @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. tiene un símbolo de soldadura que se rompería. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + No se puede borrar esta vista porque tiene una o más vistas dependientes que se romperían. + + + - + @@ -3767,25 +3855,22 @@ tiene un símbolo de soldadura que se rompería. No puede eliminar la vista de anclaje de un grupo de proyección. - You cannot delete this view because it has a section view that would become broken. No puede eliminar esta vista porque tiene una vista de sección que se rompería. - You cannot delete this view because it has a detail view that would become broken. No puede eliminar esta vista porque tiene una vista de detalle que se rompería. - You cannot delete this view because it has a leader line that would become broken. No puede eliminar esta vista porque contiene una línea de referencia que se rompería. - + The page is not empty, therefore the following referencing objects might be lost: La página no está vacía, por lo tanto el @@ -4730,15 +4815,6 @@ al rayar una cara con un patrón PAT Color of vertices in views Color de los vértices en vistas - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Si está marcado, FreeCAD utilizará un solo color para todo el texto y las líneas. Si está desmarcada FreeCAD intentará usar versiones más claras de los colores preferidos. - - - Detail Highlight @@ -4779,6 +4855,15 @@ al rayar una cara con un patrón PAT Face color (if not transparent) Color de la cara (si no es transparente) + + + If checked FreeCAD will use a single color for all text and lines. + + + Al activarlo, FreeCAD usará un color único para texto y líneas. + + + Monochrome @@ -5450,81 +5535,81 @@ Rápido, pero los resultados son una colección de líneas rectas cortas. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Alternar y mantener actualizados - + Toggle &Frames Alternar Marcos - + &Export SVG &Exportar SVG - + Export DXF Exportar DXF - + Export PDF Exportar en PDF - + Print All Pages Imprimir todas las páginas - + Different orientation Orientación diferente de la hoja - + The printer uses a different orientation than the drawing. Do you want to continue? La impresora utiliza una orientación de papel distinta a la del dibujo. ¿Desea continuar? - + Different paper size Tamaño de papel diferente - + The printer uses a different paper size than the drawing. Do you want to continue? La impresora usa un tamaño de papel distinto al del dibujo. ¿Desea continuar? - + Opening file failed No se pudo abrir el archivo - + Can not open file %1 for writing. No se puede abrir el archivo %1 para la escritura. - + Save DXF file Guardar archivo Dxf - + DXF (*.dxf) DXF (*.dxf) - + Selected: Seleccionado: @@ -7920,17 +8005,17 @@ usando el Espaciado X/Y dado Material removal required - Material removal required + Requiere eliminar material Material removal prohibited - Material removal prohibited + Eliminación de material prohibida Any method allowed - Any method allowed + Cualquier método permitido @@ -8240,7 +8325,7 @@ usando el Espaciado X/Y dado Stacking - Stacking + Apilando @@ -8255,7 +8340,7 @@ usando el Espaciado X/Y dado TechDraw - TechDraw + Dibujo técnico @@ -8492,7 +8577,7 @@ usando el Espaciado X/Y dado TechDraw - TechDraw + Dibujo técnico @@ -8550,14 +8635,14 @@ usando el Espaciado X/Y dado Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Añade un agujero o ajuste a una dimensión<br> - - selecciona una dimensión de longitud o diámetro<br> - - haz clic en el botón de herramienta, abre un panel<br> - - seleccione ajuste de eje / ajuste de agujero<br> - - seleccione el campo de ajuste ISO 286 deseado usando la caja de combo + Add a hole or shaft fit to a dimension<br> + - select one length dimension or diameter dimension<br> + - click the tool button, a panel opens<br> + - select shaft fit / hole fit<br> + - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_eu.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_eu.ts index 5e8f1aac5f..c0a2bf7bac 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_eu.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_eu.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Txertatu Arch lan-mahaiaren objektua - + Insert a View of a Section Plane from Arch Workbench Txertatu Arch lan-mahaiko sekzio-plano baten bista bat @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fitxategia - + Export Page as DXF Esportatu orrialdea DXF gisa - + Save DXF file Gorde DXF fitxategia - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fitxategia - + Export Page as SVG Esportatu orrialdea SVG gisa @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Txantiloia (*.svg *.dxf) + Template (*.svg) + Txantiloia (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Proiektatu forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Txertatu kalkulu-orriaren bista - + Insert View to a spreadsheet Txertatu bista kalkulu-orri bati @@ -1999,23 +1999,23 @@ Sortu ikurra - + Create DraftView Sortu zirriborro-bista - + Create ArchView Sortu arku-bista - + Create spreadsheet view Sortu kalkulu-orriaren bista - - + + Save page to dxf Gorde orria DXF fitxategi batean @@ -2086,7 +2086,7 @@ Sortu bista aktiboa - + Create CenterLine Sortu erdiko lerroa @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Gehitu erpin kosmetikoa + + + TechDraw Insert Prefix + TechDraw txertatu aurrizkia + Insert Prefix Txertatu aurrizkia + + + TechDraw Remove Prefix + TechDraw kendu aurrizkia + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Txertatu arku-luzeraren kota + + + TechDraw Hole Circle + TechDraw zulo-zirkulua + Bolt Circle Centerlines Buloiaren zirkuluaren erdiko lerroak + + + TechDraw Circle Centerlines + TechDraw zirkuluaren erdiko lerroak + Circle Centerlines Zirkuluaren erdiko lerroak + + + TechDraw Thread Hole Side + TechDraw hari-zuloaren aldea + Cosmetic Thread Hole Side Hari kosmetikoaren zulo-alboa + + + TechDraw Thread Bolt Side + TechDraw haridun buloiaren alboa + Cosmetic Thread Bolt Side Haridun buloi kosmetikoaren alboa + + + TechDraw Thread Hole Bottom + TechDraw hari-zuloaren hondoa + Cosmetic Thread Hole Bottom Hari kosmetikoaren zulo-behealdea + + + TechDraw Thread Bolt Bottom + TechDraw haridun buloiaren hondoa + Cosmetic Thread Bolt Bottom Hari kosmetikoaren buloi-behealdea + + + TechDraw Change Line Attributes + TechDraw aldatu lerro-atributuak + Change Line Attributes Aldatu lerro-atributuak + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw ebakidura-erpin kosmetikoa(k) + Cosmetic Intersection Vertex(es) Ebakidura-erpin kosmetikoa(k) + + + TechDraw Cosmetic Arc + TechDraw arku kosmetikoa + Cosmetic Arc Arku kosmetikoa + + + TechDraw Cosmetic Circle + TechDraw zirkulu kosmetikoa + Cosmetic Circle Zirkulu kosmetikoa + + + TechDraw Cosmetic Circle 3 Points + TechDraw 3 puntuko zirkulu kosmetikoa + Cosmetic Circle 3 Points 3 puntuko zirkulu kosmetikoa + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw lerro paralelo/perpendikular kosmetikoa + Cosmetic Line Parallel/Perpendicular Lerro paralelo/perpendikular kosmetikoa + + + TechDraw Lock/Unlock View + TechDraw blokeatu/desblokeatu bista + Lock/Unlock View Blokeatu/desblokeatu bista + + + TechDraw Extend/Shorten Line + TechDraw luzatu/laburtu lerroa + Extend/Shorten Line Luzatu/laburtu lerroa + + + TechDraw calculate selected area + TechDraw kalkulatu hautatutako area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Hautapen okerra @@ -2765,37 +2850,37 @@ Hautatu objektu bat gutxienez. - + Please select only 1 Arch Section. Hautatu arkitektura-sekzio bakar bat. - + No Arch Sections in selection. Ez dago arkitektura-sekziorik hautapenean. - + Select exactly one Spreadsheet object. Hautatu kalkulu-orri objektu zehatz bat. - + No Drawing View Ez dago marrazki-bistarik - + Open Drawing View before attempting export to SVG. Ireki marrazki-bista SVG formatura esportatzen saiatu baino lehen. - + Can not export selection Ezin da hautapena esportatu - + Page contains DrawViewArch which will not be exported. Continue? Orrialdeak DrawViewArch dauka, baina ez da esportatuko. Jarraitu? @@ -3285,50 +3370,50 @@ Ez dago marrazki-orririk dokumentuan. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Fitxategi guztiak (*.*) - + Export Page As PDF Esportatu orrialdea PDF gisa - + Document Name: Dokumentu-izena: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Esportatu orrialdea SVG gisa - + Are you sure you want to continue? Ziur zaude jarraitu nahi duzula? - + Show drawing Erakutsi marrazkia - + Toggle KeepUpdated Txandakatu eguneratuta mantentzea @@ -3355,7 +3440,7 @@ - + Rich text editor Testu aberatsaren editorea @@ -3400,7 +3485,7 @@ Sortu erdiko lerroa - + Edit Center Line Editatu erdiko lerroa @@ -3596,14 +3681,14 @@ - + Selection is empty Hautapena hutsik dago - + No object selected Ez da objekturik hautatu @@ -3628,12 +3713,12 @@ Ez dago aurpegirik hautapenean. - + TechDraw Thread Hole Side TechDraw hari-zuloaren aldea - + Please select two straight lines Hautatu bi lerro zuzen @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. hautsi daitekeen soldadura-ikur bat duelako. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Ezin da bista hau ezabatu, hautsita geratuko liratekeen mendeko bista bat edo gehiago dituelako. + + + - + @@ -3767,25 +3855,22 @@ hautsi daitekeen soldadura-ikur bat duelako. Ezin da proiekzio-talde baten aingura-bista ezabatu. - You cannot delete this view because it has a section view that would become broken. Ezin da bista hau ezabatu hautsita geratuko litzatekeen sekzio-bista bat duelako. - You cannot delete this view because it has a detail view that would become broken. Ezin da bista hau ezabatu hautsita geratuko litzatekeen bista xehe bat duelako. - You cannot delete this view because it has a leader line that would become broken. Ezin da bista hau ezabatu hautsita geratuko litzatekeen gida-marra bat duelako. - + The page is not empty, therefore the following referencing objects might be lost: Orria ez dago hutsik, eta honako erreferentzia @@ -4731,15 +4816,6 @@ erabiliko den itzal-lerro kopuru maximoa Color of vertices in views Bistetako erpinen kolorea - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Hau aktibatuta badago, FreeCADek kolore bakarra erabiliko du testu eta lerro guztietarako. Ez badago aktibatuta, hobetsitako koloreen bertsio argiagoak erabiltzen saiatuko da FreeCAD. - - - Detail Highlight @@ -4780,6 +4856,15 @@ erabiliko den itzal-lerro kopuru maximoa Face color (if not transparent) Aurpegi-kolorea (gardena ez bada) + + + If checked FreeCAD will use a single color for all text and lines. + + + Hau markatuta badago, FreeCADek kolore bakarra erabiliko du testu eta lerro guztietarako. + + + Monochrome @@ -5453,81 +5538,81 @@ Azkarra, baina lerro zuzen laburren bilduma bat ematen du. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Txandakatu &eguneratuta mantentzea - + Toggle &Frames Txandakatu &markoak - + &Export SVG &Esportatu SVGa - + Export DXF Esportatu DXFa - + Export PDF Esportatu PDFa - + Print All Pages Inprimatu orrialde guztiak - + Different orientation Orientazio desberdina - + The printer uses a different orientation than the drawing. Do you want to continue? Inprimagailuak eta marrazkiak orientazio desberdina dute. Jarraitu nahi duzu? - + Different paper size Paper-tamaina desberdina - + The printer uses a different paper size than the drawing. Do you want to continue? Inprimagailuak eta marrazkiak paper-tamaina desberdina dute. Jarraitu nahi duzu? - + Opening file failed Fitxategia irekitzeak huts egin du - + Can not open file %1 for writing. Ezin da %1 fitxategia ireki hura idazteko. - + Save DXF file Gorde DXF fitxategia - + DXF (*.dxf) DXF (*.dxf) - + Selected: Hautatua: @@ -8553,7 +8638,7 @@ emandako X/Y espazioa erabilita Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Gehitu doikuntza emea edo arra kota bati<br> diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fi.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fi.ts index 1513beb448..7578ebe175 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fi.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fi.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Lisää Arch-työpöytäobjekti - + Insert a View of a Section Plane from Arch Workbench Lisää poikkileikkaustason näkymä Arch-työpöydästä @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Tiedosto - + Export Page as DXF Vie sivu DXF-tiedostona - + Save DXF file Tallenna DXF-tiedosto - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Tiedosto - + Export Page as SVG Vie sivu SVG-tiedostona @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Mallipohja (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projektin muoto... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Lisää taulukkonäkymä - + Insert View to a spreadsheet Lisää näkymä laskentataulukkoon @@ -1999,23 +1999,23 @@ Luo symboli - + Create DraftView Luo vedosäkymä - + Create ArchView Luo ArchView - + Create spreadsheet view Luo laskentataulukkonäkymä - - + + Save page to dxf Tallenna sivu dxf-muotoon @@ -2086,7 +2086,7 @@ Luo Aktiivinen Näkymä - + Create CenterLine Luo Keskilinja @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Lisää kosmeettinen apupiste + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Lisää etuliite + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Ympyrän Keskiviivat + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Apugeometria reijän kierre + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Apugeometria ruuvin kierre + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Kosmeettinen kierrereijän pohja + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Kosmeettinen ruuvin pääty + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Muuta viivan attribuutteja + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Kosmeettinen leiukkauksen särmä(t) ja piste(et) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Apugeometria kaari + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Apugeometria ympyrä + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Apugeometria ympyrä (3 pistettä) + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Apugeometria viiva Yhdensuuntainen / Kohtisuora + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lukitse/vapauta näkymä + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Virheellinen valinta @@ -2765,37 +2850,37 @@ Valitse vähintään yksi objekti. - + Please select only 1 Arch Section. Ole hyvä ja valitse vain 1 Arch-poikkileikkaus. - + No Arch Sections in selection. Valinnassa ei ole Arch-poikkileikkausta. - + Select exactly one Spreadsheet object. Valitse täsmälleen yksi taulukkokohde. - + No Drawing View Ei piirrosnäkymää - + Open Drawing View before attempting export to SVG. Avaa Piirustuksen Näkymä ennen kuin yrität viedä SVG-tiedostoon. - + Can not export selection Valintaa ei voida viedä tiedostoon - + Page contains DrawViewArch which will not be exported. Continue? Sivu sisältää DrawViewArch-objektin, jota ei voi viedä. Jatketaanko? @@ -3285,50 +3370,50 @@ Asiakirjassa ei ole Piirustus-sivuja. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Kaikki tiedostot (*.*) - + Export Page As PDF Vie sivu PDF-tiedostoon - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Vie sivu SVG-tiedostoon - + Are you sure you want to continue? Haluatko varmasti jatkaa? - + Show drawing Näytä piirustus - + Toggle KeepUpdated Vaihda PidäPäivitettynä @@ -3355,7 +3440,7 @@ - + Rich text editor RTF-tekstin editori @@ -3400,7 +3485,7 @@ Luo Keskiviiva - + Edit Center Line Muokkaa keskilinjaa @@ -3596,14 +3681,14 @@ - + Selection is empty Valinta on tyhjä - + No object selected Yhtäkään objektia ei ole valittu @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Valitse kaksi suoraa viivaa @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. Tätä Reittiviivaa ei voi poistaa, koska siihen on liitetty hitsaussymboli, joka rikkoutuisi. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. Projektioryhmän ankkurinäkymää ei voi poistaa. - You cannot delete this view because it has a section view that would become broken. Et voi poistaa tätä Näkymää, koska siihen on liitetty Poikkileikkausnäkymä joka rikkoutuisi. - You cannot delete this view because it has a detail view that would become broken. Et voi poistaa tätä Näkymää, koska siihen on liitetty Detaljinäkymä joka rikkoutuisi. - You cannot delete this view because it has a leader line that would become broken. Et voi poistaa tätä Näkymää, koska siihen on liitetty Reittiviiva joka rikkoutuisi. - + The page is not empty, therefore the following referencing objects might be lost: Sivu ei ole tyhjä, joten seuraavat @@ -4725,15 +4810,6 @@ kun Aluetta viivoitetaan PAT-kuvionnilla Color of vertices in views Pisteiden väri näkymissä - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Jos valittu, FreeCAD käyttää yhtä väriä kaikille teksteille ja viivoille. Jos ei valittuna, FreeCAD yrittää käyttää vaaleampia versioita suositelluista väreistä. - - - Detail Highlight @@ -4774,6 +4850,15 @@ kun Aluetta viivoitetaan PAT-kuvionnilla Face color (if not transparent) Alueen väri (jos ei läpinäkyvä) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5444,81 +5529,81 @@ Nopea, mutta tulos on kokoelma lyhyitä suoria viivoja. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Vaihda &PidäPäivitettynä - + Toggle &Frames Vaihda &Kehykset - + &Export SVG &Vie SVG - + Export DXF Vie DXF-tiedostoon - + Export PDF Vie PDF - + Print All Pages Tulosta kaikki sivut - + Different orientation Erilainen sivun suunta - + The printer uses a different orientation than the drawing. Do you want to continue? Tulostin käyttää eri paperisuuntaa kuin piirros. Haluatko jatkaa? - + Different paper size Erilainen paperikoko - + The printer uses a different paper size than the drawing. Do you want to continue? Tulostin käyttää eri paperikokoa kuin piirros. Haluatko jatkaa? - + Opening file failed Tiedoston avaaminen epäonnistui - + Can not open file %1 for writing. Tiedostoon ”%1” ei voida tallentaa. - + Save DXF file Tallenna DXF-tiedosto - + DXF (*.dxf) DXF (*.dxf) - + Selected: Valittu: @@ -8542,14 +8627,14 @@ käyttäen annettuja X/Y-välimatkoja Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Lisää reikä- tai akseli sovite, joka sopii mittoihin<br> - - valitse yksi pituus tai halkaisija<br> - - napsauta työkalupainiketta, paneeli avautuu<br> - - valitse akseli-/ reikä sovite<br> - - valitse haluamasi ISO 286 -sovitetoleranssi kombolaatikon avulla + Add a hole or shaft fit to a dimension<br> + - select one length dimension or diameter dimension<br> + - click the tool button, a panel opens<br> + - select shaft fit / hole fit<br> + - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fr.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fr.ts index a21899edd7..2e8526a96b 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fr.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_fr.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Insérer un objet de l'atelier Arch - + Insert a View of a Section Plane from Arch Workbench Insérer une vue d'un plan de coupe à partir de l'atelier Arch @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fichier - + Export Page as DXF Exporter une page au format DXF - + Save DXF file Enregistrer le fichier Dxf - + DXF (*.dxf) Dxf (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fichier - + Export Page as SVG Exporter une page au format SVG @@ -1636,7 +1636,7 @@ Insert Bitmap Image - Insérer une image Bitmap + Insérer une image bitmap @@ -1752,8 +1752,8 @@ - Template (*.svg *.dxf) - Modèle (*.svg *.dxf) + Template (*.svg) + Modèle (*.svg) @@ -1772,12 +1772,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projeter la forme... @@ -1898,23 +1898,23 @@ Show/Hide Invisible Edges - Afficher/masquer les arrêtes cachées + Afficher/masquer les arrêtes invisibles CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Insérer une vue de l'atelier Spreadsheet - + Insert View to a spreadsheet Insérer une vue dans une feuille de calcul @@ -2152,23 +2152,23 @@ Créer un Symbole - + Create DraftView Créer une vue de l'atelier Draft - + Create ArchView Créer une vue de l'atelier Arch - + Create spreadsheet view Créer une vue de feuille de calcul - - + + Save page to dxf Enregistrer la page en dxf @@ -2239,7 +2239,7 @@ Créer une vue active - + Create CenterLine Créer une trait d'axe @@ -2314,11 +2314,21 @@ Add Cosmetic Vertex Ajouter un sommet cosmétique + + + TechDraw Insert Prefix + Préfixe d'insertion de TechDraw + Insert Prefix Insérez un préfixe + + + TechDraw Remove Prefix + Retirer le préfixe de TechDraw + Remove Prefix @@ -2404,76 +2414,151 @@ Create Arc Length Dim Longueur d'arc + + + TechDraw Hole Circle + Axes de centrage des trous/vis + Bolt Circle Centerlines Axes de centrage des trous/vis + + + TechDraw Circle Centerlines + Axes de centrage des trous/vis de TechDraw + Circle Centerlines Axes de centrage + + + TechDraw Thread Hole Side + Dessin latérale du trou taraudé + Cosmetic Thread Hole Side Corps de taraudage + + + TechDraw Thread Bolt Side + Corps de filetage de TechDraw + Cosmetic Thread Bolt Side Corps de filetage + + + TechDraw Thread Hole Bottom + Taraudage de TechDraw + Cosmetic Thread Hole Bottom Taraudage + + + TechDraw Thread Bolt Bottom + Filetage de TechDraw + Cosmetic Thread Bolt Bottom Filetage + + + TechDraw Change Line Attributes + Modification des attributs de TechDraw + Change Line Attributes Modifier les attributs de lignes + + + TechDraw Cosmetic Intersection Vertex(es) + Intersection de lignes de TechDraw + Cosmetic Intersection Vertex(es) Intersection de lignes + + + TechDraw Cosmetic Arc + Arc de TechDraw + Cosmetic Arc Arc + + + TechDraw Cosmetic Circle + Cercle de TechDraw + Cosmetic Circle Cercle + + + TechDraw Cosmetic Circle 3 Points + Cercle par 3 points de TechDraw + Cosmetic Circle 3 Points Cercle par 3 points + + + TechDraw Cosmetic Line Parallel/Perpendicular + Lignes cosmétiques parallèle/perpendiculaire de TechDraw + Cosmetic Line Parallel/Perpendicular Ligne parallèle/perpendiculaire + + + TechDraw Lock/Unlock View + Verrouiller/Déverrouiller une vue de TechDraw + Lock/Unlock View Verrouiller/déverrouiller les vues + + + TechDraw Extend/Shorten Line + Étendre/Raccourcir une ligne de TechDraw + Extend/Shorten Line Agrandir/raccourcir la ligne + + + TechDraw calculate selected area + Calculer la zone sélectionnée de TechDraw + Calculate Face Area @@ -2780,9 +2865,9 @@ - - - + + + Wrong selection Sélection invalide @@ -2919,37 +3004,37 @@ Sélectionner au moins un objet. - + Please select only 1 Arch Section. Veuillez ne sélectionner qu'une seule section Architecture. - + No Arch Sections in selection. Pas de section Architecture dans la sélection. - + Select exactly one Spreadsheet object. Sélectionner un seul objet Spreadsheet. - + No Drawing View Aucune vue de dessin - + Open Drawing View before attempting export to SVG. Ouvrir la vue de dessin avant d’essayer d’exporter vers SVG. - + Can not export selection Impossible d'exporter la sélection - + Page contains DrawViewArch which will not be exported. Continue? La page contient DrawViewArch qui ne sera pas exporté. Continuer ? @@ -3439,50 +3524,50 @@ Aucune page de dessin dans le document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Tous les fichiers (*.*) - + Export Page As PDF Exporter la page au format PDF - + Document Name: Nom du document: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exporter la page au format SVG - + Are you sure you want to continue? Êtes-vous sûr de vouloir continuer ? - + Show drawing Afficher la mise en plan - + Toggle KeepUpdated Activer/désactiver la mise à jour @@ -3509,7 +3594,7 @@ - + Rich text editor Éditeur de texte enrichi @@ -3554,7 +3639,7 @@ Créer une ligne centrale - + Edit Center Line Modifier la ligne centrale @@ -3750,14 +3835,14 @@ - + Selection is empty La sélection est vide - + No object selected Aucun objet sélectionné @@ -3782,12 +3867,12 @@ Aucune face dans la sélection. - + TechDraw Thread Hole Side Dessin latérale du trou taraudé - + Please select two straight lines Veuillez sélectionner deux lignes droites @@ -3899,16 +3984,19 @@ it has a weld symbol that would become broken. elle a un symbole de soudure qui serait cassé. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Vous ne pouvez pas supprimer cette vue car elle possède une ou plusieurs vues dépendantes qui deviendraient orphelines. + + + - + @@ -3921,25 +4009,22 @@ it has a weld symbol that would become broken. Vous ne pouvez pas supprimer la vue d'ancrage d'un groupe de projection. - You cannot delete this view because it has a section view that would become broken. Vous ne pouvez pas supprimer cette vue car elle comporte une vue en coupe qui sera cassée. - You cannot delete this view because it has a detail view that would become broken. Vous ne pouvez pas supprimer cette vue car elle comporte une vue détaillée qui sera cassée. - You cannot delete this view because it has a leader line that would become broken. Vous ne pouvez pas supprimer cette vue car elle comporte une ligne de référence qui sera cassée. - + The page is not empty, therefore the following referencing objects might be lost: La page n'est pas vide, donc les @@ -4228,7 +4313,7 @@ Ce répertoire sera utilisé pour la sélection des symboles. Page Chooser - Sélecteur de page + Sélecteur de pages @@ -4320,7 +4405,7 @@ can be a performance penalty in complex models. Show Loose 2D Geom - Inclure des objets 2D + Montrer les objets 2D isolés @@ -4879,14 +4964,6 @@ Si cette case n'est pas cochée, FreeCAD utilisera l'algorithme d'origine de rec Color of vertices in views Couleur des sommets dans les vues - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Si cette option est cochée, FreeCAD utilisera une seule couleur pour tout le texte et toutes les lignes. -Si la case n'est pas cochée, FreeCAD essaiera d'utiliser des versions plus claires des couleurs préférées. - Detail Highlight @@ -4905,7 +4982,7 @@ Si la case n'est pas cochée, FreeCAD essaiera d'utiliser des versions plus clai Grid Color - Couleur de la grille + Couleur des grilles @@ -4927,6 +5004,13 @@ Si la case n'est pas cochée, FreeCAD essaiera d'utiliser des versions plus clai Face color (if not transparent) Couleur de la face (si non transparente) + + + If checked FreeCAD will use a single color for all text and lines. + + + Si coché, FreeCAD utilisera une seule couleur pour tous les textes et toutes les lignes. + Monochrome @@ -4944,7 +5028,7 @@ Si la case n'est pas cochée, FreeCAD essaiera d'utiliser des versions plus clai Dimensions - Dimensions + Cotes @@ -4994,7 +5078,7 @@ Si la case n'est pas cochée, FreeCAD essaiera d'utiliser des versions plus clai Line Spacing - ISO - Interligne - ISO + Espacement des lignes - ISO @@ -5601,79 +5685,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Activer/désactiver la &mise à jour - + Toggle &Frames Activer/désactiver les &cadres - + &Export SVG &Exporter SVG - + Export DXF Exporter en DXF - + Export PDF Exporter vers PDF - + Print All Pages Imprimer toutes les pages - + Different orientation Orientation différente - + The printer uses a different orientation than the drawing. Do you want to continue? L'imprimante utilise une autre orientation que le dessin. Voulez-vous continuer ? - + Different paper size Format de papier différent - + The printer uses a different paper size than the drawing. Do you want to continue? L'imprimante utilise un format de papier différent que le dessin. Voulez-vous continuer ? - + Opening file failed L'ouverture du fichier a échoué - + Can not open file %1 for writing. Impossible d’ouvrir le fichier %1 en écriture. - + Save DXF file Enregistrer le fichier Dxf - + DXF (*.dxf) Dxf (*.dxf) - + Selected: Sélectionné: @@ -5970,7 +6054,7 @@ Do you want to continue? Weight - Poids + Épaisseur @@ -6174,7 +6258,7 @@ Do you want to continue? Point Picker - Sélectionneur de Point + Sélectionneur de points @@ -6200,7 +6284,7 @@ Do you want to continue? Pick Points - Choisir des Points + Choisir des points @@ -6884,7 +6968,7 @@ de la tolérance sera utilisé à la place de la valeur de la tolérance Use override angles if checked. Use default angles if unchecked. Utilise les angles définis par l'utilisateur si la case est cochée. -Utilise des angles standard si cette case n'est pas cochée. +Utilise des angles standards si cette case n'est pas cochée. @@ -6949,7 +7033,7 @@ Utilise des angles standard si cette case n'est pas cochée. Restore Invisible Lines - Restaurer les lignes cachées + Restaurer les lignes invisibles @@ -7128,7 +7212,7 @@ Vous pouvez sélectionner d'autres points pour obtenir des segments de ligne. Pick Points - Choisir des Points + Choisir des points @@ -7203,7 +7287,7 @@ Vous pouvez sélectionner d'autres points pour obtenir des segments de ligne. Pick points - Choisir les points + Choisir des points @@ -7261,7 +7345,7 @@ Vous pouvez sélectionner d'autres points pour obtenir des segments de ligne. Line Decoration - Esthétique de ligne + Apparence des lignes @@ -7311,7 +7395,7 @@ Vous pouvez sélectionner d'autres points pour obtenir des segments de ligne. Weight - Poids + Épaisseur @@ -7661,12 +7745,12 @@ en utilisant l'espacement X/Y donné Restore Invisible Lines - Restaurer les lignes cachées + Restaurer les lignes invisibles All - Tous + Tout @@ -8432,12 +8516,12 @@ Peut être lent pour les modèles complexes. TechDraw Stacking - Empaquetage TechDraw + Empilage TechDraw TechDraw Views - Vues TechDraw + Vues de TechDraw @@ -8701,14 +8785,14 @@ Peut être lent pour les modèles complexes. Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Ajouter une tolérance de trou ou d'arbre à une cote -- Sélectionner une cote de longueur ou une cote de diamètre -- Cliquer sur le bouton de l'outil, un panneau s'ouvre -- Sélectionner la tolérance d'arbre/tolérance de trou -- Sélectionner la tolérance ISO 286 désirée à l'aide de la boîte combinée + Ajouter une tolérance de trou ou d'arbre à une cote<br> + - sélectionner une cote de longueur ou une cote de diamètre<br> + - cliquer sur le bouton de l'outil, un panneau ouvre<br> + - sélectionner la tolérance d'arbre/tolérance de trou<br> + - sélectionner la tolérance ISO 286 désirée à l'aide de la boîte combinée diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_gl.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_gl.ts index 791e61e71f..05a6a39ea4 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_gl.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_gl.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Insert Arch Workbench Object - + Insert a View of a Section Plane from Arch Workbench Insert a View of a Section Plane from Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Ficheiro - + Export Page as DXF Exportar páxinas coma DXF - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Ficheiro - + Export Page as SVG Exporta páxina como SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Template (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Proxectar forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Insert Spreadsheet View - + Insert View to a spreadsheet Insert View to a spreadsheet @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Save page to dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Add Cosmetic Vertex + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Escolma errada @@ -2765,37 +2850,37 @@ Escolma canda menos un obxecto. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Escolme só un obxecto Folla de cálculo. - + No Drawing View Sen Vista do Debuxo - + Open Drawing View before attempting export to SVG. Abre Vista de Debuxo antes de tentar exportar a SVG. - + Can not export selection Can not export selection - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Tódolos ficheiros (*.*) - + Export Page As PDF Exporta Páxina Como PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exporta páxina como SVG - + Are you sure you want to continue? Are you sure you want to continue? - + Show drawing Amosar debuxo - + Toggle KeepUpdated Activar KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de texto enriquecido @@ -3400,7 +3485,7 @@ Create Center Line - + Edit Center Line Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,81 +5537,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Alternar &Desactivar Actualizacións - + Toggle &Frames Alternar &Estruturas - + &Export SVG &Exporta SVG - + Export DXF Exportar DXF - + Export PDF Exportar en PDF - + Print All Pages Print All Pages - + Different orientation Orientación diferente - + The printer uses a different orientation than the drawing. Do you want to continue? A impresora usa unha orientación de papel diferente da do debuxo. Quere seguir? - + Different paper size Tamaño de papel diferente - + The printer uses a different paper size than the drawing. Do you want to continue? A impresora usa un tamaño de papel diferente do do debuxo. Quere seguir? - + Opening file failed Falla ó abrir o ficheiro - + Can not open file %1 for writing. Non se pode abrir o ficheiro %1 para escribir. - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) - + Selected: Escolmado: @@ -8552,12 +8637,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hr.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hr.ts index 82024a24f5..4af355c009 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hr.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hr.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Tehničko Crtanje - + Insert Arch Workbench Object Umetni objekt Radnog stola Luk - + Insert a View of a Section Plane from Arch Workbench Umetni Pogled na Presjek ravni Radnog stola Arhitekt @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Datoteka - + Export Page as DXF Izvezi stranicu kao DXF - + Save DXF file Spremi DXF Datoteku - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Datoteka - + Export Page as SVG Izvezi stranicu kao SVG @@ -1515,7 +1515,7 @@ Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) - Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) + Slikovne datoteke (*.jpg *.jpeg *.png *.bmp);;All files (*) @@ -1615,8 +1615,8 @@ - Template (*.svg *.dxf) - Predložak (*.svg *.dxf) + Template (*.svg) + Predložak (*.svg) @@ -1635,12 +1635,12 @@ CmdTechDrawProjectShape - + TechDraw Tehničko Crtanje - + Project shape... Projecirani oblik ... @@ -1767,17 +1767,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Tehničko Crtanje - + Insert Spreadsheet View Umetanje tablice pregleda - + Insert View to a spreadsheet Umetni Pogled u proračunsku tablicu @@ -2015,23 +2015,23 @@ Stvori simbol - + Create DraftView Stvori Pogled u Nacrtu - + Create ArchView Stvori Pogled u Arhitektura - + Create spreadsheet view Stvori pogled pregleda - - + + Save page to dxf Spremi stranicu u dxf formatu @@ -2102,7 +2102,7 @@ Stvori aktivni Pogled - + Create CenterLine Stvori središnju Liniju @@ -2177,11 +2177,21 @@ Add Cosmetic Vertex Dodaj pomoćnu tjemenu točku + + + TechDraw Insert Prefix + TehnCrtanje umetni prefiks + Insert Prefix Umetni prefiks + + + TechDraw Remove Prefix + TehnCrtanje ukloni prefiks + Remove Prefix @@ -2271,76 +2281,151 @@ Create Arc Length Dim Stvori dimenziju dužine luka + + + TechDraw Hole Circle + TehnCrtanje Kkrug provrta + Bolt Circle Centerlines Središnje linije kruga vijka + + + TechDraw Circle Centerlines + TehnCrtanje Linije središta kruga + Circle Centerlines Središnje linije kruga + + + TechDraw Thread Hole Side + Tehničko Crtanje Navoj pogled sa strane + Cosmetic Thread Hole Side Pogled sa strane unutrašnjeg navoja vijka + + + TechDraw Thread Bolt Side + TehnCrtanje Vanjski navoj pogled sa strane + Cosmetic Thread Bolt Side Pogled sa strane unutrašnjeg navoja vijka + + + TechDraw Thread Hole Bottom + TehnCrtanje Unutarnji navoj u aksijalnoj projekciji + Cosmetic Thread Hole Bottom Pogled nadno Dekoracijskog navoja vijka + + + TechDraw Thread Bolt Bottom + TehnCrtanje Vanjski navoj u aksijalnoj projekciji + Cosmetic Thread Bolt Bottom - Cosmetic Thread Bolt Bottom + Vijak s navojem za prikaz + + + + TechDraw Change Line Attributes + TehnCrtanje Promijeni svojstva linije Change Line Attributes Promijeni atribute linije + + + TechDraw Cosmetic Intersection Vertex(es) + TehnCrtanje Dekoracijsko pomoćno sjecište(a) + Cosmetic Intersection Vertex(es) - Cosmetic Intersection Vertex(es) + Dekoracijsko pomoćno sjecište(a) + + + + TechDraw Cosmetic Arc + TehnCrtanje Pomoćni luk Cosmetic Arc Dekorativni luk + + + TechDraw Cosmetic Circle + TehnCrtanje Pomoćni krug + Cosmetic Circle Dekorativni krug + + + TechDraw Cosmetic Circle 3 Points + TehnCrtanje Pomoćni krug iz 3 točke + Cosmetic Circle 3 Points Dekorativni krug iz 3 točke + + + TechDraw Cosmetic Line Parallel/Perpendicular + TehnCrtanje Pomoćna linija paralelna/okomita + Cosmetic Line Parallel/Perpendicular - Cosmetic Line Parallel/Perpendicular + Pomoćna linija paralelna/okomita + + + + TechDraw Lock/Unlock View + TehnCrtanje Pogled zaklučaj/otključaj Lock/Unlock View Zaključaj/otključaj pogled + + + TechDraw Extend/Shorten Line + TehnCrtanje Liniju produži/skrati + Extend/Shorten Line Produži/Skrati liniju + + + TechDraw calculate selected area + TehnCrtanje Izračunaj površinu izabranog područja + Calculate Face Area @@ -2367,22 +2452,22 @@ View Direction as Angle - View Direction as Angle + Smjer pogleda na presjek The view direction angle relative to +X in the BaseView. - The view direction angle relative to +X in the BaseView. + Pravac smjera pogleda u odnosu na +X Os u osnovnom prikazu. Advance the view direction in clockwise direction. - Advance the view direction in clockwise direction. + Pomjeri smjera pogleda u smjeru kazaljke na satu. Advance the view direction in anti-clockwise direction. - Advance the view direction in anti-clockwise direction. + Pomjeri smjera pogleda suprotno smjeru kazaljke na satu. @@ -2647,9 +2732,9 @@ - - - + + + Wrong selection Pogrešan odabir @@ -2668,17 +2753,17 @@ I do not know what base view to use. - I do not know what base view to use. + Ne znam koji osnovni pogled da koristim. No Base View, Shapes, Groups or Links in this selection - No Base View, Shapes, Groups or Links in this selection + U ovom odabiru nema Osnovnog pogleda, Oblika, Grupa ili Poveznica No profile object found in selection - No profile object found in selection + U ovom odabiru nema Objekta profila @@ -2785,37 +2870,37 @@ Odaberite barem jedan objekt. - + Please select only 1 Arch Section. Molimo odaberite samo 1 presjek Luka. - + No Arch Sections in selection. Nema presjeka Luka u odabiru. - + Select exactly one Spreadsheet object. Odaberite točno jedan objekt tablice. - + No Drawing View Nema pogleda crteža - + Open Drawing View before attempting export to SVG. Otvori prikaz prije izvoza u SVG. - + Can not export selection Odabir se ne može izvesti - + Page contains DrawViewArch which will not be exported. Continue? Stranica sadrži DrawViewArch koji se neće izvoziti. Nastaviti? @@ -2874,33 +2959,33 @@ Can not make 2d radius dimension from selection - Can not make 2d radius dimension from selection + Ne mogu napraviti 2D kotu Polumjera iz odabira Can not make 3d radius dimension from selection - Can not make 3d radius dimension from selection + Ne mogu napraviti 3D kotu Polumjera iz odabira BSpline Curve Error - BSpline Curve Error + Greška BSpline krivulje Selected edge is a BSpline and a radius can not be calculated. - Selected edge is a BSpline and a radius can not be calculated. + Odabrani rub je BSpline a polumjer se ne može izračunati. Can not make 2d diameter dimension from selection - Can not make 2d diameter dimension from selection + Ne mogu napraviti kotu 2D Promjera iz odabira Can not make 3d diameter dimension from selection - Can not make 3d diameter dimension from selection + Ne mogu napraviti kotu 3D Promjera iz odabira @@ -2915,22 +3000,22 @@ Selected edge is a BSpline and a diameter can not be calculated. - Selected edge is a BSpline and a diameter can not be calculated. + Odabrani rub je BSpline a promjer se ne može izračunati. Can not make 2d linear dimension from selection - Can not make 2d linear dimension from selection + Ne mogu napraviti kotu 2D rastojanja iz odabira Can not make 3d linear dimension from selection - Can not make 3d linear dimension from selection + Ne mogu napraviti kotu 3D rastojanja iz odabira Can not make 2d horizontal dimension from selection - Can not make 2d horizontal dimension from selection + Ne mogu napraviti kotu vodoravnog 2D rastojanja iz odabira @@ -3307,50 +3392,50 @@ U dokumentu nema Stranica za crtanje. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Sve datoteke (*.*) - + Export Page As PDF Izvoz Stranice u PDF - + Document Name: Naziv dokumenta: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Izvoz Stranice u SVG - + Are you sure you want to continue? Jeste li sigurni da želite nastaviti? - + Show drawing Prikaži crtež - + Toggle KeepUpdated Uključivanje/isključivanje KeepUpdated @@ -3377,7 +3462,7 @@ - + Rich text editor Rich-Text uređivač @@ -3422,7 +3507,7 @@ Stvori Srednju liniju - + Edit Center Line Uređivanje simetrale @@ -3439,12 +3524,12 @@ New Complex Section - New Complex Section + Novi složeni presjek Edit Complex Section - Edit Complex Section + Uredi složeni presjek @@ -3456,7 +3541,7 @@ The view direction in BaseView coordinates - The view direction in BaseView coordinates + Smjer pogleda u koordinatama baznog pogleda @@ -3503,25 +3588,25 @@ TechDraw Increase/Decrease Decimal - TechDraw Increase/Decrease Decimal + TehnCrtanje Povećaj/Smanji decimalu TechDraw PosHorizChainDimension - TechDraw PosHorizChainDimension + TehnCrtanje Rasporedi vodoravno skup kota No horizontal dimensions selected - No horizontal dimensions selected + Nema odabranih vodoravnih dimenzija TechDraw PosVertChainDimension - TechDraw PosVertChainDimension + TehnCrtanje Rasporedi uspravni skup kota @@ -3533,7 +3618,7 @@ TechDraw PosObliqueChainDimension - TechDraw PosObliqueChainDimension + TehnCrtanje Rasporedi kosi skup kota @@ -3545,124 +3630,126 @@ TechDraw CascadeHorizDimension - TechDraw CascadeHorizDimension + TehnCrtanje Poredaj vodoravne kote TechDraw CascadeVertDimension - TechDraw CascadeVertDimension + TehnCrtanje Poredaj uspravne kote TechDraw CascadeObliqueDimension - TechDraw CascadeObliqueDimension + TehnCrtanje Poredaj kose kote TechDraw Create Horizontal Chain Dimension - TechDraw Create Horizontal Chain Dimension + TehnCrtanje Stvori vodoravne redne kote TechDraw Create Vertical Chain Dimension - TechDraw Create Vertical Chain Dimension + TehnCrtanje Stvori uspravne redne kote TechDraw Create Oblique Chain Dimension - TechDraw Create Oblique Chain Dimension + TehnCrtanje Stvori kose redne kote TechDraw Create Horizontal Coord Dimension - TechDraw Create Horizontal Coord Dimension + TehnCrtanje Stvori vodoravne koordinatne kote TechDraw Create Vertical Coord Dimension - TechDraw Create Vertical Coord Dimension + TehnCrtanje Stvori uspravne koordinatne kote TechDraw Create Oblique Coord Dimension - TechDraw Create Oblique Coord Dimension + TehnCrtanje Stvori kose koordinatne kote TechDraw Create Horizontal Chamfer Dimension - TechDraw Create Horizontal Chamfer Dimension + TehnCrtanje Stvori vodoravnu kotu žljeba TechDraw Create Vertical Chamfer Dimension - TechDraw Create Vertical Chamfer Dimension + TehnCrtanje Stvori uspravnu kotu žljeba TechDraw Create Arc Length Dimension - TechDraw Create Arc Length Dimension + TehnCrtanje Stvori kotu dužine luka TechDraw Customize Format - TechDraw Customize Format + TehnCrtanje Prilagodi format + + No subelements selected - No subelements selected + Nema izabranih podelemenata - + Selection is empty Odabir je prazan - + No object selected Nema odabranog objekta TechDraw Hole Circle - TechDraw Hole Circle + TehnCrtanje Kkrug provrta Fewer than three circles selected - Fewer than three circles selected + Izabrano manje nego tri kruga TechDraw Position Section View - TechDraw Position Section View + TehnCrtanje Pozicioniraj presjek No faces in selection. - No faces in selection. + Nema površine u odabiru. - + TechDraw Thread Hole Side Tehničko Crtanje Navoj pogled sa strane - + Please select two straight lines Molimo odaberite dvije ravne linije Select 2 Vertexes or 1 Edge - Select 2 Vertexes or 1 Edge + Odaberi 2 tjemene točke ili 1 rub @@ -3675,10 +3762,10 @@ thin: %2 graphic: %3 thick: %4 - %1 defines these line widths: - thin: %2 - graphic: %3 - thick: %4 + %1 definiraj širinu ovih linija: + tanka: %2 + grafika: %3 + debela: %4 @@ -3713,7 +3800,7 @@ Lay symbol - Lay symbol + Postavi simbol @@ -3769,16 +3856,19 @@ ima simbol spajanja koji bi se pokidao. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Ne možete izbrisati ovaj pogled jer ima jedan ili više ovisnih prikaza koji bi se slomili. + + + - + @@ -3791,27 +3881,24 @@ ima simbol spajanja koji bi se pokidao. Ne možete izbrisati sidreni prikaz projicirane grupe. - You cannot delete this view because it has a section view that would become broken. Ne možete izbrisati ovaj pogled jer ima prikaz presjeka koji bi se slomio. - You cannot delete this view because it has a detail view that would become broken. Ne možete izbrisati ovaj pogled jer ima detaljan prikaz koji bi se slomio. - You cannot delete this view because it has a leader line that would become broken. Ne možete izbrisati ovaj prikaz jer on sadrži liniju oznake koja bi postala neupotrebljiva. - + The page is not empty, therefore the following referencing objects might be lost: Stranica nije prazna, stoga @@ -3862,7 +3949,7 @@ ima pločicu spajanja koja bi se pokidala. If Crop Image is checked, crop captured image to this width. - If Crop Image is checked, crop captured image to this width. + Ako je označeno izreži sliku, izrežite snimljenu sliku na ovu širinu. @@ -3882,7 +3969,7 @@ ima pločicu spajanja koja bi se pokidala. If Crop Image is checked, crop captured image to this height. - If Crop Image is checked, crop captured image to this height. + Ako je označeno izreži sliku, izrežite snimljenu sliku na ovu visinu. @@ -3947,7 +4034,7 @@ ima pločicu spajanja koja bi se pokidala. updates pending - updates pending + ažuriranja na čekanju @@ -3969,15 +4056,15 @@ ima pločicu spajanja koja bi se pokidala. Text above arrow side symbol Angle, surface finish, root - Text above arrow side symbol -Angle, surface finish, root + Tekst iznad strelice simbola stranice +Kut, Završna obrada, Korijen Text before arrow side symbol Preparation depth, (weld size) - Text before arrow side symbol -Preparation depth, (weld size) + Tekst ispred strelice simbola stranice +Dubina pripreme, (veličina vara) @@ -3996,15 +4083,15 @@ Preparation depth, (weld size) Text after arrow side symbol Number of welds × length, (gap) - Text after arrow side symbol -Number of welds × length, (gap) + Tekst nakon strelice simbola stranice +Broj varova x dužina, (razmak) Text before other side symbol Preparation depth, (weld size) - Text before other side symbol -Preparation depth, (weld size) + Tekst ispred drugog simbola stranice +Dubina pripreme, (veličina vara) @@ -4015,8 +4102,8 @@ Preparation depth, (weld size) Text after other side symbol Number of welds × length, (gap) - Text after other side symbol -Number of welds × length, (gap) + Tekst nakon drugog simbola stranice +Broj varova x dužina, (razmak) @@ -4032,8 +4119,8 @@ Number of welds × length, (gap) Text below arrow side symbol Angle, surface finish, root - Text below arrow side symbol -Angle, surface finish, root + Tekst ispod strelice simbola stranice +Kut, Završna obrada, Korijen @@ -4098,8 +4185,8 @@ na prijelom u liniji oznake Directory path for welding symbols. This directory will be used for the symbol selection. - Directory path for welding symbols. -This directory will be used for the symbol selection. + Imenik za simbole spajanja. +Taj će se direktorij koristiti za odabir simbola. @@ -4117,12 +4204,12 @@ This directory will be used for the symbol selection. FreeCAD could not determine which Page to use. Please select a Page. - FreeCAD could not determine which Page to use. Please select a Page. + FreeCAD nije mogao odrediti koju stranicu koristiti. Molimo odaberite stranicu. Select a Page that should be used - Select a Page that should be used + Odaberite stranicu koja će se koristiti @@ -4240,12 +4327,12 @@ Svaka jedinica iznosi ca. 0,1 mm širine If checked, system will attempt to automatically correct dimension references when the model changes. - If checked, system will attempt to automatically correct dimension references when the model changes. + Ako je označeno, sustav će pokušati automatski ispraviti referencije dimenzija kada se model promijeni. Auto Correct Dimension Refs - Auto Correct Dimension Refs + Automatski ispravi reference kota @@ -4279,12 +4366,12 @@ Promijenite se samo ako znate što radite! Use New Face Finder Algorithm - Use New Face Finder Algorithm + Koristi algoritam pronalaska novih površina The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. - The number of times FreeCAD should try to remove overlapping edges returned by the Hidden Line Removal algorithm. A value of 0 indicates no scrubbing, 1 indicates a single pass and 2 indicates a second pass should be performed. Values above 2 are generally not productive. Each pass adds to the time required to produce the drawing. + Broj puta koliko FreeCAD treba pokušati ukloniti preklapajuće rubove koje je vratio algoritam za uklanjanje skrivenih linija. Vrijednost 0 označava da se ne vrši čišćenje, 1 označava jednu provjeru, a 2 označava da se treba izvršiti druga provjera. Vrijednosti iznad 2 obično nisu produktivne. Svaka provjera dodaje vrijeme potrebno za izradu crteža. @@ -4317,22 +4404,22 @@ kad se šrafira lice s PAT uzorkom Issue progress messages while building View geometry - Issue progress messages while building View geometry + Izdaj poruke o napretku pri kreiranju geometrije Pogleda. Report Progress - Report Progress + Izvještaj o napretku If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. - If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. + Ako je označeno, FreeCAD će koristiti novi algoritam za pronalaženje površina. Ako nije označeno, FreeCAD će koristiti originalni algoritam za pronalaženje površina. Overlap Edges Scrub Passes - Overlap Edges Scrub Passes + Broj prolaza za grubu obradu preklapajućih rubova @@ -4619,12 +4706,12 @@ kad se šrafira lice s PAT uzorkom Show or hide marks at direction changes on ComplexSection lines. - Show or hide marks at direction changes on ComplexSection lines. + Prikaži ili sakrij oznake kod promjene smjera linija složenog presjeka. Complex Section Line Marks - Complex Section Line Marks + Označene linije složenog presjeka @@ -4748,7 +4835,7 @@ kad se šrafira lice s PAT uzorkom Monochrome text color - Monochrome text color + Jednobojna boja teksta @@ -4763,7 +4850,7 @@ kad se šrafira lice s PAT uzorkom Use a light color for dark text and dark color for light text. - Use a light color for dark text and dark color for light text. + Koristi svijetle boje za tamni tekst i tamne boje za svijetli tekst. @@ -4780,15 +4867,6 @@ kad se šrafira lice s PAT uzorkom Color of vertices in views Boja vrhova u pogledima - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4812,7 +4890,7 @@ kad se šrafira lice s PAT uzorkom Check this to use light text and lines on dark backgrounds. Set Page Color to a dark color. Transparent or light color faces are recommended with this option. - Check this to use light text and lines on dark backgrounds. Set Page Color to a dark color. Transparent or light color faces are recommended with this option. + Označite ovo za korištenje svijetlog teksta i linija na tamnoj pozadini. Postavite boju stranice na tamnu boju. Preporučuje se korištenje transparentnih ili svijetlih boja s ovom opcijom. @@ -4829,6 +4907,13 @@ kad se šrafira lice s PAT uzorkom Face color (if not transparent) Boja lica (ako nije prozirno) + + + If checked FreeCAD will use a single color for all text and lines. + + + Ako je označeno FreeCAD će koristiti istu boju za tekst i linije. + Monochrome @@ -4891,12 +4976,12 @@ kad se šrafira lice s PAT uzorkom Controls the size of spacing between dimension line and dimension text for ISO dimensions. - Controls the size of spacing between dimension line and dimension text for ISO dimensions. + Kontrolira veličinu razmaka između kotne linije i kotnog broja za ISO dimenzije. Line Spacing - ISO - Line Spacing - ISO + Razmak između redova - ISO @@ -4928,12 +5013,12 @@ kad se šrafira lice s PAT uzorkom Controls the size of gap between dimension point and start of extension line for ISO dimensions. - Controls the size of gap between dimension point and start of extension line for ISO dimensions. + Kontrolira veličinu razmaka između kotne točke i početka pomoćne kotne linije za ISO dimenzije. Extension Gap Factor - ISO - Extension Gap Factor - ISO + Faktor razmaka kod produženja - ISO @@ -4992,40 +5077,40 @@ Množitelj 'veličina pisma' Leave blank for automatic dimension format. Use %f, %g or %w specifiers to override. - Leave blank for automatic dimension format. Use %f, %g or %w specifiers to override. + Ostavite prazno za automatski format kota. Koristite specifikatore %f, %g ili %w za zamjenu. Controls the size of gap between dimension point and start of extension line for ASME dimensions. - Controls the size of gap between dimension point and start of extension line for ASME dimensions. + Kontrolira veličinu razmaka između kotne točke i početka pomoćne kotne linije za ASME dimenzije. Extension Gap Factor - ASME - Extension Gap Factor - ASME + Faktor razmaka kod produženja - ASME Controls the size of gap between dimension point and start of extension line for ISO dimensions. Value * linewidth is the gap. Normally, no gap is used. If using a gap, the recommended value 8. - Controls the size of gap between dimension point and start of extension line for ISO dimensions. -Value * linewidth is the gap. -Normally, no gap is used. If using a gap, the recommended value 8. + Kontrolira veličinu razmaka između točke dimenzije i početka pomoćne kotne linije za ISO dimenzije. +Vrijednost * širina linije je razmak. +Obično se ne koristi razmak. Ako se koristi razmak, preporučena vrijednost je 8. Controls the size of gap between dimension point and start of extension line for ASME dimensions. Value * linewidth is the gap. Normally, no gap is used. If a gap is used, the recommended value is 6. - Controls the size of gap between dimension point and start of extension line for ASME dimensions. Value * linewidth is the gap. -Normally, no gap is used. If a gap is used, the recommended value is 6. + Kontrolira veličinu razmaka između točke dimenzije i početka pomoćne kotne linije za ASME dimenzije.Vrijednost * širina linije je razmak. +Obično se ne koristi razmak. Ako se koristi razmak, preporučena vrijednost je 6. Controls the size of spacing between dimension line and dimension text. Value * linewidth is the line spacing. - Controls the size of spacing between dimension line and dimension text. - Value * linewidth is the line spacing. + Kontrolira veličinu razmaka između kotne linije i kotnog broja. +Vrijednost * širina linije je razmak. @@ -5271,7 +5356,7 @@ za Grupe Prikaza Set ShowGrid property to true on new Pages. - Set ShowGrid property to true on new Pages. + Postavi svojstvo na točno za "Prikaži mrežu" na novim stranicama. @@ -5286,7 +5371,7 @@ za Grupe Prikaza Distance between Page grid lines. - Distance between Page grid lines. + Udaljenost između raster linija stranice @@ -5535,79 +5620,79 @@ Brzo, ali rezultat je zbirka kratkih ravnih linija. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Uključivanje/isključivanje & Držati Obnovljeno - + Toggle &Frames Uključivanje/isključivanje & Okviri - + &Export SVG &izvoz SVG - + Export DXF Izvoz DFX - + Export PDF Izvoz PDF - + Print All Pages Ispis svih stranica - + Different orientation Drugačija orijentacija - + The printer uses a different orientation than the drawing. Do you want to continue? Pisač koristi drugu orijentaciju ispisa nego što je u crtežu. Želite li nastaviti? - + Different paper size Drugačija veličina papira - + The printer uses a different paper size than the drawing. Do you want to continue? Pisač koristi drugu veličinu papra nego što je u crtežu. Želite li nastaviti? - + Opening file failed Otvaranje dokumenta nije uspjelo - + Can not open file %1 for writing. Ne mogu otvoriti dokument %1 za ispis. - + Save DXF file Spremi DXF Datoteku - + DXF (*.dxf) DXF (*.dxf) - + Selected: Odabrane: @@ -6048,22 +6133,22 @@ Do you want to continue? Preset view direction looking up. - Preset view direction looking up. + Unaprijed postavljen pogled na gore Preset view direction looking down. - Preset view direction looking down. + Unaprijed postavljen pogled na dolje Preset view direction looking left. - Preset view direction looking left. + Unaprijed postavljen pogled na lijevo Preset view direction looking right. - Preset view direction looking right. + Unaprijed postavljen pogled na desno @@ -6073,7 +6158,7 @@ Do you want to continue? Check to update display after every property change. - Check to update display after every property change. + Označite za ažuriranje prikaza nakon svake promjene svojstva. @@ -6083,7 +6168,7 @@ Do you want to continue? Rebuild display now. May be slow for complex models. - Rebuild display now. May be slow for complex models. + Obnovi prikaz sada. Može biti sporo za složene modele. @@ -6216,7 +6301,7 @@ Do you want to continue? GD&T - GD&T + GD&T (geometrijska dimenzija i tolerancija) @@ -6316,57 +6401,57 @@ Do you want to continue? Least square geometry element - Least square geometry element + Najmanji kvadratni geometrijski element Least material condition (LMC) - Least material condition (LMC) + Minimalno stanje materijala (MMC) Maximum material condition (MMC) - Maximum material condition (MMC) + Maksimalno stanje materijala (MMC) least inscribed geometry element - least inscribed geometry element + najmanji upisani geometrijski element Projected tolerance zone - Projected tolerance zone + Projicirano područje tolerancije Reciprocity condition - Reciprocity condition + Recipročan uvjet Regardless of feature size (RFS) - Regardless of feature size (RFS) + Nezavisno od svojstva veličine(FRS) Tangent plane - Tangent plane + Tangencijalna ravnina Unequal Bilateral - Unequal Bilateral + Nejednaka dvostranost most inscribed geometry element - most inscribed geometry element + NajvećI upisani geometrijski element Radius & Diameter - Radius & Diameter + Polumjer & Promjer @@ -6416,7 +6501,7 @@ Do you want to continue? (Arc) Tertie - (Arc) Tertie + (luk) Tertie @@ -6669,7 +6754,7 @@ Prilagođeno: koristi se prilagođeni faktor razmjera Assign same value to over and under tolerance - Assign same value to over and under tolerance + Dodjeli istu vrijednost za gornje i donje odstupanje @@ -6681,9 +6766,9 @@ Prilagođeno: koristi se prilagođeni faktor razmjera Overtolerance value If 'Equal Tolerance' is checked this is also the negated value for 'Under Tolerance'. - Overtolerance value -If 'Equal Tolerance' is checked this is also -the negated value for 'Under Tolerance'. + Gornja vrijednost tolerancije +Ako je označena 'Simetrična tolerancija', onda je negirana +vrijednost također vrijednost za 'Donju toleranciju'. @@ -6695,9 +6780,9 @@ the negated value for 'Under Tolerance'. Undertolerance value If 'Equal Tolerance' is checked it will be replaced by negative value of 'Over Tolerance'. - Undertolerance value -If 'Equal Tolerance' is checked it will be replaced -by negative value of 'Over Tolerance'. + Donja vrijednost tolerancije +Ako je označena 'Simetrična tolerancija', bit će zamijenjeno +negativnom vrijednosti 'Gornje tolerancije'. @@ -6718,8 +6803,9 @@ by negative value of 'Over Tolerance'. If checked the content of 'Format Spec' will be used instead of the dimension value - If checked the content of 'Format Spec' will -be used instead of the dimension value + Ako je označeno, sadržaj 'Format Spec' +će se koristiti umjesto vrijednosti kotnog broja. + @@ -6751,7 +6837,7 @@ be used instead of the dimension value <html><head/><body><p>If checked the content of tolerance format spec will</p><p>be used instead of the tolerance value</p></body></html> - <html><head/><body><p>If checked the content of tolerance format spec will</p><p>be used instead of the tolerance value</p></body></html> + <html><head/><body><p>Ako je označeno, sadržaj tolerancijskog formata specifikacije</p><p>će se koristiti umjesto vrijednosti tolerancije.</p></body></html> @@ -6826,12 +6912,12 @@ be used instead of the dimension value Use override angles if checked. Use default angles if unchecked. - Use override angles if checked. Use default angles if unchecked. + Koristi izmjenjene kutove ako je označeno. Koristite zadane kutove ako nije označeno. Override angles - Override angles + Prepiši kuteve @@ -6841,12 +6927,12 @@ be used instead of the dimension value Angle of dimension line with drawing X axis (degrees) - Angle of dimension line with drawing X axis (degrees) + Kut između kotne linije i X osi crteža (stupnjeva) Set dimension line angle to default (ortho view). - Set dimension line angle to default (ortho view). + Postavi ugao kotne linije na zadani (ortogonalni pogled). @@ -6857,7 +6943,7 @@ be used instead of the dimension value Set dimension line angle to match selected edge or vertices. - Set dimension line angle to match selected edge or vertices. + Postavi ugao kotne linije na podudarne odabrane rubove ili vrhove @@ -6873,17 +6959,17 @@ be used instead of the dimension value Angle of extension lines with drawing X axis (degrees) - Angle of extension lines with drawing X axis (degrees) + Kut između pomoćne kotne linije i X osi crteža (stupnjeva) Set extension line angle to default (ortho). - Set extension line angle to default (ortho). + Postavi ugao pomoćne linije na zadani (ortogonalni). Set extension line angle to match selected edge or vertices. - Set extension line angle to match selected edge or vertices. + Postavi ugao pomoćne linije na podudarne odabrane rubove ili vrhove @@ -7791,22 +7877,22 @@ koristeći zadani X/Y razmak Preset view direction looking up. - Preset view direction looking up. + Unaprijed postavljen pogled na gore Preset view direction looking down. - Preset view direction looking down. + Unaprijed postavljen pogled na dolje Preset view direction looking left. - Preset view direction looking left. + Unaprijed postavljen pogled na lijevo Preset view direction looking right. - Preset view direction looking right. + Unaprijed postavljen pogled na desno @@ -7816,7 +7902,7 @@ koristeći zadani X/Y razmak <html><head/><body><p>Rebuild display now. May be slow for complex models.</p></body></html> - <html><head/><body><p>Rebuild display now. May be slow for complex models.</p></body></html> + <html><head/><body><p>Obnovi prikaz sada. Može biti sporo za složene modele.</p></body></html> @@ -7826,7 +7912,7 @@ koristeći zadani X/Y razmak Check to update display after every property change. - Check to update display after every property change. + Označite za ažuriranje prikaza nakon svake promjene svojstva. @@ -7885,7 +7971,7 @@ koristeći zadani X/Y razmak Set line style to solid - Set line style to solid + Postavi stil linije na puna @@ -7999,52 +8085,52 @@ koristeći zadani X/Y razmak Material removal prohibited, whole part - Material removal prohibited, whole part + Obrada sa uklanjanjem materijala zabranjena, cijeli dio Any method allowed, whole part - Any method allowed, whole part + Bilo koja metoda dozvoljena, cijeli dio Material removal required, whole part - Material removal required, whole part + Potrebna obrada sa uklanjanjem materijala, cijeli dio Material removal required - Material removal required + Potrebno uklanjanje marerijala Material removal prohibited - Material removal prohibited + Uklanjanje materijala zabranjeno Any method allowed - Any method allowed + Bilo koja metoda dopuštena Rotation angle - Rotation angle + Kut rotacije Use ISO standard - Use ISO standard + Koristi ISO standard Use ASME standard - Use ASME standard + Koristi ASME standard Symbol angle: - Symbol angle: + Kut simbola: @@ -8059,17 +8145,17 @@ koristeći zadani X/Y razmak Hole /Shaft Fit ISO 286 - Hole /Shaft Fit ISO 286 + Uklapanje Rupa /Vratilo ISO 286 shaft fit - shaft fit + Uklapanje osovine hole fit - hole fit + Uklapanje rupe @@ -8126,7 +8212,7 @@ koristeći zadani X/Y razmak loose fit - loose fit + Labavo prijanjanje @@ -8336,7 +8422,7 @@ koristeći zadani X/Y razmak Stacking - Stacking + Slaganje @@ -8356,17 +8442,17 @@ koristeći zadani X/Y razmak TechDraw Attributes - TechDraw Attributes + TehnCrtanje Atributi TechDraw Centerlines - TechDraw Centerlines + TehnCrtanje Srednje linije TechDraw Extend Dimensions - TechDraw Extend Dimensions + TehnCrtanje Produži dimenzije @@ -8376,7 +8462,7 @@ koristeći zadani X/Y razmak TechDraw Stacking - TechDraw Stacking + TehnCrtanje Slaganje @@ -8564,7 +8650,7 @@ koristeći zadani X/Y razmak The subelements of the View that define the geometry for this Dimension - The subelements of the View that define the geometry for this Dimension + Podelementi pogleda koji određuju geometriju za ovu kotu @@ -8582,7 +8668,7 @@ koristeći zadani X/Y razmak <html><head/><body><p>Double click to edit a line. New lines are added at the current location in the list.</p></body></html> - <html><head/><body><p>Double click to edit a line. New lines are added at the current location in the list.</p></body></html> + <html><head/><body><p>Dvaput klikni da bi uredio liniju. Nove linije se dodaju na trenutnoj lokaciji u listi.</p></body></html> @@ -8630,11 +8716,11 @@ koristeći zadani X/Y razmak - select second edge to define the direction of the extension lines<br> - optional: select two more vertexes which define the measurement instead of the length<br> of the first selected edge - Create an axonometric length dimension<br> - - select first edge to define direction and length of the dimension line<br> - - select second edge to define the direction of the extension lines<br> - - optional: select two more vertexes which define the measurement instead of the length<br> - of the first selected edge + Napravi aksonometrijsku dužinsku kotu<br> + - izaberi prvi rub da bi odredio pravac i dužinu kotne linije<br> + - izaberi drugi rub da bi odredio pravac pomoćnih kotnih linija<br> + - neobavezno: izaberi još dvije tjemene točke koje će odrediti mjerilo umjesto dužine<br> + prvog izabranog ruba @@ -8642,40 +8728,40 @@ koristeći zadani X/Y razmak Add hole or shaft fit - Add hole or shaft fit + Dodaj uklopljivu Rupu ili Osovinu Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Add a hole or shaft fit to a dimension<br> - - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> - - select shaft fit / hole fit<br> - - select the desired ISO 286 fit field using the combo box + Dodaje dimenziju provrta ili osovine<br> + - odaberi jednu dimenziju dužine ili promjera<br> + - jedan klik otvaran ploču alata<br> + - odaberi promjer osovine / rupe fit<br> + - odaberi željeni ISO 286 promjer polja koristeći izbornik loose fit - loose fit + Labavo prijanjanje snug fit - snug fit + savršeno prijanjanje press fit - press fit + čvrsto prijanjanje Hole / Shaft Fit ISO 286 - Hole / Shaft Fit ISO 286 + Uklapanje Rupa / Vratilo ISO 286 @@ -8683,12 +8769,12 @@ koristeći zadani X/Y razmak Filled Arrow - Filled Arrow + Ispunjena strelica Open Arrow - Open Arrow + Otvoreni vrh strelice @@ -8703,17 +8789,17 @@ koristeći zadani X/Y razmak Open Circle - Open Circle + Kružić Fork - Fork + Obrnuta strelica Filled Triangle - Filled Triangle + Ispunjeni trokut @@ -8756,22 +8842,22 @@ koristeći zadani X/Y razmak FrontTopLeft - FrontTopLeft + NapredOdozgoLijevo FrontTopRight - FrontTopRight + NapredOdozgoDesno FrontBottomLeft - FrontBottomLeft + NapredDoljeLijevo FrontBottomRight - FrontBottomRight + NapredDoljeDesno @@ -8780,13 +8866,13 @@ koristeći zadani X/Y razmak You cannot delete this balloon now because there is an open task dialog. - You cannot delete this balloon now because -there is an open task dialog. + Ovaj balončić ne možete izbrisati sada +jer je otvoren dijalog zadataka. Can Not Delete - Can Not Delete + Ne može da se izbriše diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hu.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hu.ts index 781cb3cff3..c3c629d640 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hu.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_hu.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw MűszakiRajz - + Insert Arch Workbench Object Építészeti munkafelületi tárgy beszúrása - + Insert a View of a Section Plane from Arch Workbench Szakaszsík nézetének beszúrása az Építészeti munkafelületből @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fájl - + Export Page as DXF Oldal exportálása DXF-ként - + Save DXF file DXF-fájl mentése - + DXF (*.dxf) Dxf (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fájl - + Export Page as SVG Oldal exportálása SVG-ként @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Sablon (*.svg *.dxf) + Template (*.svg) + Sablon (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw MűszakiRajz - + Project shape... Terv formák... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw MűszakiRajz - + Insert Spreadsheet View Táblázat nézet beszúrása - + Insert View to a spreadsheet Nézet beszúrása táblázatba @@ -1999,23 +1999,23 @@ Rajzjel létrehozása - + Create DraftView Tervrajz nézet létrehozás - + Create ArchView Építészet nézet létrehozásaa - + Create spreadsheet view Számolótábla nézet létrehozása - - + + Save page to dxf Oldal mentése dxf-be @@ -2086,7 +2086,7 @@ Aktív nézet létrehozása - + Create CenterLine Középvonal létrehozása @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Segéd csúcspont hozzáadása + + + TechDraw Insert Prefix + Műszakirajz - Előtag beszúrás + Insert Prefix Előtag beszúrás + + + TechDraw Remove Prefix + Műszakirajz - Előtag eltávolítás + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Ívhosszúság méret létrehozása + + + TechDraw Hole Circle + Műszaki Rajz, Furat kör + Bolt Circle Centerlines Csavarkör középvonalak + + + TechDraw Circle Centerlines + Műszaki rajz - Kör középvonalak + Circle Centerlines Kör középvonalak + + + TechDraw Thread Hole Side + A menetes furat rajzoló oldala + Cosmetic Thread Hole Side Belső menet segédvonalak oldalnézetben + + + TechDraw Thread Bolt Side + Műszakirajz - Menetes csavar oldal + Cosmetic Thread Bolt Side Segédvonal csavarmenet oldalnézete + + + TechDraw Thread Hole Bottom + Műszakirajz - Menetes furat alja + Cosmetic Thread Hole Bottom Segédvonal belső menethez tengelynézetben + + + TechDraw Thread Bolt Bottom + Műszakirajz - Menetes csavar alja + Cosmetic Thread Bolt Bottom Külső menet segédvonal tengelynézetben + + + TechDraw Change Line Attributes + Műszakirajz - Vonal jellemzőinek megváltoztatása + Change Line Attributes Vonal jellemzőinek megváltoztatása + + + TechDraw Cosmetic Intersection Vertex(es) + Műszakirajz - Segéd csúcso(k) a metszéspontban + Cosmetic Intersection Vertex(es) Segéd metszésponti csúcs(ok) + + + TechDraw Cosmetic Arc + Műszakirajz - Segéd ív + Cosmetic Arc Segéd ív + + + TechDraw Cosmetic Circle + Műszakirajz - Segéd kör + Cosmetic Circle Segéd kör + + + TechDraw Cosmetic Circle 3 Points + Műszakirajz - Segéd kör 3 ponttal + Cosmetic Circle 3 Points Segédkört 3 ponttal + + + TechDraw Cosmetic Line Parallel/Perpendicular + Műszakirajz - Párhuzamos/függőleges segédvonal + Cosmetic Line Parallel/Perpendicular Párhuzamos/függőleges segédvonal + + + TechDraw Lock/Unlock View + Műszakirajz - Nézet zárolás/feloldás + Lock/Unlock View Nézet rögzítése/feloldása + + + TechDraw Extend/Shorten Line + Műszakirajz - Vonal nyújtás/rövidítés + Extend/Shorten Line Vonal hosszabbítás/rövidítés + + + TechDraw calculate selected area + Műszakirajz - Kiválasztott terület számolás + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Rossz kijelölés @@ -2765,37 +2850,37 @@ Jelöljön ki legalább egy objektumot. - + Please select only 1 Arch Section. Ha be van jelölve, akkor a dimenzióérték mellett az egység jelenik meg. - + No Arch Sections in selection. Nincsenek ívszekciók a kiválasztásban. - + Select exactly one Spreadsheet object. Jelöljön ki pontosan egy számolótábla tárgyat. - + No Drawing View Nincs rajz nézet - + Open Drawing View before attempting export to SVG. Nyissa meg a rajz nézetet az SVG exportálási kísérlet előtt. - + Can not export selection A kijelölés nem exportálható - + Page contains DrawViewArch which will not be exported. Continue? Az oldal rajz nézet ívet tartalmaz, amely nem lesz exportálva. Folytatja? @@ -3285,50 +3370,50 @@ A dokumentumban nincsenek rajzok. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Összes fájl (*.*) - + Export Page As PDF Oldal export PDF formában - + Document Name: Dokumentum neve: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Oldal export SVG formában - + Are you sure you want to continue? Biztosan folytatja? - + Show drawing Mutasd a rajzot - + Toggle KeepUpdated Frissen tartás kapcsolója @@ -3355,7 +3440,7 @@ - + Rich text editor Szöveg szerkesztő @@ -3400,7 +3485,7 @@ Középvonal létrehozása - + Edit Center Line Középvonal szerkesztése @@ -3596,14 +3681,14 @@ - + Selection is empty A kijelölési terület nem tartalmaz objektumokat - + No object selected Nincs kijelölt tárgy @@ -3628,12 +3713,12 @@ Nincsenek felületek a kijelölésben. - + TechDraw Thread Hole Side A menetes furat rajzoló oldala - + Please select two straight lines Válasszon két egyenest @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. olyan hegesztési szimbólummal rendelkezik, amely megtörne. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Nem törölheti ezt a nézetet, mert egy vagy több nézetnek függősége van, amely megszakadna. + + + - + @@ -3767,25 +3855,22 @@ olyan hegesztési szimbólummal rendelkezik, amely megtörne. A vetítési csoport 'Lehorgonyzott nézete' nem törölhető. - You cannot delete this view because it has a section view that would become broken. Ezt a nézetet nem törölheti, mert olyan szakasznézete van, amely megtörne. - You cannot delete this view because it has a detail view that would become broken. Ez a nézet nem törölhető, mert rajta egy részletnézet kapcsolata megszakadna. - You cannot delete this view because it has a leader line that would become broken. Nem törölheti ezt a nézetet, mert van egy referenciavonala, amely megszakadna. - + The page is not empty, therefore the following referencing objects might be lost: Az oldal nem üres, ezért a @@ -4730,15 +4815,6 @@ amikor egy PAT-mintával töltünk ki felületet Color of vertices in views Csúcspontok színe a nézetekben - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Ha bejelölt, a FreeCAD egyetlen színt használ minden szöveghez és vonalhoz. Ha nincs bejelölve, a FreeCAD megpróbálja a preferált színek világosabb változatait használni. - - - Detail Highlight @@ -4779,6 +4855,15 @@ amikor egy PAT-mintával töltünk ki felületet Face color (if not transparent) Felület szín (ha nem átlátszó) + + + If checked FreeCAD will use a single color for all text and lines. + + + Ha bejelölt, a FreeCAD ugyanazt a színt használja minden szöveghez és vonalhoz. + + + Monochrome @@ -5447,80 +5532,80 @@ Gyors, de az eredmény rövid egyenesek gyűjteménye. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Frissen tartás kapcsolója - + Toggle &Frames Keretek kapcsolója - + &Export SVG &Exportálás SVG-be - + Export DXF DXF export - + Export PDF Exportálás PDF-be - + Print All Pages Összes oldal nyomtatása - + Different orientation Eltérő tájolású - + The printer uses a different orientation than the drawing. Do you want to continue? A nyomtató a rajztól eltérő tájolást használ. Szeretné fojtatni? - + Different paper size Eltérő papírméret - + The printer uses a different paper size than the drawing. Do you want to continue? A nyomtató a rajztól eltérő méretű papír méretet használ. Szeretné folytatni? - + Opening file failed Fájl megnyitása sikertelen - + Can not open file %1 for writing. %1 fájlt nem nyitható meg íráshoz. - + Save DXF file DXF-fájl mentése - + DXF (*.dxf) Dxf (*.dxf) - + Selected: Kiválasztott: @@ -8545,7 +8630,7 @@ a megadott X/Y távolság használatával Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Adjon hozzá egy furatot vagy tengelyt egy mérethez<br> diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_it.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_it.ts index 5a9d9017d4..31e25f8c0a 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_it.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_it.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Vista di Arch - + Insert a View of a Section Plane from Arch Workbench Inserisce una vista di un piano di sezione dell'ambiente Arch @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File File - + Export Page as DXF Esporta la pagina in DXF - + Save DXF file Salva file DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File File - + Export Page as SVG Esporta la pagina in SVG @@ -1603,8 +1603,8 @@ - Template (*.svg *.dxf) - Modello (*.svg *.dxf) + Template (*.svg) + Modello (*.svg) @@ -1623,12 +1623,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Proietta le forme... @@ -1755,17 +1755,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Vista foglio di calcolo - + Insert View to a spreadsheet Inserisce una vista di un foglio di calcolo @@ -2001,23 +2001,23 @@ Crea simbolo - + Create DraftView Crea vista Draft - + Create ArchView Crea vista Arch - + Create spreadsheet view Crea vista foglio di calcolo - - + + Save page to dxf Salva pagina su dxf @@ -2088,7 +2088,7 @@ Crea vista attiva - + Create CenterLine Crea linea di mezzeria @@ -2163,11 +2163,21 @@ Add Cosmetic Vertex Vertice cosmetico + + + TechDraw Insert Prefix + TechDraw Inserisci prefisso + Insert Prefix Inserisci Prefisso + + + TechDraw Remove Prefix + TechDraw Rimuovi prefisso + Remove Prefix @@ -2253,76 +2263,151 @@ Create Arc Length Dim Crea Quota Lunghezza Arco + + + TechDraw Hole Circle + TechDraw Cerchio foro + Bolt Circle Centerlines Linee d'asse cerchio Vite + + + TechDraw Circle Centerlines + TechDraw linee centrali del cerchio + Circle Centerlines Linee d'asse Cerchio + + + TechDraw Thread Hole Side + TechDraw foro filettato in vista laterale + Cosmetic Thread Hole Side Filettatura Cosmetica Laterale Foro + + + TechDraw Thread Bolt Side + TechDraw vite filettata in vista laterale + Cosmetic Thread Bolt Side Filettatura Cosmetica Laterale Vite + + + TechDraw Thread Hole Bottom + TechDraw foro filettato vista da sotto + Cosmetic Thread Hole Bottom Filettatura Cosmetica Inferiore Foro + + + TechDraw Thread Bolt Bottom + TechDraw foro filettato vista da sotto + Cosmetic Thread Bolt Bottom Filettatura Cosmetica Inferiore Vite + + + TechDraw Change Line Attributes + TechDraw Cambia gli attributi della linea + Change Line Attributes Cambia Attributi Linea + + + TechDraw Cosmetic Intersection Vertex(es) + Vertice(i) d'intersezione cosmetico + Cosmetic Intersection Vertex(es) Vertici Di Intersezione Cosmetici + + + TechDraw Cosmetic Arc + TechDraw Arco cosmetico + Cosmetic Arc Arco Cosmetico + + + TechDraw Cosmetic Circle + TechDraw Cerchio cosmetico + Cosmetic Circle Cerchio Cosmetico + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cerchio cosmetico per 3 punti + Cosmetic Circle 3 Points Cerchio Cosmetico 3 Punti + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Linea cosmetica parallela/perpendicolare + Cosmetic Line Parallel/Perpendicular Linea Cosmetica Parallela/Perpendicolare + + + TechDraw Lock/Unlock View + TechDraw Blocca/Sblocca vista + Lock/Unlock View Blocca/Sblocca Vista + + + TechDraw Extend/Shorten Line + TechDraw Estendi/Accorcia linea + Extend/Shorten Line Estende/accorcia Linea + + + TechDraw calculate selected area + TechDraw calcola l'area selezionata + Calculate Face Area @@ -2629,9 +2714,9 @@ - - - + + + Wrong selection Selezione errata @@ -2767,37 +2852,37 @@ Selezionare almeno un oggetto. - + Please select only 1 Arch Section. Si prega di selezionare solo 1 sezione Arch. - + No Arch Sections in selection. Nessuna sezione Arch nella selezione. - + Select exactly one Spreadsheet object. Selezionare un solo oggetto Foglio di calcolo. - + No Drawing View Nessuna Vista di disegno - + Open Drawing View before attempting export to SVG. Aprire una Vista Disegno prima di tentare l'esportazione in SVG. - + Can not export selection Impossibile esportare la selezione - + Page contains DrawViewArch which will not be exported. Continue? La pagina contiene una DrawViewArch che non verrà esportata. Continuare? @@ -3287,50 +3372,50 @@ Nel documento non c'è nessuna pagina di disegno. - + PDF (*.pdf) PDF (*. pdf) - - + + All Files (*.*) Tutti i File (*.*) - + Export Page As PDF Esporta pagina in PDF - + Document Name: Nome del documento: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Esporta pagina in SVG - + Are you sure you want to continue? Sei sicuro di voler continuare? - + Show drawing Mostra disegno - + Toggle KeepUpdated Attiva o disattiva aggiornamento automatico @@ -3357,7 +3442,7 @@ - + Rich text editor Editor di testi avanzato @@ -3402,7 +3487,7 @@ Crea linea centrale - + Edit Center Line Modifica linea centrale @@ -3598,14 +3683,14 @@ - + Selection is empty La selezione è vuota - + No object selected Nessun oggetto selezionato @@ -3630,12 +3715,12 @@ Nessuna faccia nella selezione. - + TechDraw Thread Hole Side TechDraw foro filettato in vista laterale - + Please select two straight lines Per favore seleziona due linee dritte @@ -3747,16 +3832,19 @@ it has a weld symbol that would become broken. essa ha un simbolo di saldatura che si romperebbe. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Non puoi eliminare questa vista perché ha una o più viste dipendenti che diventerebbero orfani. + + + - + @@ -3769,25 +3857,22 @@ it has a weld symbol that would become broken. Non è possibile eliminare la vista di ancoraggio di un gruppo di proiezione. - You cannot delete this view because it has a section view that would become broken. Non è possibile eliminare questa vista perché ha una vista in sezione che si romperebbe. - You cannot delete this view because it has a detail view that would become broken. Non è possibile eliminare questa vista perché ha una vista in dettaglio che si romperebbe. - You cannot delete this view because it has a leader line that would become broken. Non è possibile eliminare questa vista perché ha una linea guida che si romperebbe. - + The page is not empty, therefore the following referencing objects might be lost: La pagina non è vuota, quindi i seguenti @@ -4733,15 +4818,6 @@ quando si tratteggia una faccia con un modello PAT Color of vertices in views Colore dei vertici nelle viste - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Se selezionato, FreeCAD userà un solo colore per tutti i testi e le linee. Se non selezionato, FreeCAD tenterà di utilizzare versioni più chiare dei colori preferiti. - - - Detail Highlight @@ -4782,6 +4858,15 @@ quando si tratteggia una faccia con un modello PAT Face color (if not transparent) Colore delle facce (se non trasparenti) + + + If checked FreeCAD will use a single color for all text and lines. + + + Se selezionato, FreeCAD userà un unico colore per tutti i testi e le linee. + + + Monochrome @@ -5453,79 +5538,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Attiva o disattiva l'aggiornamento automatico - + Toggle &Frames Attiva o disattiva la struttura - + &Export SVG &Esporta SVG - + Export DXF Esporta in DXF - + Export PDF Esporta in formato PDF - + Print All Pages Stampa tutte le pagine - + Different orientation Orientamento diverso - + The printer uses a different orientation than the drawing. Do you want to continue? La stampante utilizza un orientamento diverso rispetto al disegno. Si desidera continuare? - + Different paper size Formato carta diverso - + The printer uses a different paper size than the drawing. Do you want to continue? La stampante utilizza un formato di carta diverso rispetto al disegno. Si desidera continuare? - + Opening file failed Apertura del file non riuscita - + Can not open file %1 for writing. Impossibile aprire il file %1 per la scrittura. - + Save DXF file Salva file DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Selezionato: @@ -8550,14 +8635,14 @@ usando la spaziatura X/Y specificata Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Add a hole or shaft fit to a dimension<br> - - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> - - select shaft fit / hole fit<br> - - select the desired ISO 286 fit field using the combo box + Aggiungi un foro o un albero adattato a una quota<br> + - seleziona una quota di lunghezza o una quota di diametro<br> + - fai clic sul pulsante strumento, si apre un pannello<br> + - seleziona adatta albero / adatta foro<br> + - seleziona il grado di tolleranza ISO 286 desiderato utilizzando la casella combinata diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ja.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ja.ts index b2d2448c7f..2c66b66b0f 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ja.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ja.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Arch ワークベンチオブジェクトを挿入 - + Insert a View of a Section Plane from Arch Workbench Arch ワークベンチから断面平面のビューを挿入 @@ -222,12 +222,12 @@ Insert Complex Section - Insert Complex Section + 複雑な断面を挿入 Insert a Complex Section - Insert a Complex Section + 複雑な断面を挿入 @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File ファイル - + Export Page as DXF ページをDXFとしてエクスポート - + Save DXF file DXF ファイルを保存 - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File ファイル - + Export Page as SVG ページをSVGとしてエクスポート @@ -1501,7 +1501,7 @@ Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) - Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) + 画像ファイル (*.jpg *.jpeg *.png *.bmp);;すべてのファイル (*) @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - テンプレート (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1615,18 +1615,18 @@ Print All Pages - Print All Pages + すべてのページを印刷 CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... 形状を投影... @@ -1711,7 +1711,7 @@ Insert a simple or complex Section View - Insert a simple or complex Section View + 単純または複雑な断面図を挿入 @@ -1721,7 +1721,7 @@ Complex Section - Complex Section + 複雑な断面 @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View スプレッドシートビューを挿入 - + Insert View to a spreadsheet スプレッドシートにビューを挿入 @@ -1778,7 +1778,7 @@ Move view to bottom of stack - Move view to bottom of stack + ビューをスタックの一番下に移動 @@ -1791,7 +1791,7 @@ Move view down one level - Move view down one level + ビューを1段下に移動 @@ -1804,27 +1804,27 @@ Adjust stacking order of views - Adjust stacking order of views + ビューの重ね順を調整 Stack Top - Stack Top + スタックの最上段へ Stack Bottom - Stack Bottom + スタックの最下段へ Stack Up - Stack Up + スタックの上へ Stack Down - Stack Down + スタックの下へ @@ -1837,7 +1837,7 @@ Move view to top of stack - Move view to top of stack + ビューをスタックの一番上に移動 @@ -1850,7 +1850,7 @@ Move view up one level - Move view up one level + ビューを1段上に移動 @@ -1863,12 +1863,12 @@ Create a Surface Finish Symbol - Create a Surface Finish Symbol + 表面仕上げ記号を作成 Select a view<br> - click this button<br> - select surface finish symbol attributes in opened panel - Select a view<br> - click this button<br> - select surface finish symbol attributes in opened panel + ビューを選択<br> - このボタンをクリック<br> - 開いたパネルで表面仕上げ記号を選択 @@ -1999,23 +1999,23 @@ 記号を作成 - + Create DraftView ドラフトビューを作成 - + Create ArchView Archビューを作成 - + Create spreadsheet view スプレッドシートビューを作成 - - + + Save page to dxf ページをDXFに保存 @@ -2048,12 +2048,12 @@ Update Hatch - Update Hatch + ハッチングを更新 Remove old Hatch - Remove old Hatch + 古いハッチングを削除 @@ -2086,7 +2086,7 @@ アクティブビューを作成 - + Create CenterLine 中心線を作成 @@ -2138,7 +2138,7 @@ Create ComplexSection - Create ComplexSection + 複雑な断面を作成 @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex 表示用の頂点を追加 + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix プレフィックスを挿入 + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim 円弧の長さ寸法を作成 + + + TechDraw Hole Circle + TechDraw 穴円 + Bolt Circle Centerlines ボルト円の中心線 + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines 円の中心線 + + + TechDraw Thread Hole Side + TechDraw ねじ穴側面 + Cosmetic Thread Hole Side 表示用のねじ穴側面 + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side 表示用のねじボルト側面 + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom 表示用のねじ穴底面 + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom 表示用のねじボルト底面 + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes 線属性の変更 + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) 表示用の交差頂点 + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc 表示用の円弧 + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle 表示用の円 + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points 表示用の3点円 + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular 表示用の線 平行/垂直 + + + TechDraw Lock/Unlock View + TechDraw ビューのロック/ロック解除 + Lock/Unlock View ビューのロック/アンロック + + + TechDraw Extend/Shorten Line + TechDraw 線の延長/短縮 + Extend/Shorten Line 線を延長/短縮 + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2334,12 +2419,12 @@ Surface Finish Symbols - Surface Finish Symbols + 表面仕上げ記号 Repair Dimension - Repair Dimension + 寸法を修復 @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection 誤った選択 @@ -2648,17 +2733,17 @@ I do not know what base view to use. - I do not know what base view to use. + どのベースビューを使用するのかわかりません。 No Base View, Shapes, Groups or Links in this selection - No Base View, Shapes, Groups or Links in this selection + ベーsyビュー、シェイプ、グループ、リンクが選択されていません。 No profile object found in selection - No profile object found in selection + プロファイルオブジェクトが選択されていません。 @@ -2765,37 +2850,37 @@ 少なくとも1つのオブジェクトを選択してください。 - + Please select only 1 Arch Section. Archセクションを一つだけ選択して下さい。 - + No Arch Sections in selection. Archセクションが選択されていません。 - + Select exactly one Spreadsheet object. スプレッドシートオブジェクトを1 つだけ選択して下さい。 - + No Drawing View 図面ビューがありません。 - + Open Drawing View before attempting export to SVG. SVGへのエクスポートを試みる前に図面ビューを開きます。 - + Can not export selection 選択範囲がエクスポートできません - + Page contains DrawViewArch which will not be exported. Continue? ページにはエクスポートできない DrawViewArch が含まれています。継続しますか? @@ -2853,12 +2938,12 @@ Can not make 2d radius dimension from selection - Can not make 2d radius dimension from selection + 選択対象から2Dの半径寸法を作ることはできません。 Can not make 3d radius dimension from selection - Can not make 3d radius dimension from selection + 選択対象から3Dの半径寸法を作ることはできません。 @@ -2874,12 +2959,12 @@ Can not make 2d diameter dimension from selection - Can not make 2d diameter dimension from selection + 選択対象から2Dの直径寸法を作ることはできません。 Can not make 3d diameter dimension from selection - Can not make 3d diameter dimension from selection + 選択対象から3Dの直径寸法を作ることはできません。 @@ -2899,59 +2984,59 @@ Can not make 2d linear dimension from selection - Can not make 2d linear dimension from selection + 選択対象から2Dの長さ寸法を作ることはできません。 Can not make 3d linear dimension from selection - Can not make 3d linear dimension from selection + 選択対象から3Dの長さ寸法を作ることはできません。 Can not make 2d horizontal dimension from selection - Can not make 2d horizontal dimension from selection + 選択対象から2Dの水平寸法を作ることはできません。 Can not make 3d horizontal dimension from selection - Can not make 3d horizontal dimension from selection + 選択対象から3Dの水平寸法を作ることはできません。 Can not make 2d vertical dimension from selection - Can not make 2d vertical dimension from selection + 選択対象から2Dの垂直寸法を作ることはできません。 Can not make 3d vertical dimension from selection - Can not make 3d vertical dimension from selection + 選択対象から3Dの垂直寸法を作ることはできません。 Can not make 2d angle dimension from selection - Can not make 2d angle dimension from selection + 選択対象から2Dの角度寸法を作ることはできません。 Can not make 3d angle dimension from selection - Can not make 3d angle dimension from selection + 選択対象から3Dの角度寸法を作ることはできません。 Can not make 2d extent dimension from selection - Can not make 2d extent dimension from selection + 選択対象から2Dの範囲寸法を作ることはできません。 Can not make 3d extent dimension from selection - Can not make 3d extent dimension from selection + 選択対象から3Dの範囲寸法を作ることはできません。 There is no Dimension in your selection - There is no Dimension in your selection + 寸法が選択されていません。 @@ -3215,7 +3300,7 @@ SurfaceFinishSymbols - SurfaceFinishSymbols + 表面仕上げ記号 @@ -3277,58 +3362,58 @@ No Drawing Pages available. - No Drawing Pages available. + 利用可能な図面ページがありません。 No Drawing Pages in document. - ドキュメントに描画ページがありません。 + ドキュメントに図面ページがありません。 - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) すべてのファイル (*.*) - + Export Page As PDF ページをPDFとしてエクスポート - + Document Name: - Document Name: + ドキュメント名: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG ページをSVGとしてエクスポート - + Are you sure you want to continue? 本当に続行しますか? - + Show drawing 図面を表示します - + Toggle KeepUpdated 自動更新を切り替え @@ -3355,7 +3440,7 @@ - + Rich text editor リッチテキストエディタ @@ -3377,22 +3462,22 @@ No Main Window - No Main Window + メインウィンドウがありません。 Can not find the main window - Can not find the main window + メインウィンドウが見つかりません。 No 3D Viewer - No 3D Viewer + 3D ビューアーがありません。 Can not find a 3D viewer - Can not find a 3D viewer + 3D ビューアーが見つかりません。 @@ -3400,7 +3485,7 @@ 中心線を作成 - + Edit Center Line 中心線を編集 @@ -3417,24 +3502,24 @@ New Complex Section - New Complex Section + 新しい複雑な断面 Edit Complex Section - Edit Complex Section + 複雑な断面を編集 Current View Direction - Current View Direction + 現在のビュー方向 The view direction in BaseView coordinates - The view direction in BaseView coordinates + BaseView 座標内のビュー方向 @@ -3590,20 +3675,20 @@ No subelements selected - No subelements selected + サブ要素が選択されていません。 - + Selection is empty 選択されていません - + No object selected オブジェクトが選択されていません @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw ねじ穴側面 - + Please select two straight lines 2本の直線を選択してください。 @@ -3661,12 +3746,12 @@ Create Face Hatch - Create Face Hatch + 面のハッチングを作成 Edit Face Hatch - Edit Face Hatch + 面のハッチングを編集 @@ -3716,12 +3801,12 @@ Can not make a dimension from selection - Can not make a dimension from selection + 選択対象から寸法を作ることはできません。 Can not make dimension from selection - Can not make dimension from selection + 選択対象から寸法を作ることはできません。 @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. 壊れてしまう溶接記号があるため、この引き出し線を削除することはできません。 - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. 投影グループのアンカービューは削除できません。 - You cannot delete this view because it has a section view that would become broken. 壊れてしまう断面ビューがあるため、このビューを削除することはできません。 - You cannot delete this view because it has a detail view that would become broken. 壊れてしまう詳細ビューがあるため、このビューを削除することはできません。 - You cannot delete this view because it has a leader line that would become broken. 壊れてしまう引き出し線があるため、このビューを削除することはできません。 - + The page is not empty, therefore the following referencing objects might be lost: ページが空ではないため、以下の参照オブジェクトが失われる可能性があります: @@ -3838,7 +3923,7 @@ it has a tile weld that would become broken. Use 3d Background - Use 3d Background + 3D 背景を使用 @@ -3848,12 +3933,12 @@ it has a tile weld that would become broken. Solid Background - Solid Background + 塗りつぶし背景 No Background - No Background + 背景なし @@ -3908,7 +3993,7 @@ it has a tile weld that would become broken. updates pending - updates pending + アップデートを保留中 @@ -4193,12 +4278,12 @@ Each unit is approx. 0.1 mm wide If checked, system will attempt to automatically correct dimension references when the model changes. - If checked, system will attempt to automatically correct dimension references when the model changes. + チェックされている場合、モデル変更時にシステムは自動的に寸法参照の修正を試みます。 Auto Correct Dimension Refs - Auto Correct Dimension Refs + 寸法参照の自動修正 @@ -4230,7 +4315,7 @@ Only change unless you know what you are doing! Use New Face Finder Algorithm - Use New Face Finder Algorithm + 新しい面検出アルゴリズムを使用 @@ -4276,7 +4361,7 @@ when hatching a face with a PAT pattern If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. - If checked, FreeCAD will use the new face finder algorithm. If not checked, FreeCAD will use the original face finder. + チェックされている場合、FreeCADは新しい面検出アルゴリズムを使用します。チェックされていない場合、FreeCADは元の面検出を使用します。 @@ -4692,22 +4777,22 @@ when hatching a face with a PAT pattern Monochrome text color - Monochrome text color + モノクロテキストの色 Light on dark - Light on dark + 暗色上には明色 Page Color - Page Color + ページの色 Use a light color for dark text and dark color for light text. - Use a light color for dark text and dark color for light text. + 暗いテキストには明るい色、明るいテキストには暗い色を使用 @@ -4724,15 +4809,6 @@ when hatching a face with a PAT pattern Color of vertices in views ビュー内の頂点の色 - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4756,7 +4832,7 @@ when hatching a face with a PAT pattern Check this to use light text and lines on dark backgrounds. Set Page Color to a dark color. Transparent or light color faces are recommended with this option. - Check this to use light text and lines on dark backgrounds. Set Page Color to a dark color. Transparent or light color faces are recommended with this option. + 暗い背景に明るいテキストと線を使用するには、これをチェックし、ページの色を暗い色に設定します。 このオプションでは透明または明るい色の面が推奨されます。 @@ -4773,10 +4849,19 @@ when hatching a face with a PAT pattern Face color (if not transparent) 面の色(透明でない場合) + + + If checked FreeCAD will use a single color for all text and lines. + + + チェックを入れるとFreeCADはすべてのテキストと線に単一の色を使用します。 + + + Monochrome - Monochrome + モノクロ @@ -4835,12 +4920,12 @@ when hatching a face with a PAT pattern Controls the size of spacing between dimension line and dimension text for ISO dimensions. - Controls the size of spacing between dimension line and dimension text for ISO dimensions. + ISO 寸法での寸法線と寸法テキストの間隔を調整します。 Line Spacing - ISO - Line Spacing - ISO + 線間隔 - ISO @@ -4870,12 +4955,12 @@ when hatching a face with a PAT pattern Controls the size of gap between dimension point and start of extension line for ISO dimensions. - Controls the size of gap between dimension point and start of extension line for ISO dimensions. + ISO 寸法での寸法点と延長線の始点の間隔を調整します。 Extension Gap Factor - ISO - Extension Gap Factor - ISO + 延長ギャップ係数 - ISO @@ -4932,40 +5017,40 @@ Multiplier of 'Font Size' Leave blank for automatic dimension format. Use %f, %g or %w specifiers to override. - Leave blank for automatic dimension format. Use %f, %g or %w specifiers to override. + 自動寸法形式の場合は空白のままにします。上書きするには %f、 %g または %w 指定子を使用します。 Controls the size of gap between dimension point and start of extension line for ASME dimensions. - Controls the size of gap between dimension point and start of extension line for ASME dimensions. + ASME 寸法での寸法点と延長線の始点の間隔を調整します。 Extension Gap Factor - ASME - Extension Gap Factor - ASME + 延長ギャップ係数 - ASME Controls the size of gap between dimension point and start of extension line for ISO dimensions. Value * linewidth is the gap. Normally, no gap is used. If using a gap, the recommended value 8. - Controls the size of gap between dimension point and start of extension line for ISO dimensions. -Value * linewidth is the gap. -Normally, no gap is used. If using a gap, the recommended value 8. + ISO 寸法での寸法点と延長線の始点の間の間隔を調整します。 +「値 × 線幅」が間隔です。 +通常は間隔は使用されません。間隔を使用する場合の推奨値は 8 です。 Controls the size of gap between dimension point and start of extension line for ASME dimensions. Value * linewidth is the gap. Normally, no gap is used. If a gap is used, the recommended value is 6. - Controls the size of gap between dimension point and start of extension line for ASME dimensions. Value * linewidth is the gap. -Normally, no gap is used. If a gap is used, the recommended value is 6. + ASME 寸法での寸法点と延長線の始点の間の間隔を調整します。「値 × 線幅」が間隔です。 +通常は間隔は使用されません。間隔を使用する場合の推奨値は 6 です。 Controls the size of spacing between dimension line and dimension text. Value * linewidth is the line spacing. - Controls the size of spacing between dimension line and dimension text. - Value * linewidth is the line spacing. + 寸法線と寸法テキストの間隔を調整します。 +「値 × 線幅」が線の間隔です。 @@ -5443,80 +5528,80 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated 自動更新を切り替え(&K) - + Toggle &Frames フレームを切り替え(&F) - + &Export SVG &SVGをエクスポート - + Export DXF DXFをエクスポート - + Export PDF PDFファイル形式でエクスポート - + Print All Pages - Print All Pages + すべてのページを印刷 - + Different orientation 異なる向き - + The printer uses a different orientation than the drawing. Do you want to continue? プリンターでは、図面と異なる印刷方向を使用します。続行しますか? - + Different paper size 別の用紙サイズ - + The printer uses a different paper size than the drawing. Do you want to continue? プリンターでは、図面とは異なる用紙サイズを使用します。 続行しますか? - + Opening file failed ファイルを開けませんでした。 - + Can not open file %1 for writing. 書き込み用ファイル %1 を開くことができません。 - + Save DXF file DXF ファイルを保存 - + DXF (*.dxf) DXF (*.dxf) - + Selected: 選択: @@ -5850,28 +5935,28 @@ Do you want to continue? Complex Section - Complex Section + 複雑な断面 Object Selection - Object Selection + オブジェクト選択 Objects to section - Objects to section + 断面作成するオブジェクト Use Selection - Use Selection + 選択したものを使用 Profile object - Profile object + プロファイルオブジェクト @@ -5947,7 +6032,7 @@ Do you want to continue? Set View Direction - Set View Direction + ビュー方向を設定 @@ -5977,22 +6062,22 @@ Do you want to continue? Check to update display after every property change. - Check to update display after every property change. + プロパティが変更されるごとに表示を更新する場合はチェック。 Live Update - Live Update + 自動更新 Rebuild display now. May be slow for complex models. - Rebuild display now. May be slow for complex models. + 表示を即座に再構築します。複雑なモデルでは遅くなる可能性があります。 Update Now - Update Now + 今すぐ更新 @@ -6816,7 +6901,7 @@ be used instead of the dimension value Rotation - Rotation + 回転 @@ -6826,7 +6911,7 @@ be used instead of the dimension value Offset X - Offset X + オフセット X @@ -6836,7 +6921,7 @@ be used instead of the dimension value Offset Y - Offset Y + オフセット Y @@ -6879,57 +6964,57 @@ be used instead of the dimension value Select an Svg or Bitmap file - Select an Svg or Bitmap file + SVG またはビットマップファイルを選択 Pattern Parameters - Pattern Parameters + パターンパラメーター Choose an Svg or Bitmap file as a pattern - Choose an Svg or Bitmap file as a pattern + パターンとして SVG またはビットマップファイルを選択 Offset X - Offset X + オフセット X Color of pattern lines (Svg Only) - Color of pattern lines (Svg Only) + パターン線の色 (SVG のみ) Rotation - Rotation + 回転 Offset Y - Offset Y + オフセット Y Enlarges/shrinks the pattern (Svg Only) - Enlarges/shrinks the pattern (Svg Only) + パターンの拡大/縮小 (SVG のみ) Rotation the pattern (degrees) - Rotation the pattern (degrees) + パターンの回転 (度) Svg Pattern Scale - Svg Pattern Scale + SVG パターンの縮尺 Svg Line Color - Svg Line Color + SVG 線の色 @@ -7680,7 +7765,7 @@ using the given X/Y Spacing Set View Direction - Set View Direction + ビュー方向を設定 @@ -7715,17 +7800,17 @@ using the given X/Y Spacing Update Now - Update Now + 今すぐ更新 Check to update display after every property change. - Check to update display after every property change. + プロパティが変更されるごとに表示を更新する場合はチェック。 Live Update - Live Update + 自動更新 @@ -7887,7 +7972,7 @@ using the given X/Y Spacing Surface Finish Symbols - Surface Finish Symbols + 表面仕上げ記号 @@ -7922,22 +8007,22 @@ using the given X/Y Spacing Rotation angle - Rotation angle + 回転角度 Use ISO standard - Use ISO standard + ISO規格を使用 Use ASME standard - Use ASME standard + ASME規格を使用 Symbol angle: - Symbol angle: + 記号の角度: @@ -7947,7 +8032,7 @@ using the given X/Y Spacing ASME - ASME + ASME @@ -8092,7 +8177,7 @@ using the given X/Y Spacing Insert complex Section View - Insert complex Section View + 複雑な断面図を挿入 @@ -8161,7 +8246,7 @@ using the given X/Y Spacing Move view to bottom of stack - Move view to bottom of stack + ビューをスタックの一番下に移動 @@ -8169,7 +8254,7 @@ using the given X/Y Spacing Move view down one level - Move view down one level + ビューを1段下に移動 @@ -8177,7 +8262,7 @@ using the given X/Y Spacing Move view to top of stack - Move view to top of stack + ビューをスタックの一番上に移動 @@ -8185,7 +8270,7 @@ using the given X/Y Spacing Move view up one level - Move view up one level + ビューを1段上に移動 @@ -8247,17 +8332,17 @@ using the given X/Y Spacing TechDraw Attributes - TechDraw Attributes + TechDraw属性 TechDraw Centerlines - TechDraw Centerlines + TechDraw中心線 TechDraw Extend Dimensions - TechDraw Extend Dimensions + TechDraw拡張寸法 @@ -8267,7 +8352,7 @@ using the given X/Y Spacing TechDraw Stacking - TechDraw Stacking + TechDrawスタッキング @@ -8320,38 +8405,38 @@ using the given X/Y Spacing Move a View to a new Page - Move a View to a new Page + ビューを新しいページに移動 Move View to a different Page - Move View to a different Page + ビューを別のページに移動 Select View to move from list. - Select View to move from list. + リストから移動するビューを選択 Select View - Select View + ビューを選択 Select From Page. - Select From Page. + 移動元ページを選択します。 Select Page - Select Page + ページを選択 Select To Page. - Select To Page. + 移動先ページを選択します。 @@ -8359,48 +8444,48 @@ using the given X/Y Spacing Share View - Share View + ビューを共有 Share a View on a second Page - Share a View on a second Page + 第 2 ページでビューを共有 Share View with another Page - Share View with another Page + 別のページとビューを共有 View to share - View to share + 共有するビュー Select View to share from list. - Select View to share from list. + リストから共有するビューを選択します。 Select View - Select View + ビューを選択 Select From Page. - Select From Page. + 移動元ページを選択します。 Select Page - Select Page + ページを選択 Select To Page. - Select To Page. + 移動先ページを選択します。 @@ -8428,12 +8513,12 @@ using the given X/Y Spacing Replace References with Current Selection - Replace References with Current Selection + 参照を現在選択しているものに置き換え References 2D - References 2D + 参照 2D @@ -8443,7 +8528,7 @@ using the given X/Y Spacing The View that owns this Dimension - The View that owns this Dimension + この寸法を所有するビュー @@ -8453,12 +8538,12 @@ using the given X/Y Spacing The subelements of the View that define the geometry for this Dimension - The subelements of the View that define the geometry for this Dimension + この寸法に対するジオメトリーを定義するビューのサブ要素 References 3D - References 3D + 参照 3D @@ -8492,17 +8577,17 @@ using the given X/Y Spacing Object Name - Object Name + オブジェクト名 Object Label - Object Label + オブジェクトラベル SubElement - SubElement + サブ要素 @@ -8537,12 +8622,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box @@ -8572,12 +8657,12 @@ using the given X/Y Spacing Filled Arrow - Filled Arrow + 塗りつぶされた矢印 Open Arrow - Open Arrow + 開いた矢印 @@ -8592,17 +8677,17 @@ using the given X/Y Spacing Open Circle - Open Circle + 白抜き円 Fork - Fork + 二股 Filled Triangle - Filled Triangle + 塗りつぶされた三角形 @@ -8645,22 +8730,22 @@ using the given X/Y Spacing FrontTopLeft - FrontTopLeft + 前面 左上 FrontTopRight - FrontTopRight + 前面 右上 FrontBottomLeft - FrontBottomLeft + 前面 左下 FrontBottomRight - FrontBottomRight + 前面 右下 @@ -8669,13 +8754,12 @@ using the given X/Y Spacing You cannot delete this balloon now because there is an open task dialog. - You cannot delete this balloon now because -there is an open task dialog. + タスクダイアログが開いているため、今はこのバルーンを削除できません。 Can Not Delete - Can Not Delete + 削除できません。 diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ka.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ka.ts index b539775afe..8732bb48e5 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ka.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ka.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object არქიტექტურული სამუშაო მაგიდის ობიექტის ჩასმა - + Insert a View of a Section Plane from Arch Workbench Arch სამუშაო მაგიდიდან სიბრტყის კვეთის ხედის ჩასმა @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File ფაილი - + Export Page as DXF გვერდის DXF ფაილად გატანა - + Save DXF file DXF ფაილის შენახვა - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File ფაილი - + Export Page as SVG გვერდის SVG ფაილად გატანა @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - შაბლონი (*.svg *.dxf) + Template (*.svg) + შაბლონი (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... ფიგურის პროექცია... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View ელცხრილის ხედის ჩასმა - + Insert View to a spreadsheet ელცხრილზე ხედის ჩამატება @@ -1999,23 +1999,23 @@ სიმბოლოს შექმნა - + Create DraftView DraftView-ის შექმნა - + Create ArchView ArchView-ის შექმნა - + Create spreadsheet view ელცხრილის შექმნა - - + + Save page to dxf გვერდის DXF-ში შენახვა @@ -2086,7 +2086,7 @@ აქტიური ხედის შექმნა - + Create CenterLine ცენტრალურ ხაზის შექმნა @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex დამხმარე წვეროს დამატება + + + TechDraw Insert Prefix + TechDraw პრეფიქსის ჩასმა + Insert Prefix პრეფიქსის ჩასმა + + + TechDraw Remove Prefix + TechDraw პრეფიქსის წაშლა + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim რკალის სიგრძის ზომის შექმნა + + + TechDraw Hole Circle + TechDraw-ის ნახვრეტის წრეწირი + Bolt Circle Centerlines ხრახნის წრის ცენტრის ხაზები + + + TechDraw Circle Centerlines + TechDraw წრეწირის ცენტრალური ხაზები + Circle Centerlines წრეწირის ცენრის ხაზები + + + TechDraw Thread Hole Side + TechDraw-ის კუთხვილის ხვრელის გვერდი + Cosmetic Thread Hole Side კოსმეტიკური კუთხვილის ხრახნის ნახვრეტის კედელი + + + TechDraw Thread Bolt Side + TechDraw კუთხვილის ხრახნის გვერდი + Cosmetic Thread Bolt Side ჰოსმეტიკური კუთხვილის ხრახნის გვერდი + + + TechDraw Thread Hole Bottom + TechDraw კუთხვილის ხვრელის ფსკერი + Cosmetic Thread Hole Bottom კოსმეტიკური კუთხვილის ხრახნის ნახვრეტის ძირი + + + TechDraw Thread Bolt Bottom + TechDraw კუთხვილის ჭანჭიკის ფსკერი + Cosmetic Thread Bolt Bottom ჰოსმეტიკური კუთხვილის ხრახნის ძირი + + + TechDraw Change Line Attributes + TechDraw ხაზის ატრიბუტების შეცვლა + Change Line Attributes ხაზის ატრიბუტების შეცვლა + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw კოსმეტიკური კვეთის წვერო(ებ)ი + Cosmetic Intersection Vertex(es) კოსმეტიკური კვეთის წვეროები + + + TechDraw Cosmetic Arc + TechDraw კოსმეტიკური რკალი + Cosmetic Arc კოსმეტიკური რკალი + + + TechDraw Cosmetic Circle + TechDraw კოსმეტიკური წრეწირი + Cosmetic Circle კოსმეტიკური წრეწირი + + + TechDraw Cosmetic Circle 3 Points + TechDraw კოსმეტიკური წრე 3 წერტილით + Cosmetic Circle 3 Points კოსმეტიკური წრე 3 წერტილი + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw კოსმეტიკური ხაზი პარალელურია თუ მართობული + Cosmetic Line Parallel/Perpendicular კოსმეტიკური ხაზი პარალელურია თუ მართობული + + + TechDraw Lock/Unlock View + TechDraw ხედის დაბლოკვა/განბლოკვა + Lock/Unlock View ხედის დაბლოკვა/განბლოკვა + + + TechDraw Extend/Shorten Line + TechDraw ხაზის გაგრძელება/შემოკლება + Extend/Shorten Line ხაზის გაგრძელება/შემოკლება + + + TechDraw calculate selected area + TechDraw მონიშნული ფართობის გამოთვლა + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection არასწორი არჩევანი @@ -2765,37 +2850,37 @@ ერთი ობიექტი მაინც მონიშნეთ. - + Please select only 1 Arch Section. აირჩიეთ მხოლოდ 1 არქიტექტურული კვეთა. - + No Arch Sections in selection. არქიტექტურული კვეთები მონიშნული არაა. - + Select exactly one Spreadsheet object. აირჩიეთ ელცხრილის ზუსტად ერთი ობიექტი. - + No Drawing View ნახაზის ხედები ნაპოვნი არაა - + Open Drawing View before attempting export to SVG. SVG-ში გატანის წინ ხატვის ხედის გახსნა. - + Can not export selection მონიშნულის გატანა შეუძლებელია - + Page contains DrawViewArch which will not be exported. Continue? გვერდი შეიცავს DrawViewArch-ს, რომელიც არ იქნება გატანილი. გავაგრძელო? @@ -3285,50 +3370,50 @@ დოკუმენტში ნახაზის გვერდები არაა. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) ყველა ფაილი (*.*) - + Export Page As PDF გვერდის PDF ფაილად გატანა - + Document Name: დოკუმენტის სახელი: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG გვერდის SVG ფაილად გატანა - + Are you sure you want to continue? დარწმუნებული ბრძანდებით, რომ გნებავთ გააგრძელოთ? - + Show drawing ნახაზის ჩვენება - + Toggle KeepUpdated განახლების ჩართ/გამორთ @@ -3355,7 +3440,7 @@ - + Rich text editor ტექსტის ფორმატირების რედაქტორი @@ -3400,7 +3485,7 @@ ცენტრალური ხაზის შექმნა - + Edit Center Line ცენტრალური ხაზის ჩასწორება @@ -3596,14 +3681,14 @@ - + Selection is empty მონიშნული ცარიელია - + No object selected ობიექტი მონიშნული არაა @@ -3628,12 +3713,12 @@ მონიშნულში ზედაპირები არაა. - + TechDraw Thread Hole Side TechDraw-ის კუთხვილის ხვრელის გვერდი - + Please select two straight lines გთხოვთ, არჩიეთ ორი სწორი ხაზი @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. რომ მას აქვს შედუღების ნიშანი, რომელიც გაფუჭდება. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + თქვენ არ შეგიძლიათ ამ ხედის წაშლა იმიტომ, რომ მას გააჩნია ერთი ან მეტი დამოკიდებული ხედი, რომელიც გაფუჭდებოდა. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. თქვენ არ შეგიძლიათ ამ ხედის წაშლა იმიტომ, რომ მას გააჩნია კვეთის ხედი, რომელიც გაფუჭდებოდა. - You cannot delete this view because it has a detail view that would become broken. თქვენ არ შეგიძლიათ ამ ხედის წაშლა იმიტომ, რომ მას გააჩნია დეტალის ხედი, რომელიც გაფუჭდებოდა. - You cannot delete this view because it has a leader line that would become broken. თქვენ არ შეგიძლიათ ამ ხედის წაშლა იმიტომ, რომ მას გააჩნია გატანადი ხაზი, რომელიც გაფუჭდებოდა. - + The page is not empty, therefore the following referencing objects might be lost: გვერდი ცარიელი არ არის, ამიტომ @@ -4730,15 +4815,6 @@ when hatching a face with a PAT pattern Color of vertices in views ხედზე წვეროების ფერი - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - თუ ჩართულია, FreeCAD-ი ყველა ტექსტისა და ხაზისთვის ერთ ფერს გამოიყენებს. თუ გამორთულია, FreeCAD-ი არჩეული ფერების ღია ვერსიების გამოყენებას ეცდება. - - - Detail Highlight @@ -4779,6 +4855,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) ზედაპირის ფერი (თუ გამჭვირვალე არაა) + + + If checked FreeCAD will use a single color for all text and lines. + + + თუ ჩართულია, FreeCAD-ი ყველა ტექსტისა და ხაზებისთვის ერთ ფერს გამოიყენებს. + + + Monochrome @@ -5448,81 +5533,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated განახლებადობის &ჩართ/გამორთ - + Toggle &Frames ჩარჩოების ჩართ/გამორთ - + &Export SVG &SVG-ში გატანა - + Export DXF DXF-ის გატანა - + Export PDF PDF-ად გატანა - + Print All Pages ყველა გვერდის დაბეჭდვა - + Different orientation განსხვავებული ორიენტაცია - + The printer uses a different orientation than the drawing. Do you want to continue? პრინტერი ნახაზისგან განსხვავებულ ორიენტაციას იყენებს. გნებავთ გაგრძელება? - + Different paper size ფურცლის განსხვავებული ზომა - + The printer uses a different paper size than the drawing. Do you want to continue? პრინტერი იყენებს ქაღალდის განსხვავებულ ზომას, ვიდრე ნახაზი. Გინდა გააგრძელო? - + Opening file failed ფაილის გახსნის შეცდომა - + Can not open file %1 for writing. ჩასაწერად ფაილის „%1“ გახსნა შეუძლებელია. - + Save DXF file DXF ფაილის შენახვა - + DXF (*.dxf) DXF (*.dxf) - + Selected: მონიშნული: @@ -8548,12 +8633,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ko.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ko.ts index 213cec720d..7e7138fbb6 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ko.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ko.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Arch 워크벤치 객체 삽입 - + Insert a View of a Section Plane from Arch Workbench Arch 워크벤치에서 단면 뷰 삽입하기 @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File 파일 - + Export Page as DXF 페이지를 DXF로 내보내기 - + Save DXF file DXF 파일 저장 - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File 파일 - + Export Page as SVG 페이지를 SVG로 내보내기 @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Template (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... 프로젝트 모양... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Insert Spreadsheet View - + Insert View to a spreadsheet Insert View to a spreadsheet @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Save page to dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex 꾸밈 꼭짓점 추가 + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection 잘못 된 선택 @@ -2765,37 +2850,37 @@ Select at least one object. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. 스프레드시트 오브젝트를 하나만 선택하십시오. - + No Drawing View No Drawing View - + Open Drawing View before attempting export to SVG. Open Drawing View before attempting export to SVG. - + Can not export selection Can not export selection - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) All Files (*.*) - + Export Page As PDF Export Page As PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Export page as SVG - + Are you sure you want to continue? Are you sure you want to continue? - + Show drawing 드로잉 보기 - + Toggle KeepUpdated Toggle KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor Rich text editor @@ -3400,7 +3485,7 @@ Create Center Line - + Edit Center Line Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,80 +5537,80 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Toggle &Keep Updated - + Toggle &Frames Toggle &Frames - + &Export SVG &Export SVG - + Export DXF Export DXF - + Export PDF PDF로 내보내기 - + Print All Pages Print All Pages - + Different orientation 다른 방향 - + The printer uses a different orientation than the drawing. Do you want to continue? The printer uses a different orientation than the drawing. Do you want to continue? - + Different paper size 다른 용지 크기 - + The printer uses a different paper size than the drawing. Do you want to continue? 프린터가 사용중인 종이 크기가 현재 드로잉과는 다릅니다. 계속 진행하시겠습니까? - + Opening file failed 파일 열기 실패 - + Can not open file %1 for writing. Can not open file %1 for writing. - + Save DXF file DXF 파일 저장 - + DXF (*.dxf) DXF (*.dxf) - + Selected: 선택: @@ -8551,12 +8636,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_nl.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_nl.ts index 997ba8a163..3dc25bf0dc 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_nl.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_nl.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Voeg een Arch-werkbankobject in - + Insert a View of a Section Plane from Arch Workbench Voeg een aanzicht van een sectievlak in vanuit de Arch-werkbank @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Bestand - + Export Page as DXF Exporteer pagina als DXF - + Save DXF file Bewaar Dxf-bestand - + DXF (*.dxf) Dxf (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Bestand - + Export Page as SVG Exporteer pagina als DXF @@ -527,12 +527,12 @@ Change Line Attributes - Change Line Attributes + Wijzig Lijn Attributen Change the attributes of cosmetic lines and centerlines:<br>- Specify the line attributes (optional)<br>- Select one or more lines<br>- Click this tool - Change the attributes of cosmetic lines and centerlines:<br>- Specify the line attributes (optional)<br>- Select one or more lines<br>- Click this tool + Wijzig de attributen van cosmetische lijnen en hartlijnen:<br>- Specificeer de lijn attributen (optioneel)<br>- Selecteer één of meer lijnen<br>- Klik op deze tool @@ -1225,7 +1225,7 @@ Remove Prefix - Remove Prefix + Voorvoegsel verwijderen @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Sjabloon (*.svg *.dxf) + Template (*.svg) + Sjabloon (*.svg) @@ -1615,18 +1615,18 @@ Print All Pages - Print All Pages + Alle pagina's afdrukken CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projectvorm... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Voeg een rekenbladweergave in - + Insert View to a spreadsheet Weergave toevoegen aan een rekenblad @@ -1999,23 +1999,23 @@ Maak Symbool - + Create DraftView Draftweergave maken - + Create ArchView Maak Arch Weergave - + Create spreadsheet view Rekenbladweergave maken - - + + Save page to dxf Pagina in dxf opslaan @@ -2086,7 +2086,7 @@ Maak Actiefweergave - + Create CenterLine Maak een middenlijn @@ -2161,15 +2161,25 @@ Add Cosmetic Vertex Voeg een cosmetisch eindpunt toe + + + TechDraw Insert Prefix + TechDraw Voorvoegsel invoegen + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Voorvoegsel verwijderen + Remove Prefix - Remove Prefix + Voorvoegsel verwijderen @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Cirkel middellijnen + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Draad boutzijde + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Draad gatbodem + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Draad boutonderkant + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Wijzig lijneigenschappen + Change Line Attributes - Change Line Attributes + Wijzig Lijn Attributen + + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetische snijding Vertex/vertices Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetische boog + Cosmetic Arc Cosmetische boog + + + TechDraw Cosmetic Circle + TechDraw Cosmetische cirkel + Cosmetic Circle Cosmetische cirkel + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetische Drie-punts-cirkel + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetische lijn Parallel/Haaks + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Vergrendel/Ontgrendel Weergave + Lock/Unlock View Vergrendel/Ontgrendel Weergave + + + TechDraw Extend/Shorten Line + TechDraw Verleng/Verkort Lijn + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw bereken geselecteerd oppervlak + Calculate Face Area @@ -2329,7 +2414,7 @@ Customize Format - Customize Format + Formaat aanpassen @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Verkeerde selectie @@ -2765,37 +2850,37 @@ Selecteer minstens één object. - + Please select only 1 Arch Section. Selecteer slechts 1 boogsectie. - + No Arch Sections in selection. Geen boogsecties in selectie. - + Select exactly one Spreadsheet object. Selecteer exact één Spreadsheet-object. - + No Drawing View Geen tekenweergave - + Open Drawing View before attempting export to SVG. Open de tekenweergave voordat u probeert te exporteren naar SVG. - + Can not export selection Selectie kan niet worden geëxporteerd - + Page contains DrawViewArch which will not be exported. Continue? Pagina bevat DrawViewArch die niet zal worden geëxporteerd. Doorgaan? @@ -3225,7 +3310,7 @@ No %1 in Selection - No %1 in Selection + Geen %1 in selectie @@ -3277,7 +3362,7 @@ No Drawing Pages available. - No Drawing Pages available. + Geen tekenpagina's beschikbaar. @@ -3285,50 +3370,50 @@ Geen tekenpagina's in het document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Alle bestanden (*.*) - + Export Page As PDF Exporteren als PDF - + Document Name: Documentnaam: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exporteren als SVG - + Are you sure you want to continue? Weet u zeker dat u wilt doorgaan? - + Show drawing Toon tekening - + Toggle KeepUpdated Schakel KeepUpdated aan/uit @@ -3355,7 +3440,7 @@ - + Rich text editor Opgemaakte tekst-editor @@ -3400,7 +3485,7 @@ Maak een middenlijn aan - + Edit Center Line Bewerk middenlijn @@ -3596,14 +3681,14 @@ - + Selection is empty Selectie is leeg - + No object selected Geen object geselecteerd @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Selecteer twee rechte lijnen @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. een Lassymbool heeft dat kapot zou gaan. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + U kunt deze weergave niet verwijderen omdat deze een of meerdere afhankelijke weergave(s) heeft, die dan beschadigd raken. + + + - + @@ -3767,25 +3855,22 @@ een Lassymbool heeft dat kapot zou gaan. U kunt de ankerweergave van een projectiegroep niet verwijderen. - You cannot delete this view because it has a section view that would become broken. U kunt deze weergave niet verwijderen omdat deze een sectieweergave heeft die gebroken zou worden. - You cannot delete this view because it has a detail view that would become broken. U kunt deze weergave niet verwijderen omdat deze een detailweergave heeft die gebroken zou worden. - You cannot delete this view because it has a leader line that would become broken. U kunt deze weergave niet verwijderen omdat deze een leiderslijn heeft die gebroken zou worden. - + The page is not empty, therefore the following referencing objects might be lost: De pagina is niet leeg, daarom kunnen de @@ -4200,7 +4285,7 @@ Elke eenheid is ca. 0,1 mm breed If checked, system will attempt to automatically correct dimension references when the model changes. - If checked, system will attempt to automatically correct dimension references when the model changes. + Indien aangevinkt, zal het systeem proberen de dimensie referenties automatisch te corrigeren wanneer het model verandert. @@ -4570,7 +4655,7 @@ bij de arcering van een vlak met een PAT-patroon Show or hide marks at direction changes on ComplexSection lines. - Show or hide marks at direction changes on ComplexSection lines. + Toon of verberg markeringen bij richting wijzigingen van ComplexSection lijnen. @@ -4709,7 +4794,7 @@ bij de arcering van een vlak met een PAT-patroon Page Color - Page Color + Paginakleur @@ -4731,15 +4816,6 @@ bij de arcering van een vlak met een PAT-patroon Color of vertices in views Kleur van de eindpunten in weergaven - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,10 +4856,19 @@ bij de arcering van een vlak met een PAT-patroon Face color (if not transparent) Vlakkleur (indien niet transparant) + + + If checked FreeCAD will use a single color for all text and lines. + + + Indien aangevinkt, zal FreeCAD een enkele kleur gebruiken voor alle tekst en regels. + + + Monochrome - Monochrome + Monochroom @@ -5452,80 +5537,80 @@ Snel, maar resulteert in een verzameling van korte rechte lijnen. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Schakel &KeepUpdated aan/uit - + Toggle &Frames Schakel &kaders aan/uit - + &Export SVG &Exporteer SVG - + Export DXF Exporteer DXF - + Export PDF Exporteren als PDF - + Print All Pages - Print All Pages + Alle pagina's afdrukken - + Different orientation Verschillende oriëntatie - + The printer uses a different orientation than the drawing. Do you want to continue? De printer gebruikt een andere richting dan de tekening. Wil je doorgaan? - + Different paper size Ander papierformaat - + The printer uses a different paper size than the drawing. Do you want to continue? De printer gebruikt een ander papierfromaat dan de tekening. Wilt u toch doorgaan? - + Opening file failed Bestand openen mislukt - + Can not open file %1 for writing. Kan bestand '%1' niet openen om te schrijven. - + Save DXF file Bewaar Dxf-bestand - + DXF (*.dxf) Dxf (*.dxf) - + Selected: Geselecteerd: @@ -5865,7 +5950,7 @@ Do you want to continue? Object Selection - Object Selection + Objectselectie @@ -5987,7 +6072,7 @@ Do you want to continue? Check to update display after every property change. - Check to update display after every property change. + Inschakelen om het scherm te verversen na iedere wijziging van een eigenschap. @@ -6433,7 +6518,7 @@ Do you want to continue? Customize Format - Customize Format + Formaat aanpassen @@ -6773,7 +6858,7 @@ be used instead of the dimension value Use selection - Use selection + Selectie gebruiken @@ -7734,7 +7819,7 @@ met behulp van de gegeven X/Y afstand Check to update display after every property change. - Check to update display after every property change. + Inschakelen om het scherm te verversen na iedere wijziging van een eigenschap. @@ -8122,7 +8207,7 @@ met behulp van de gegeven X/Y afstand Remove Prefix - Remove Prefix + Voorvoegsel verwijderen @@ -8349,18 +8434,18 @@ met behulp van de gegeven X/Y afstand Select View - Select View + Selecteer weergave Select From Page. - Select From Page. + Selecteer van pagina. Select Page - Select Page + Pagina selecteren @@ -8373,7 +8458,7 @@ met behulp van de gegeven X/Y afstand Share View - Share View + Weergave delen @@ -8398,18 +8483,18 @@ met behulp van de gegeven X/Y afstand Select View - Select View + Selecteer weergave Select From Page. - Select From Page. + Selecteer van pagina. Select Page - Select Page + Pagina selecteren @@ -8551,14 +8636,14 @@ met behulp van de gegeven X/Y afstand Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Add a hole or shaft fit to a dimension<br> - - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> - - select shaft fit / hole fit<br> - - select the desired ISO 286 fit field using the combo box + Voeg een gat- of as-passing toe aan een afmeting<br> + - selecteer één lengte- of diameter-bemating<br> + - klik op de gereedschapsknop, een paneel opent<br> + - selecteer aspassing/gatpassing<br> + - selecteer het gewenste ISO 286 passingsveld met behulp van de combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pl.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pl.ts index 2d25c53584..d8d5747af3 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pl.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pl.ts @@ -6,7 +6,7 @@ Add Centerline between 2 Lines - Dodaj oś pomiędzy dwoma liniami + Dodaj oś pomiędzy dwiema liniami @@ -43,7 +43,7 @@ Add Centerline between 2 Lines - Dodaj oś pomiędzy dwoma liniami + Dodaj oś pomiędzy dwiema liniami @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Rysunek Techniczny - + Insert Arch Workbench Object Wstaw obiekt środowiska pracy Architektura - + Insert a View of a Section Plane from Arch Workbench Wstaw widok płaszczyzny przekroju z środowiska pracy Architektura @@ -165,7 +165,7 @@ Insert Center Line - Wstaw linię środkową + Dodaj linię środkową @@ -196,7 +196,7 @@ Add View to Clip Group - Dodaj widok dla grupy wycinków + Dodaj widok do grupy wycinków @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Plik - + Export Page as DXF Wyeksportuj stronę do formatu DXF - + Save DXF file Zapisz plik DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Plik - + Export Page as SVG Wyeksportuj stronę do formatu SVG @@ -400,7 +400,9 @@ Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Przedłuż linię kosmetyczną lub linię środkową na obu końcach:<br>- Określ długość przyrostu (opcjonalnie)<br>- Wybierz pojedynczą linię<br>- Kliknij to narzędzie + Wydłuża linię kosmetyczną lub linię środkową na obu końcach: + - Określ długość przyrostu (opcjonalnie) + - Wybierz pojedynczą linię<br>- Kliknij to narzędzie @@ -509,7 +511,7 @@ Create Horizontal Chamfer Dimension - Utwórz poziomy wymiar fazki + Utwórz poziomy wymiar sfazowania @@ -588,7 +590,9 @@ Create a sequence of aligned horizontal dimensions:<br>- Select three or more vertexes<br>- Click this tool - Utwórz sekwencję wyrównanych wymiarów poziomych:<br>- Wybierz trzy lub więcej wierzchołków<br>- Kliknij to narzędzie + Tworzy sekwencję wyrównanych wymiarów poziomych: + - Wybierz trzy lub więcej wierzchołków + - Kliknij to narzędzie @@ -601,7 +605,7 @@ Create Horizontal Coordinate Dimensions - Seria kaskadowych wymiarów poziomo + Seria wymiarów kaskadowych poziomo @@ -626,7 +630,9 @@ Create a sequence of aligned horizontal dimensions:<br>- Select three or more vertexes<br>- Click this tool - Utwórz sekwencję wyrównanych wymiarów poziomych:<br>- Wybierz trzy lub więcej wierzchołków<br>- Kliknij to narzędzie + Tworzy sekwencję wyrównanych wymiarów poziomych: + - Wybierz trzy lub więcej wierzchołków + - Kliknij to narzędzie @@ -640,7 +646,7 @@ Create Horizontal Chamfer Dimension - Utwórz poziomy wymiar fazki + Utwórz poziomy wymiar sfazowania @@ -660,7 +666,7 @@ Create Horizontal Coordinate Dimensions - Seria kaskadowych wymiarów poziomo + Seria wymiarów kaskadowych poziomo @@ -679,12 +685,14 @@ Create Arc Length Dimension - Utwórz wymiar długości łuku + Dodaj wymiar długości łuku Create an arc length dimension:<br>- Select a single arc<br>- Click this tool - Utwórz wymiar długości łuku:<br>- Wybierz pojedynczy łuk<br>- Kliknij to narzędzie + Tworzy wymiar długości łuku: + - Wybierz pojedynczy łuk + - Kliknij to narzędzie @@ -718,7 +726,7 @@ Create Oblique Coordinate Dimensions - Seria kaskadowych wymiarów ukośnie + Seria wymiarów kaskadowych ukośnie @@ -744,7 +752,9 @@ Create a sequence of aligned vertical dimensions:<br>- Select three or more vertexes<br>- Click this tool - Utwórz sekwencję wyrównanych wymiarów pionowych:<br>- Wybierz trzy lub więcej wierzchołków<br>- Kliknij to narzędzie + Tworzy sekwencję wyrównanych wymiarów pionowych: + - Wybierz trzy lub więcej wierzchołków + - Kliknij to narzędzie @@ -758,7 +768,7 @@ Create Vertical Chamfer Dimension - Utwórz pionowy wymiar fazki + Utwórz pionowy wymiar sfazowania @@ -778,7 +788,7 @@ Create Vertical Coordinate Dimensions - Seria kaskadowych wymiarów pionowo + Seria wymiarów kaskadowych pionowo @@ -797,7 +807,7 @@ Customize Format Label - Dostosuj format nazwy + Dostosuj format etykiety @@ -860,7 +870,12 @@ Add a cosmetic counter clockwise arc based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius and start angle)<br>- Select vertex 3 (end angle)<br>- Click this tool - Dodaj kosmetyczny łuk przeciwny do wskazówek zegara i oparty na trzech wierzchołkach:<br>- Podaj atrybuty linii (opcjonalne)<br>- Wybierz pierwszy wierzchołek (punkt środkowy)<br>- Wybierz drugi wierzchołek (promień i kąt początkowy)<br>- Wybierz trzeci wierzchołek (kąt końcowy)<br>- Kliknij to narzędzie + Dodaj łuk kosmetyczny przeciwny do wskazówek zegara i oparty na trzech wierzchołkach: + - Podaj atrybuty linii (opcjonalne) + - Wybierz pierwszy wierzchołek (punkt środkowy) + - Wybierz drugi wierzchołek (promień i kąt początkowy) + - Wybierz trzeci wierzchołek (kąt końcowy) + - Kliknij to narzędzie @@ -924,7 +939,9 @@ Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Przedłuż linię kosmetyczną lub linię środkową na obu końcach:<br>- Określ długość przyrostu (opcjonalnie)<br>- Wybierz pojedynczą linię<br>- Kliknij to narzędzie + Wydłuża linię kosmetyczną lub linię środkową na obu końcach: + - Określ długość przyrostu (opcjonalnie) + - Wybierz pojedynczą linię<br>- Kliknij to narzędzie @@ -1000,7 +1017,7 @@ Insert '⌀' Prefix - Wstaw przedrostek "⌀" + Dodaj przedrostek "⌀" @@ -1019,7 +1036,7 @@ Insert '⌀' Prefix - Wstaw przedrostek "⌀" + Dodaj przedrostek "⌀" @@ -1038,7 +1055,7 @@ Insert '□' Prefix - Wstaw przedrostek "〼" + Dodaj przedrostek "〼" @@ -1062,7 +1079,10 @@ Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Dodaj pomocniczą linię równoległą do innej poprzez wierzchołek:<br>- Wybierz linię<br>- Wybierz wierzchołek<br>- Kliknij to narzędzie + Dodaje geometrię pomocniczą linii równoległej do innej poprzez wierzchołek: + - Wybierz linię + - Wybierz wierzchołek + - Kliknij to narzędzie @@ -1082,7 +1102,10 @@ Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Dodaj pomocniczą linię równoległą do innej poprzez wierzchołek:<br>- Wybierz linię<br>- Wybierz wierzchołek<br>- Kliknij to narzędzie + Dodaje geometrię pomocniczą linii równoległej do innej poprzez wierzchołek: + - Wybierz linię + - Wybierz wierzchołek + - Kliknij to narzędzie @@ -1096,13 +1119,16 @@ Add Cosmetic Perpendicular Line - Dodaj kosmetyczną linię prostopadłą + Dodaj pomocniczą linię prostopadłą Add a cosmetic line perpendicular to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Dodaj kosmetyczną linię prostopadłą do innej przez wierzchołek:<br>- Wybierz linię<br>- Wybierz wierzchołek<br>- Kliknij to narzędzie + Dodaje geometrię pomocniczą linii prostopadłej do innej przez wierzchołek: + - Wybierz linię + - Wybierz wierzchołek + - Kliknij to narzędzie @@ -1211,7 +1237,7 @@ Position Section View - Pozycja widoku przekroju + Wyrównaj widoku przekroju @@ -1272,7 +1298,9 @@ Shorten a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Skróć linię kosmetyczną lub środkową na obu końcach:<br>- Podaj odległość delta (opcjonalne)<br>- Wybierz jedną linię<br>- Kliknij to narzędzie + Skraca linię kosmetyczną lub środkową na obu końcach: +- Podaj odległość delta (opcjonalne) +- Wybierz jedną linię<br>- Kliknij to narzędzie @@ -1383,7 +1411,7 @@ Add Cosmetic Intersection Vertex(es) - Dodaj wierzchołek kosmetyczny na przecięciu + Dodaj wierzchołki kosmetyczne na przecięciu @@ -1408,12 +1436,12 @@ Horizontal Extent - Zakres poziomy + Wstaw wymiar rozpiętości poziomej Vertical Extent - Zakres pionowy + Wstaw wymiar rozpiętości pionowej @@ -1478,7 +1506,7 @@ Insert Horizontal Extent Dimension - Wstaw wymiar rozpiętości poziomej + Wystawia całkowity wymiar zakresu poziomego @@ -1607,8 +1635,8 @@ - Template (*.svg *.dxf) - Szablon (*.svg *.dxf) + Template (*.svg) + Szablon (*.svg) @@ -1627,12 +1655,12 @@ CmdTechDrawProjectShape - + TechDraw Rysunek Techniczny - + Project shape... Rzutowanie kształtów ... @@ -1759,17 +1787,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Rysunek Techniczny - + Insert Spreadsheet View Wstaw widok arkusza kalkulacyjnego - + Insert View to a spreadsheet Wstaw widok do arkusza kalkulacyjnego @@ -1843,7 +1871,7 @@ Move view to top of stack - Przesuwa widok na górę stosu + Przesuń widok na górę stosu @@ -1856,7 +1884,7 @@ Move view up one level - Przesuwa widok w górę o jeden poziom + Przesuń widok w górę o jeden poziom @@ -1869,7 +1897,7 @@ Create a Surface Finish Symbol - Utwórz symbol wykończenia powierzchni + Dodaj symbol wykończenia powierzchni @@ -1932,7 +1960,7 @@ Insert Vertical Extent Dimension - Wstaw wymiar rozpiętości pionowej + Wystawia całkowity wymiar zakresu pionowego @@ -2005,23 +2033,23 @@ Utwórz symbol - + Create DraftView Utwórz widok rysunku roboczego - + Create ArchView Utwórz widok środowiska pracy Architektura - + Create spreadsheet view Utwórz widok arkusza kalkulacyjnego - - + + Save page to dxf Zapisz stronę do pliku dxf @@ -2092,7 +2120,7 @@ Utwórz aktywny widok - + Create CenterLine Utwórz linię środkową @@ -2167,10 +2195,20 @@ Add Cosmetic Vertex Dodaj wierzchołek kosmetyczny + + + TechDraw Insert Prefix + Rysunek Techniczny Wstaw prefiks + Insert Prefix - Wstaw przedrostek + Dodaj przedrostek + + + + TechDraw Remove Prefix + Rysunek Techniczny Usuń prefiks @@ -2255,77 +2293,152 @@ Create Arc Length Dim - Utwórz wymiar długości łuku + Dodaj wymiar długości łuku + + + + TechDraw Hole Circle + TechDraw Okrąg z otworami Bolt Circle Centerlines Osie otworów w okręgu + + + TechDraw Circle Centerlines + Rysunek Techniczny Oś otworu + Circle Centerlines Osie okręgu + + + TechDraw Thread Hole Side + Otwór gwintowany w Rysunku Technicznym, widok z boku + Cosmetic Thread Hole Side Widok z boku kosmetycznego gwintu otworu + + + TechDraw Thread Bolt Side + Rysunek Techniczny Gwint śruby, widok z boku + Cosmetic Thread Bolt Side Widok z boku kosmetycznego gwintu śruby + + + TechDraw Thread Hole Bottom + Rysunek Techniczny Otwór gwintowany, widok od dołu + Cosmetic Thread Hole Bottom Widok od dołu kosmetycznego gwintu otworu + + + TechDraw Thread Bolt Bottom + Rysunek Techniczny Gwint śruby, widok od dołu + Cosmetic Thread Bolt Bottom Widok od dołu kosmetycznego gwintu śruby + + + TechDraw Change Line Attributes + Rysunek Techniczny Zmień atrybuty linii + Change Line Attributes Zmień atrybuty linii + + + TechDraw Cosmetic Intersection Vertex(es) + Rysunek Techniczny Wierzchołki kosmetyczne na przecięciu + Cosmetic Intersection Vertex(es) Kosmetyczne wierzchołki na przecięciach + + + TechDraw Cosmetic Arc + Rysunek Techniczny Łuk kosmetyczny + Cosmetic Arc Łuk pomocniczy + + + TechDraw Cosmetic Circle + Rysunek Techniczny Okrąg kosmetyczny + Cosmetic Circle Okrąg pomocniczy + + + TechDraw Cosmetic Circle 3 Points + Rysunek Techniczny Okrąg kosmetyczny oparty na trzech punktach + Cosmetic Circle 3 Points Kosmetyczny okrąg oparty na 3 punktach + + + TechDraw Cosmetic Line Parallel/Perpendicular + Rysunek Techniczny Linia pomocnicza równolegle / prostopadle + Cosmetic Line Parallel/Perpendicular Linia pomocnicza równolegle / prostopadle + + + TechDraw Lock/Unlock View + Rysunek Techniczny Zablokuj / Odblokuj widok + Lock/Unlock View Zablokuj / Odblokuj widok + + + TechDraw Extend/Shorten Line + Rysunek Techniczny Wydłuż / skróć linię + Extend/Shorten Line - Wydłuż/Skróć linię + Wydłuż / skróć linię + + + + TechDraw calculate selected area + Rysunek Techniczny Oblicz obszar wybranych powierzchni @@ -2633,9 +2746,9 @@ - - - + + + Wrong selection Nieprawidłowy wybór @@ -2771,37 +2884,37 @@ Wybierz co najmniej jeden obiekt. - + Please select only 1 Arch Section. Proszę wybrać tylko jeden przekrój środowiska Architektura. - + No Arch Sections in selection. Brak przekrojów środowiska Architektura w zaznaczeniu. - + Select exactly one Spreadsheet object. Wybierz dokładnie jeden obiekt Arkusza. - + No Drawing View Brak widoku rysunku - + Open Drawing View before attempting export to SVG. Otwórz widok rysunku przed próbą eksportu do SVG. - + Can not export selection Nie można wykonać eksportu zaznaczonych obiektów - + Page contains DrawViewArch which will not be exported. Continue? Strona zawiera obiekty DrawViewArch, które nie zostaną wyeksportowane. Kontynuować? @@ -3291,50 +3404,50 @@ Brak rysunków w dokumencie. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Wszystkie pliki (*.*) - + Export Page As PDF Wyeksportuj stronę do formatu PDF - + Document Name: Nazwa dokumentu: - + SVG (*.svg) SVG(*.svg) - + Export page as SVG Eksportuj stronę do formatu SVG - + Are you sure you want to continue? Czy na pewno chcesz kontynuować? - + Show drawing Pokaż rysunek - + Toggle KeepUpdated Włącz / wyłącz automatyczną aktualizację @@ -3361,7 +3474,7 @@ - + Rich text editor Edytor tekstu sformatowanego @@ -3406,7 +3519,7 @@ Utwórz linię środkową - + Edit Center Line Edytuj linię środkową @@ -3586,7 +3699,7 @@ TechDraw Create Arc Length Dimension - Rysunek Techniczny utwórz wymiar długości łuku + Rysunek Techniczny dodaj wymiar długości łuku @@ -3602,14 +3715,14 @@ - + Selection is empty Obszar zaznaczenia nie zawiera obiektów - + No object selected Nie wybrano obiektu @@ -3634,12 +3747,12 @@ W wyborze brak ścian. - + TechDraw Thread Hole Side Otwór gwintowany w Rysunku Technicznym, widok z boku - + Please select two straight lines Proszę wybrać dwie linie proste @@ -3751,16 +3864,19 @@ it has a weld symbol that would become broken. zawiera symbol spoiny który zostałby uszkodzony. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Nie można usunąć tego widoku, ponieważ ma on co najmniej jeden obiekt zależny, który zostałby uszkodzony. + + + - + @@ -3773,25 +3889,22 @@ zawiera symbol spoiny który zostałby uszkodzony. Nie można usunąć "Kotwicy widoku" grupy projekcji. - You cannot delete this view because it has a section view that would become broken. Nie możesz usunąć tego widoku, ponieważ ma on widok sekcji, który zostałby uszkodzony. - You cannot delete this view because it has a detail view that would become broken. Nie możesz usunąć tego widoku, ponieważ ma on "widok części", który zostałby uszkodzony. - You cannot delete this view because it has a leader line that would become broken. Nie możesz usunąć tego widoku, ponieważ ma on linię odniesienia, która zostałaby uszkodzona. - + The page is not empty, therefore the following referencing objects might be lost: Strona nie jest pusta, więc @@ -4019,7 +4132,7 @@ Kąt, wykończenie powierzchni, baza Adds the 'Field Weld' symbol (flag) at the kink in the leader line - Dodaj symbol 'spawać na miejscu' (flaga) + Dodaj symbol "Spawać na montażu"; (flaga) na węźle w linii odniesienia @@ -4254,28 +4367,28 @@ Zmieniaj tylko wtedy, gdy wiesz co robisz! Max SVG Hatch Tiles - Maksymalne kreskowanie kafelków SVG + Maksymalna ilość kafelków SVG do kreskowania Limit of 64x64 pixel SVG tiles used to hatch a single face. For large scalings you might get an error about to many SVG tiles. Then you need to increase the tile limit. - Limit 64x64 pikseli SVG fragmentów używany do kreskowania jednej płaszczyzny. -W przypadku dużych skali może dojść do błędu zbyt wielu SVG tiles. -Następnie musisz zwiększyć limit fragmentów. + Limit kafelków SVG (64 × 64 pikseli) używanych do kreskowania pojedynczej powierzchni. +W przypadku dużych rozmiarów może pojawić się błąd dotyczący zbyt dużej liczby kafelków SVG. +W takim przypadku należy zwiększyć limit kafelków. Max PAT Hatch Segments - Maksymalne kreskowanie segmentów PAT + Maksymalna ilość kafelków PAT do kreskowania Maximum hatch line segments to use when hatching a face with a PAT pattern - Maksymalne kreskowanie linii segmentów do użycia -przy kreskowanie ściany jest ze wzorem PAT + Maksymalna dozwolona liczba segmentów linii kreskowania +podczas kreskowania powierzchni wzorem PAT @@ -4386,7 +4499,7 @@ przy kreskowanie ściany jest ze wzorem PAT Section Cut Surface - Przekrój przeciętej powierzchni + Wygląd przeciętej powierzchni @@ -4426,12 +4539,12 @@ przy kreskowanie ściany jest ze wzorem PAT Detail View Outline Shape - Widok szczegółów kształtu konturu + Kształt konturu widoku szczegółu Outline shape for detail views - Kształt konturu dla widoków szczegółowych + Kształt konturu dla widoku szczegółów @@ -4452,7 +4565,7 @@ przy kreskowanie ściany jest ze wzorem PAT Detail Highlight Style - Styl podświetlenia szczegółów + Styl podświetlenia szczegółu @@ -4467,7 +4580,7 @@ przy kreskowanie ściany jest ze wzorem PAT Balloon Shape - Kształt balonika + Kształt dymka @@ -4512,7 +4625,7 @@ przy kreskowanie ściany jest ze wzorem PAT Balloon Leader End - Zakończenie linii odniesienia balonika + Zakończenie linii odniesienia dymka @@ -4527,7 +4640,7 @@ przy kreskowanie ściany jest ze wzorem PAT Ballon Leader Kink Length - Długość zagięcia linii odniesienia balonika + Długość zagięcia linii odniesienia dymka @@ -4542,7 +4655,7 @@ przy kreskowanie ściany jest ze wzorem PAT Balloon Orthogonal Triangle - Trójkąt ortogonalny balonika + Trójkąt ortogonalny dymka @@ -4557,7 +4670,7 @@ przy kreskowanie ściany jest ze wzorem PAT Show arc center marks in views - Pokaż zaznaczenie centrum łuku w widoku + Pokaż znak środka łuku w widoku @@ -4711,7 +4824,7 @@ przy kreskowanie ściany jest ze wzorem PAT Light on dark - Jasny na ciemnym + Jasne na ciemnym @@ -4738,15 +4851,6 @@ przy kreskowanie ściany jest ze wzorem PAT Color of vertices in views Kolor wierzchołków w widoku - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Jeśli opcja jest zaznaczona, FreeCAD użyje jednego koloru dla wszystkich tekstów i linii. Jeśli opcja nie jest zaznaczona, FreeCAD spróbuje użyć jaśniejszych wersji preferowanych kolorów. - - - Detail Highlight @@ -4787,6 +4891,15 @@ przy kreskowanie ściany jest ze wzorem PAT Face color (if not transparent) Kolor ściany (jeżeli nie jest przezroczysta) + + + If checked FreeCAD will use a single color for all text and lines. + + + Jeśli opcja jest zaznaczona, program FreeCAD będzie używać jednego koloru dla wszystkich tekstów i linii. + + + Monochrome @@ -4809,7 +4922,7 @@ przy kreskowanie ściany jest ze wzorem PAT Standard and Style - Standard i Styl + Standard i styl @@ -5008,14 +5121,14 @@ Wartość x szerokość linii wyznacza odstęp między wierszami. Update With 3D (global policy) - Aktualizuj z widokiem 3D (polityka globalna) + Aktualizuj za widokiem 3D (polityka globalna) Whether or not a page's 'Keep Updated' property can override the global 'Update With 3D' parameter - Tak czy owak strona właściwości "Zachowaj aktualizację" -może zastąpić globalny parametr "Aktualizuj z 3D" + Tak czy owak, strona właściwości "Włącz / wyłącz automatyczną aktualizację" +może zastąpić globalny parametr "Aktualizuj z widokiem 3D (polityka globalna)" @@ -5460,80 +5573,80 @@ Szybkie, ale wynikiem jest kolekcja krótkich linii prostych. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Włącz / wyłącz &automatyczną aktualizację - + Toggle &Frames - Włącz / wyłącz &ramki + Włącz / wyłącz wyświetlanie &ramek - + &Export SVG &Eksportuj do formatu SVG - + Export DXF Eksportuj do formatu DXF - + Export PDF Eksportuj do formatu PDF - + Print All Pages Drukuj wszystkie strony - + Different orientation Odmienna orientacja - + The printer uses a different orientation than the drawing. Do you want to continue? Drukarka używa inną orientacje strony niż rysunek. Czy chcesz kontynuować? - + Different paper size Odmienny rozmiar papieru - + The printer uses a different paper size than the drawing. Do you want to continue? Drukarka używa innego rozmiaru papieru niż rysunek. Czy chcesz kontynuować? - + Opening file failed Otwarcie pliku nie powiodło się - + Can not open file %1 for writing. Nie można otworzyć pliku %1 do zapisu. - + Save DXF file Zapisz plik DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Zaznaczone: @@ -6371,7 +6484,7 @@ Czy chcesz kontynuować? Centerline - Linia środkowa + Linie środka @@ -7536,7 +7649,7 @@ przy użyciu podanego odstępu X/Y Cosmetic - Kosmetycznie + Kosmetyczne @@ -8041,7 +8154,7 @@ przy użyciu podanego odstępu X/Y loose fit - luźne pasowanie + pasowanie luźne @@ -8151,7 +8264,7 @@ przy użyciu podanego odstępu X/Y Insert Horizontal Extent Dimension - Wstaw wymiar rozpiętości poziomej + Wystawia całkowity wymiar zakresu poziomego @@ -8199,7 +8312,7 @@ przy użyciu podanego odstępu X/Y Move view to top of stack - Przesuwa widok na górę stosu + Przesuń widok na górę stosu @@ -8207,7 +8320,7 @@ przy użyciu podanego odstępu X/Y Move view up one level - Przesuwa widok w górę o jeden poziom + Przesuń widok w górę o jeden poziom @@ -8215,7 +8328,7 @@ przy użyciu podanego odstępu X/Y Insert Vertical Extent Dimension - Wstaw wymiar rozpiętości pionowej + Wystawia całkowity wymiar zakresu pionowego @@ -8450,7 +8563,7 @@ przy użyciu podanego odstępu X/Y Replace References with Current Selection - Zamień odwołania na bieżący wybór + Zamień odwołania na aktualnie wybrane @@ -8532,7 +8645,7 @@ przy użyciu podanego odstępu X/Y Axonometric length dimension - Wymiar długości w aksonometrii + Wstaw wymiar długości w aksonometrii @@ -8553,25 +8666,25 @@ przy użyciu podanego odstępu X/Y Add hole or shaft fit - Dodaj pasowanie otworu lub wału + Dodaj pasowanie otworu / wału Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Dodaj pasowanie otworu lub wału do wymiaru<br> - - wybierz jeden wymiar długości lub wymiar średnicy<br> - - kliknij przycisk narzędzia, otworzy się panel<br> - - wybierz pasowanie wału / pasowanie otworu<br> - - wybierz żądane pole pasowania ISO 286 za pomocą pola wyboru + Dodaj wymiar pasowanie otworu lub wału + - wybierz jeden wymiar długości lub średnicy + - kliknij przycisk narzędzia, otworzy się panel zadań narzędzia + - wybierz pasowanie wału / pasowanie otworu + - wybierz żądane ustawienie ISO 286 za pomocą pola wyboru loose fit - luźne pasowanie + pasowanie luźne @@ -8581,7 +8694,7 @@ przy użyciu podanego odstępu X/Y press fit - pasowanie skurczowe + pasowanie na wcisk diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-BR.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-BR.ts index a809d331f0..0983489993 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-BR.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-BR.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - Desenhos Técnicos - + Insert Arch Workbench Object Inserir objeto da bancada Arch - + Insert a View of a Section Plane from Arch Workbench Inserir uma vista de um plano de corte da bancada Arch @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Arquivo - + Export Page as DXF Exportar página como DXF - + Save DXF file Salvar arquivo DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Arquivo - + Export Page as SVG Exportar Página como SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Modelo (*.svg *.dxf) + Template (*.svg) + Modelo (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - Desenhos Técnicos - + Project shape... Projetar forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - Desenhos Técnicos - + Insert Spreadsheet View Inserir vista da Planilha - + Insert View to a spreadsheet Inserir vista em uma planilha @@ -1999,23 +1999,23 @@ Criar símbolo - + Create DraftView Criar vista Draft - + Create ArchView Criar vista Arch - + Create spreadsheet view Criar vista de planilha - - + + Save page to dxf Salvar página para dxf @@ -2086,7 +2086,7 @@ Criar vista ativa - + Create CenterLine Criar linha central @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Adicionar Vértice Cosmético + + + TechDraw Insert Prefix + Remover Prefixo no Desenho Técnico + Insert Prefix Inserir Prefixo + + + TechDraw Remove Prefix + Remover Prefixo no Desenho Técnico + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + Desenhe linhas centrais no círculo + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + Lado do furo da rosca no desenho técnico + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + Lado do furo da rosca no desenho técnico + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + Fundo do furo da rosca no desenho técnico + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + Fundo da rosca do parafuso no desenho técnico + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + Alterar Atributos da Linha do desenho técnico + Change Line Attributes Alterar Atributos da Linha + + + TechDraw Cosmetic Intersection Vertex(es) + Vértices cosméticos de Intersecção de Desenho Técnico + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + Arco cosmético de Desenho Técnico + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + Círculo cosmético de Desenho Técnico + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + Círculo Cosmético de 3 Pontos de Desenho Técnico + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + Linha cosmética Paralela/Perpendicular de Desenho Técnico + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + Bloquear/Desbloquear vista de Desenho Técnico + Lock/Unlock View Travar/Destravar Vista + + + TechDraw Extend/Shorten Line + Extender/Encolher Linha de Desenho Técnico + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + Calcular área selecionada de Desenho Técnico + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Seleção errada @@ -2765,37 +2850,37 @@ Selecione pelo menos um objeto. - + Please select only 1 Arch Section. Por favor selecione apenas 1 plano de corte Arch. - + No Arch Sections in selection. Nenhum plano de corte na seleção. - + Select exactly one Spreadsheet object. Selecione exatamente um objeto de planilha. - + No Drawing View Nenhuma Folha de desenho - + Open Drawing View before attempting export to SVG. Abra a folha de desenho antes de tentar a exportação de SVG. - + Can not export selection Não é possível exportar a seleção - + Page contains DrawViewArch which will not be exported. Continue? A página contém vistas de tipo DrawViewArch que não serão exportados. Continuar? @@ -3285,50 +3370,50 @@ Não há páginas no documento. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Todos os arquivos (*.*) - + Export Page As PDF Exportar página para PDF - + Document Name: Nome do documento: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportar página para SVG - + Are you sure you want to continue? Tem certeza que deseja continuar? - + Show drawing Mostrar o desenho - + Toggle KeepUpdated Alternar atualização automática @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de texto @@ -3400,7 +3485,7 @@ Criar linha central - + Edit Center Line Editar linha central @@ -3596,14 +3681,14 @@ - + Selection is empty A seleção está vazia - + No object selected Nenhum objeto selecionado @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side Lado do furo da rosca no desenho técnico - + Please select two straight lines Por favor selecione duas linhas retas @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. ela tem um símbolo de solda que quebraria. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Você não pode excluir esta visão porque ela tem uma ou mais visualizações dependentes que se tornariam quebradas. + + + - + @@ -3767,25 +3855,22 @@ ela tem um símbolo de solda que quebraria. Não pode excluir a vista geradora de um grupo de projeções. - You cannot delete this view because it has a section view that would become broken. Não é possível excluir esta vista porque ela tem uma vista de corte associada que ficaria quebrada. - You cannot delete this view because it has a detail view that would become broken. Você não pode excluir esta vista porque ela tem uma vista detalhada associada que ficaria quebrada. - You cannot delete this view because it has a leader line that would become broken. Não é possível excluir esta vista porque ela possui uma linha de anotações associada que ficaria quebrada. - + The page is not empty, therefore the following referencing objects might be lost: A página não está vazia, portanto os @@ -4731,15 +4816,6 @@ ao hachurar uma face com um padrão PAT Color of vertices in views Cor dos vértices em vistas - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ ao hachurar uma face com um padrão PAT Face color (if not transparent) Cor das faces (se não forem transparentes) + + + If checked FreeCAD will use a single color for all text and lines. + + + Se marcado, o FreeCAD usará uma única cor para todos os textos e linhas. + + + Monochrome @@ -5452,80 +5537,80 @@ Rápido, mas produz uma coleção de linhas retas simples. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Alternar manter atualizado &k - + Toggle &Frames Alternar Quadros &F - + &Export SVG &Exportar para SVG - + Export DXF Exportar para DXF - + Export PDF Exportar PDF - + Print All Pages Imprimir todas as páginas - + Different orientation Orientação diferente - + The printer uses a different orientation than the drawing. Do you want to continue? A impressora utiliza uma orientação diferente do que o desenho. Deseja continuar? - + Different paper size Tamanho de papel diferente - + The printer uses a different paper size than the drawing. Do you want to continue? A impressora usa um tamanho de papel diferente do que o desenho. Deseja continuar? - + Opening file failed Falha ao abrir arquivo - + Can not open file %1 for writing. Não é possível abrir o arquivo '%1' para a gravação. - + Save DXF file Salvar arquivo DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Selecionado: @@ -8551,14 +8636,14 @@ usando o espaçamento X/Y fornecido Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Add a hole or shaft fit to a dimension<br> - - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> - - select shaft fit / hole fit<br> - - select the desired ISO 286 fit field using the combo box + Adicione um ajuste mecânico á uma cota de eixo ou furo<br> + - selecione uma cota de comprimento ou diâmetro<br> + - clique no botão de Ferramentas, um painel abre<br> + - selecione ajuste de eixo / ajuste de furo<br> + - selecione o campo de ajustes ISO 286 desejado utilizando a caixa de combo diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-PT.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-PT.ts index dc0ce6ecef..fea74d771d 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-PT.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_pt-PT.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw (Desenhos Técnicos) - + Insert Arch Workbench Object Inserir uma vista de um plano de corte da bancada de trabalho Arquitetura - + Insert a View of a Section Plane from Arch Workbench Inserir uma vista de um plano de corte da bancada de trabalho Arquitetura @@ -222,7 +222,7 @@ Insert Complex Section - Insert Complex Section + Inserir secção complexa @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Ficheiro - + Export Page as DXF Exportar página como DXF - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Ficheiro - + Export Page as SVG Exportar página como SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Modelo (*.svg *.dxf) + Template (*.svg) + Modelo (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw (Desenhos Técnicos) - + Project shape... Projetar forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw (Desenhos Técnicos) - + Insert Spreadsheet View Inserir Vista de Tabela (folha de cálculo) - + Insert View to a spreadsheet Inserir vista numa Tabela (folha de cálculo) @@ -1999,23 +1999,23 @@ Criar símbolo - + Create DraftView Create DraftView - + Create ArchView Criar Vista de Arquitetura - + Create spreadsheet view Criar vista de folha de cálculo - - + + Save page to dxf Salvar folha para dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Criar LinhadeEixo @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Adicionar Vértice Cosmético + + + TechDraw Insert Prefix + Inserir prefixo TechDraw + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + Remover TechDraw Prefixo + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw circular linhas centrais + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Seleção errada @@ -2765,37 +2850,37 @@ Selecione pelo menos um objeto. - + Please select only 1 Arch Section. Por favor selecione apenas 1 seção de arquitetura. - + No Arch Sections in selection. Nenhuma seção de arquitetura na seleção. - + Select exactly one Spreadsheet object. Selecione apenas um objeto folha de cálculo. - + No Drawing View Nenhuma Folha de desenho - + Open Drawing View before attempting export to SVG. Abra a folha de desenho antes de tentar a exportação de SVG. - + Can not export selection Não é possível exportar a seleção - + Page contains DrawViewArch which will not be exported. Continue? A página contém vistas de arquitetura que não serão exportados. Continuar? @@ -3285,50 +3370,50 @@ Não há folhas de desenho no documento. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Todos os Ficheiros (*. *) - + Export Page As PDF Exportar folha como PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportar folha como SVG - + Are you sure you want to continue? Tem certeza que deseja continuar? - + Show drawing Mostrar folha de desenho - + Toggle KeepUpdated Alternar atualização automática @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de Rich text @@ -3400,7 +3485,7 @@ Criar linha de eixo - + Edit Center Line Editar linha de eixo @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. ela tem um símbolo de soldadura que se quebrará. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ ela tem um símbolo de soldadura que se quebrará. Não pode apagar a vista âncora de um grupo de projeção. - You cannot delete this view because it has a section view that would become broken. Não é possível apagar esta vista porque ela tem uma vista de corte que ficaria quebrada. - You cannot delete this view because it has a detail view that would become broken. Não é possível apagar esta vista porque ela tem uma vista de detalhe que se quebrará. - You cannot delete this view because it has a leader line that would become broken. Não é possível apagar esta vista porque ela tem uma linha de chamada que ficaria quebrada. - + The page is not empty, therefore the following referencing objects might be lost: A página não está vazia, portanto os @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Cor da face (se não transparente) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,79 +5537,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Alternar &manter atualizado - + Toggle &Frames Alternar &Molduras - + &Export SVG &Exportar SVG - + Export DXF Exportar DXF - + Export PDF Exportar PDF - + Print All Pages Print All Pages - + Different orientation Orientação diferente - + The printer uses a different orientation than the drawing. Do you want to continue? A impressora utiliza uma orientação diferente da folha de desenho. Deseja continuar? - + Different paper size Tamanho de papel diferente - + The printer uses a different paper size than the drawing. Do you want to continue? A impressora usa um tamanho de papel diferente da folha de desenho. Deseja continuar? - + Opening file failed Falha ao abrir ficheiro - + Can not open file %1 for writing. Não é possível abrir o ficheiro %1 para a escrita. - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) - + Selected: Selecionado: @@ -8550,12 +8635,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ro.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ro.ts index 8d24b8b65b..fff524b4ee 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ro.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ro.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Desen tehnic - + Insert Arch Workbench Object Insert Arch Workbench Object - + Insert a View of a Section Plane from Arch Workbench Insert a View of a Section Plane from Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fişier - + Export Page as DXF Export Page as DXF - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fişier - + Export Page as SVG Export Page as SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Template (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw Desen tehnic - + Project shape... Proiectează forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Desen tehnic - + Insert Spreadsheet View Insert Spreadsheet View - + Insert View to a spreadsheet Insert View to a spreadsheet @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Save page to dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Add Cosmetic Vertex + + + TechDraw Insert Prefix + TechDraw Inserare Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Eliminare prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + Centrul de cerc TechDraw + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Bolt Discutie + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Bolt Discutie + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Bolt Discutie + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Atribute + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Intersecție Cosmetică Vertex(uri) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + Arc Cosmetic TechDraw + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + Cerc de cosmetice echDraw + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 puncte + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Linie Cosmetică Paralel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + Vizualizare TechDraw Lock/Deblocare + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Scurtătură linie + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate aria selectata + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Selecţie greşită @@ -2765,37 +2850,37 @@ Selectaţi cel puţin un obiect. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Selectați doar un singur obiect tip foaie de calcul Spreadsheet. - + No Drawing View Nu vezi desen în plan - + Open Drawing View before attempting export to SVG. Deschide vederea în plan înainte de a încerca exportul ca SVG. - + Can not export selection Can not export selection - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Toate fișierele (*.*) - + Export Page As PDF Exportă pagina ca PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportă pagina ca SVG - + Are you sure you want to continue? Are you sure you want to continue? - + Show drawing Arată desenul - + Toggle KeepUpdated Activează/dezactivează KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor Rich text editor @@ -3400,7 +3485,7 @@ Create Center Line - + Edit Center Line Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + Dacă este verificat, FreeCAD va utiliza o singură culoare pentru toate textul și liniile. + + + Monochrome @@ -5452,79 +5537,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Comuta & actualizează - + Toggle &Frames Comutare & cadre - + &Export SVG & Export SVG - + Export DXF Exportă PDF - + Export PDF Exportă PDF - + Print All Pages Print All Pages - + Different orientation Orientare diferită - + The printer uses a different orientation than the drawing. Do you want to continue? Imprimanta utilizează o orientare diferită decât desenul. Doriţi să continuaţi? - + Different paper size Hârtie de dimensiune diferită - + The printer uses a different paper size than the drawing. Do you want to continue? Imprimanta utilizează o altă dimensiune de hârtie decât desenul. Doriţi să continuaţi? - + Opening file failed Deschiderea fișierului a eșuat - + Can not open file %1 for writing. Imposibil de deschis fișierul %1 la scriere. - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) - + Selected: Selectat: @@ -8550,14 +8635,14 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Add a hole or shaft fit to a dimension<br> - - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> - - select shaft fit / hole fit<br> - - select the desired ISO 286 fit field using the combo box + Adaugă o gaură sau un arbore potrivit la dimensiunea<br> + - selectează o lungime sau dimensiunea diametrului<br> + - fă clic pe butonul sculei, un panou deschide<br> + - selectează potrivire de arbore/gaură<br> + - selectează câmpul ISO 286 dorit folosind caseta combo diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ru.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ru.ts index a0e97d650f..b1bb615f2d 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ru.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_ru.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw Технический чертёж - + Insert Arch Workbench Object Вставить Объект верстака Arch - + Insert a View of a Section Plane from Arch Workbench Вставить сечение Вида из верстака Arch @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Файл - + Export Page as DXF Экспорт листа в DXF - + Save DXF file Сохранить файл в DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Файл - + Export Page as SVG Экспорт листа в SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Шаблон (*.svg *.dxf) + Template (*.svg) + Шаблон (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw Технический чертёж - + Project shape... Проекция фигуры... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw Технический чертёж - + Insert Spreadsheet View Вставить вид Электронной Таблицы - + Insert View to a spreadsheet Вставить Вид электронной таблицы @@ -1999,23 +1999,23 @@ Создать Знак - + Create DraftView Создать Draft Вид - + Create ArchView Создать Arch Вид - + Create spreadsheet view Создать электронную таблицу - - + + Save page to dxf Сохранить лист в DXF формате @@ -2086,7 +2086,7 @@ Создать активный вид - + Create CenterLine Создать центральную линию @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Добавить вспомогательную вершину + + + TechDraw Insert Prefix + TechDraw. Вставить префикс + Insert Prefix Вставить префикс + + + TechDraw Remove Prefix + TechDraw. Удалить префикс + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Создать размерную длину дуги + + + TechDraw Hole Circle + Чертёж. круг отверстия + Bolt Circle Centerlines Осевые линии окружности болтов + + + TechDraw Circle Centerlines + TechDraw. Осевые линии круга + Circle Centerlines Осевые линии круга + + + TechDraw Thread Hole Side + Чертёж, Сторона отверстия резьбы + Cosmetic Thread Hole Side Сторона отверстия косметической резьбы + + + TechDraw Thread Bolt Side + TechDraw резьба со стороны болта + Cosmetic Thread Bolt Side Косметическая резьба со стороны болта + + + TechDraw Thread Hole Bottom + TechDraw Нижняя часть отверстия для резьбы + Cosmetic Thread Hole Bottom Нижняя часть отверстия для косметической резьбы + + + TechDraw Thread Bolt Bottom + TechDraw Нижняя часть болта с резьбой + Cosmetic Thread Bolt Bottom Косметическая нижняя часть болта с резьбой + + + TechDraw Change Line Attributes + TechDraw Изменить атрибуты линии + Change Line Attributes Изменить свойства линии + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Вершина(ы) пересечения косметических объектов + Cosmetic Intersection Vertex(es) Вершины косметического пересечения вершин + + + TechDraw Cosmetic Arc + TechDraw Косметическая дуга + Cosmetic Arc Косметическая дуга + + + TechDraw Cosmetic Circle + TechDraw Косметический круг + Cosmetic Circle Косметический круг + + + TechDraw Cosmetic Circle 3 Points + TechDraw Косметический круг по 3-м точкам + Cosmetic Circle 3 Points Косметический круг 3 точки + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Косметическая линия, параллельная/перпендикулярная + Cosmetic Line Parallel/Perpendicular Косметическая линия параллельная/перпендикулярная + + + TechDraw Lock/Unlock View + TechDraw блокировка/разблокировка просмотра + Lock/Unlock View Заблокировать/разблокировать вид + + + TechDraw Extend/Shorten Line + TechDraw Удлинить/укоротить линию + Extend/Shorten Line Расширение/Сокращение линии + + + TechDraw calculate selected area + TechDraw рассчитать выбранную область + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Неправильный выбор @@ -2765,37 +2850,37 @@ Выберите хотя бы один объект. - + Please select only 1 Arch Section. Выберите только одно архитектурное сечение. - + No Arch Sections in selection. Нет арочного сечения в выборе - + Select exactly one Spreadsheet object. Выберите только один объект типа Таблица. - + No Drawing View Нет видов чертежа - + Open Drawing View before attempting export to SVG. Открыть вид чертежа перед экспортом в SVG. - + Can not export selection Невозможно экспортировать выбранное - + Page contains DrawViewArch which will not be exported. Continue? Страница содержит DrawViewArch, который не будет экспортирован. Продолжить? @@ -3285,50 +3370,50 @@ В документе нет страниц чертежа. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Все файлы (*.*) - + Export Page As PDF Экспорт листа в PDF - + Document Name: Название документа: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Экспорт листа в SVG - + Are you sure you want to continue? Вы уверены, что хотите продолжить? - + Show drawing Показать чертёж - + Toggle KeepUpdated Вкл/Выкл обновление @@ -3355,7 +3440,7 @@ - + Rich text editor Редактор форматированного текста @@ -3400,7 +3485,7 @@ Создать центральную линию - + Edit Center Line Изменить центральную линию @@ -3596,14 +3681,14 @@ - + Selection is empty Пустое выделение - + No object selected Объект не выбран @@ -3628,12 +3713,12 @@ Нет граней в выборке. - + TechDraw Thread Hole Side Чертёж, Сторона отверстия резьбы - + Please select two straight lines Пожалуйста, выберите две прямые линии @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. содержит символ сварки, который может быть повреждён. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Вы не можете удалить этот вид, потомучто это повредит один или более других зависимых от него видов. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. Вы не можете удалить вид якоря группы проекции. - You cannot delete this view because it has a section view that would become broken. Вы не можете удалить этот вид, потому что он имеет вид сечения, который будет нарушен. - You cannot delete this view because it has a detail view that would become broken. Вы не можете удалить этот вид, потому что он имеет выносной элемент, который будет нарушен. - You cannot delete this view because it has a leader line that would become broken. Невозможно удалить этот вид, так как он имеет линию выноски, которая может быть разорвана. - + The page is not empty, therefore the following referencing objects might be lost: Страница не пуста, поэтому @@ -4727,15 +4812,6 @@ when hatching a face with a PAT pattern Color of vertices in views Цвет вершин в представлениях - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Если флажок установлен, FreeCAD будет использовать один цвет для всего текста и линий. Если флажок не установлен, FreeCAD попытается использовать более светлые версии предпочтительных цветов. - - - Detail Highlight @@ -4776,6 +4852,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Цвет грани (если не прозрачный) + + + If checked FreeCAD will use a single color for all text and lines. + + + Если выбрано, FreeCAD будет использовать один цвет для всех текстов и линий. + + + Monochrome @@ -5448,81 +5533,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Вкл/Выкл обновление - + Toggle &Frames Вкл/Выкл отображения маркеров редактируемых полей рамки - + &Export SVG &Экспорт в SVG - + Export DXF Экспорт в DXF - + Export PDF Экспортировать в PDF - + Print All Pages Распечатать все страницы - + Different orientation Отличающаяся ориентация - + The printer uses a different orientation than the drawing. Do you want to continue? Принтер использует отличающуюся от чертежа ориентацию бумаги. Хотите продолжить? - + Different paper size Отличающийся формат листа - + The printer uses a different paper size than the drawing. Do you want to continue? Принтер использует отличающийся от чертежа формат листа. Хотите продолжить? - + Opening file failed Ошибка при открытии файла - + Can not open file %1 for writing. Не удалось открыть файл %1 для записи. - + Save DXF file Сохранить файл в DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Выбрано: @@ -8547,14 +8632,14 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box - Добавьте отверстие или посадку вала к размеру<br> + Добавить посадку в системе отверстия или вала к размеру<br> - выберите один размер длины или диаметра<br> - нажмите кнопку инструмента, откроется панель<br> - - выберите посадку на вал / посадку в отверстие<br> - - выберите нужное поле соответствия ISO 286, используя поле со списком + - выберите тип посадки на вал / в отверстие<br> + - выберите нужное поле допуска по ISO 286 из списка @@ -8592,7 +8677,7 @@ using the given X/Y Spacing Tick - Зацеп + Засечка diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sl.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sl.ts index 3c51cdb3b2..ab8d9fbb25 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sl.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sl.ts @@ -127,19 +127,19 @@ CmdTechDrawArchView - + TechDraw TehRisbe (TechDraw) - + Insert Arch Workbench Object Vstavi predmet iz delovnega okolja Arch - + Insert a View of a Section Plane from Arch Workbench - Vstavi pogled presečne ravnine iz delovnega okolja Arch + Vstavi pogled prerezne ravnine iz delovnega okolja Arhi (Arch) @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Datoteka - + Export Page as DXF Izvozi stran kot DXF - + Save DXF file Shrani datoteko DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Datoteka - + Export Page as SVG Izvozi stran kot SVG @@ -797,7 +797,7 @@ Customize Format Label - Customize Format Label + Prilagodi obliko oznake @@ -835,7 +835,7 @@ Add Cosmetic Circle - Dodaj pomožni krog + Dodaj dopolnilni krog @@ -874,7 +874,7 @@ Add Cosmetic Circle - Dodaj pomožni krog + Dodaj dopolnilni krog @@ -1328,7 +1328,7 @@ Add a cosmetic thread to the top or bottom view of holes:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool - Dodaj spodnjemu ali zgornjemu pogledu na izvrtino navidezni navoj:<br> Določite lastnosti črte (neobvezno)<br> Izberite enega ali več krogov<br>- Kliknite to orodje + Dodaj spodnjemu ali zgornjemu pogledu na izvrtino dopolnilni navoj:<br> Določite lastnosti črte (neobvezno)<br> Izberite enega ali več krogov<br>- Kliknite to orodje @@ -1379,7 +1379,7 @@ Add Cosmetic Intersection Vertex(es) - Nodaj navidezna presečna oglišča + Dodaj navidezna presečna oglišča @@ -1501,7 +1501,7 @@ Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) - Image files (*.jpg *.jpeg *.png *.bmp);;All files (*) + Slikovne datoteke (*.jpg *.jpeg *.png *.bmp);;Vse datoteke (*) @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Predloga (*.svg *.dxf) + Template (*.svg) + Predloga (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TehRisbe (TechDraw) - + Project shape... Preslikaj obliko … @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TehRisbe (TechDraw) - + Insert Spreadsheet View Vstavi pogled Preglednice - + Insert View to a spreadsheet Vstavi Pogled v preglednico @@ -1999,23 +1999,23 @@ Ustvari znak - + Create DraftView Ustvari izrisni (Draft) pogled - + Create ArchView Ustvari ArhitekturniPogled - + Create spreadsheet view Ustvari preglednični pogled - - + + Save page to dxf Shrani stran kot DXF @@ -2086,7 +2086,7 @@ Ustvari DejavniPogled - + Create CenterLine Ustvari Središčnico @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Dodaj dopolnilno oglišče + + + TechDraw Insert Prefix + TehRisbe (TechDraw) Vstavi predpono + Insert Prefix Vstavi predpono + + + TechDraw Remove Prefix + TehRisbe (TechDraw) Odstrani predpono + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Ustvari koto ločne dolžine + + + TechDraw Hole Circle + Krog izvrtine v TehRisbe (TechDraw) + Bolt Circle Centerlines Krepke središčnice kroga + + + TechDraw Circle Centerlines + Središčnice kroga v TehRisbe (TechDraw) + Circle Centerlines Središčnice kroga + + + TechDraw Thread Hole Side + Stranski ris navoja luknje v TehRisbe + Cosmetic Thread Hole Side Naris navideznega navoja izvrtine + + + TechDraw Thread Bolt Side + Stranski ris navoja svornika v TehRisbe (TechDraw) + Cosmetic Thread Bolt Side Stranski ris navideznega navoja svornika + + + TechDraw Thread Hole Bottom + Spodnji pogled navoja luknje v TehRisbe (TechDraw) + Cosmetic Thread Hole Bottom Dno navideznega navoja izvrtine + + + TechDraw Thread Bolt Bottom + Spodnji pogled navoja svornika v TehRisbe (TechDraw) + Cosmetic Thread Bolt Bottom Spodnji pogled na navidezni navoj svornika + + + TechDraw Change Line Attributes + Spremeni črtine značilke v TehRisbe (TechDraw) + Change Line Attributes Spremeni črtine značilke + + + TechDraw Cosmetic Intersection Vertex(es) + Pomožna presečna oglišča v TehRisbe (TechDraw) + Cosmetic Intersection Vertex(es) Navidezna presečiščna oglišča + + + TechDraw Cosmetic Arc + Dopolnilni lok v TehRisbe (TechDraw) + Cosmetic Arc Pomožni lok + + + TechDraw Cosmetic Circle + Dopolnilni krog v TehRisbe (TechDraw) + Cosmetic Circle Pomožni krog + + + TechDraw Cosmetic Circle 3 Points + Dopolnilni krog s 3 točkami v TehRisbe (TechDraw) + Cosmetic Circle 3 Points Pomožni krog s 3 točkami + + + TechDraw Cosmetic Line Parallel/Perpendicular + Vzporedna/pravokotna dopolnilna črta v TehRisbe (TechDraw) + Cosmetic Line Parallel/Perpendicular Vzporedna/pravokotna pomožna črta + + + TechDraw Lock/Unlock View + Zakleni/odkleni pogled v TehRisbe (TechDraw) + Lock/Unlock View Zakleni/Odkleni pogled + + + TechDraw Extend/Shorten Line + Podaljšaj/skrajšaj črto v TehRisbe (TechDraw) + Extend/Shorten Line Podaljšaj/skrajšaj črto + + + TechDraw calculate selected area + Izračunaj izbrano površino v TehRisbe (TechDraw) + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Napačna izbira @@ -2765,37 +2850,37 @@ Izberite vsaj en predmet. - + Please select only 1 Arch Section. Izberite le en prerez Arhitekture. - + No Arch Sections in selection. Nobenega prereza Arhitekture ni v izboru. - + Select exactly one Spreadsheet object. Izberite natanko eno preglednico. - + No Drawing View Ni Risarskega pogleda - + Open Drawing View before attempting export to SVG. Odpri Drawing Pogled preden poskušaš izvoziti v datoteko SVG. - + Can not export selection Izbora ni mogoče izboziti - + Page contains DrawViewArch which will not be exported. Continue? Stran vsebuje DrawViewArch, ki se ne bo izvozil. Želite nadaljevati? @@ -3285,50 +3370,50 @@ V dokumentu ni strani risb. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Vse datoteke (*.*) - + Export Page As PDF Izvozi stran v PDF - + Document Name: Ime dokumenta: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Izvozi stran kot SVG - + Are you sure you want to continue? Ali ste prepričani da želite nadaljevati? - + Show drawing Prikaži risbo - + Toggle KeepUpdated Preklopi Ohrani posodobljeno @@ -3355,7 +3440,7 @@ - + Rich text editor Urejevalnik obogatenega besedila @@ -3400,7 +3485,7 @@ Ustvari središčnico - + Edit Center Line Uredi središčnico @@ -3596,21 +3681,21 @@ - + Selection is empty Nič ni izbrano - + No object selected Izbran ni noben predmet TechDraw Hole Circle - TehRisbe (TechDaw) krog izvrtine + Krog izvrtine v TehRisbe (TechDraw) @@ -3628,12 +3713,12 @@ Med izbranim ni nobene ploskve. - + TechDraw Thread Hole Side Stranski ris navoja luknje v TehRisbe - + Please select two straight lines Izberite dve ravni črti @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. oznako za varjenje, ki bi postala okvarjena. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Tega pogleda ne morete izbrisati, ker vsebuje enega ali več odvisnih pogledov, ki bi se tako pokvarili. + + + - + @@ -3767,25 +3855,22 @@ oznako za varjenje, ki bi postala okvarjena. Sidrnega pogleda skupine preslikav ne morete izbrisati. - You cannot delete this view because it has a section view that would become broken. Tega pogleda ne morete izbrisati, ker vsebuje prerezni pogled, ki bi postal okvarjen. - You cannot delete this view because it has a detail view that would become broken. Tega pogleda ne morete izbrisati, ker vsebuje podrobni pogled, ki bi postal okvarjen. - You cannot delete this view because it has a leader line that would become broken. Tega pogleda ne morete izbrisati, ker vsebuje opisnično črto, ki bi postala okvarjena. - + The page is not empty, therefore the following referencing objects might be lost: Ta stran ni prazna, zaradi česa lahko izgubite @@ -4237,7 +4322,7 @@ Spreminjajte le, če veste, kaj počnete! Use New Face Finder Algorithm - Use New Face Finder Algorithm + Uporabi algoritem novega iskalnika ploskev @@ -4731,15 +4816,6 @@ uporabi pri črtkanju ploskve z vzorcem PAT Color of vertices in views Barva oglišč v pogledih - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Če je označeno, bo FreeCAD uporabil enotno barvo za vse napise in črte. Če ni označeno, bo FreeCAD skušal uporabiti svetlejše različice prednostnih barv. - - - Detail Highlight @@ -4780,6 +4856,15 @@ uporabi pri črtkanju ploskve z vzorcem PAT Face color (if not transparent) Barva ploskve (če ni prozorna) + + + If checked FreeCAD will use a single color for all text and lines. + + + Če je označeno, bo FreeCAD uporabljal enotno barvo pri vseh napisih in črtah. + + + Monochrome @@ -5451,81 +5536,81 @@ Hitro, vendar dobimo skupek kratkih ravnih črtic. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Preklopi &Ohrani Posodobljeno - + Toggle &Frames Preklopi &Okvirji - + &Export SVG &Izvozi SVG - + Export DXF Izvozi DXF - + Export PDF Izvoz PDF - + Print All Pages Natisni vse strani - + Different orientation Druga usmerjenost - + The printer uses a different orientation than the drawing. Do you want to continue? Tiskalnik uporablja drugo usmerjenost kot risba. Ali želite nadaljevati? - + Different paper size Druga velikost papirja - + The printer uses a different paper size than the drawing. Do you want to continue? Tiskalnik uporablja drugo velikost papirja kot risba. Ali želite nadaljevati? - + Opening file failed Odpiranje datoteke ni uspelo - + Can not open file %1 for writing. Datoteke %1 ni mogoče odpreti za pisanje. - + Save DXF file Shrani datoteko DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Izbrano: @@ -6223,7 +6308,7 @@ Ali želite nadaljevati? Free state - Free state + Prosto stanje @@ -6233,12 +6318,12 @@ Ali želite nadaljevati? Least material condition (LMC) - Least material condition (LMC) + Pogoj za najmanj materiala Maximum material condition (MMC) - Maximum material condition (MMC) + Pogoj za največ materiala @@ -6248,17 +6333,17 @@ Ali želite nadaljevati? Projected tolerance zone - Projected tolerance zone + Območje dopustnega odstopanja preslikave Reciprocity condition - Reciprocity condition + Pogoj vzajemnosti Regardless of feature size (RFS) - Regardless of feature size (RFS) + Neodvisno od velikosti značilnosti @@ -6268,7 +6353,7 @@ Ali želite nadaljevati? Unequal Bilateral - Unequal Bilateral + Neenako dvostransko @@ -6278,7 +6363,7 @@ Ali želite nadaljevati? Radius & Diameter - Radius & Diameter + Polmer in premer @@ -6293,12 +6378,12 @@ Ali želite nadaljevati? Radius of sphere - Radius of sphere + Polmer krogle Diameter of sphere - Diameter of sphere + Premer krogle @@ -6308,7 +6393,7 @@ Ali želite nadaljevati? Angles - Angles + Koti @@ -6318,17 +6403,17 @@ Ali želite nadaljevati? (Arc) Minute - (Arc) Minute + (Kotna) Minuta (Arc) Second - (Arc) Second + (Kotna) Sekunda (Arc) Tertie - (Arc) Tertie + (Kotna) Terca @@ -6358,7 +6443,7 @@ Ali želite nadaljevati? Plus - Minus - Plus - Minus + Plus - Minus @@ -6368,17 +6453,17 @@ Ali želite nadaljevati? Left/right arrow - Left/right arrow + Puščica levo/desno Downward arrow - Downward arrow + Puščica navzdol Multiplication sign - Multiplication sign + Krat @@ -8550,12 +8635,12 @@ s pomočjo podanih X/Y odmikov Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Dodaj prileganje izvrtine ali gredi meram<br> - - izberite eno dolžinsko mero ali premer<br> - - kliknite gumb orodja in odpre se plošča<br> + - izberite eno dolžinsko koto ali premer<br> + - kliknite gumb orodja, da se odpre podokno<br> - izberite prileganje gredi oz. prileganje izvrtine<br> - v kombiniranem polju izberite željeno področje prileganja po ISO 286 @@ -8585,12 +8670,12 @@ s pomočjo podanih X/Y odmikov Filled Arrow - Filled Arrow + Polna puščica Open Arrow - Open Arrow + Razprta puščica @@ -8605,17 +8690,17 @@ s pomočjo podanih X/Y odmikov Open Circle - Open Circle + Prazen krožec Fork - Fork + Razcep Filled Triangle - Filled Triangle + Zapolnjen Trikotnik @@ -8658,22 +8743,22 @@ s pomočjo podanih X/Y odmikov FrontTopLeft - FrontTopLeft + Spredaj-levo-zgoraj FrontTopRight - FrontTopRight + Spredaj-desno-zgoraj FrontBottomLeft - FrontBottomLeft + Spredaj-levo-spodaj FrontBottomRight - FrontBottomRight + Spredaj-desno-spodaj @@ -8682,13 +8767,13 @@ s pomočjo podanih X/Y odmikov You cannot delete this balloon now because there is an open task dialog. - You cannot delete this balloon now because -there is an open task dialog. + Trenutno ne morete izbrisati te opisnice, +ker je odprto pogovorno okno. Can Not Delete - Can Not Delete + Ni mogoče izbrisati diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr-CS.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr-CS.ts index 35af4aa05a..b2a44af899 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr-CS.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr-CS.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Umetni objekat Arch radnog okruženja - + Insert a View of a Section Plane from Arch Workbench Umetni pogled na objekat iz Arch radnog okruženja @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Datoteka - + Export Page as DXF Izvezi crtež kao DXF - + Save DXF file Sačuvaj DXF datoteku - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Datoteka - + Export Page as SVG Izvezi crtež kao SVG @@ -894,7 +894,7 @@ Add Cosmetic Circle 3 Points - Dodaj pomoćnu kružnicu sa 3 tačke + Dodaj pomoćnu kružnicu pomoću 3 tačke @@ -1379,12 +1379,12 @@ Add Cosmetic Intersection Vertex(es) - Dodaj pomoćnu tačku(e) na preseku + Dodaj Pomoćnu presečnu tačku(e) Add cosmetic vertex(es) at the intersection(s) of selected edges:<br>- Select two edges (lines, circles and/or arcs)<br>- Click this tool - Dodaj pomoćnu tačku(e) na presek(e) izabranih ivica:<br>- Izaberi dve ivice (linije, kružnice i/ili lukove)<br>- Klikni na ovu alatku + Dodaj pomoćnu presečnu tačku(e) izabranih ivica:<br>- Izaberi dve ivice (linije, kružnice i/ili lukove)<br>- Klikni na ovu alatku @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Prazni crtež (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projiciraj objekat u 3D pogled... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Umetni tabelu - + Insert View to a spreadsheet Umetni tabelu u crtež @@ -1999,23 +1999,23 @@ Napravi simbol - + Create DraftView Napravi Draft pogled - + Create ArchView Napravi Arch pogled - + Create spreadsheet view Napravi pogled of tabele - - + + Save page to dxf Sačuvaj crtež kao dxf @@ -2086,7 +2086,7 @@ Napravi aktivni pogled - + Create CenterLine Napravi osnu liniju @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Dodaj pomoćnu tačku + + + TechDraw Insert Prefix + TechDraw Upiši prefiks + Insert Prefix Upiši prefiks + + + TechDraw Remove Prefix + TechDraw Ukloni prefiks + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Kotiraj dužinu luka + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Simetrale kružnice šrafa + + + TechDraw Circle Centerlines + TechDraw Simetrale kružnice + Circle Centerlines Simetrale kružnice + + + TechDraw Thread Hole Side + TechDraw unutrašnji navoj + Cosmetic Thread Hole Side Dodaj unutrašnji navoj + + + TechDraw Thread Bolt Side + TechDraw Prikaz sa strane spoljašnjeg navoja + Cosmetic Thread Bolt Side Dodaj spoljašnji navoj + + + TechDraw Thread Hole Bottom + TechDraw Prikaz spreda (aksijalni) unutrašnjeg navoja + Cosmetic Thread Hole Bottom Dodaj unutrašnji navoj - aksijalni pogled + + + TechDraw Thread Bolt Bottom + TechDraw Prikaz spreda spoljašnjeg navoja + Cosmetic Thread Bolt Bottom Dodaj spoljašnji navoj - aksijalni pogled + + + TechDraw Change Line Attributes + TechDraw Promeni svojstva linije + Change Line Attributes Promeni svojstva linije + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Pomoćna presečna tačka(e) + Cosmetic Intersection Vertex(es) - Pomoćna tačka(e) na preseku + Pomoćna presečna tačka(e) + + + + TechDraw Cosmetic Arc + TechDraw Pomoćni luk Cosmetic Arc Pomoćni luk + + + TechDraw Cosmetic Circle + TechDraw Pomoćna kružnica + Cosmetic Circle Pomoćna kružnica + + + TechDraw Cosmetic Circle 3 Points + TechDraw pomoćna kružnica pomoću 3 tačke + Cosmetic Circle 3 Points - Pomoćna kružnica sa 3 tačke + Pomoćna kružnica pomoću 3 tačke + + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Pomoćna linija paralelna/normalna Cosmetic Line Parallel/Perpendicular Pomoćna linija paralelna/normalna + + + TechDraw Lock/Unlock View + TechDraw Zaključaj/Otključaj pogled + Lock/Unlock View Zaključaj/Otključaj pogled + + + TechDraw Extend/Shorten Line + TechDraw Produži/Skrati liniju + Extend/Shorten Line Produži/Skrati liniju + + + TechDraw calculate selected area + TechDraw Izračunaj površinu izabrane stranice + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Pogrešan izbor @@ -2765,37 +2850,37 @@ Izaberi bar jedan objekat. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Izaberi samo jedan tabelarni objekat. - + No Drawing View Nema pogleda crteža - + Open Drawing View before attempting export to SVG. Pre pokušaja izvoza crteža u SVG formatu moraš ga prvo napraviti. - + Can not export selection Izabrano se ne može izvesti - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ Nema crteža u dokumentu. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Sve Datoteke (*.*) - + Export Page As PDF Izvezi crtež kao PDF - + Document Name: Ime dokumenta: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Izvezi crtež kao SVG - + Are you sure you want to continue? Da li si siguran da želiš da nastaviš? - + Show drawing Prikaži crtež - + Toggle KeepUpdated Uklj/Isklj KeepUpdated (Održavaj ažurnim) @@ -3355,7 +3440,7 @@ - + Rich text editor Urednik za formatiranje teksta @@ -3400,7 +3485,7 @@ Napravi osnu liniju - + Edit Center Line Uredi osnu liniju @@ -3596,14 +3681,14 @@ - + Selection is empty Nisi ništa izabrao - + No object selected Nije izabran nijedan objekat @@ -3628,12 +3713,12 @@ Nije izabrana stranica. - + TechDraw Thread Hole Side TechDraw unutrašnji navoj - + Please select two straight lines Izaberi dve prave linije @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. ima simbol zavarivanja koji bi se pokvario. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Ne možeš obrisati ovaj pogled jer ima jedan ili više zavisnih objekata koji će postati neispravni. + + + - + @@ -3767,25 +3855,22 @@ ima simbol zavarivanja koji bi se pokvario. Ne možeš obrisati glavni pogled grupe osnovnih pogleda. - You cannot delete this view because it has a section view that would become broken. Ne možeš da izbrišeš ovaj pogled jer ima presek koji bi u tom slučaju postao oštećen. - You cannot delete this view because it has a detail view that would become broken. Ne možeš da izbrišeš ovaj pogled jer ima detaljni pogled koji bi postao oštećen. - You cannot delete this view because it has a leader line that would become broken. Ne možeš da obrišeš ovaj pogled jer ima pokaznu liniju koja bi bila oštećena. - + The page is not empty, therefore the following referencing objects might be lost: Crtež nije prazan, zbog toga @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Boja temena u pogledima - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Ako je čekirano, FreeCAD će koristiti jednu boju za sav tekst i linije. Ako nije čekirano, FreeCAD će pokušati da koristi svetlije verzije željenih boja. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Boja stranice (ako nije providna) + + + If checked FreeCAD will use a single color for all text and lines. + + + Ako je čekirano FreeCAD će koristiti istu boju za tekst i linije. + + + Monochrome @@ -5447,81 +5532,81 @@ Brzo, ali rezultat je skup kratkih pravih linija. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Toggle &Keep Updated - + Toggle &Frames Toggle &Frames - + &Export SVG &Izvezi SVG - + Export DXF Izvezi DXF - + Export PDF Izvezi PDF - + Print All Pages Štampaj sve stranice - + Different orientation Drugačija orijentacija - + The printer uses a different orientation than the drawing. Do you want to continue? Štampač koristi drugačiju orijentaciju od crteža. Da li želiš da nastaviš? - + Different paper size Drugačija veličina papira - + The printer uses a different paper size than the drawing. Do you want to continue? Štampač koristi drugačiju veličinu papira od crteža. Da li želiš da nastaviš? - + Opening file failed Otvaranje datoteke neuspešno - + Can not open file %1 for writing. Ne mogu da otvorim datoteku %1 radi upisa. - + Save DXF file Sačuvaj DXF datoteku - + DXF (*.dxf) DXF (*.dxf) - + Selected: Izabrano: @@ -7792,7 +7877,7 @@ using the given X/Y Spacing Solid - Puno telo + Puno @@ -8546,13 +8631,13 @@ umesto dužine Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Dodaj toleranciju na kotu<br> - izaberi dužinsku kotu ili kotu prečnika<br> - klikni na ovu alatku i otvoriće se panel<br> - - izaberi sistem naleganje (unutrašnja mera ili spoljašnja mera)<br> + - izaberi sistem naleganja (unutrašnja mera ili spoljašnja mera)<br> - izaberi odgovarajuće tolerancijsko polje diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr.ts index 41b4f2fd77..216c0b9d05 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sr.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Уметни објекат Arch радног окружења - + Insert a View of a Section Plane from Arch Workbench Уметни поглед на објекат из Arch радног окружења @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Датотека - + Export Page as DXF Извези цртеж као DXF - + Save DXF file Сачувај DXF датотеку - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Датотека - + Export Page as SVG Извези цртеж као SVG @@ -894,7 +894,7 @@ Add Cosmetic Circle 3 Points - Додај помоћну кружницу са 3 тачке + Додај помоћну кружницу помоћу 3 тачке @@ -1379,12 +1379,12 @@ Add Cosmetic Intersection Vertex(es) - Додај помоћну тачку(е) на пресеку + Додај Помоћну пресечну тачку(е) Add cosmetic vertex(es) at the intersection(s) of selected edges:<br>- Select two edges (lines, circles and/or arcs)<br>- Click this tool - Додај помоћну тачку(е) на пресек(е) изабраних ивица:<br>- Изабери две ивице (линије, кружнице и/или лукове)<br>- Кликни на ову алатку + Додај помоћну пресечну тачку(е) изабраних ивица:<br>- Изабери две ивице (линије, кружнице и/или лукове)<br>- Кликни на ову алатку @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Празни цртеж (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Пројицирај објекат у 3Д поглед... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Уметни табелу - + Insert View to a spreadsheet Уметни табелу у цртеж @@ -1999,23 +1999,23 @@ Направи симбол - + Create DraftView Направи Draft поглед - + Create ArchView Направи Arch поглед - + Create spreadsheet view Направи поглед од табеле - - + + Save page to dxf Сачувај цртеж као dxf @@ -2086,7 +2086,7 @@ Направи активни поглед - + Create CenterLine Направи Осну линију @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Додај помоћну тачку + + + TechDraw Insert Prefix + TechDraw Упиши префикс + Insert Prefix Упиши префикс + + + TechDraw Remove Prefix + TechDraw Уклони префикс + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Котирај дужину лука + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Симетрале кружнице шрафа + + + TechDraw Circle Centerlines + TechDraw Симетрале кружнице + Circle Centerlines Симетрале кружнице + + + TechDraw Thread Hole Side + TechDraw унутрашњи навој + Cosmetic Thread Hole Side Додај унутрашњи навој + + + TechDraw Thread Bolt Side + TechDraw Приказ са стране спољашњег навоја + Cosmetic Thread Bolt Side Додај спољашњи навој + + + TechDraw Thread Hole Bottom + TechDraw Приказ спреда (аксијални) унутрашњег навоја + Cosmetic Thread Hole Bottom Додај унутрашњи навој - Аксијални поглед + + + TechDraw Thread Bolt Bottom + TechDraw Приказ спреда спољашњег навоја + Cosmetic Thread Bolt Bottom Додај спољашњи навој - Аксијални поглед + + + TechDraw Change Line Attributes + TechDraw Промени својства линије + Change Line Attributes Промени својства линије + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Помоћна пресечна тачка(е) + Cosmetic Intersection Vertex(es) - Помоћна тачка(е) на пресеку + Помоћна пресечна тачка(е) + + + + TechDraw Cosmetic Arc + TechDraw Помоћни лук Cosmetic Arc Помоћни лук + + + TechDraw Cosmetic Circle + TechDraw Помоћна кружница + Cosmetic Circle Помоћна кружница + + + TechDraw Cosmetic Circle 3 Points + TechDraw Помоћна кружница помоћу 3 тачке + Cosmetic Circle 3 Points - Помоћна кружница са 3 тачке + Помоћна кружница помоћу 3 тачке + + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Помоћна линија паралелна/нормална Cosmetic Line Parallel/Perpendicular Помоћна линија паралелна/нормална + + + TechDraw Lock/Unlock View + TechDraw Закључај/Откључај поглед + Lock/Unlock View Закључај/Откључај поглед + + + TechDraw Extend/Shorten Line + TechDraw Продужи/Скрати линију + Extend/Shorten Line Продужи/Скрати линију + + + TechDraw calculate selected area + TechDraw Израчунај површину изабране странице + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Погрешан избор @@ -2765,37 +2850,37 @@ Изабери бар један објекат. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Изабери само један табеларни објекат. - + No Drawing View Нема погледа цртежа - + Open Drawing View before attempting export to SVG. Пре покушаја извоза цртежа у SVG формату мораш га прво направити. - + Can not export selection Изабрано се не може извести - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ Нема цртежа у документу. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Све Датотеке (*.*) - + Export Page As PDF Извези цртеж као PDF - + Document Name: Име документа: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Извези цртеж као SVG - + Are you sure you want to continue? Да ли си сигуран да желиш да наставиш? - + Show drawing Прикажи цртеж - + Toggle KeepUpdated Укљ/Искљ KeepUpdated (Одржавај ажурним) @@ -3355,7 +3440,7 @@ - + Rich text editor Уредник форматираног текста @@ -3400,7 +3485,7 @@ Направи Осну линију - + Edit Center Line Уреди Осну линију @@ -3596,14 +3681,14 @@ - + Selection is empty Ниси ништа изабрао - + No object selected Није изабран ниједан објекат @@ -3628,12 +3713,12 @@ Није изабрана страница. - + TechDraw Thread Hole Side TechDraw унутрашњи навој - + Please select two straight lines Изабери две праве линије @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. има симбол заваривања који би се покварио. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Не можеш обрисати овај поглед јер има један или више зависних објеката који ће постати неисправни. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. Не можеш обрисати главни поглед групе основних погледа. - You cannot delete this view because it has a section view that would become broken. Не можеш да избришеш овај поглед јер има пресек који би у том случају постао оштећен. - You cannot delete this view because it has a detail view that would become broken. Не можеш да избришеш овај поглед јер има детаљни поглед који би постао оштећен. - You cannot delete this view because it has a leader line that would become broken. Не можеш да обришеш овај поглед јер има показну линију која би била оштећена. - + The page is not empty, therefore the following referencing objects might be lost: Цртеж није празан, због тога @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Боја темена у погледима - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Ако је чекирано, FreeCAD ће користити једну боју за сав текст и линије. Ако није чекирано, FreeCAD ће покушати да користи светлије верзије жељених боја. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Боја странице (ако није провидна) + + + If checked FreeCAD will use a single color for all text and lines. + + + Ако је чекирано FreeCAD ће користити исту боју за текст и линије. + + + Monochrome @@ -5447,81 +5532,81 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Toggle &Keep Updated - + Toggle &Frames Toggle &Frames - + &Export SVG &Извези SVG - + Export DXF Извези DXF - + Export PDF Извези PDF - + Print All Pages Штампај све странице - + Different orientation Другачија оријентација - + The printer uses a different orientation than the drawing. Do you want to continue? Штампач користи другачију оријентацију од цртежа. Да ли желиш да наcтавиш? - + Different paper size Другачија величина папира - + The printer uses a different paper size than the drawing. Do you want to continue? Штампач користи другачију величину папира од цртежа. Да ли желиш да наставиш? - + Opening file failed Отварање датотеке неуcпешно - + Can not open file %1 for writing. Не могу да отворим датотеку %1 ради уписа. - + Save DXF file Сачувај DXF датотеку - + DXF (*.dxf) DXF (*.dxf) - + Selected: Изабрано: @@ -7792,7 +7877,7 @@ using the given X/Y Spacing Solid - Пуно тело + Пуно @@ -8546,13 +8631,13 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Додај толеранцију на коту<br> - изабери дужинску коту или коту пречника<br> - кликни на ову алатку и отвориће се панел<br> - - изабери систем налегање (унутрашња мера или спољашња мера)<br> + - изабери систем налегањa (унутрашња мера или спољашња мера)<br> - изабери одговарајуће толеранцијско поље diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sv-SE.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sv-SE.ts index 7379867203..f7783b0d66 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sv-SE.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_sv-SE.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Infoga Arch Workbench-objekt - + Insert a View of a Section Plane from Arch Workbench Infoga en vy av ett sektionsplan från Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fil - + Export Page as DXF Exportera sida som DXF - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fil - + Export Page as SVG Exportera sida som SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Mall (*.svg *.dxf) + Template (*.svg) + Mall (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projekt former... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Infoga kalkylbladsvy - + Insert View to a spreadsheet Infoga vy till ett kalkylblad @@ -1999,23 +1999,23 @@ Skapa symbol - + Create DraftView Skapa UtkastVy - + Create ArchView Skapa ArchView - + Create spreadsheet view Skapa kalkylbladsvy - - + + Save page to dxf Spara sida på dxf @@ -2086,7 +2086,7 @@ Skapa ActiveView - + Create CenterLine Skapa CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Lägg till Kosmetiska Vertex + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Fel val @@ -2765,37 +2850,37 @@ Markera minst ett objekt. - + Please select only 1 Arch Section. Vänligen välj endast 1 Arch Avsnitt. - + No Arch Sections in selection. Inga Arch Sektioner i urval. - + Select exactly one Spreadsheet object. Välj exakt ett sprängskissobjekt. - + No Drawing View Ingen ritningsvy - + Open Drawing View before attempting export to SVG. Öppna ritningsvy innan försök att exportera till SVG. - + Can not export selection Kan inte exportera urval - + Page contains DrawViewArch which will not be exported. Continue? Sidan innehåller DrawViewArch som inte kommer att exporteras. Fortsätta? @@ -3285,50 +3370,50 @@ Inga Ritsidor i dokumentet. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Alla filer (*.*) - + Export Page As PDF Exportera sida som PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportera sida som SVG - + Are you sure you want to continue? Är du säker på att du vill fortsätta? - + Show drawing Visa ritning - + Toggle KeepUpdated Växla "Håll uppdaterad" @@ -3355,7 +3440,7 @@ - + Rich text editor Rich Text-redigerare @@ -3400,7 +3485,7 @@ Skapa mittlinje - + Edit Center Line Redigera mittlinje @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. den har en svetssymbol som skulle bli trasig. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Du kan inte ta bort denna vy eftersom den har en eller flera beroende vyer som skulle brytas. + + + - + @@ -3767,25 +3855,22 @@ den har en svetssymbol som skulle bli trasig. Du kan inte ta bort ankarvyn för en projektionsgrupp. - You cannot delete this view because it has a section view that would become broken. Du kan inte ta bort den här vyn eftersom den har en avsnittsvy som skulle bli bruten. - You cannot delete this view because it has a detail view that would become broken. Du kan inte ta bort den här vyn eftersom den har en detaljvy som skulle bli bruten. - You cannot delete this view because it has a leader line that would become broken. Du kan inte ta bort den här vyn eftersom den har en uttrÃ¥ttlinje som skulle bli bruten. - + The page is not empty, therefore the following referencing objects might be lost: Sidan är inte tom, därför är @@ -4731,15 +4816,6 @@ när du kläcker ett ansikte med ett PAT-mönster Color of vertices in views Färg på vertices i vyer - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ när du kläcker ett ansikte med ett PAT-mönster Face color (if not transparent) Ansiktsfärg (om inte transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,80 +5537,80 @@ Snabbt, men resultatet är en samling korta raka linjer. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Växla automatisk uppdatering - + Toggle &Frames Växla ramvisning - + &Export SVG &Exportera SVG - + Export DXF Exportera DXF - + Export PDF Exportera PDF - + Print All Pages Print All Pages - + Different orientation Annan orientering - + The printer uses a different orientation than the drawing. Do you want to continue? Skrivaren använder en annan orientering än ritningen. Vill du fortsätta? - + Different paper size Annan pappersstorlek - + The printer uses a different paper size than the drawing. Do you want to continue? Skrivaren använder en annan pappersstorlek än ritningen. Vill du fortsätta? - + Opening file failed Fel vid filöppning - + Can not open file %1 for writing. Kan inte öppna fil %1 i skrivläge. - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) - + Selected: Vald: @@ -8551,12 +8636,12 @@ med hjälp av det givna X/Y-avstånden Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_tr.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_tr.ts index 6f4e15bef4..5a62a7a2ed 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_tr.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_tr.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TeknikÇizim - + Insert Arch Workbench Object Mimari tezgah(Arch Workbench) objesi ekle - + Insert a View of a Section Plane from Arch Workbench Mimari Çalışma Tezgahından (Arch Workbench) Kesit Düzleminin bir görünümünü ekler @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Dosya - + Export Page as DXF Sayfayı DXF olarak dışa aktar - + Save DXF file DXF dosyası olarak kaydet - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Dosya - + Export Page as SVG Sayfayı SVG olarak dışa aktar @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Şablon (*.svg *.dxf) + Template (*.svg) + Şablon (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TeknikÇizim - + Project shape... Proje şekilleri... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TeknikÇizim - + Insert Spreadsheet View Hesap tablosu görünümü ekle - + Insert View to a spreadsheet Hesap tablosuna görünüm ekle @@ -1999,23 +1999,23 @@ Sembol Oluştur - + Create DraftView TaslakGörünüm Oluştur - + Create ArchView MimariGörünümü Oluştur - + Create spreadsheet view Elektronik tablo görünümü oluştur - - + + Save page to dxf Sayfayı dxf olarak kaydedin @@ -2086,7 +2086,7 @@ AktifGörüntü Oluşturun - + Create CenterLine MerkezÇizgisi Oluştur @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Yardımcı Nokta Ekle + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Önek Ekle + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Yay Uzunluğu Ölçüsü Oluştur + + + TechDraw Hole Circle + TechDraw Delik Çemberi + Bolt Circle Centerlines Cıvata Çemberi Merkez Çizgileri + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Çember merkez çizgileri + + + TechDraw Thread Hole Side + Teknik Çizim Vida Dişi Diş Oyuğunun Yan Tarafı + Cosmetic Thread Hole Side Yardımcı Diş Deliği Yanı + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Yardımcı Dişli Cıvata Yanı + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Yardımcı Diş Deliği Altı + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Yardımcı Dişli Cıvata Alt + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Çizgi Niteliklerini Değiştir + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Yardımcı Kesişim Noktası(ları) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Yardımcı Yay + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Yardımcı Çember + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points 3 Noktalı Yardımcı Çember + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Yardımcı Paralel/Dik Çizgi + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Görünümü Kilitle/Kilidi Aç + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Çizgiyi Uzat/Kısalt + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Yanlış seçim @@ -2765,37 +2850,37 @@ En az bir nesne seçin. - + Please select only 1 Arch Section. Lütfen sadece bir Mimari(Arch) bölümü seçin. - + No Arch Sections in selection. Seçimde Mimari(Arch) Bölümü yok. - + Select exactly one Spreadsheet object. Tam olarak bir Hesap Tablosu nesnesi seçin. - + No Drawing View Çizim görünümü yok - + Open Drawing View before attempting export to SVG. Çizim Önizlemeyi açmadan SVG dosyasını dışarı aktarmayın. - + Can not export selection Seçim dışa aktarılamıyor - + Page contains DrawViewArch which will not be exported. Continue? Sayfa dışa aktarılamayan DrawViewArch içeririyor. Devam edilsin mi? @@ -3285,50 +3370,50 @@ Dökümanda Teknik Resim Sayfası Yok. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Tüm dosyalar (*. *) - + Export Page As PDF Sayfayı PDF olarak dışa aktar - + Document Name: Belge Adı: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Sayfayı SVG olarak dışa aktar - + Are you sure you want to continue? Devam etmek istediğinizden emin misiniz? - + Show drawing Çizimi göster - + Toggle KeepUpdated GüncelTutma Ayarı @@ -3355,7 +3440,7 @@ - + Rich text editor Zengin metin düzenleyicisi @@ -3400,7 +3485,7 @@ Merkez Çizgisi Oluştur - + Edit Center Line Merkez Çizgisini Düzenle @@ -3596,14 +3681,14 @@ - + Selection is empty Seçim boş - + No object selected Seçili nesne yok @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side Teknik Çizim Vida Dişi Diş Oyuğunun Yan Tarafı - + Please select two straight lines Lütfen iki düz çizgi seçin @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. Bu ölçü çizgisini silemezsiniz çünkü bozulabilecek bir kaynak sembolü içeriyor. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. Yansıtma grubunun bağlı görünüşünü silemezsiniz. - You cannot delete this view because it has a section view that would become broken. Bu görünüşü silemezsiniz çünkü bozulabilecek bir kesit görünümü içeriyor. - You cannot delete this view because it has a detail view that would become broken. Bu görünüşü silemezsiniz çünkü bozulabilecek bir ayrıntı görünümü içeriyor. - You cannot delete this view because it has a leader line that would become broken. Bu görünüşü silemezsiniz çünkü bozulabilecek bir ölçü çizgisi içeriyor. - + The page is not empty, therefore the following referencing objects might be lost: Sayfa boş değil, bu yüzden aşağıdaki referans nesneleri kaybolabilecek: @@ -4727,15 +4812,6 @@ when hatching a face with a PAT pattern Color of vertices in views Görünümlerdeki köşe rengi - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4776,6 +4852,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Yüzey rengi (saydam değil ise) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5448,80 +5533,80 @@ Hızlıdır ama sonucu, kısa düz çizgilerin derlemesidir. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Ayarla & Güncel Tut - + Toggle &Frames Ayarla & Çerçeveler - + &Export SVG &SVG olarak dışarıya aktar - + Export DXF DXF olarak dışa aktar - + Export PDF PDF olarak dışa aktar - + Print All Pages Tüm Sayfaları Yazdır - + Different orientation Ekran yönü - + The printer uses a different orientation than the drawing. Do you want to continue? Yazıcı çizim daha farklı bir yönelim kullanır. Devam etmek istiyor musunuz? - + Different paper size Farklı kağıt boyutu - + The printer uses a different paper size than the drawing. Do you want to continue? Yazıcı, çizimden farklı bir kağıt boyutu kullanıyor. Devam etmek istiyor musun? - + Opening file failed Dosya açılamadı - + Can not open file %1 for writing. %1 dosyasını yazmak için açamazsın. - + Save DXF file DXF dosyası olarak kaydet - + DXF (*.dxf) DXF (*.dxf) - + Selected: Seçili: @@ -8547,12 +8632,12 @@ gösterimleri otomatik dağıtır Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_uk.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_uk.ts index 47d2b1b6cf..ead3b1c6f5 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_uk.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_uk.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw ТехМалюнок - + Insert Arch Workbench Object Insert Arch Workbench Object - + Insert a View of a Section Plane from Arch Workbench Insert a View of a Section Plane from Arch Workbench @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Файл - + Export Page as DXF Експортувати лист у DXF - + Save DXF file Зберегти файл DXF - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Файл - + Export Page as SVG Експортувати лист у SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Template (*.svg *.dxf) + Template (*.svg) + Шаблон (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw ТехМалюнок - + Project shape... Проект форми... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw ТехМалюнок - + Insert Spreadsheet View Insert Spreadsheet View - + Insert View to a spreadsheet Insert View to a spreadsheet @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Зберегти сторінку в dxf файл @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Add Cosmetic Vertex + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Невірний вибір @@ -2765,37 +2850,37 @@ Оберіть принаймні один об'єкт. - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. Виберіть саме один об'єкт електронної таблиці. - + No Drawing View No Drawing View - + Open Drawing View before attempting export to SVG. Open Drawing View before attempting export to SVG. - + Can not export selection Can not export selection - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Всі файли (*.*) - + Export Page As PDF Експорт в PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Експорт в SVG - + Are you sure you want to continue? Ви впевнені, що бажаєте продовжити? - + Show drawing Показати креслення - + Toggle KeepUpdated Toggle KeepUpdated @@ -3355,7 +3440,7 @@ - + Rich text editor Rich text editor @@ -3400,7 +3485,7 @@ Create Center Line - + Edit Center Line Edit Center Line @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + Не можна видалити цей вид, оскільки він має один або більше залежних видів, що будуть зламані. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. You cannot delete this view because it has a leader line that would become broken. - + The page is not empty, therefore the following referencing objects might be lost: Сторінка не порожня, тому @@ -4731,15 +4816,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4780,6 +4856,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5452,79 +5537,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Toggle &Keep Updated - + Toggle &Frames Toggle &Frames - + &Export SVG &Експорт SVG - + Export DXF Export DXF - + Export PDF Експорт в PDF - + Print All Pages Print All Pages - + Different orientation Відмінна орієнтація - + The printer uses a different orientation than the drawing. Do you want to continue? Принтер використовує відмінну від креслення орієнтацію. Бажаєте продовжити? - + Different paper size Відмінний розмір паперу - + The printer uses a different paper size than the drawing. Do you want to continue? Принтер використовує відмінний від креслення розмір паперу. Бажаєте продовжити? - + Opening file failed Відкриття файлу не вдалося - + Can not open file %1 for writing. Can not open file %1 for writing. - + Save DXF file Зберегти файл DXF - + DXF (*.dxf) DXF (*.dxf) - + Selected: Виділено: @@ -8550,12 +8635,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_val-ES.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_val-ES.ts index ad49a6d183..7bd0f5191b 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_val-ES.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_val-ES.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw TechDraw - + Insert Arch Workbench Object Insereix un objecte del banc de treball d'arquitectura - + Insert a View of a Section Plane from Arch Workbench Insereix una vista d'un pla de secció des d'un banc de treball d'arquitectura @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File Fitxer - + Export Page as DXF Exporta la pàgina com a DXF - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File Fitxer - + Export Page as SVG Exportar una pàgina com a SVG @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - Plantilla (*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw TechDraw - + Project shape... Projecta la forma... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw TechDraw - + Insert Spreadsheet View Inserta una vista de full de càlcul - + Insert View to a spreadsheet Insereix vista a un full de càlcul @@ -1999,23 +1999,23 @@ Create Symbol - + Create DraftView Create DraftView - + Create ArchView Create ArchView - + Create spreadsheet view Create spreadsheet view - - + + Save page to dxf Save page to dxf @@ -2086,7 +2086,7 @@ Create ActiveView - + Create CenterLine Create CenterLine @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex Afig un vèrtex cosmètic + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes Change Line Attributes + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection Selecció incorrecta @@ -2765,37 +2850,37 @@ Seleccioneu com a mínim un objecte. - + Please select only 1 Arch Section. Seleccioneu només 1 secció d'arquitectura. - + No Arch Sections in selection. No hi ha cap secció d'arquitectura en la selecció. - + Select exactly one Spreadsheet object. Seleccioneu exactament un sol objecte full de càlcul. - + No Drawing View Sense vistes de dibuix - + Open Drawing View before attempting export to SVG. Obri les vistes de dibuix abans d'intentar l'exportació a SVG. - + Can not export selection No es pot exportar la selecció - + Page contains DrawViewArch which will not be exported. Continue? La pàgina conté DrawViewArch que no s'exportaran. Voleu continuar? @@ -3285,50 +3370,50 @@ No hi ha cap pàgina de dibuix en el document. - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) Tots els fitxers (*.*) - + Export Page As PDF Exporta una pàgina com a PDF - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG Exportar una pàgina com a SVG - + Are you sure you want to continue? Are you sure you want to continue? - + Show drawing Mostra el dibuix - + Toggle KeepUpdated Activa/desactiva l'actualització automàtica @@ -3355,7 +3440,7 @@ - + Rich text editor Editor de text enriquit @@ -3400,7 +3485,7 @@ Crea una línia central - + Edit Center Line Edita la línia central @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3745,16 +3830,19 @@ it has a weld symbol that would become broken. it has a weld symbol that would become broken. - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + @@ -3767,25 +3855,22 @@ it has a weld symbol that would become broken. No podeu eliminar la vista ancorada a un grup de projecció. - You cannot delete this view because it has a section view that would become broken. No podeu suprimir aquesta vista perquè conté una vista de secció que es trencaria. - You cannot delete this view because it has a detail view that would become broken. No podeu suprimir aquesta vista perquè conté una vista de detall que es trencaria. - You cannot delete this view because it has a leader line that would become broken. No podeu suprimir aquesta vista perquè conté una línia guia que es trencaria. - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4725,15 +4810,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color dels vèrtexs en les vistes - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4774,6 +4850,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Color de la cara (si no és transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5444,79 +5529,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated Activa/desactiva l'&actualització automàtica - + Toggle &Frames Activa/desactiva els &marcs - + &Export SVG &Exporta SVG - + Export DXF Exporta DXF - + Export PDF Exporta a PDF - + Print All Pages Print All Pages - + Different orientation Orientació diferent - + The printer uses a different orientation than the drawing. Do you want to continue? La impressora utilitza una orientació diferent de la del dibuix. Voleu continuar? - + Different paper size Mida de paper diferent - + The printer uses a different paper size than the drawing. Do you want to continue? La impressora utilitza una mida de paper diferent de la del dibuix. Voleu continuar? - + Opening file failed No s'ha pogut obrir el fitxer. - + Can not open file %1 for writing. No s'ha pogut obrir el fitxer %1 per a escriure-hi. - + Save DXF file Save DXF file - + DXF (*.dxf) DXF (*.dxf) - + Selected: Seleccionat: @@ -8541,12 +8626,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-CN.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-CN.ts index c1910ad2a4..3c36a00c7b 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-CN.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-CN.ts @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw 工程图 - + Insert Arch Workbench Object 插入 Arch 工作台对象 - + Insert a View of a Section Plane from Arch Workbench 从 Arch Workbench 插入剖面的视图 @@ -352,22 +352,22 @@ CmdTechDrawExportPageDXF - + File 文件 - + Export Page as DXF 以DXF格式导出页面 - + Save DXF file 保存为 Dxf 文件 - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File 文件 - + Export Page as SVG 以SVG格式导出页面 @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - 模板 (*.svg *.dxf) + Template (*.svg) + 模板 (*.svg) @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw 工程图 - + Project shape... 投影形体... @@ -1753,17 +1753,17 @@ CmdTechDrawSpreadsheetView - + TechDraw 工程图 - + Insert Spreadsheet View 插入数据表视图 - + Insert View to a spreadsheet 将视图插入数据表 @@ -1999,23 +1999,23 @@ 创建符号 - + Create DraftView 创建草稿视图 - + Create ArchView 创建拱门视图 - + Create spreadsheet view 创建电子表格视图 - - + + Save page to dxf 保存页面到 dxf @@ -2086,7 +2086,7 @@ 创建活动视图 - + Create CenterLine 创建中心线 @@ -2161,11 +2161,21 @@ Add Cosmetic Vertex 添加饰品顶点 + + + TechDraw Insert Prefix + TechDraw Insert Prefix + Insert Prefix Insert Prefix + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2251,76 +2261,151 @@ Create Arc Length Dim Create Arc Length Dim + + + TechDraw Hole Circle + TechDraw Hole Circle + Bolt Circle Centerlines Bolt Circle Centerlines + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines + Circle Centerlines Circle Centerlines + + + TechDraw Thread Hole Side + TechDraw Thread Hole Side + Cosmetic Thread Hole Side Cosmetic Thread Hole Side + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side + Cosmetic Thread Bolt Side Cosmetic Thread Bolt Side + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom + Cosmetic Thread Hole Bottom Cosmetic Thread Hole Bottom + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom + Cosmetic Thread Bolt Bottom Cosmetic Thread Bolt Bottom + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes + Change Line Attributes 修改线条属性 + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) Cosmetic Intersection Vertex(es) + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc + Cosmetic Arc Cosmetic Arc + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle + Cosmetic Circle Cosmetic Circle + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points + Cosmetic Circle 3 Points Cosmetic Circle 3 Points + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular + Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View + Lock/Unlock View Lock/Unlock View + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line Extend/Shorten Line + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2627,9 +2712,9 @@ - - - + + + Wrong selection 选择错误 @@ -2765,37 +2850,37 @@ 请至少选择一个对象。 - + Please select only 1 Arch Section. Please select only 1 Arch Section. - + No Arch Sections in selection. No Arch Sections in selection. - + Select exactly one Spreadsheet object. 选择一个电子表格对象。 - + No Drawing View 无绘图视图 - + Open Drawing View before attempting export to SVG. 在尝试导出到 SVG 之前打开绘图视图。 - + Can not export selection 无法导出所选对象 - + Page contains DrawViewArch which will not be exported. Continue? Page contains DrawViewArch which will not be exported. Continue? @@ -3285,50 +3370,50 @@ No Drawing Pages in document. - + PDF (*.pdf) PDF (* pdf) - - + + All Files (*.*) 所有文件(*.*) - + Export Page As PDF 以 PDF 格式导出页面 - + Document Name: Document Name: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG 以 SVG格式导出页面 - + Are you sure you want to continue? 您确定要继续吗? - + Show drawing 显示绘图 - + Toggle KeepUpdated 切换保持更新 @@ -3355,7 +3440,7 @@ - + Rich text editor 富文本编辑器 @@ -3400,7 +3485,7 @@ 创建中心线 - + Edit Center Line 编辑中心线 @@ -3596,14 +3681,14 @@ - + Selection is empty Selection is empty - + No object selected No object selected @@ -3628,12 +3713,12 @@ No faces in selection. - + TechDraw Thread Hole Side TechDraw Thread Hole Side - + Please select two straight lines Please select two straight lines @@ -3744,16 +3829,19 @@ it has a weld symbol that would become broken. 指引线 - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + 您不能删除此视图,因为它有一个或多个依赖的视图会被损坏。 + + + - + @@ -3766,25 +3854,22 @@ it has a weld symbol that would become broken. You cannot delete the anchor view of a projection group. - You cannot delete this view because it has a section view that would become broken. You cannot delete this view because it has a section view that would become broken. - You cannot delete this view because it has a detail view that would become broken. You cannot delete this view because it has a detail view that would become broken. - You cannot delete this view because it has a leader line that would become broken. 您不能删除此视图,因为它有一个指引线会被损坏。 - + The page is not empty, therefore the following referencing objects might be lost: The page is not empty, therefore the @@ -4730,15 +4815,6 @@ when hatching a face with a PAT pattern Color of vertices in views Color of vertices in views - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight @@ -4779,6 +4855,15 @@ when hatching a face with a PAT pattern Face color (if not transparent) Face color (if not transparent) + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + + Monochrome @@ -5451,79 +5536,79 @@ Fast, but result is a collection of short straight lines. TechDrawGui::MDIViewPage - + Toggle &Keep Updated 切换和保持更新 - + Toggle &Frames Toggle &Frames - + &Export SVG &导出 SVG - + Export DXF 导出 DXF - + Export PDF 导出PDF - + Print All Pages Print All Pages - + Different orientation 不同方向 - + The printer uses a different orientation than the drawing. Do you want to continue? 打印机和图纸使用了不同的定位位置。你想要继续吗? - + Different paper size 不同的图纸大小 - + The printer uses a different paper size than the drawing. Do you want to continue? 打印机和当前图纸使用了不同大小的图纸,是否继续? - + Opening file failed 打开文件失败 - + Can not open file %1 for writing. 无法打开文件“%1”进行写入。 - + Save DXF file 保存为 Dxf 文件 - + DXF (*.dxf) DXF (*.dxf) - + Selected: 已选择: @@ -8549,12 +8634,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box diff --git a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-TW.ts b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-TW.ts index 3b9b9ea4fb..ee4e308ecb 100644 --- a/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-TW.ts +++ b/src/Mod/TechDraw/Gui/Resources/translations/TechDraw_zh-TW.ts @@ -38,7 +38,7 @@ TechDraw - 工程圖 + TechDraw @@ -51,7 +51,7 @@ TechDraw - 工程圖 + TechDraw @@ -64,12 +64,12 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Line Through 2 Points - 通過2點增加裝飾線 + 通過 2 點添加裝飾線 @@ -77,7 +77,7 @@ TechDraw - 工程圖 + TechDraw @@ -90,7 +90,7 @@ TechDraw - 工程圖 + TechDraw @@ -103,7 +103,7 @@ TechDraw - 工程圖 + TechDraw @@ -116,7 +116,7 @@ TechDraw - 工程圖 + TechDraw @@ -127,17 +127,17 @@ CmdTechDrawArchView - + TechDraw - 工程圖 + TechDraw - + Insert Arch Workbench Object - 插入 Arch 工作台物體 + 插入 Arch 工作台物件 - + Insert a View of a Section Plane from Arch Workbench 從 Arch 工作台插入剖面視圖 @@ -147,7 +147,7 @@ TechDraw - 工程圖 + TechDraw @@ -160,7 +160,7 @@ TechDraw - 工程圖 + TechDraw @@ -170,7 +170,7 @@ Add Centerline to Faces - 新增中心線至面 + 添加中心線至面 @@ -178,12 +178,12 @@ TechDraw - 工程圖 + TechDraw Insert Clip Group - 插入剪輯組 + 插入裁剪群組 @@ -191,12 +191,12 @@ TechDraw - 工程圖 + TechDraw Add View to Clip Group - 將檢視增加到剪輯組 + 添加視圖至裁剪群組 @@ -204,12 +204,12 @@ TechDraw - 工程圖 + TechDraw Remove View from Clip Group - Remove View from Clip Group + 自裁剪群組中移除視圖 @@ -217,7 +217,7 @@ TechDraw - 工程圖 + TechDraw @@ -235,12 +235,12 @@ TechDraw - 工程圖 + TechDraw Remove Cosmetic Object - Remove Cosmetic Object + 移除裝飾物件 @@ -248,12 +248,12 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Vertex - Add Cosmetic Vertex + 添加裝飾頂點 @@ -261,17 +261,17 @@ TechDraw - 工程圖 + TechDraw Insert Cosmetic Vertex - Insert Cosmetic Vertex + 插入裝飾頂點 Add Cosmetic Vertex - Add Cosmetic Vertex + 添加裝飾頂點 @@ -279,7 +279,7 @@ TechDraw - 工程圖 + TechDraw @@ -297,7 +297,7 @@ TechDraw - 工程圖 + TechDraw @@ -310,12 +310,12 @@ TechDraw - 工程圖 + TechDraw Insert Diameter Dimension - 插入直徑尺寸 + 插入直徑標註 @@ -323,7 +323,7 @@ TechDraw - 工程圖 + TechDraw @@ -336,38 +336,38 @@ TechDraw - 工程圖 + TechDraw Insert Draft Workbench Object - 插入草圖工作台物體 + 插入草圖工作台物件 Insert a View of a Draft Workbench object - 插入由Draft Workbench 物體事角 + 插入由Draft Workbench 物件事角 CmdTechDrawExportPageDXF - + File 檔案 - + Export Page as DXF 匯出為DXF檔 - + Save DXF file 儲存DXF檔 - + DXF (*.dxf) DXF (*.dxf) @@ -375,12 +375,12 @@ CmdTechDrawExportPageSVG - + File 檔案 - + Export Page as SVG 滙出為SVG檔 @@ -390,7 +390,7 @@ TechDraw - 工程圖 + TechDraw @@ -400,7 +400,7 @@ Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool + 由兩端延伸裝飾線或是在中心線:<br>- 指定增量距離(可選)<br>- 選擇單一線段<br>- 點選此工具 @@ -408,7 +408,7 @@ TechDraw - 工程圖 + TechDraw @@ -426,17 +426,17 @@ TechDraw - 工程圖 + TechDraw Cascade Horizontal Dimensions - Cascade Horizontal Dimensions + 串聯水平標註 Evenly space horizontal dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool - Evenly space horizontal dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool + 平均水平標註間距:<br>- 指定串級間距 (可選)<br>- 選擇二個或更多個水平尺寸<br>- 第一個標註定義其位置<br>- 點選此工具 @@ -444,19 +444,19 @@ TechDraw - 工程圖 + TechDraw Cascade Horizontal Dimensions - Cascade Horizontal Dimensions + 串聯水平標註 Evenly space horizontal dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool - Evenly space horizontal dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more horizontal dimensions<br>- The first dimension defines the position<br>- Click this tool + 平均水平標註間距:<br>- 指定串級間距 (可選)<br>- 選擇二個或更多個水平尺寸<br>- 第一個標註定義其位置<br>- 點選此工具 @@ -464,19 +464,19 @@ TechDraw - 工程圖 + TechDraw Cascade Oblique Dimensions - Cascade Oblique Dimensions + 串聯傾斜標註 Evenly space oblique dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool - Evenly space oblique dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more parallel oblique dimensions<br>- The first dimension defines the position<br>- Click this tool + 平均傾斜標註間距:<br>- 指定串級間距 (可選)<br>- 選擇二個或更多個平行傾斜尺寸<br>- 第一個標註定義其位置<br>- 點選此工具 @@ -484,19 +484,19 @@ TechDraw - 工程圖 + TechDraw Cascade Vertical Dimensions - Cascade Vertical Dimensions + 串聯垂直標註 Evenly space vertical dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more vertical dimensions<br>- The first dimension defines the position<br>- Click this tool - Evenly space vertical dimensions:<br>- Specify the cascade spacing (optional)<br>- Select two or more vertical dimensions<br>- The first dimension defines the position<br>- Click this tool + 平均垂直標註間距:<br>- 指定串級間距 (可選)<br>- 選擇二個或更多個垂直尺寸<br>- 第一個標註定義其位置<br>- 點選此工具 @@ -504,17 +504,17 @@ TechDraw - 工程圖 + TechDraw Create Horizontal Chamfer Dimension - Create Horizontal Chamfer Dimension + 建立水平倒角標註 Create a horizontal size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool - Create a horizontal size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool + 建立一個倒角的水平尺寸與角度標註:<br>- 選擇兩個頂點<br>- 點擊此工具 @@ -522,7 +522,7 @@ TechDraw - 工程圖 + TechDraw @@ -532,7 +532,7 @@ Change the attributes of cosmetic lines and centerlines:<br>- Specify the line attributes (optional)<br>- Select one or more lines<br>- Click this tool - Change the attributes of cosmetic lines and centerlines:<br>- Specify the line attributes (optional)<br>- Select one or more lines<br>- Click this tool + 改變裝飾線及中心線之屬性:<br>- 指定線屬性 (可選)<br>- 選擇一或多條線<br>- 點選此工具 @@ -540,19 +540,19 @@ TechDraw - 工程圖 + TechDraw Add Circle Centerlines - 新增圓中心線 + 添加圓中心線 Add centerlines to circles and arcs:<br>- Specify the line attributes (optional)<br>- Select one or more circles or arcs<br>- Click this tool - Add centerlines to circles and arcs:<br>- Specify the line attributes (optional)<br>- Select one or more circles or arcs<br>- Click this tool + 添加中心線到圓或弧:<br>- 指定線屬性 (可選)<br>- 選擇一或多圓或弧<br>- 點選此工具 @@ -560,17 +560,17 @@ TechDraw - 工程圖 + TechDraw Add Circle Centerlines - 新增圓中心線 + 添加圓中心線 Add centerlines to circles and arcs:<br>- Specify the line attributes (optional)<br>- Select one or more circles or arcs<br>- Click this tool - Add centerlines to circles and arcs:<br>- Specify the line attributes (optional)<br>- Select one or more circles or arcs<br>- Click this tool + 添加中心線到圓或弧:<br>- 指定線屬性 (可選)<br>- 選擇一或多圓或弧<br>- 點選此工具 @@ -578,7 +578,7 @@ TechDraw - 工程圖 + TechDraw @@ -596,17 +596,17 @@ TechDraw - 工程圖 + TechDraw Create Horizontal Coordinate Dimensions - Create Horizontal Coordinate Dimensions + 建立水平座標標註 Create multiple evenly spaced horizontal dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool - Create multiple evenly spaced horizontal dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool + 從同一基線開始創建多個均勻間距的水平標註:<br>- 指定串級間距 (可選)<br>- 選擇三個或更多頂點<br>- 選擇順序中的前兩個頂點決定了基線的位置<br>- 點選此工具 @@ -614,7 +614,7 @@ TechDraw - 工程圖 + TechDraw @@ -634,19 +634,19 @@ TechDraw - 工程圖 + TechDraw Create Horizontal Chamfer Dimension - Create Horizontal Chamfer Dimension + 建立水平倒角標註 Create a horizontal size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool - Create a horizontal size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool + 建立一個倒角的水平尺寸與角度標註:<br>- 選擇兩個頂點<br>- 點擊此工具 @@ -654,19 +654,19 @@ TechDraw - 工程圖 + TechDraw Create Horizontal Coordinate Dimensions - Create Horizontal Coordinate Dimensions + 建立水平座標標註 Create multiple evenly spaced horizontal dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool - Create multiple evenly spaced horizontal dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool + 從同一基線開始創建多個均勻間距的水平標註:<br>- 指定串級間距 (可選)<br>- 選擇三個或更多頂點<br>- 選擇順序中的前兩個頂點決定了基線的位置<br>- 點選此工具 @@ -674,7 +674,7 @@ TechDraw - 工程圖 + TechDraw @@ -684,7 +684,7 @@ Create an arc length dimension:<br>- Select a single arc<br>- Click this tool - Create an arc length dimension:<br>- Select a single arc<br>- Click this tool + 建立弧長尺寸:<br>- 選擇一弧<br>- 點選此工具 @@ -692,7 +692,7 @@ TechDraw - 工程圖 + TechDraw @@ -712,19 +712,19 @@ TechDraw - 工程圖 + TechDraw Create Oblique Coordinate Dimensions - Create Oblique Coordinate Dimensions + 建立斜座標標註 Create multiple evenly spaced oblique dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- The first two vertexes also define the direction<br>- Click this tool - Create multiple evenly spaced oblique dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- The first two vertexes also define the direction<br>- Click this tool + 從同一基線開始創建多個均勻間距的傾斜尺寸:<br>- 指定串級間距 (可選)<br>- 選擇三個或更多頂點<br>- 選擇順序中的前兩個頂點決定了基線的位置<br>- 前兩個頂點也同時定義了方向<br>- 點選此工具 @@ -732,7 +732,7 @@ TechDraw - 工程圖 + TechDraw @@ -752,7 +752,7 @@ TechDraw - 工程圖 + TechDraw @@ -764,7 +764,7 @@ Create a vertical size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool - Create a vertical size and angle dimension for a chamfer:<br>- Select two vertexes<br>- Click this tool + 建立一個倒角的垂直尺寸與角度標註:<br>- 選擇兩個頂點<br>- 點擊此工具 @@ -772,7 +772,7 @@ TechDraw - 工程圖 + TechDraw @@ -784,7 +784,7 @@ Create multiple evenly spaced vertical dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool - Create multiple evenly spaced vertical dimensions starting from the same baseline:<br>- Specify the cascade spacing (optional)<br>- Select three or more vertexes<br>- The selection order of the first two vertexes determines the position of the baseline<br>- Click this tool + 從同一基線開始創建多個均勻間距的垂直標註:<br>- 指定串級間距 (可選)<br>- 選擇三個或更多頂點<br>- 選擇順序中的前兩個頂點決定了基線的位置<br>- 點選此工具 @@ -792,7 +792,7 @@ TechDraw - 工程圖 + TechDraw @@ -810,7 +810,7 @@ TechDraw - 工程圖 + TechDraw @@ -822,7 +822,7 @@ Decrease the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Decrease the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 減少標註文字的小數位數:<br>- 選擇一個以上的標註<br>- 點選此工具 @@ -830,17 +830,17 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Circle - Add Cosmetic Circle + 添加裝飾圓 Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool - Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool + 基於兩頂點添加一個裝飾圓:<br>- 指定線屬性(可選) <br>- 選擇頂點 1 (中心點)<br>- 選擇頂點 2 (半徑)<br>- 點選此工具 @@ -848,19 +848,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Arc - Add Cosmetic Arc + 添加裝飾弧 Add a cosmetic counter clockwise arc based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius and start angle)<br>- Select vertex 3 (end angle)<br>- Click this tool - Add a cosmetic counter clockwise arc based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius and start angle)<br>- Select vertex 3 (end angle)<br>- Click this tool + 基於三個頂點添加裝飾性逆時針弧:<br>- 指定線屬性 (可選)<br>- 選擇頂點 1 (中心點)<br>- 選擇頂點 2 (半徑與起始角度)<br>- 選擇頂點 3 (結束角度)<br>- 點選此工具 @@ -868,19 +868,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Circle - Add Cosmetic Circle + 添加裝飾圓 Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool - Add a cosmetic circle based on two vertexes:<br>- Specify the line attributes (optional)<br>- Select vertex 1 (center point)<br>- Select vertex 2 (radius)<br>- Click this tool + 基於兩頂點添加一個裝飾圓:<br>- 指定線屬性(可選) <br>- 選擇頂點 1 (中心點)<br>- 選擇頂點 2 (半徑)<br>- 點選此工具 @@ -888,23 +888,23 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Circle 3 Points - Add Cosmetic Circle 3 Points + 以三點方式添加裝飾圓 Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select 3 vertexes<br>- Click this tool - Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select 3 vertexes<br>- Click this tool + 基於三個頂點添加一個裝飾圓:<br>- 指定線屬性 (可選)<br>- 選擇 3 個頂點<br>- 點選此工具 Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select three vertexes<br>- Click this tool - Add a cosmetic circle based on three vertexes:<br>- Specify the line attributes (optional)<br>- Select three vertexes<br>- Click this tool + 基於三個頂點添加一個裝飾圓:<br>- 指定線屬性 (可選)<br>- 選擇 3 個頂點<br>- 點選此工具 @@ -912,7 +912,7 @@ TechDraw - 工程圖 + TechDraw @@ -924,7 +924,7 @@ Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Extend a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool + 由兩端延伸裝飾線或是在中心線:<br>- 指定增量距離(可選)<br>- 選擇單一線段<br>- 點選此工具 @@ -932,19 +932,19 @@ TechDraw - 工程圖 + TechDraw Add Bolt Circle Centerlines - 新增螺栓圓中心線 + 添加螺栓圓中心線 Add centerlines to a circular pattern of circles:<br>- Specify the line attributes (optional)<br>- Select three or more circles forming a circular pattern<br>- Click this tool - Add centerlines to a circular pattern of circles:<br>- Specify the line attributes (optional)<br>- Select three or more circles forming a circular pattern<br>- Click this tool + 添加中心線到一圓的圓形圖樣:<br>- 指定線屬性 (可選)<br>- 選擇三個以上的圓以形成圓圖樣<br>- 點選此工具 @@ -952,7 +952,7 @@ TechDraw - 工程圖 + TechDraw @@ -964,7 +964,7 @@ Increase the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Increase the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 增加標註文字的小數位數:<br>- 選擇一個以上的標註<br>- 點選此工具 @@ -972,7 +972,7 @@ TechDraw - 工程圖 + TechDraw @@ -982,7 +982,7 @@ Increase the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Increase the number of decimal places of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 增加標註文字的小數位數:<br>- 選擇一個以上的標註<br>- 點選此工具 @@ -990,7 +990,7 @@ TechDraw - 工程圖 + TechDraw @@ -1002,7 +1002,7 @@ Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 插入一個 '⌀' 符號在標註文字開頭:<br>- 選擇一個以上標註<br>- 點選此工具 @@ -1010,7 +1010,7 @@ TechDraw - 工程圖 + TechDraw @@ -1020,7 +1020,7 @@ Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '⌀' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 插入一個 '⌀' 符號在標註文字開頭:<br>- 選擇一個以上標註<br>- 點選此工具 @@ -1028,19 +1028,19 @@ TechDraw - 工程圖 + TechDraw Insert '□' Prefix - Insert '□' Prefix + 插入 '□' 前置 Insert a '□' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Insert a '□' symbol at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 插入一個 '□' 符號在標註文字開頭:<br>- 選擇一個以上標註<br>- 點選此工具 @@ -1048,17 +1048,17 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Parallel Line - Add Cosmetic Parallel Line + 添加裝飾平行線 Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + 通過頂點添加與另一條線平行的裝飾線:<br>- 選擇一條線<br>- 選擇一個頂點<br>- 點選此工具 @@ -1066,19 +1066,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Parallel Line - Add Cosmetic Parallel Line + 添加裝飾平行線 Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line parallel to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + 通過頂點添加與另一條線平行的裝飾線:<br>- 選擇一條線<br>- 選擇一個頂點<br>- 點選此工具 @@ -1086,19 +1086,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Perpendicular Line - Add Cosmetic Perpendicular Line + 添加裝飾垂直線 Add a cosmetic line perpendicular to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool - Add a cosmetic line perpendicular to another line through a vertex:<br>- Select a line<br>- Select a vertex<br>- Click this tool + 通過頂點添加與另一條線垂直的裝飾線:<br>- 選擇一條線<br>- 選擇一個頂點<br>- 點選此工具 @@ -1106,7 +1106,7 @@ TechDraw - 工程圖 + TechDraw @@ -1124,7 +1124,7 @@ TechDraw - 工程圖 + TechDraw @@ -1142,7 +1142,7 @@ TechDraw - 工程圖 + TechDraw @@ -1162,7 +1162,7 @@ TechDraw - 工程圖 + TechDraw @@ -1182,7 +1182,7 @@ TechDraw - 工程圖 + TechDraw @@ -1202,7 +1202,7 @@ TechDraw - 工程圖 + TechDraw @@ -1220,7 +1220,7 @@ TechDraw - 工程圖 + TechDraw @@ -1230,7 +1230,7 @@ Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 移除標註文字的前置符號:<br>- 選擇一個以上的標註<br>- 點選此工具 @@ -1238,17 +1238,17 @@ TechDraw - 工程圖 + TechDraw Select Line Attributes, Cascade Spacing and Delta Distance - Select Line Attributes, Cascade Spacing and Delta Distance + 選擇線屬性,串接間距與增量距離 Select the attributes for new cosmetic lines and centerlines, and specify the cascade spacing and delta distance:<br>- Click this tool<br>- Specify the attributes, spacing and distance in the dialog box<br>- Press OK - Select the attributes for new cosmetic lines and centerlines, and specify the cascade spacing and delta distance:<br>- Click this tool<br>- Specify the attributes, spacing and distance in the dialog box<br>- Press OK + 選擇新裝飾線和中心線的屬性,並指定串接間距和增量距離:<br>- 點選此工具<br>- 在對話框中指定其屬性、間距以及距離<br>- 按下 OK @@ -1256,7 +1256,7 @@ TechDraw - 工程圖 + TechDraw @@ -1268,7 +1268,7 @@ Shorten a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool - Shorten a cosmetic line or centerline at both ends:<br>- Specify the delta distance (optional)<br>- Select a single line<br>- Click this tool + 在兩端縮短裝飾線或中心線:<br>- 指定增量距離(可選)<br>- 選擇單一線段<br>- 點選此工具 @@ -1276,19 +1276,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Thread Bolt Bottom View - Add Cosmetic Thread Bolt Bottom View + 添加裝飾螺紋螺栓底視圖 Add a cosmetic thread to the top or bottom view of bolts/screws/rods:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool - Add a cosmetic thread to the top or bottom view of bolts/screws/rods:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool + 將裝飾螺紋添加到螺栓/螺釘/桿的上視圖或底視圖:<br>- 指定線屬性 (可選)<br>- 選擇一或多的圓形<br>- 點選此工具 @@ -1296,19 +1296,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Thread Bolt Side View - Add Cosmetic Thread Bolt Side View + 添加裝飾螺紋螺栓側視圖 Add a cosmetic thread to the side view of a bolt/screw/rod:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool - Add a cosmetic thread to the side view of a bolt/screw/rod:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool + 將裝飾螺紋添加到螺栓/螺釘/桿的側視圖:<br>- 指定線屬性 (可選)<br>- 選擇兩條平行線<br>- 點選此工具 @@ -1316,19 +1316,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Thread Hole Bottom View - Add Cosmetic Thread Hole Bottom View + 添加裝飾螺紋孔底視圖 Add a cosmetic thread to the top or bottom view of holes:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool - Add a cosmetic thread to the top or bottom view of holes:<br>- Specify the line attributes (optional)<br>- Select one or more circles<br>- Click this tool + 將裝飾螺紋添加到孔的上視圖或底視圖:<br>- 指定線屬性 (可選)<br>- 選擇一或多的圓形<br>- 點選此工具 @@ -1336,19 +1336,19 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Thread Hole Side View - Add Cosmetic Thread Hole Side View + 添加裝飾螺紋孔側視圖 Add a cosmetic thread to the side view of a hole:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool - Add a cosmetic thread to the side view of a hole:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool + 將裝飾螺紋添加到孔的側視圖:<br>- 指定線屬性 (可選)<br>- 選擇兩條平行線<br>- 點選此工具 @@ -1356,17 +1356,17 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Thread Hole Side View - Add Cosmetic Thread Hole Side View + 添加裝飾螺紋孔側視圖 Add a cosmetic thread to the side view of a hole:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool - Add a cosmetic thread to the side view of a hole:<br>- Specify the line attributes (optional)<br>- Select two parallel lines<br>- Click this tool + 將裝飾螺紋添加到孔的側視圖:<br>- 指定線屬性 (可選)<br>- 選擇兩條平行線<br>- 點選此工具 @@ -1374,17 +1374,17 @@ TechDraw - 工程圖 + TechDraw Add Cosmetic Intersection Vertex(es) - Add Cosmetic Intersection Vertex(es) + 添加裝飾交叉頂點 Add cosmetic vertex(es) at the intersection(s) of selected edges:<br>- Select two edges (lines, circles and/or arcs)<br>- Click this tool - Add cosmetic vertex(es) at the intersection(s) of selected edges:<br>- Select two edges (lines, circles and/or arcs)<br>- Click this tool + 在選擇邊的交叉處添加裝飾頂點:<br>- 選擇兩個邊 (線、圓與/或弧)<br>- 點選此工具 @@ -1392,7 +1392,7 @@ TechDraw - 工程圖 + TechDraw @@ -1415,12 +1415,12 @@ TechDraw - 工程圖 + TechDraw Add Centerline to Faces - 新增中心線至面 + 添加中心線至面 @@ -1428,12 +1428,12 @@ TechDraw - 工程圖 + TechDraw Apply Geometric Hatch to Face - Apply Geometric Hatch to Face + 應用幾何填充至面 @@ -1441,7 +1441,7 @@ TechDraw - 工程圖 + TechDraw @@ -1454,7 +1454,7 @@ TechDraw - 工程圖 + TechDraw @@ -1467,7 +1467,7 @@ TechDraw - 工程圖 + TechDraw @@ -1480,7 +1480,7 @@ TechDraw - 工程圖 + TechDraw @@ -1509,7 +1509,7 @@ TechDraw - 工程圖 + TechDraw @@ -1522,7 +1522,7 @@ TechDraw - 工程圖 + TechDraw @@ -1535,7 +1535,7 @@ TechDraw - 工程圖 + TechDraw @@ -1548,7 +1548,7 @@ TechDraw - 工程圖 + TechDraw @@ -1561,7 +1561,7 @@ TechDraw - 工程圖 + TechDraw @@ -1574,7 +1574,7 @@ TechDraw - 工程圖 + TechDraw @@ -1587,7 +1587,7 @@ TechDraw - 工程圖 + TechDraw @@ -1601,8 +1601,8 @@ - Template (*.svg *.dxf) - 樣版(*.svg *.dxf) + Template (*.svg) + Template (*.svg) @@ -1610,7 +1610,7 @@ TechDraw - 工程圖 + TechDraw @@ -1621,12 +1621,12 @@ CmdTechDrawProjectShape - + TechDraw - 工程圖 + TechDraw - + Project shape... 專案形式 @@ -1636,7 +1636,7 @@ TechDraw - 工程圖 + TechDraw @@ -1646,7 +1646,7 @@ Insert multiple linked views of drawable object(s) - 插入可繪製物體的多個可鏈接視圖 + 插入可繪製物件的多個可鏈接視圖 @@ -1654,7 +1654,7 @@ TechDraw - 工程圖 + TechDraw @@ -1667,7 +1667,7 @@ TechDraw - 工程圖 + TechDraw @@ -1680,7 +1680,7 @@ TechDraw - 工程圖 + TechDraw @@ -1693,7 +1693,7 @@ TechDraw - 工程圖 + TechDraw @@ -1706,7 +1706,7 @@ TechDraw - 工程圖 + TechDraw @@ -1729,7 +1729,7 @@ TechDraw - 工程圖 + TechDraw @@ -1742,28 +1742,28 @@ TechDraw - 工程圖 + TechDraw Show/Hide Invisible Edges - Show/Hide Invisible Edges + 顯示/隱藏不可視的邊 CmdTechDrawSpreadsheetView - + TechDraw - 工程圖 + TechDraw - + Insert Spreadsheet View 插入試算表視圖 - + Insert View to a spreadsheet 插入視圖至試算表 @@ -1773,7 +1773,7 @@ TechDraw - 工程圖 + TechDraw @@ -1786,7 +1786,7 @@ TechDraw - 工程圖 + TechDraw @@ -1799,7 +1799,7 @@ TechDraw - 工程圖 + TechDraw @@ -1832,7 +1832,7 @@ TechDraw - 工程圖 + TechDraw @@ -1845,7 +1845,7 @@ TechDraw - 工程圖 + TechDraw @@ -1858,7 +1858,7 @@ TechDraw - 工程圖 + TechDraw @@ -1876,7 +1876,7 @@ TechDraw - 工程圖 + TechDraw @@ -1894,7 +1894,7 @@ TechDraw - 工程圖 + TechDraw @@ -1908,7 +1908,7 @@ TechDraw - 工程圖 + TechDraw @@ -1921,7 +1921,7 @@ TechDraw - 工程圖 + TechDraw @@ -1934,7 +1934,7 @@ TechDraw - 工程圖 + TechDraw @@ -1952,12 +1952,12 @@ TechDraw - 工程圖 + TechDraw Add Welding Information to Leaderline - 加入焊接資訊到指線 + 加入銲接資訊到指線 @@ -1976,22 +1976,22 @@ Create Projection Group - Create Projection Group + 建立投射群組 Create Clip - Create Clip + 建立裁剪 ClipGroupAdd - ClipGroupAdd + 添加裁剪群組 ClipGroupRemove - ClipGroupRemove + 移除裁剪群組 @@ -1999,23 +1999,23 @@ 建立符號 - + Create DraftView - Create DraftView + 建立 DraftView - + Create ArchView - Create ArchView + 建立 ArchView - + Create spreadsheet view - Create spreadsheet view + 建立試算表視圖 - - + + Save page to dxf 儲存頁面為 DXF 格式 @@ -2043,7 +2043,7 @@ Create Hatch - Create Hatch + 建立填充 @@ -2058,7 +2058,7 @@ Create GeomHatch - Create GeomHatch + 建立幾何填充(GeomHatch) @@ -2086,19 +2086,19 @@ 建立活動視圖 - + Create CenterLine 建立中心線 Create Cosmetic Line - Create Cosmetic Line + 建立裝飾線 Update CosmeticLine - Update CosmeticLine + 更新裝飾線 @@ -2149,23 +2149,33 @@ Create WeldSymbol - Create WeldSymbol + 建立銲接符號 Edit WeldSymbol - Edit WeldSymbol + 編輯銲接符號 Add Cosmetic Vertex - Add Cosmetic Vertex + 添加裝飾頂點 + + + + TechDraw Insert Prefix + TechDraw Insert Prefix Insert Prefix 插入前置 + + + TechDraw Remove Prefix + TechDraw Remove Prefix + Remove Prefix @@ -2194,17 +2204,17 @@ Cascade Horiz Dim - Cascade Horiz Dim + 串聯水平尺寸 Cascade Vert Dim - Cascade Vert Dim + 串聯垂直尺寸 Cascade Oblique Dim - Cascade Oblique Dim + 串聯傾斜尺寸 @@ -2224,103 +2234,178 @@ Create Horiz Coord Dim - Create Horiz Coord Dim + 建立水平座標標註 Create Vert Coord Dim - Create Vert Coord Dim + 建立垂直座標標註 Create Oblique Coord Dim - Create Oblique Coord Dim + 建立傾斜座標標註 Create Horiz Chamfer Dim - Create Horiz Chamfer Dim + 建立水平倒角標註 Create Vert Chamfer Dim - Create Vert Chamfer Dim + 建立垂直倒角標註 Create Arc Length Dim - Create Arc Length Dim + 建立弧長標註 + + + + TechDraw Hole Circle + TechDraw 孔圓 Bolt Circle Centerlines - Bolt Circle Centerlines + 螺栓圓中心線 + + + + TechDraw Circle Centerlines + TechDraw Circle Centerlines Circle Centerlines 圓中心線 + + + TechDraw Thread Hole Side + TechDraw 螺紋孔側 + Cosmetic Thread Hole Side - Cosmetic Thread Hole Side + 裝飾螺紋孔側 + + + + TechDraw Thread Bolt Side + TechDraw Thread Bolt Side Cosmetic Thread Bolt Side - Cosmetic Thread Bolt Side + 裝飾螺紋螺栓側 + + + + TechDraw Thread Hole Bottom + TechDraw Thread Hole Bottom Cosmetic Thread Hole Bottom - Cosmetic Thread Hole Bottom + 裝飾螺紋孔底 + + + + TechDraw Thread Bolt Bottom + TechDraw Thread Bolt Bottom Cosmetic Thread Bolt Bottom - Cosmetic Thread Bolt Bottom + 裝飾螺紋螺栓底 + + + + TechDraw Change Line Attributes + TechDraw Change Line Attributes Change Line Attributes 變更線屬性 + + + TechDraw Cosmetic Intersection Vertex(es) + TechDraw Cosmetic Intersection Vertex(es) + Cosmetic Intersection Vertex(es) - Cosmetic Intersection Vertex(es) + 裝飾交叉頂點 + + + + TechDraw Cosmetic Arc + TechDraw Cosmetic Arc Cosmetic Arc - Cosmetic Arc + 裝飾弧 + + + + TechDraw Cosmetic Circle + TechDraw Cosmetic Circle Cosmetic Circle - Cosmetic Circle + 裝飾圓 + + + + TechDraw Cosmetic Circle 3 Points + TechDraw Cosmetic Circle 3 Points Cosmetic Circle 3 Points - Cosmetic Circle 3 Points + 裝飾圓三點 + + + + TechDraw Cosmetic Line Parallel/Perpendicular + TechDraw Cosmetic Line Parallel/Perpendicular Cosmetic Line Parallel/Perpendicular - Cosmetic Line Parallel/Perpendicular + 裝飾線平行/垂直 + + + + TechDraw Lock/Unlock View + TechDraw Lock/Unlock View Lock/Unlock View 鎖定/解鎖視圖 + + + TechDraw Extend/Shorten Line + TechDraw Extend/Shorten Line + Extend/Shorten Line 延長/縮短 線 + + + TechDraw calculate selected area + TechDraw calculate selected area + Calculate Face Area @@ -2486,7 +2571,7 @@ Decrease indentation (CTRL+,) - Decrease indentation (CTRL+,) + 減少縮排 (CTRL+,) @@ -2496,7 +2581,7 @@ Increase indentation (CTRL+.) - Increase indentation (CTRL+.) + 增加縮排 (CTRL+.) @@ -2562,12 +2647,12 @@ Remove character formatting - Remove character formatting + 移除文字格式 Remove all formatting - Remove all formatting + 移除所有格式 @@ -2627,23 +2712,23 @@ - - - + + + Wrong selection - 錯誤的選擇 + 錯誤的選取 No Shapes, Groups or Links in this selection - No Shapes, Groups or Links in this selection + 此選擇中沒有形狀、群組或連結 Select at least 1 DrawViewPart object as Base. - 選擇至少一個 DrawViewPart 物體作為基礎。 + 選擇至少一個 DrawViewPart 物件作為基礎。 @@ -2687,13 +2772,13 @@ Select an object first - 請先選一個物體 + 請先選一個物件 Too many objects selected - 太多物體被選擇 + 太多物件被選擇 @@ -2717,7 +2802,7 @@ Select one Clip group and one View. - Select one Clip group and one View. + 選擇一個裁剪群組與一個視圖 @@ -2727,12 +2812,12 @@ Select exactly one Clip group. - Select exactly one Clip group. + 選擇正好一個裁剪群組 Clip and View must be from same Page. - Clip and View must be from same Page. + 裁剪與視圖必須來自相同頁面。 @@ -2742,7 +2827,7 @@ View does not belong to a Clip - View does not belong to a Clip + 視圖不屬於裁剪 @@ -2762,42 +2847,42 @@ Select at least one object. - 至少選擇一個物體. + 至少選擇一個物件 - + Please select only 1 Arch Section. - Please select only 1 Arch Section. + 請選擇只有 1 個 Arch 剖面 - + No Arch Sections in selection. 沒有選擇 Arch 剖面圖。 - + Select exactly one Spreadsheet object. 請僅選擇一個試算表物件 - + No Drawing View - No Drawing View + 沒有繪圖視圖 - + Open Drawing View before attempting export to SVG. - Open Drawing View before attempting export to SVG. + 在嘗試導出到 SVG 之前打開繪圖視圖。 - + Can not export selection 無法匯出選擇的 - + Page contains DrawViewArch which will not be exported. Continue? - Page contains DrawViewArch which will not be exported. Continue? + 頁面包含 DrawViewArch 將不會被匯出。繼續? @@ -2808,7 +2893,7 @@ Selected edge is an Ellipse. Radius will be approximate. Continue? - Selected edge is an Ellipse. Radius will be approximate. Continue? + 選取邊為橢圓,其半徑為近似值。是否繼續? @@ -2884,7 +2969,7 @@ Selected edge is an Ellipse. Diameter will be approximate. Continue? - Selected edge is an Ellipse. Diameter will be approximate. Continue? + 選取邊為橢圓,其直徑為近似值。是否繼續? @@ -2956,22 +3041,22 @@ There is no 3D object in your selection - 您的選擇中沒有 3D 物體 + 您的選擇中沒有 3D 物件 There are no 3D Edges or Vertices in your selection - There are no 3D Edges or Vertices in your selection + 在您的選擇中沒有 3D 邊或點 Select 2 point objects and 1 View. (1) - 選擇 2 點物體以及 1 個視圖。(1) + 選擇 2 點物件以及 1 個視圖。(1) Select 2 point objects and 1 View. (2) - 選擇 2 點物體以及 1 個視圖。(2) + 選擇 2 點物件以及 1 個視圖。(2) @@ -3069,7 +3154,7 @@ Close active task dialog and try again. - Close active task dialog and try again. + 關閉活動任務對話框並重試。 @@ -3101,7 +3186,7 @@ Can not attach leader. No base View selected. - Can not attach leader. No base View selected. + 無法附加指線。未選擇基本視圖。 @@ -3115,7 +3200,7 @@ No DrawViewPart objects in this selection - 此選擇中沒有 DrawViewPart 物體 + 此選擇中沒有 DrawViewPart 物件 @@ -3138,7 +3223,7 @@ Selection is not a CenterLine. - Selection is not a CenterLine. + 選擇並非中心線 @@ -3168,7 +3253,7 @@ Selection is not a Cosmetic Line. - Selection is not a Cosmetic Line. + 選擇並非裝飾線 @@ -3184,22 +3269,22 @@ At least 1 object in selection is not a part view - 至少 1 個選取物體不是零件視圖 + 至少 1 個選取物件不是零件視圖 Unknown object type in selection - 未知的物體類型在選擇中 + 未知的物件類型在選擇中 No View in Selection. - 選擇中沒有視圖. + 選擇中沒有視圖 You must select a View and/or lines. - 您必須選擇一個視圖與/或線. + 您必須選擇一個視圖與/或線 @@ -3209,7 +3294,7 @@ Select exactly one Leader line or one Weld symbol. - 選擇正好一個指線或一個焊接符號。 + 選擇正好一個指線或一個銲接符號。 @@ -3230,12 +3315,12 @@ Replace Hatch? - Replace Hatch? + 替代填充? Some Faces in selection are already hatched. Replace? - Some Faces in selection are already hatched. Replace? + 某些選擇中的面已被填充,是否更換? @@ -3255,7 +3340,7 @@ No TechDraw object in selection - 沒有 TechDraw 物體在選擇中 + 沒有 TechDraw 物件在選擇中 @@ -3266,7 +3351,7 @@ No Faces to hatch in this selection - No Faces to hatch in this selection + 此填充中沒有面要填充 @@ -3282,55 +3367,55 @@ No Drawing Pages in document. - No Drawing Pages in document. + 文件中沒有繪圖頁面 - + PDF (*.pdf) PDF (*.pdf) - - + + All Files (*.*) 所有檔 (*.*) - + Export Page As PDF 匯出頁面為 PDF 檔 - + Document Name: 文件名稱: - + SVG (*.svg) SVG (*.svg) - + Export page as SVG 匯出頁面為 SVG 檔 - + Are you sure you want to continue? 您確定要繼續嗎? - + Show drawing 顯示圖面 - + Toggle KeepUpdated - Toggle KeepUpdated + 切換保持更新 @@ -3355,14 +3440,14 @@ - + Rich text editor 富文字編輯器 New Cosmetic Vertex - New Cosmetic Vertex + 新裝飾頂點 @@ -3400,7 +3485,7 @@ 建立中心線 - + Edit Center Line 編輯中心線 @@ -3445,22 +3530,22 @@ Create Welding Symbol - 建立焊接符號 + 建立銲接符號 Edit Welding Symbol - 編輯焊接符號 + 編輯銲接符號 Create Cosmetic Line - Create Cosmetic Line + 建立裝飾線 Edit Cosmetic Line - Edit Cosmetic Line + 編輯裝飾線 @@ -3487,7 +3572,7 @@ TechDraw PosHorizChainDimension - 工程圖水平鏈標註位置 + TechDraw 水平鏈標註位置 @@ -3499,7 +3584,7 @@ TechDraw PosVertChainDimension - 工程圖垂直鏈標註位置 + TechDraw 垂直鏈標註位置 @@ -3511,7 +3596,7 @@ TechDraw PosObliqueChainDimension - 工程圖PosObliqueChainDimension + TechDraw PosObliqueChainDimension @@ -3523,19 +3608,19 @@ TechDraw CascadeHorizDimension - 工程圖CascadeHorizDimension + TechDraw 串聯水平尺寸(CascadeHorizDimension) TechDraw CascadeVertDimension - 工程圖CascadeVertDimension + TechDraw 串聯垂直尺寸(CascadeVertDimension) TechDraw CascadeObliqueDimension - 工程圖CascadeObliqueDimension + TechDraw 串聯傾斜尺寸(CascadeObliqueDimension) @@ -3596,31 +3681,31 @@ - + Selection is empty - 選擇為空 + 選擇為空。 - + No object selected - 沒有選擇物體 + 沒有選擇物件 TechDraw Hole Circle - 工程圖孔圓 + TechDraw 孔圓 Fewer than three circles selected - Fewer than three circles selected + 少於 3 個圓被選擇 TechDraw Position Section View - 工程圖Position Section View + TechDraw 放置剖面視圖 @@ -3628,14 +3713,14 @@ No faces in selection. - + TechDraw Thread Hole Side - 工程圖Thread Hole Side + TechDraw 螺紋孔側 - + Please select two straight lines - Please select two straight lines + 請選擇兩條直線 @@ -3732,7 +3817,7 @@ TechDraw - 工程圖 + TechDraw @@ -3742,24 +3827,27 @@ You cannot delete this leader line because it has a weld symbol that would become broken. 您不能刪除此指線因為 -它有焊接符號會損壞。 +它有銲接符號會損壞。 - - - + + You cannot delete this view because it has one or more dependent views that would become broken. + You cannot delete this view because it has one or more dependent views that would become broken. + + + - + Object dependencies - 物體相依 + 物件相依 @@ -3767,29 +3855,25 @@ it has a weld symbol that would become broken. 您不能刪除投影群組的錨點視圖。 - You cannot delete this view because it has a section view that would become broken. 您不能刪除此視圖因為它有剖面視圖會損壞。 - You cannot delete this view because it has a detail view that would become broken. 您不能刪除此視圖因為它有詳細視圖會損壞。 - You cannot delete this view because it has a leader line that would become broken. 您不能刪除此視圖因為它有指線會損壞。 - + The page is not empty, therefore the following referencing objects might be lost: - The page is not empty, therefore the -following referencing objects might be lost: + 此頁面非空白,因此接下來的參考物件可能遺失: @@ -3802,20 +3886,19 @@ section or detail views, or leader lines that would get broken: The projection group is not empty, therefore the following referencing objects might be lost: - The projection group is not empty, therefore -the following referencing objects might be lost: + 此投影群組非空白,因此接下來的參考物件可能遺失: The following referencing object might break: - The following referencing object might break: + 接下來的參考物件可能損壞: You cannot delete this weld symbol because it has a tile weld that would become broken. - You cannot delete this weld symbol because -it has a tile weld that would become broken. + 您不能刪除此銲接符號因為 +它有磁磚銲接會損壞。 @@ -3873,7 +3956,7 @@ it has a tile weld that would become broken. Paint background yes/no - Paint background yes/no + 繪製背景 是/否 @@ -3929,26 +4012,26 @@ it has a tile weld that would become broken. Welding Symbol - Welding Symbol + 銲接符號 Text above arrow side symbol Angle, surface finish, root - Text above arrow side symbol -Angle, surface finish, root + 箭頭側符號上方的文字 +角度、表面紋理、根部 Text before arrow side symbol Preparation depth, (weld size) - Text before arrow side symbol -Preparation depth, (weld size) + 箭頭側符號前面的文字 +準備深度 (銲接尺寸) Pick arrow side symbol - Pick arrow side symbol + 選擇箭頭旁符號 @@ -3960,15 +4043,15 @@ Preparation depth, (weld size) Text after arrow side symbol Number of welds × length, (gap) - Text after arrow side symbol -Number of welds × length, (gap) + 箭頭側符號後面的文字 +銲接處×長度 (間隙) Text before other side symbol Preparation depth, (weld size) - Text before other side symbol -Preparation depth, (weld size) + 另一側符號前面的文字 +準備深度 (銲接尺寸) @@ -3979,8 +4062,8 @@ Preparation depth, (weld size) Text after other side symbol Number of welds × length, (gap) - Text after other side symbol -Number of welds × length, (gap) + 另一側符號後面的文字 +銲接處×長度 (間隙) @@ -3996,8 +4079,8 @@ Number of welds × length, (gap) Text below arrow side symbol Angle, surface finish, root - Text below arrow side symbol -Angle, surface finish, root + 箭頭側符號下方的文字 +角度、表面紋理、根部 @@ -4013,45 +4096,45 @@ Angle, surface finish, root Adds the 'Field Weld' symbol (flag) at the kink in the leader line - Adds the 'Field Weld' symbol (flag) -at the kink in the leader line + 添加 '現場熔接' 符號 (旗標) +在指線的扭結處 Field Weld - Field Weld + 現場熔接 Adds the 'All Around' symbol (circle) at the kink in the leader line - Adds the 'All Around' symbol (circle) -at the kink in the leader line + 添加 '週圍' 符號 (圓圈) +在指線的紐結上 All Around - All Around + 周圍 Offsets the lower symbol to indicate alternating welds - Offsets the lower symbol to indicate alternating welds + 偏移下部符號以指示交替銲接 Alternating - Alternating + 交錯 Tail Text - Tail Text + 尾部文字 Text at end of symbol - Text at end of symbol + 符號末端之文字 @@ -4062,8 +4145,8 @@ at the kink in the leader line Directory path for welding symbols. This directory will be used for the symbol selection. - Directory path for welding symbols. -This directory will be used for the symbol selection. + 焊接符號的目錄路徑。 +此目錄將被用來作符號選擇。 @@ -4076,17 +4159,17 @@ This directory will be used for the symbol selection. Page Chooser - 選擇頁面 + 面頁選擇器 FreeCAD could not determine which Page to use. Please select a Page. - FreeCAD could not determine which Page to use. Please select a Page. + FreeCAD 無法確定使用哪個頁面。請選擇一個頁面。 Select a Page that should be used - Select a Page that should be used + 選擇應該使用的頁面 @@ -4103,10 +4186,8 @@ This directory will be used for the symbol selection. line segments returned by the hidden line removal algorithm. Faces must be detected in order to use hatching, but there can be a performance penalty in complex models. - If checked, TechDraw will attempt to build faces using the -line segments returned by the hidden line removal algorithm. -Faces must be detected in order to use hatching, but there -can be a performance penalty in complex models. + 若勾選,TechDraw 將會嘗試使用隱藏線消除演算法所回傳的線段。 +面必須被檢測出來以進行填充,但是在複雜模型中會有效能的損失。 @@ -4116,52 +4197,52 @@ can be a performance penalty in complex models. Highlights border of section cut in section views - Highlights border of section cut in section views + 在剖面視圖中強調剖面切割的邊界 Show Section Edges - Show Section Edges + 顯示選擇邊 Dump intermediate results during Section view processing - Dump intermediate results during Section view processing + 在剖面視圖處理期間傾印中間結果 Debug Section - Debug Section + 剖面除錯 Dump intermediate results during Detail view processing - Dump intermediate results during Detail view processing + 在詳細視圖處理期間傾印中間結果 Debug Detail - Debug Detail + 除錯細節 Include edges with unexpected geometry (zero length etc.) in results - Include edges with unexpected geometry (zero length etc.) in results + 在結果中包括具有意外幾何形狀 (零長度等) 的邊 Allow Crazy Edges - Allow Crazy Edges + 允許瘋狂邊 Perform a fuse operation on input shape(s) before Section view processing - Perform a fuse operation on input shape(s) before Section view processing + 在剖面視圖處理之前對輸入形狀執行融合操作 Fuse Before Section - Fuse Before Section + 剖面前先融合 @@ -4171,7 +4252,7 @@ can be a performance penalty in complex models. Show Loose 2D Geom - Show Loose 2D Geom + 顯示鬆散 2D 幾何 @@ -4182,8 +4263,8 @@ can be a performance penalty in complex models. Size of selection area around edges Each unit is approx. 0.1 mm wide - Size of selection area around edges -Each unit is approx. 0.1 mm wide + 邊緣周圍選擇區域的大小 +每個單元約略是 0.1 mm 寬 @@ -4216,13 +4297,13 @@ Each unit is approx. 0.1 mm wide Shape of line end caps. Only change unless you know what you are doing! - Shape of line end caps. -Only change unless you know what you are doing! + 線終端蓋形狀。 +只有在您知道您在幹什麼的情況下修改! Round - 圓角 + 圓形 @@ -4254,21 +4335,20 @@ Only change unless you know what you are doing! Limit of 64x64 pixel SVG tiles used to hatch a single face. For large scalings you might get an error about to many SVG tiles. Then you need to increase the tile limit. - Limit of 64x64 pixel SVG tiles used to hatch a single face. -For large scalings you might get an error about to many SVG tiles. -Then you need to increase the tile limit. + 限制在 64x64 像素 SVG 磁磚以使用來填充單一面。 +針對更大尺度您可能會得到一個太多 SVG 磁磚的錯誤訊息。 +如此一來您必須增加磁磚限制。 Max PAT Hatch Segments - Max PAT Hatch Segments + 最大 PAT 填充片段 Maximum hatch line segments to use when hatching a face with a PAT pattern - Maximum hatch line segments to use -when hatching a face with a PAT pattern + 當使用 PAT 樣式來填充一個面時,所使用的最大填充線段值 @@ -4293,7 +4373,7 @@ when hatching a face with a PAT pattern <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -4399,12 +4479,12 @@ when hatching a face with a PAT pattern SVG Hatch - SVG Hatch + SVG 填充 PAT Hatch - PAT Hatch + PAT 填充 @@ -4505,7 +4585,7 @@ when hatching a face with a PAT pattern Balloon Leader End - Balloon Leader End + 件號圓圈指線終點 @@ -4520,7 +4600,7 @@ when hatching a face with a PAT pattern Ballon Leader Kink Length - Ballon Leader Kink Length + 件號圓圈指線紐結長度 @@ -4580,7 +4660,7 @@ when hatching a face with a PAT pattern <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -4599,7 +4679,7 @@ when hatching a face with a PAT pattern Normal line color - Normal line color + 正常線顏色 @@ -4614,22 +4694,22 @@ when hatching a face with a PAT pattern Preselected - Preselected + 預選 Preselection color - Preselection color + 預選顏色 Section Face - Section Face + 剖面面 Section face color - Section face color + 剖面面顏色 @@ -4639,7 +4719,7 @@ when hatching a face with a PAT pattern Selected item color - Selected item color + 已選項目顏色 @@ -4659,17 +4739,17 @@ when hatching a face with a PAT pattern Background color around pages - Background color around pages + 頁面周圍的背景顏色 Hatch - Hatch + 填充 Hatch image color - Hatch image color + 產生影像顏色 @@ -4684,12 +4764,12 @@ when hatching a face with a PAT pattern Geometric Hatch - Geometric Hatch + 幾何填充 Geometric hatch pattern color - Geometric hatch pattern color + 幾何填充樣式顏色 @@ -4731,19 +4811,10 @@ when hatching a face with a PAT pattern Color of vertices in views 視圖中點之顏色 - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - If checked FreeCAD will use a single colour for all text and lines. If unchecked FreeCAD will attempt to use lighter versions of preferred colours. - - - Detail Highlight - Detail Highlight + 強調細節 @@ -4768,17 +4839,26 @@ when hatching a face with a PAT pattern Object faces will be transparent - Object faces will be transparent + 物件面將會變透明 Transparent Faces - Transparent Faces + 透明面 Face color (if not transparent) - Face color (if not transparent) + 面之顏色(如果不是透明的話) + + + + If checked FreeCAD will use a single color for all text and lines. + + + If checked FreeCAD will use a single color for all text and lines. + + @@ -4788,7 +4868,7 @@ when hatching a face with a PAT pattern <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -4862,7 +4942,7 @@ when hatching a face with a PAT pattern Alternate Decimals - Alternate Decimals + 備用小數 @@ -4977,7 +5057,7 @@ Normally, no gap is used. If a gap is used, the recommended value is 6. <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -4990,24 +5070,24 @@ Normally, no gap is used. If a gap is used, the recommended value is 6. Drawing Update - 工程圖更新 + 圖紙更新 Whether or not pages are updated every time the 3D model is changed - Whether or not pages are updated every time the 3D model is changed + 每次更改 3D 模型時是否更新頁面 Update With 3D (global policy) - Update With 3D (global policy) + 使用 3D 更新 (整體策略) Whether or not a page's 'Keep Updated' property can override the global 'Update With 3D' parameter - Whether or not a page's 'Keep Updated' property -can override the global 'Update With 3D' parameter + 頁面是否'保持更新' 屬性 +可覆寫整體 '以 3D 更新' 參數 @@ -5018,25 +5098,24 @@ can override the global 'Update With 3D' parameter Keep drawing pages in sync with changes of 3D model in real time. This can slow down the response time. - Keep drawing pages in sync with changes of 3D model in real time. -This can slow down the response time. + 使繪圖頁面與 3D 模型的即時變化保持同步。 +這會減慢反應時間。 Keep Page Up To Date - Keep Page Up To Date + 保持頁面更新 Automatically distribute secondary views for ProjectionGroups - Automatically distribute secondary views -for ProjectionGroups + 自動分發輔助視圖給投影群組(ProjectionGroups) Auto-distribute Secondary Views - Auto-distribute Secondary Views + 自動分發輔助視圖 @@ -5073,17 +5152,17 @@ for ProjectionGroups Conventions - Conventions + 慣例 Projection Group Angle - Projection Group Angle + 投影群組角度 Use first- or third-angle multiview projection convention - Use first- or third-angle multiview projection convention + 使用第一或第三角度多視圖投影約定 @@ -5133,7 +5212,7 @@ for ProjectionGroups Default template file for new pages - Default template file for new pages + 新頁面的預設型版檔案 @@ -5143,37 +5222,37 @@ for ProjectionGroups Starting directory for menu 'Insert Page using Template' - Starting directory for menu 'Insert Page using Template' + 選單的起始目錄 '使用模板插入頁面' Hatch Pattern File - Hatch Pattern File + 填充圖樣檔案 Default SVG or bitmap file for hatching - Default SVG or bitmap file for hatching + 用來填充之預設 SVG 或點陣圖檔案 Line Group File - Line Group File + 線群組檔案 Alternate file for personal LineGroup definition - Alternate file for personal LineGroup definition + 個人線群組定義的備用檔案 Welding Directory - Welding Directory + 銲接目錄 Default directory for welding symbols - Default directory for welding symbols + 預設目錄以存放銲接符號 @@ -5183,17 +5262,17 @@ for ProjectionGroups Default PAT pattern definition file for geometric hatching - Default PAT pattern definition file for geometric hatching + 用來作幾何填充之預設 PAT 圖樣定義檔案 Pattern Name - Pattern Name + 圖樣名稱 Name of the default PAT pattern - Name of the default PAT pattern + 預設 PAT 圖樣之名稱 @@ -5208,7 +5287,7 @@ for ProjectionGroups Set ShowGrid property to true on new Pages. - Set ShowGrid property to true on new Pages. + 設定新頁面的顯示網格 (ShowGrid) 屬性為真。 @@ -5223,12 +5302,12 @@ for ProjectionGroups Distance between Page grid lines. - Distance between Page grid lines. + 頁面格線間之距離 <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -5247,18 +5326,18 @@ for ProjectionGroups Use an approximation to find hidden lines. Fast, but result is a collection of short straight lines. - Use an approximation to find hidden lines. -Fast, but result is a collection of short straight lines. + 使用近似值來查找隱藏線。 +快速,但結果是一系列短直線。 Use Polygon Approximation - Use Polygon Approximation + 使用多邊形逼近 Visible - 可見 + 可見的 @@ -5268,18 +5347,18 @@ Fast, but result is a collection of short straight lines. Show hard and outline edges (always shown) - Show hard and outline edges (always shown) + 顯示硬邊及外框邊 (總是顯示) Show Hard Lines - Show Hard Lines + 顯示硬線 Show hidden hard and outline edges - Show hidden hard and outline edges + 顯示隱藏硬邊及外框邊 @@ -5290,59 +5369,59 @@ Fast, but result is a collection of short straight lines. Show Smooth Lines - Show Smooth Lines + 顯示平滑線 Show hidden smooth edges - Show hidden smooth edges + 顯示隱藏平滑邊 Show seam lines - Show seam lines + 顯示接縫線 Show Seam Lines - Show Seam Lines + 顯示接縫線 Show hidden seam lines - Show hidden seam lines + 顯示隱藏接縫線 Make lines of equal parameterization - Make lines of equal parameterization + 製作相等參數化之線條 Show UV ISO Lines - Show UV ISO Lines + 顯示 UV ISO 線 Show hidden equal parameterization lines - Show hidden equal parameterization lines + 顯示隱藏相等參數化之線條 ISO Count - ISO Count + ISO 數 Number of ISO lines per face edge - Number of ISO lines per face edge + 每個面邊緣之 ISO 線數目 <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> @@ -5411,7 +5490,7 @@ Fast, but result is a collection of short straight lines. Scale of vertex dots. Multiplier of line width. - Scale of vertex dots. Multiplier of line width. + 頂點的比例。線寬的乘數。 @@ -5431,100 +5510,100 @@ Fast, but result is a collection of short straight lines. Size of template field click handles - Size of template field click handles + 模版區域點擊處理大小 Welding Symbol Scale - Welding Symbol Scale + 銲接符號比例 Multiplier for size of welding symbols - Multiplier for size of welding symbols + 銲接符號大小的乘數 <html><head/><body><p><span style=" font-weight:600;">Note:</span> Items in <span style=" font-style:italic;">italics</span> are default values for new objects. They have no effect on existing objects.</p></body></html> - <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物體的預設值。它們對現有物體沒有影響。</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">注意:</span> 項目為 <span style=" font-style:italic;">斜體</span> 是新物件的預設值。它們對現有物件沒有影響。</p></body></html> TechDrawGui::MDIViewPage - + Toggle &Keep Updated - Toggle &Keep Updated + 切換&保持更新 - + Toggle &Frames - Toggle &Frames + 切換&框架 - + &Export SVG &匯出 SVG - + Export DXF 匯出 DXF - + Export PDF 匯出 PDF - + Print All Pages 列印全部頁面 - + Different orientation 不同方向 - + The printer uses a different orientation than the drawing. Do you want to continue? 印表機與圖面使用之方向不同,您要繼續嗎? - + Different paper size 紙張尺寸不同 - + The printer uses a different paper size than the drawing. Do you want to continue? 印表機與圖面之紙張尺寸不同,您要繼續嗎? - + Opening file failed 開啟檔案失敗 - + Can not open file %1 for writing. 無法開啟要寫入的檔案 %1 。 - + Save DXF file 儲存DXF檔 - + DXF (*.dxf) DXF (*.dxf) - + Selected: 已選取: @@ -5534,12 +5613,12 @@ Do you want to continue? Symbol Chooser - Symbol Chooser + 符號選擇器 Select a symbol that should be used - Select a symbol that should be used + 選擇應該使用的符號 @@ -5549,7 +5628,7 @@ Do you want to continue? Directory to welding symbols. - Directory to welding symbols. + 存放銲接符號之目錄。 @@ -5567,7 +5646,7 @@ Do you want to continue? Text to be displayed - 顯示的文字 + 顯示的文字: @@ -5587,7 +5666,7 @@ Do you want to continue? Fontsize for 'Text' - '文字'字體大小 + '文字'字體大小 @@ -5750,7 +5829,7 @@ Do you want to continue? Horizontal - 水平 + 水平的 @@ -5800,12 +5879,12 @@ Do you want to continue? Extend By - Extend By + 延伸依據 Make the line a little longer. - 讓線稍微長一點. + 讓線稍微長一點 @@ -5884,12 +5963,12 @@ Do you want to continue? Section Parameters - Section Parameters + 剖面參數 Scale Page/Auto/Custom - Scale Page/Auto/Custom + 縮放頁面/自動/手動 @@ -5945,7 +6024,7 @@ Do you want to continue? Identifier for this section - Identifier for this section + 此剖面之識別符 @@ -6013,7 +6092,7 @@ Do you want to continue? Cosmetic Vertex - Cosmetic Vertex + 裝飾頂點 @@ -6029,7 +6108,7 @@ Do you want to continue? Position from the view center - Position from the view center + 從視圖中心定位 @@ -6055,12 +6134,12 @@ Do you want to continue? Pick a point for cosmetic vertex - Pick a point for cosmetic vertex + 自裝飾頂點中挑選一個點 Escape picking - Escape picking + 退出挑選 @@ -6078,7 +6157,7 @@ Do you want to continue? Cosmetic Line - Cosmetic Line + 裝飾線 @@ -6136,52 +6215,52 @@ Do you want to continue? Flatness - Flatness + 平整度 Circularity - Circularity + 真圓度 Cylindricity - Cylindricity + 圓柱度 Parallelism - Parallelism + 平行度 (Parallelism) Perpendicularity - Perpendicularity + 垂直度 Angularity - Angularity + 角度 Profile of a line - Profile of a line + 線的輪廓 Profile of a surface - Profile of a surface + 表面的輪廓 Circular runout - Circular runout + 圓偏擺度 Total runout - Total runout + 全偏擺 @@ -6191,7 +6270,7 @@ Do you want to continue? Concentricity - Concentricity + 同心度 @@ -6201,47 +6280,47 @@ Do you want to continue? Modifiers - Modifiers + 修改器 derived geometry element - derived geometry element + 衍生幾何元件 Minimax (Tschebyschew) - Minimax (Tschebyschew) + 極小極大(Tschebyschew) Hull condition - Hull condition + 外殼狀況 Free state - Free state + 自由狀態 Least square geometry element - Least square geometry element + 最小二乘法幾何元件 Least material condition (LMC) - Least material condition (LMC) + 最小留料情況 (LMC) Maximum material condition (MMC) - Maximum material condition (MMC) + 最大留料情況 (MMC) least inscribed geometry element - least inscribed geometry element + 最少內接幾何元件 @@ -6251,32 +6330,32 @@ Do you want to continue? Reciprocity condition - Reciprocity condition + 互惠條件 Regardless of feature size (RFS) - Regardless of feature size (RFS) + 無論特徵大小(RFS) Tangent plane - Tangent plane + 切面 Unequal Bilateral - Unequal Bilateral + 不平等雙邊 most inscribed geometry element - most inscribed geometry element + 最多內接幾何元件 Radius & Diameter - Radius & Diameter + 半徑 & 直徑 @@ -6291,12 +6370,12 @@ Do you want to continue? Radius of sphere - Radius of sphere + 圓球半徑 Diameter of sphere - Diameter of sphere + 圓球直徑 @@ -6306,7 +6385,7 @@ Do you want to continue? Angles - Angles + 角度 @@ -6316,17 +6395,17 @@ Do you want to continue? (Arc) Minute - (Arc) Minute + (弧) 分 (Arc) Second - (Arc) Second + (弧) 秒 (Arc) Tertie - (Arc) Tertie + (弧) ‴ @@ -6336,12 +6415,12 @@ Do you want to continue? Taper - Taper + 錐形 Slope - 斜率 + 坡度 @@ -6356,7 +6435,7 @@ Do you want to continue? Plus - Minus - 正 - 負 + 加 - 減 @@ -6366,67 +6445,67 @@ Do you want to continue? Left/right arrow - Left/right arrow + 左/右箭頭 Downward arrow - Downward arrow + 往下箭頭 Multiplication sign - Multiplication sign + 乘號 Greek Letters - Greek Letters + 希臘字母 Capital delta - Capital delta + 大寫 delta 符號 (Δ) Capital sigma - Capital sigma + 大寫 sigma 符號 (Σ) Capital omega - Capital omega + 大寫 omega 符號 (Ω) Small mu - Small mu + 小寫 mu 符號 (μ) Small sigma - Small sigma + 小寫 sigma 符號(σ) Small phi - Small phi + 小寫 phi 符號 (φ 或 ϕ) Small omega - Small omega + 小寫 omega 符號 (ω) Format: - 格式: + 格式: Preview: - 預覽: + 預覽: @@ -6439,7 +6518,7 @@ Do you want to continue? Detail Anchor - Detail Anchor + 錨的細節 @@ -6449,18 +6528,18 @@ Do you want to continue? Detail View - Detail View + 詳細視圖 Click to drag detail highlight to new position - Click to drag detail highlight to new position + 點擊以拖曳強調細節到新位置 Drag Highlight - Drag Highlight + 拖曳強調 @@ -6470,7 +6549,7 @@ Do you want to continue? x position of detail highlight within view - x position of detail highlight within view + 在視圖中強調細節 x 的位置 @@ -6480,7 +6559,7 @@ Do you want to continue? y position of detail highlight within view - y position of detail highlight within view + 在視圖中強調細節 y 的位置 @@ -6490,7 +6569,7 @@ Do you want to continue? size of detail view - size of detail view + 詳細視圖的尺寸 @@ -6541,7 +6620,7 @@ Custom: custom scale factor is used reference label - reference label + 參考標籤 @@ -6569,7 +6648,7 @@ Custom: custom scale factor is used Reverses usual direction of dimension line terminators - Reverses usual direction of dimension line terminators + 反轉標註線終止符的通常方向 @@ -6622,7 +6701,7 @@ by negative value of 'Over Tolerance'. Text to be displayed - 顯示的文字 + 顯示的文字: @@ -6694,7 +6773,7 @@ be used instead of the dimension value Fontsize for 'Text' - '文字'字體大小 + '文字'字體大小 @@ -6729,7 +6808,7 @@ be used instead of the dimension value Lines - 線段 + @@ -6765,7 +6844,7 @@ be used instead of the dimension value Set dimension line angle to match selected edge or vertices. - Set dimension line angle to match selected edge or vertices. + 設定標註線角度以匹配選擇邊或點。 @@ -6799,7 +6878,7 @@ be used instead of the dimension value Restore Invisible Lines - Restore Invisible Lines + 恢復隱形線 @@ -6807,42 +6886,42 @@ be used instead of the dimension value Apply Geometric Hatch to Face - Apply Geometric Hatch to Face + 應用幾何填充至面 Define your pattern - Define your pattern + 定義您的圖樣 Pattern File - Pattern File + 圖樣檔案 The PAT file containing your pattern - The PAT file containing your pattern + 包含您的圖樣之 PAT 檔 Rotation - 旋轉 + Rotation Pattern Name - Pattern Name + 圖樣名稱 Offset X - 偏移 X + Offset X Name of pattern within file - Name of pattern within file + 檔案中的圖樣名稱 @@ -6857,17 +6936,17 @@ be used instead of the dimension value Enlarges/shrinks the pattern - Enlarges/shrinks the pattern + 放大/縮小圖樣 Line Weight - Line Weight + 線條權重 Thickness of lines within the pattern - Thickness of lines within the pattern + 圖樣中線段之粗細 @@ -6877,7 +6956,7 @@ be used instead of the dimension value Color of pattern lines - Color of pattern lines + 圖樣線段之顏色 @@ -6885,7 +6964,7 @@ be used instead of the dimension value Apply Hatch to Face - Apply Hatch to Face + 應用填充至面 @@ -6905,7 +6984,7 @@ be used instead of the dimension value Offset X - 偏移 X + Offset X @@ -6915,7 +6994,7 @@ be used instead of the dimension value Rotation - 旋轉 + Rotation @@ -6945,7 +7024,7 @@ be used instead of the dimension value Pattern File - Pattern File + 圖樣檔案 @@ -7061,12 +7140,12 @@ You can pick further points to get line segments. Edit points - Edit points + 編輯點 Edit Points - Edit Points + 編輯點 @@ -7077,7 +7156,7 @@ You can pick further points to get line segments. Save Points - Save Points + 儲存點 @@ -7111,7 +7190,7 @@ You can pick further points to get line segments. Line Decoration - Line Decoration + 線條裝飾 (Decoration) @@ -7121,7 +7200,7 @@ You can pick further points to get line segments. Lines - 線段 + @@ -7166,12 +7245,12 @@ You can pick further points to get line segments. Thickness of pattern lines. - Thickness of pattern lines. + 圖樣線條之粗細。 Visible - 可見 + 可見的 @@ -7194,27 +7273,27 @@ You can pick further points to get line segments. Link This 3D Geometry - Link This 3D Geometry + 連結此 3D 幾何 Feature1: - Feature1: + 特徵1: Geometry1: - Geometry1: + 幾何1: Feature2: - Feature2: + 特徵2: Geometry2: - Geometry2: + 幾何2: @@ -7224,7 +7303,7 @@ You can pick further points to get line segments. Available - 可用 + 可用的 @@ -7237,7 +7316,7 @@ You can pick further points to get line segments. Projection Group - Projection Group + 投影群組 @@ -7247,7 +7326,7 @@ You can pick further points to get line segments. First or Third Angle - First or Third Angle + 第一或第三角度 @@ -7273,7 +7352,7 @@ You can pick further points to get line segments. Scale Page/Auto/Custom - Scale Page/Auto/Custom + 縮放頁面/自動/手動 @@ -7288,57 +7367,57 @@ You can pick further points to get line segments. Custom Scale - 自訂縮放比例 + 自訂比例 Scale Numerator - Scale Numerator + 比例分子 Scale Denominator - Scale Denominator + 比例分母 Adjust Primary Direction - Adjust Primary Direction + 調整主要方向 Rotate up - Rotate up + 向上旋轉 Rotate left - Rotate left + 向左旋轉 Current primary view direction - Current primary view direction + 目前主要檢視方向 Rotate right - Rotate right + 向右旋轉 Rotate down - Rotate down + 向下旋轉 Secondary Projections - Secondary Projections + 輔助投影 LeftFrontTop - LeftFrontTop + 左前上 @@ -7348,7 +7427,7 @@ You can pick further points to get line segments. RightFrontTop - RightFrontTop + 右前上 @@ -7358,7 +7437,7 @@ You can pick further points to get line segments. Primary - Primary + 主要 @@ -7373,7 +7452,7 @@ You can pick further points to get line segments. LeftFrontBottom - LeftFrontBottom + 左前底 @@ -7383,29 +7462,28 @@ You can pick further points to get line segments. RightFrontBottom - RightFrontBottom + 右前底 Spin CW - 順時針旋轉 + 順時針方向旋轉 Spin CCW - 逆時針旋轉 + 逆時針方向旋轉 Distributes projections automatically using the given X/Y Spacing - Distributes projections automatically -using the given X/Y Spacing + 使用給定的 X/Y 間距來自動分配投影 Auto Distribute - Auto Distribute + 自動分佈 @@ -7415,7 +7493,7 @@ using the given X/Y Spacing Horizontal space between border of projections - Horizontal space between border of projections + 投影邊界之間的水平空間 @@ -7425,7 +7503,7 @@ using the given X/Y Spacing Vertical space between border of projections - Vertical space between border of projections + 投影邊界之間的垂直空間 @@ -7488,7 +7566,7 @@ using the given X/Y Spacing No active document - 未選擇文件 + 無可用文件 @@ -7511,7 +7589,7 @@ using the given X/Y Spacing Restore Invisible Lines - Restore Invisible Lines + 恢復隱形線 @@ -7526,7 +7604,7 @@ using the given X/Y Spacing Cosmetic - Cosmetic + 裝飾 @@ -7544,7 +7622,7 @@ using the given X/Y Spacing Base Feature - 基礎特徵 + 基本特性 @@ -7554,17 +7632,17 @@ using the given X/Y Spacing Maximal width, if -1 then automatic width - Maximal width, if -1 then automatic width + 最大寬度,若為 -1 的話則會自動設定寬度 Start Rich Text Editor - Start Rich Text Editor + 開啟富文字編輯器 Show Frame - Show Frame + 顯示圖框(Show Frame) @@ -7637,7 +7715,7 @@ using the given X/Y Spacing Section Parameters - Section Parameters + 剖面參數 @@ -7652,7 +7730,7 @@ using the given X/Y Spacing Identifier for this section - Identifier for this section + 此剖面之識別符 @@ -7662,7 +7740,7 @@ using the given X/Y Spacing Scale Page/Auto/Custom - Scale Page/Auto/Custom + 縮放頁面/自動/手動 @@ -7742,12 +7820,12 @@ using the given X/Y Spacing Position from the 3D origin of the object in the view - Position from the 3D origin of the object in the view + 從視圖中物件的 3D 原點定位 Section Plane Location - Section Plane Location + 剖面位置 @@ -7767,7 +7845,7 @@ using the given X/Y Spacing Nothing to apply. No section direction picked yet - Nothing to apply. No section direction picked yet + 無法套用。尚未挑選剖面方向 @@ -7785,7 +7863,7 @@ using the given X/Y Spacing Line style: - 線條樣式: + 線條樣式: @@ -7805,17 +7883,17 @@ using the given X/Y Spacing Dotted - + 點線 Dashdot - 虛線點 + 點虛線 Line width: - 線寬: + 線寬: @@ -7835,7 +7913,7 @@ using the given X/Y Spacing Line color: - 線條色彩: + 線條色彩: @@ -7880,12 +7958,12 @@ using the given X/Y Spacing Cascade spacing - Cascade spacing + 串聯間距 Delta distance - Delta distance + 增量距離 @@ -7999,34 +8077,34 @@ using the given X/Y Spacing h7 - h7 + h7 h9 - h9 + h9 k6 - k6 + k6 n6 - n6 + n6 r6 - r6 + r6 s6 - s6 + s6 @@ -8036,7 +8114,7 @@ using the given X/Y Spacing H11/ - H11/ + H11/ @@ -8065,12 +8143,12 @@ using the given X/Y Spacing Change Editable Field - Change Editable Field + 改變可編輯區域 Text Name: - 文字名稱: + 文字名稱: @@ -8080,7 +8158,7 @@ using the given X/Y Spacing Value: - 值: + 值: @@ -8088,7 +8166,7 @@ using the given X/Y Spacing Adds a Centerline between 2 Lines - Adds a Centerline between 2 Lines + 在兩條線中加入中心線 @@ -8096,7 +8174,7 @@ using the given X/Y Spacing Adds a Centerline between 2 Points - Adds a Centerline between 2 Points + 在兩點間加入中心線 @@ -8112,7 +8190,7 @@ using the given X/Y Spacing Inserts a Cosmetic Vertex into a View - Inserts a Cosmetic Vertex into a View + 在視圖中插入裝飾頂點 @@ -8125,7 +8203,7 @@ using the given X/Y Spacing Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool - Remove prefix symbols at the beginning of the dimension text:<br>- Select one or more dimensions<br>- Click this tool + 移除標註文字的前置符號:<br>- 選擇一個以上的標註<br>- 點選此工具 @@ -8133,7 +8211,7 @@ using the given X/Y Spacing Adds a Centerline to Faces - Adds a Centerline to Faces + 添加中心線至面 @@ -8149,7 +8227,7 @@ using the given X/Y Spacing Inserts Cosmetic Vertices at Midpoint of selected Edges - Inserts Cosmetic Vertices at Midpoint of selected Edges + 在選擇邊之中點處插入裝飾頂點 @@ -8157,7 +8235,7 @@ using the given X/Y Spacing Inserts Cosmetic Vertices at Quadrant Points of selected Circles - Inserts Cosmetic Vertices at Quadrant Points of selected Circles + 在選擇圓之象限點處插入裝飾頂點 @@ -8224,7 +8302,7 @@ using the given X/Y Spacing Extensions: Centerlines/Threading - 進階: 中心線/螺紋 + 延伸:中心線/螺紋 @@ -8234,7 +8312,7 @@ using the given X/Y Spacing Annotations - 註記 + 註解 @@ -8244,17 +8322,17 @@ using the given X/Y Spacing Add Lines - 新增線段 + 新增直線 Add Vertices - 新增頂點 + 加入點 TechDraw - 工程圖 + TechDraw @@ -8274,7 +8352,7 @@ using the given X/Y Spacing TechDraw Pages - 工程圖頁面 + TechDraw 頁面 @@ -8284,42 +8362,42 @@ using the given X/Y Spacing TechDraw Views - 工程圖視圖 + TechDraw 視圖 TechDraw Clips - 工程圖剪輯 + TechDraw 裁剪 TechDraw Dimensions - 工程圖標註 + TechDraw 標註 TechDraw Tool Attributes - 工程圖工具屬性 + TechDraw 工具屬性 TechDraw File Access - 工程圖檔案存取 + TechDraw 檔案存取 TechDraw Decoration - 工程圖裝飾 + TechDraw 裝飾 (Decoration) TechDraw Annotation - 工程圖註解 + TechDraw 註解 Views - 視景 + 檢視 @@ -8332,38 +8410,38 @@ using the given X/Y Spacing Move a View to a new Page - Move a View to a new Page + Move a View to a new Page Move View to a different Page - Move View to a different Page + Move View to a different Page Select View to move from list. - 選擇視圖以從清單中移動。 + Select View to move from list. Select View - 選擇視圖 + Select View Select From Page. - 從頁面中選擇。 + Select From Page. Select Page - 選擇頁面 + Select Page Select To Page. - 選擇到頁面. + Select To Page. @@ -8371,48 +8449,48 @@ using the given X/Y Spacing Share View - 分享檢視 + Share View Share a View on a second Page - 在第二頁上共享檢視 + Share a View on a second Page Share View with another Page - 在其他頁面上共享檢視 + Share View with another Page View to share - 檢視分享 + View to share Select View to share from list. - 選擇視圖以從清單中分享。 + Select View to share from list. Select View - 選擇視圖 + Select View Select From Page. - 從頁面中選擇。 + Select From Page. Select Page - 選擇頁面 + Select Page Select To Page. - 選擇到頁面. + Select To Page. @@ -8435,7 +8513,7 @@ using the given X/Y Spacing Label - 標籤 + Label @@ -8450,7 +8528,7 @@ using the given X/Y Spacing Object - 物體 + 物件 @@ -8491,7 +8569,7 @@ using the given X/Y Spacing TechDraw - 工程圖 + TechDraw @@ -8549,12 +8627,12 @@ using the given X/Y Spacing Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box Add a hole or shaft fit to a dimension<br> - select one length dimension or diameter dimension<br> - - click the tool button, a panel openes<br> + - click the tool button, a panel opens<br> - select shaft fit / hole fit<br> - select the desired ISO 286 fit field using the combo box @@ -8594,7 +8672,7 @@ using the given X/Y Spacing Tick - 鉤號 + Tick @@ -8627,7 +8705,7 @@ using the given X/Y Spacing Front - 正視圖 + 前視圖 diff --git a/src/Mod/TechDraw/Gui/SymbolChooser.h b/src/Mod/TechDraw/Gui/SymbolChooser.h index c8dddfab66..d8ed9a8bae 100644 --- a/src/Mod/TechDraw/Gui/SymbolChooser.h +++ b/src/Mod/TechDraw/Gui/SymbolChooser.h @@ -39,7 +39,7 @@ public: SymbolChooser(QWidget *parent = nullptr, QString startDir = QString(), QString source = QString()); - ~SymbolChooser(); + ~SymbolChooser() override; public Q_SLOTS: void onOKClicked(); diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.h b/src/Mod/TechDraw/Gui/TaskActiveView.h index 553f85c1e6..b07bff267d 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.h +++ b/src/Mod/TechDraw/Gui/TaskActiveView.h @@ -51,7 +51,7 @@ class TechDrawGuiExport TaskActiveView : public QWidget public: TaskActiveView(TechDraw::DrawPage* pageFeat); - ~TaskActiveView(); + ~TaskActiveView() override; public Q_SLOTS: @@ -64,7 +64,7 @@ public: void enableTaskButtons(bool b); protected: - void changeEvent(QEvent *e); + void changeEvent(QEvent *e) override; void blockButtons(bool b); void setUiPrimary(void); diff --git a/src/Mod/TechDraw/Gui/TaskCenterLine.cpp b/src/Mod/TechDraw/Gui/TaskCenterLine.cpp index 94eae46cee..d21491f209 100644 --- a/src/Mod/TechDraw/Gui/TaskCenterLine.cpp +++ b/src/Mod/TechDraw/Gui/TaskCenterLine.cpp @@ -192,8 +192,14 @@ void TaskCenterLine::setUiPrimary() int precision = Base::UnitsApi::getDecimals(); ui->qsbRotate->setDecimals(precision); - int orientation = checkPathologicalEdges(m_mode); - setUiOrientation(orientation); + if (m_type == 1) { + int orientation = checkPathologicalEdges(m_mode); + setUiOrientation(orientation); + } + if (m_type == 2) { + int orientation = checkPathologicalVertices(m_mode); + setUiOrientation(orientation); + } } void TaskCenterLine::setUiEdit() @@ -238,6 +244,9 @@ void TaskCenterLine::setUiEdit() void TaskCenterLine::onOrientationChanged() { + if (!m_cl) { + return; + } if (ui->rbVertical->isChecked()) m_cl->m_mode = CenterLine::CLMODE::VERTICAL; else if (ui->rbHorizontal->isChecked()) @@ -254,30 +263,50 @@ void TaskCenterLine::onOrientationChanged() void TaskCenterLine::onShiftHorizChanged() { + if (!m_cl) { + return; + } + m_cl->m_hShift = ui->qsbHorizShift->rawValue(); m_partFeat->recomputeFeature(); } void TaskCenterLine::onShiftVertChanged() { + if (!m_cl) { + return; + } + m_cl->m_vShift = ui->qsbVertShift->rawValue(); m_partFeat->recomputeFeature(); } void TaskCenterLine::onRotationChanged() { + if (!m_cl) { + return; + } + m_cl->m_rotate = ui->qsbRotate->rawValue(); m_partFeat->recomputeFeature(); } void TaskCenterLine::onExtendChanged() { + if (!m_cl) { + return; + } + m_cl->m_extendBy = ui->qsbExtend->rawValue(); m_partFeat->recomputeFeature(); } void TaskCenterLine::onColorChanged() { + if (!m_cl) { + return; + } + App::Color ac; ac.setValue(ui->cpLineColor->color()); m_cl->m_format.m_color.setValue(ui->cpLineColor->color()); @@ -286,12 +315,20 @@ void TaskCenterLine::onColorChanged() void TaskCenterLine::onWeightChanged() { + if (!m_cl) { + return; + } + m_cl->m_format.m_weight = ui->dsbWeight->value().getValue(); m_partFeat->recomputeFeature(); } void TaskCenterLine::onStyleChanged() { + if (!m_cl) { + return; + } + m_cl->m_format.m_style = ui->cboxStyle->currentIndex() + 1; m_partFeat->recomputeFeature(); } @@ -326,12 +363,47 @@ int TaskCenterLine::checkPathologicalEdges(int inMode) return inMode; } +// check that we are not trying to create an impossible centerline (ex a vertical centerline +// between 2 vertices aligned vertically) +int TaskCenterLine::checkPathologicalVertices(int inMode) +{ + if (m_type != 2) { + // not a vertex based centerline, this doesn't apply + return inMode; + } + + TechDraw::VertexPtr vert1 = m_partFeat->getVertex(m_subNames.front()); + Base::Vector3d point1 = vert1->point(); + TechDraw::VertexPtr vert2 = m_partFeat->getVertex(m_subNames.back()); + Base::Vector3d point2 = vert2->point(); + + if (DU::fpCompare(point1.x, point2.x, EWTOLERANCE)) { + // points are aligned vertically, CL must be horizontal + return CenterLine::CLMODE::HORIZONTAL; + } + + if (DU::fpCompare(point1.y, point2.y, EWTOLERANCE)) { + // points are aligned horizontally, CL must be vertical + return CenterLine::CLMODE::VERTICAL; + } + + // not pathological case, just return the input mode + return inMode; +} + //****************************************************************************** void TaskCenterLine::createCenterLine() { Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Create CenterLine")); - m_mode = checkPathologicalEdges(m_mode); + // check for illogical parameters + if (m_type == 1) { + // between lines + m_mode = checkPathologicalEdges(m_mode); + } else if (m_type == 2) { + // between points + m_mode = checkPathologicalVertices(m_mode); + } CenterLine* cl = CenterLine::CenterLineBuilder(m_partFeat, m_subNames, m_mode, false); @@ -367,6 +439,7 @@ void TaskCenterLine::createCenterLine() void TaskCenterLine::updateOrientation() { +// Base::Console().Message("TCL::updateOrientation()\n"); if (!m_cl) { return; } @@ -375,10 +448,20 @@ void TaskCenterLine::updateOrientation() // https://forum.freecad.org/viewtopic.php?f=35&t=44255&start=20#p503220 // The centerline creation can fail if m_type is edge and both selected edges are vertical or horizontal. int orientation = m_cl->m_mode; - if (!m_edgeName.empty() && !m_cl->m_edges.empty()) { - // we have an existing centerline, not a freshly created one, and it is a centerline between edges - m_subNames = m_cl->m_edges; - orientation = checkPathologicalEdges(orientation); + if (m_type == 1) { + // between lines + if (!m_edgeName.empty() && !m_cl->m_edges.empty()) { + // we have an existing centerline, not a freshly created one, and it is a centerline between edges + m_subNames = m_cl->m_edges; + orientation = checkPathologicalEdges(orientation); + } + } else if (m_type == 2) { + // between points + if (!m_edgeName.empty() && !m_cl->m_verts.empty()) { + // we have an existing centerline, not a freshly created one, and it is a centerline between points + m_subNames = m_cl->m_verts; + orientation = checkPathologicalVertices(orientation); + } } setUiOrientation(orientation); diff --git a/src/Mod/TechDraw/Gui/TaskCenterLine.h b/src/Mod/TechDraw/Gui/TaskCenterLine.h index b725d79b17..0316838c36 100644 --- a/src/Mod/TechDraw/Gui/TaskCenterLine.h +++ b/src/Mod/TechDraw/Gui/TaskCenterLine.h @@ -89,6 +89,7 @@ protected: double getExtendBy(); int checkPathologicalEdges(int inMode); + int checkPathologicalVertices(int inMode); void setUiOrientation(int orientation); private: diff --git a/src/Mod/TechDraw/Gui/TaskComplexSection.h b/src/Mod/TechDraw/Gui/TaskComplexSection.h index a6f2498072..4adaeb1a1b 100644 --- a/src/Mod/TechDraw/Gui/TaskComplexSection.h +++ b/src/Mod/TechDraw/Gui/TaskComplexSection.h @@ -63,7 +63,7 @@ public: App::DocumentObject* profileObject, std::vector profileSubs); TaskComplexSection(TechDraw::DrawComplexSection* complexSection); - ~TaskComplexSection() = default; + ~TaskComplexSection() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskCosVertex.h b/src/Mod/TechDraw/Gui/TaskCosVertex.h index a72810109e..7120472121 100644 --- a/src/Mod/TechDraw/Gui/TaskCosVertex.h +++ b/src/Mod/TechDraw/Gui/TaskCosVertex.h @@ -58,7 +58,7 @@ class TaskCosVertex : public QWidget public: TaskCosVertex(TechDraw::DrawViewPart* baseFeat, TechDraw::DrawPage* page); - ~TaskCosVertex() = default; + ~TaskCosVertex() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskDetail.h b/src/Mod/TechDraw/Gui/TaskDetail.h index 0fedb3d579..ab91f04646 100644 --- a/src/Mod/TechDraw/Gui/TaskDetail.h +++ b/src/Mod/TechDraw/Gui/TaskDetail.h @@ -62,7 +62,7 @@ class TaskDetail : public QWidget public: explicit TaskDetail(TechDraw::DrawViewPart* baseFeat); explicit TaskDetail(TechDraw::DrawViewDetail* detailFeat); - ~TaskDetail() = default; + ~TaskDetail() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskDimRepair.h b/src/Mod/TechDraw/Gui/TaskDimRepair.h index 39ea26c981..1bc41b83f5 100644 --- a/src/Mod/TechDraw/Gui/TaskDimRepair.h +++ b/src/Mod/TechDraw/Gui/TaskDimRepair.h @@ -48,7 +48,7 @@ class TaskDimRepair: public QWidget public: TaskDimRepair(TechDraw::DrawViewDimension* inDvd); - ~TaskDimRepair(); + ~TaskDimRepair() override; public: virtual bool accept(); @@ -58,7 +58,7 @@ protected Q_SLOTS: void slotUseSelection(); protected: - void changeEvent(QEvent* e); + void changeEvent(QEvent* e) override; void setUiPrimary(); void replaceReferences(); @@ -88,24 +88,24 @@ class TaskDlgDimReference: public Gui::TaskView::TaskDialog Q_OBJECT public: - TaskDlgDimReference(TechDraw::DrawViewDimension* inDvd); - ~TaskDlgDimReference(); + explicit TaskDlgDimReference(TechDraw::DrawViewDimension* inDvd); + ~TaskDlgDimReference() override; public: /// is called the TaskView when the dialog is opened - virtual void open(); + void open() override; /// is called by the framework if an button is clicked which has no accept or reject role - virtual void clicked(int); + void clicked(int) override; /// is called by the framework if the dialog is accepted (Ok) - virtual bool accept(); + bool accept() override; /// is called by the framework if the dialog is rejected (Cancel) - virtual bool reject(); + bool reject() override; /// is called by the framework if the user presses the help button - virtual void helpRequested() + void helpRequested() override { return; } - virtual bool isAllowedAlterDocument(void) const + bool isAllowedAlterDocument() const override { return false; } diff --git a/src/Mod/TechDraw/Gui/TaskGeomHatch.h b/src/Mod/TechDraw/Gui/TaskGeomHatch.h index 6bc3143efe..c191c53a5e 100644 --- a/src/Mod/TechDraw/Gui/TaskGeomHatch.h +++ b/src/Mod/TechDraw/Gui/TaskGeomHatch.h @@ -50,7 +50,7 @@ class TaskGeomHatch : public QWidget public: TaskGeomHatch(TechDraw::DrawGeomHatch* inHatch, TechDrawGui::ViewProviderGeomHatch* inVp, bool mode); - ~TaskGeomHatch() = default; + ~TaskGeomHatch() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskLeaderLine.h b/src/Mod/TechDraw/Gui/TaskLeaderLine.h index 1cfd02252d..63ad256d71 100644 --- a/src/Mod/TechDraw/Gui/TaskLeaderLine.h +++ b/src/Mod/TechDraw/Gui/TaskLeaderLine.h @@ -58,7 +58,7 @@ public: TaskLeaderLine(TechDraw::DrawView* baseFeat, TechDraw::DrawPage* page); explicit TaskLeaderLine(TechDrawGui::ViewProviderLeader* leadVP); - ~TaskLeaderLine() = default; + ~TaskLeaderLine() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskLineDecor.cpp b/src/Mod/TechDraw/Gui/TaskLineDecor.cpp index 739cf9f5e5..cb9b9a8679 100644 --- a/src/Mod/TechDraw/Gui/TaskLineDecor.cpp +++ b/src/Mod/TechDraw/Gui/TaskLineDecor.cpp @@ -100,7 +100,7 @@ void TaskLineDecor::getDefaults() m_style = LineFormat::getDefEdgeStyle(); m_color = LineFormat::getDefEdgeColor(); m_weight = LineFormat::getDefEdgeWidth(); - m_visible = 1; + m_visible = true; //set defaults to format of 1st edge if (!m_edges.empty()) { @@ -136,7 +136,7 @@ void TaskLineDecor::getDefaults() m_weight = partVP->LineWidth.getValue(); m_style = Qt::SolidLine; // = 1 m_color = LineFormat::getDefEdgeColor(); - m_visible = 1; + m_visible = true; } } } diff --git a/src/Mod/TechDraw/Gui/TaskProjGroup.h b/src/Mod/TechDraw/Gui/TaskProjGroup.h index 8fdf6e01b4..4f9544e980 100644 --- a/src/Mod/TechDraw/Gui/TaskProjGroup.h +++ b/src/Mod/TechDraw/Gui/TaskProjGroup.h @@ -49,7 +49,7 @@ class TaskProjGroup : public QWidget public: TaskProjGroup(TechDraw::DrawProjGroup* featView, bool mode); - ~TaskProjGroup() = default; + ~TaskProjGroup() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskRichAnno.h b/src/Mod/TechDraw/Gui/TaskRichAnno.h index 45fa430e4b..51799e05d1 100644 --- a/src/Mod/TechDraw/Gui/TaskRichAnno.h +++ b/src/Mod/TechDraw/Gui/TaskRichAnno.h @@ -58,7 +58,7 @@ public: TaskRichAnno(TechDraw::DrawView* baseFeat, TechDraw::DrawPage* page); explicit TaskRichAnno(TechDrawGui::ViewProviderRichAnno* annoVP); - ~TaskRichAnno() = default; + ~TaskRichAnno() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskSectionView.h b/src/Mod/TechDraw/Gui/TaskSectionView.h index 9412f290da..9fded79896 100644 --- a/src/Mod/TechDraw/Gui/TaskSectionView.h +++ b/src/Mod/TechDraw/Gui/TaskSectionView.h @@ -48,7 +48,7 @@ class TaskSectionView : public QWidget public: explicit TaskSectionView(TechDraw::DrawViewPart* base); explicit TaskSectionView(TechDraw::DrawViewSection* section); - ~TaskSectionView() = default; + ~TaskSectionView() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskSurfaceFinishSymbols.h b/src/Mod/TechDraw/Gui/TaskSurfaceFinishSymbols.h index eac4632bc3..cd9a14e987 100644 --- a/src/Mod/TechDraw/Gui/TaskSurfaceFinishSymbols.h +++ b/src/Mod/TechDraw/Gui/TaskSurfaceFinishSymbols.h @@ -79,7 +79,7 @@ class TaskSurfaceFinishSymbols : public QWidget public: explicit TaskSurfaceFinishSymbols(TechDraw::DrawViewPart* view); - ~TaskSurfaceFinishSymbols() = default; + ~TaskSurfaceFinishSymbols() override = default; virtual bool accept(); virtual bool reject(); diff --git a/src/Mod/TechDraw/Gui/TaskWeldingSymbol.h b/src/Mod/TechDraw/Gui/TaskWeldingSymbol.h index 5d8090e097..25a5925244 100644 --- a/src/Mod/TechDraw/Gui/TaskWeldingSymbol.h +++ b/src/Mod/TechDraw/Gui/TaskWeldingSymbol.h @@ -97,7 +97,7 @@ class TechDrawGuiExport TaskWeldingSymbol : public QWidget public: TaskWeldingSymbol(TechDraw::DrawLeaderLine* leadFeat); TaskWeldingSymbol(TechDraw::DrawWeldSymbol* weldFeat); - ~TaskWeldingSymbol(); + ~TaskWeldingSymbol() override; virtual bool accept(); virtual bool reject(); @@ -123,18 +123,18 @@ public Q_SLOTS: void onSymbolSelected(QString symbolPath, QString source); protected: - void changeEvent(QEvent *event); - void setUiPrimary(void); + void changeEvent(QEvent *event) override; + void setUiPrimary(); void setUiEdit(); - TechDraw::DrawWeldSymbol* createWeldingSymbol(void); - void updateWeldingSymbol(void); + TechDraw::DrawWeldSymbol* createWeldingSymbol(); + void updateWeldingSymbol(); - void getTileFeats(void); - void updateTiles(void); + void getTileFeats(); + void updateTiles(); - void collectArrowData(void); - void collectOtherData(void); + void collectArrowData(); + void collectOtherData(); std::string prefSymbolDir(); diff --git a/src/Mod/TechDraw/Gui/TemplateTextField.h b/src/Mod/TechDraw/Gui/TemplateTextField.h index b39ed90f83..3b880277e0 100644 --- a/src/Mod/TechDraw/Gui/TemplateTextField.h +++ b/src/Mod/TechDraw/Gui/TemplateTextField.h @@ -45,10 +45,10 @@ class TechDrawGuiExport TemplateTextField : public QGraphicsRectItem TechDraw::DrawTemplate *myTmplte, const std::string &myFieldName); - virtual ~TemplateTextField() = default; + ~TemplateTextField() override = default; enum {Type = QGraphicsItem::UserType + 160}; - int type() const { return Type;} + int type() const override { return Type;} /// Returns the field name that this TemplateTextField represents std::string fieldName() const { return fieldNameStr; } @@ -58,10 +58,10 @@ class TechDrawGuiExport TemplateTextField : public QGraphicsRectItem std::string fieldNameStr; /// Need this to properly handle mouse release - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; /// Trigger the dialog for editing template text - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp b/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp index 4358a864de..bcd22e5650 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp @@ -87,7 +87,9 @@ void ViewProviderBalloon::setupContextMenu(QMenu* menu, QObject* receiver, const Gui::ActionFunction* func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue()))); act->setData(QVariant((int)ViewProvider::Default)); - func->trigger(act, std::bind(&ViewProviderBalloon::startDefaultEditMode, this)); + func->trigger(act, [this]() { + this->startDefaultEditMode(); + }); ViewProviderDrawingView::setupContextMenu(menu, receiver, member); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderCosmeticExtension.h b/src/Mod/TechDraw/Gui/ViewProviderCosmeticExtension.h index 34f4fac097..51cb09013b 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderCosmeticExtension.h +++ b/src/Mod/TechDraw/Gui/ViewProviderCosmeticExtension.h @@ -36,10 +36,10 @@ class TechDrawGuiExport ViewProviderCosmeticExtension : public Gui::ViewProvider public: /// Constructor - ViewProviderCosmeticExtension(void); - virtual ~ViewProviderCosmeticExtension() = default; + ViewProviderCosmeticExtension(); + ~ViewProviderCosmeticExtension() override = default; - virtual QIcon extensionMergeGreyableOverlayIcons(const QIcon & orig) const override; + QIcon extensionMergeGreyableOverlayIcons(const QIcon & orig) const override; }; using ViewProviderCosmeticExtensionPython = Gui::ViewProviderExtensionPythonT; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp index 64973da627..14fa7ab328 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp @@ -122,7 +122,9 @@ void ViewProviderDimension::setupContextMenu(QMenu* menu, QObject* receiver, con Gui::ActionFunction* func = new Gui::ActionFunction(menu); QAction* act = menu->addAction(QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue()))); act->setData(QVariant((int)ViewProvider::Default)); - func->trigger(act, std::bind(&ViewProviderDimension::startDefaultEditMode, this)); + func->trigger(act, [this](){ + this->startDefaultEditMode(); + }); ViewProviderDrawingView::setupContextMenu(menu, receiver, member); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp index db8868d347..ca43f23f5f 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp @@ -49,7 +49,7 @@ #include "ViewProviderPage.h" using namespace TechDrawGui; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; PROPERTY_SOURCE(TechDrawGui::ViewProviderDrawingView, Gui::ViewProviderDocumentObject) @@ -79,8 +79,10 @@ void ViewProviderDrawingView::attach(App::DocumentObject *pcFeat) // Base::Console().Message("VPDV::attach(%s)\n", pcFeat->getNameInDocument()); ViewProviderDocumentObject::attach(pcFeat); - auto bnd = boost::bind(&ViewProviderDrawingView::onGuiRepaint, this, bp::_1); - auto bndProgressMessage = boost::bind(&ViewProviderDrawingView::onProgressMessage, this, bp::_1, bp::_2, bp::_3); + //NOLINTBEGIN + auto bnd = std::bind(&ViewProviderDrawingView::onGuiRepaint, this, sp::_1); + auto bndProgressMessage = std::bind(&ViewProviderDrawingView::onProgressMessage, this, sp::_1, sp::_2, sp::_3); + //NOLINTEND auto feature = getViewObject(); if (feature) { const char* temp = feature->getNameInDocument(); diff --git a/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h b/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h index 0b45767d01..868ac4e1d5 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h +++ b/src/Mod/TechDraw/Gui/ViewProviderGeomHatch.h @@ -64,7 +64,7 @@ public: TechDraw::DrawGeomHatch* getViewObject() const; - virtual Gui::MDIView *getMDIView() const override; + Gui::MDIView *getMDIView() const override; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp index f2eb236e1c..fc7ffa5759 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderPage.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderPage.cpp @@ -65,7 +65,7 @@ using namespace TechDrawGui; using namespace TechDraw; -namespace bp = boost::placeholders; +namespace sp = std::placeholders; #define _SHOWDRAWING 10 #define _TOGGLEUPDATE 11 @@ -114,7 +114,9 @@ void ViewProviderPage::attach(App::DocumentObject* pcFeat) { ViewProviderDocumentObject::attach(pcFeat); - auto bnd = boost::bind(&ViewProviderPage::onGuiRepaint, this, bp::_1); + //NOLINTBEGIN + auto bnd = std::bind(&ViewProviderPage::onGuiRepaint, this, sp::_1); + //NOLINTEND TechDraw::DrawPage* feature = dynamic_cast(pcFeat); if (feature) { connectGuiRepaint = feature->signalGuiPaint.connect(bnd); diff --git a/src/Mod/TechDraw/Gui/ViewProviderTemplate.h b/src/Mod/TechDraw/Gui/ViewProviderTemplate.h index 8f82ff787f..f9c6819ca5 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderTemplate.h +++ b/src/Mod/TechDraw/Gui/ViewProviderTemplate.h @@ -49,19 +49,19 @@ public: void attach(App::DocumentObject *) override; - virtual bool useNewSelectionModel(void) const override {return false;} - virtual void updateData(const App::Property*) override; - virtual void onChanged(const App::Property *prop) override; - virtual void hide(void) override; - virtual void show(void) override; - virtual bool isShow(void) const override; + bool useNewSelectionModel() const override {return false;} + void updateData(const App::Property*) override; + void onChanged(const App::Property *prop) override; + void hide() override; + void show() override; + bool isShow() const override; QGITemplate* getQTemplate(void); TechDraw::DrawTemplate* getTemplate() const; MDIViewPage* getMDIViewPage(void) const; - virtual Gui::MDIView *getMDIView() const override; + Gui::MDIView *getMDIView() const override; void setMarkers(bool state); - virtual bool onDelete(const std::vector &) override; + bool onDelete(const std::vector &) override; const char* whoAmI() const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp index 7c4e55d0b0..a21bccd4fd 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewPart.cpp @@ -314,17 +314,10 @@ bool ViewProviderViewPart::onDelete(const std::vector &) // get child views auto viewSection = getViewObject()->getSectionRefs(); auto viewDetail = getViewObject()->getDetailRefs(); - auto viewLeader = getViewObject()->getLeaders(); - auto viewDimension = getViewObject()->getDimensions(); - auto viewBalloon = getViewObject()->getBalloons(); - if (!viewDimension.empty() || - !viewBalloon.empty() || - !viewSection.empty() || - !viewDetail.empty() || - !viewLeader.empty()) { + if (!viewSection.empty() || !viewDetail.empty()) { bodyMessageStream << qApp->translate("Std_Delete", - "You cannot delete this view because it has one or more dependent objects that would become broken."); + "You cannot delete this view because it has one or more dependent views that would become broken."); QMessageBox::warning(Gui::getMainWindow(), qApp->translate("Std_Delete", "Object dependencies"), bodyMessage, QMessageBox::Ok); diff --git a/src/Mod/TechDraw/Gui/Widgets/CompassDialWidget.h b/src/Mod/TechDraw/Gui/Widgets/CompassDialWidget.h index ac08dd32f3..181d891ddb 100644 --- a/src/Mod/TechDraw/Gui/Widgets/CompassDialWidget.h +++ b/src/Mod/TechDraw/Gui/Widgets/CompassDialWidget.h @@ -36,8 +36,8 @@ class CompassDialWidget : public QWidget Q_OBJECT public: - CompassDialWidget(QWidget* parent = 0); - ~CompassDialWidget() = default; + CompassDialWidget(QWidget* parent = nullptr); + ~CompassDialWidget() override = default; QSize sizeHint() const override; QSize minimumSizeHint() const override; diff --git a/src/Mod/TechDraw/Gui/Widgets/CompassWidget.h b/src/Mod/TechDraw/Gui/Widgets/CompassWidget.h index 7a6b1fda82..fff82ace91 100644 --- a/src/Mod/TechDraw/Gui/Widgets/CompassWidget.h +++ b/src/Mod/TechDraw/Gui/Widgets/CompassWidget.h @@ -46,8 +46,8 @@ class CompassWidget: public QWidget Q_PROPERTY(double angle READ dialAngle WRITE setDialAngle NOTIFY angleChanged) public: - CompassWidget(QWidget* parent = 0); - ~CompassWidget() = default; + CompassWidget(QWidget* parent = nullptr); + ~CompassWidget() override = default; QSize sizeHint() const override; QSize minimumSizeHint() const override; diff --git a/src/Mod/TechDraw/Gui/Widgets/VectorEditWidget.h b/src/Mod/TechDraw/Gui/Widgets/VectorEditWidget.h index 5ca66ab76d..696e60d952 100644 --- a/src/Mod/TechDraw/Gui/Widgets/VectorEditWidget.h +++ b/src/Mod/TechDraw/Gui/Widgets/VectorEditWidget.h @@ -51,7 +51,7 @@ class VectorEditWidget : public QWidget public: VectorEditWidget(QWidget* parent = 0); - ~VectorEditWidget() = default; + ~VectorEditWidget() override = default; QSize minimumSizeHint() const override; bool eventFilter(QObject *target, QEvent *event) override; diff --git a/src/Mod/TechDraw/Gui/Workbench.cpp b/src/Mod/TechDraw/Gui/Workbench.cpp index 30971b2a62..751d47f011 100644 --- a/src/Mod/TechDraw/Gui/Workbench.cpp +++ b/src/Mod/TechDraw/Gui/Workbench.cpp @@ -85,6 +85,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const *dimensions << "TechDraw_RadiusDimension"; *dimensions << "TechDraw_DiameterDimension"; *dimensions << "TechDraw_AngleDimension"; + *dimensions << "TechDraw_3PtAngleDimension"; *dimensions << "TechDraw_HorizontalExtentDimension"; *dimensions << "TechDraw_VerticalExtentDimension"; *dimensions << "TechDraw_LinkDimension"; @@ -175,6 +176,9 @@ Gui::MenuItem* Workbench::setupMenuBar() const *lines << "TechDraw_2LineCenterLine"; *lines << "TechDraw_2PointCenterLine"; *lines << "TechDraw_2PointCosmeticLine"; + *lines << "Separator"; + *lines << "TechDraw_DecorateLine"; + *lines << "TechDraw_ShowAll"; // vertices Gui::MenuItem* vertices = new Gui::MenuItem; @@ -183,57 +187,92 @@ Gui::MenuItem* Workbench::setupMenuBar() const *vertices << "TechDraw_Midpoints"; *vertices << "TechDraw_Quadrants"; + // pages + Gui::MenuItem* pages = new Gui::MenuItem; + pages->setCommand("Page"); + *pages << "TechDraw_PageDefault"; + *pages << "TechDraw_PageTemplate"; + *pages << "TechDraw_RedrawPage"; + *pages << "TechDraw_PrintAll"; + *pages << "Separator"; + *pages << "TechDraw_ExportPageSVG"; + *pages << "TechDraw_ExportPageDXF"; + + // views + Gui::MenuItem* views = new Gui::MenuItem; + views->setCommand("TechDraw Views"); + *views << "TechDraw_View"; + *views << "TechDraw_SectionView"; + *views << "TechDraw_ComplexSection"; + *views << "TechDraw_DetailView"; + *views << "TechDraw_ProjectionGroup"; + *views << "Separator"; + *views << "TechDraw_Symbol"; + *views << "TechDraw_Image"; + *views << "Separator"; + *views << "TechDraw_MoveView"; + *views << "TechDraw_ShareView"; + *views << "Separator"; + *views << "TechDraw_ToggleFrame"; + *views << "Separator"; + *views << "TechDraw_ProjectShape"; + + // views from other workbenches + Gui::MenuItem* other = new Gui::MenuItem; + other->setCommand("Views From Other Workbenches"); + *other << "TechDraw_ActiveView"; + *other << "TechDraw_DraftView"; + *other << "TechDraw_ArchView"; + *other << "TechDraw_SpreadsheetView"; + + // clip groups + Gui::MenuItem* clips = new Gui::MenuItem; + clips->setCommand("Clipped Views"); + *clips << "TechDraw_ClipGroup"; + *clips << "TechDraw_ClipGroupAdd"; + *clips << "TechDraw_ClipGroupRemove"; + + // hatching + Gui::MenuItem* hatch = new Gui::MenuItem; + hatch->setCommand("Hatching"); + *hatch << "TechDraw_Hatch"; + *hatch << "TechDraw_GeometricHatch"; + + // symbols + Gui::MenuItem* symbols = new Gui::MenuItem; + symbols->setCommand("Symbols"); + *symbols << "TechDraw_WeldSymbol"; + *symbols << "TechDraw_SurfaceFinishSymbols"; + *symbols << "TechDraw_HoleShaftFit"; + // main menu draw->setCommand("TechDraw"); - *draw << "TechDraw_PageDefault"; - *draw << "TechDraw_PageTemplate"; - *draw << "TechDraw_RedrawPage"; - *draw << "TechDraw_PrintAll"; + *draw << pages; *draw << "Separator"; - *draw << "TechDraw_View"; - *draw << "TechDraw_ActiveView"; - *draw << "TechDraw_ProjectionGroup"; - *draw << "TechDraw_SectionView"; - *draw << "TechDraw_ComplexSection"; - *draw << "TechDraw_DetailView"; + *draw << views; *draw << "Separator"; - *draw << "TechDraw_DraftView"; - *draw << "TechDraw_ArchView"; - *draw << "TechDraw_SpreadsheetView"; + *draw << other; *draw << "Separator"; - *draw << "TechDraw_ClipGroup"; - *draw << "TechDraw_ClipGroupAdd"; - *draw << "TechDraw_ClipGroupRemove"; + *draw << clips; *draw << "Separator"; - *draw << "TechDraw_MoveView"; - *draw << "TechDraw_ShareView"; + *draw << dimensions; + *draw << "Separator"; + *draw << hatch; + *draw << "Separator"; + *draw << symbols; *draw << "Separator"; *draw << stacking; - *draw << dimensions; + *draw << "Separator"; *draw << toolattrib; *draw << toolcenter; *draw << tooldimensions; *draw << "Separator"; - *draw << "TechDraw_ExportPageSVG"; - *draw << "TechDraw_ExportPageDXF"; - *draw << "Separator"; - *draw << "TechDraw_Hatch"; - *draw << "TechDraw_GeometricHatch"; - *draw << "TechDraw_Symbol"; - *draw << "TechDraw_Image"; - *draw << "TechDraw_ToggleFrame"; - *draw << "Separator"; *draw << annotations; *draw << lines; *draw << vertices; - *draw << "TechDraw_CosmeticEraser"; - *draw << "TechDraw_DecorateLine"; - *draw << "TechDraw_ShowAll"; - *draw << "TechDraw_WeldSymbol"; - *draw << "TechDraw_SurfaceFinishSymbols"; - *draw << "TechDraw_HoleShaftFit"; *draw << "Separator"; - *draw << "TechDraw_ProjectShape"; + *draw << "TechDraw_CosmeticEraser"; + return root; } diff --git a/src/Mod/TechDraw/Gui/Workbench.h b/src/Mod/TechDraw/Gui/Workbench.h index f6ff098dbe..6633b73e6e 100644 --- a/src/Mod/TechDraw/Gui/Workbench.h +++ b/src/Mod/TechDraw/Gui/Workbench.h @@ -35,16 +35,16 @@ namespace TechDrawGui { */ class TechDrawGuiExport Workbench : public Gui::StdWorkbench { - TYPESYSTEM_HEADER(); + TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: Workbench(); - virtual ~Workbench(); + ~Workbench() override; protected: - Gui::MenuItem* setupMenuBar() const; - Gui::ToolBarItem* setupToolBars() const; - Gui::ToolBarItem* setupCommandBars() const; + Gui::MenuItem* setupMenuBar() const override; + Gui::ToolBarItem* setupToolBars() const override; + Gui::ToolBarItem* setupCommandBars() const override; }; } // namespace TechDrawGui diff --git a/src/Mod/TechDraw/Gui/mrichtextedit.h b/src/Mod/TechDraw/Gui/mrichtextedit.h index cafe0617a4..6c5f3bf6a4 100644 --- a/src/Mod/TechDraw/Gui/mrichtextedit.h +++ b/src/Mod/TechDraw/Gui/mrichtextedit.h @@ -43,7 +43,7 @@ class MRichTextEdit : public QWidget, protected Ui::MRichTextEdit { public: MRichTextEdit(QWidget *parent = nullptr, QString textIn = QString() ); - ~MRichTextEdit() = default; + ~MRichTextEdit() override = default; QString toPlainText() const { return f_textedit->toPlainText(); } QString toHtml() const; @@ -70,8 +70,8 @@ protected: void bgColorChanged(const QColor &color); void list(bool checked, QTextListFormat::Style style); void indent(int delta); - void focusInEvent(QFocusEvent *event); - void keyPressEvent(QKeyEvent *event); + void focusInEvent(QFocusEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; bool hasMultipleSizes(); void addFontSize(QString fontSize); diff --git a/src/Mod/TechDraw/Gui/mtextedit.h b/src/Mod/TechDraw/Gui/mtextedit.h index eb6737c2b1..a8eca1ff9c 100644 --- a/src/Mod/TechDraw/Gui/mtextedit.h +++ b/src/Mod/TechDraw/Gui/mtextedit.h @@ -38,9 +38,9 @@ class MTextEdit : public QTextEdit { void dropImage(const QImage& image, const QString& format); protected: - bool canInsertFromMimeData(const QMimeData *source) const; - void insertFromMimeData(const QMimeData *source); - QMimeData *createMimeDataFromSelection() const; + bool canInsertFromMimeData(const QMimeData *source) const override; + void insertFromMimeData(const QMimeData *source) override; + QMimeData *createMimeDataFromSelection() const override; }; diff --git a/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py b/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py index 3d570c2bbf..53d655c864 100644 --- a/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py +++ b/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py @@ -43,7 +43,7 @@ class CommandHoleShaftFit: 'MenuText': QT_TRANSLATE_NOOP("TechDraw_HoleShaftFit", "Add hole or shaft fit"), 'ToolTip': QT_TRANSLATE_NOOP("TechDraw_HoleShaftFit", "Add a hole or shaft fit to a dimension
    \ - select one length dimension or diameter dimension
    \ - - click the tool button, a panel openes
    \ + - click the tool button, a panel opens
    \ - select shaft fit / hole fit
    \ - select the desired ISO 286 fit field using the combo box")} diff --git a/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200TD.svg index 733e38a1e5..f0a599d8df 100644 --- a/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200TD.svg @@ -1,46 +1,21 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing number: - Date: - Revision: - - - - + + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing number: + Date: + Revision: + + + - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - - - - FreeCAD DRAWING - - - - - - - - - - - - A0 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - + + + AUTHOR NAME + DRAWING TITLE + + + FreeCAD DRAWING + + + + A0 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + diff --git a/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200_Pep.svg b/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200_Pep.svg index e392f90c71..d8a75df32c 100644 --- a/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200_Pep.svg +++ b/src/Mod/TechDraw/Templates/A0_Landscape_ISO7200_Pep.svg @@ -1,785 +1,220 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - - A - B - C - D - E - F - G - H - I - K - L - M - N - O - - A - B - C - D - E - F - G - H - I - K - L - M - N - O - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A1 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + + A + B + C + D + E + F + G + H + I + K + L + M + N + O + + A + B + C + D + E + F + G + H + I + K + L + M + N + O + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A1 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! + + + diff --git a/src/Mod/TechDraw/Templates/A0_Landscape_blank.svg b/src/Mod/TechDraw/Templates/A0_Landscape_blank.svg index 06b4b416b3..ad5e93a5db 100644 --- a/src/Mod/TechDraw/Templates/A0_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/A0_Landscape_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200TD.svg index 98fbb03d12..4e5700f62c 100644 --- a/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200TD.svg @@ -1,46 +1,21 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing number: - Date: - Revision: - - - - + + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing number: + Date: + Revision: + + + - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - - - - FreeCAD DRAWING - - - - - - - - - - - - A1 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - + + + AUTHOR NAME + DRAWING TITLE + + + FreeCAD DRAWING + + + + A1 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + diff --git a/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200_Pep.svg b/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200_Pep.svg index 31f9b516c3..f133e307c8 100644 --- a/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200_Pep.svg +++ b/src/Mod/TechDraw/Templates/A1_Landscape_ISO7200_Pep.svg @@ -1,645 +1,180 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - A - B - C - D - E - F - G - H - I - K - - A - B - C - D - E - F - G - H - I - K - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A1 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + A + B + C + D + E + F + G + H + I + K + + A + B + C + D + E + F + G + H + I + K + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A1 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! + + + diff --git a/src/Mod/TechDraw/Templates/A1_Landscape_blank.svg b/src/Mod/TechDraw/Templates/A1_Landscape_blank.svg index 1901e36d34..ffacbb2226 100644 --- a/src/Mod/TechDraw/Templates/A1_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/A1_Landscape_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200TD.svg index 5a7f38f623..3a5040e6ae 100644 --- a/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200TD.svg @@ -1,45 +1,21 @@ - - + + + - - image/svg+xml - - + + image/svg+xml + + - - - - - - + + + + + - - - + - - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing number: - Date: - Revision: - - - + + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing number: + Date: + Revision: + + + - - - transform="translate(384,123)"> - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - - - - FreeCAD DRAWING - - - - - - - - - - - - A2 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - + transform="translate(384,123)"> + + AUTHOR NAME + DRAWING TITLE + + + FreeCAD DRAWING + + + + A2 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + diff --git a/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200_Pep.svg b/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200_Pep.svg index a7904a70c6..001ab80df0 100644 --- a/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200_Pep.svg +++ b/src/Mod/TechDraw/Templates/A2_Landscape_ISO7200_Pep.svg @@ -1,547 +1,152 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - A - B - C - D - E - F - G - - A - B - C - D - E - F - G - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A2 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + A + B + C + D + E + F + G + + A + B + C + D + E + F + G + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A2 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! + + + diff --git a/src/Mod/TechDraw/Templates/A2_Landscape_blank.svg b/src/Mod/TechDraw/Templates/A2_Landscape_blank.svg index aface49efc..b5f90121d5 100644 --- a/src/Mod/TechDraw/Templates/A2_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/A2_Landscape_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/A3_LandscapeTD.svg b/src/Mod/TechDraw/Templates/A3_LandscapeTD.svg index 9df8308a25..3dea6f5f51 100644 --- a/src/Mod/TechDraw/Templates/A3_LandscapeTD.svg +++ b/src/Mod/TechDraw/Templates/A3_LandscapeTD.svg @@ -1,1063 +1,255 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_EN_m52.svg b/src/Mod/TechDraw/Templates/A3_Landscape_EN_m52.svg index 824a73a7ab..a453fc5ed3 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_EN_m52.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_EN_m52.svg @@ -1,1296 +1,140 @@ - - - - - - image/svg+xml - - - 13/10/2016 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - A3 - - - SCALE - - - WEIGHT - - - VERSION - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - AUTHOR NAME : - - - SUPERVISOR NAME : - - - FORMAT : - - - COMPANY : - - - SCALE : - - - WEIGHT (kg) : - - - VERSION : - - - SHEET : - - - DATE : - - - DATE : - - - + + + + + + image/svg+xml + + + 13/10/2016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + A3 + SCALE + WEIGHT + VERSION + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + AUTHOR NAME : + SUPERVISOR NAME : + FORMAT : + COMPANY : + SCALE : + WEIGHT (kg) : + VERSION : + SHEET : + DATE : + DATE : + + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_FR_m52.svg b/src/Mod/TechDraw/Templates/A3_Landscape_FR_m52.svg index 8415b01c53..dcf2f489c3 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_FR_m52.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_FR_m52.svg @@ -1,1296 +1,140 @@ - - - - - - image/svg+xml - - - 13/10/2016 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NOM AUTEUR - - - DATE DE CREATION - - - NOM SUPERVISEUR - - - DATE VERIFICATION - - - A3 - - - ECHELLE - - - POIDS - - - VERSION - - - FEUILLE - - - TITRE - - - SOUS_TITRE - - - SOCIETE - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - DESSINATEUR : - - - VALIDÉ PAR : - - - FORMAT : - - - SOCIÉTÉ : - - - ÉCHELLE : - - - POIDS (kg) : - - - VERSION : - - - FEUILLE : - - - DATE : - - - DATE : - - - + + + + + + image/svg+xml + + + 13/10/2016 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOM AUTEUR + DATE DE CREATION + NOM SUPERVISEUR + DATE VERIFICATION + A3 + ECHELLE + POIDS + VERSION + FEUILLE + TITRE + SOUS_TITRE + SOCIETE + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + DESSINATEUR : + VALIDÉ PAR : + FORMAT : + SOCIÉTÉ : + ÉCHELLE : + POIDS (kg) : + VERSION : + FEUILLE : + DATE : + DATE : + + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200TD.svg index 901387fe7e..fcadeea001 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200TD.svg @@ -1,46 +1,21 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing number: - Date: - Revision: - - - - + + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing number: + Date: + Revision: + + + - - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - - - - FreeCAD DRAWING - - - - - - - - - - - - A3 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - + + + + AUTHOR NAME + DRAWING TITLE + + + FreeCAD DRAWING + + + + A3 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200_Pep.svg b/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200_Pep.svg index 23c142155f..fee2636478 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200_Pep.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_ISO7200_Pep.svg @@ -1,479 +1,133 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - - A - B - C - D - E - - A - B - C - D - E - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A3 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + A + B + C + D + E + + A + B + C + D + E + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A3 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION! + + + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_IT_m52.svg b/src/Mod/TechDraw/Templates/A3_Landscape_IT_m52.svg index ca57dc7b50..a7411ddfd7 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_IT_m52.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_IT_m52.svg @@ -1,1296 +1,140 @@ - - - - - - image/svg+xml - - - 02/10/2018 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NOME PROGETTISTA - - - DATA DI CREAZIONE - - - SUPERVISORE - - - DATA CONTROLLO - - - A3 - - - SCALA - - - PESO - - - NUMERO DI VERSIONE - - - FOGLIO - - - TITOLO - - - SOTTOTITOLO - - - DITTA - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - NOME PROGETTISTA : - - - SUPERVISORE : - - - FORMATO : - - - DITTA : - - - SCALA : - - - PESO (kg) : - - - NUMERO DI VERSIONE : - - - PAGINA : - - - DATA : - - - DATA : - - - + + + + + + image/svg+xml + + + 02/10/2018 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOME PROGETTISTA + DATA DI CREAZIONE + SUPERVISORE + DATA CONTROLLO + A3 + SCALA + PESO + NUMERO DI VERSIONE + FOGLIO + TITOLO + SOTTOTITOLO + DITTA + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + NOME PROGETTISTA : + SUPERVISORE : + FORMATO : + DITTA : + SCALA : + PESO (kg) : + NUMERO DI VERSIONE : + PAGINA : + DATA : + DATA : + + diff --git a/src/Mod/TechDraw/Templates/A3_Landscape_blank.svg b/src/Mod/TechDraw/Templates/A3_Landscape_blank.svg index e46db7b2aa..192f8370b4 100644 --- a/src/Mod/TechDraw/Templates/A3_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/A3_Landscape_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/A4_LandscapeTD.svg b/src/Mod/TechDraw/Templates/A4_LandscapeTD.svg index 2bf9c0b970..94465bbaaf 100644 --- a/src/Mod/TechDraw/Templates/A4_LandscapeTD.svg +++ b/src/Mod/TechDraw/Templates/A4_LandscapeTD.svg @@ -1,1557 +1,204 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This drawing is our property; it can't be reproduced or communicated without our written consent. - - - A4 - - - - - - - + + - - - Designed by Name - - - Date - - - Scale - - - Weight - - - Title - - - Subtitle - - - Drawing number - - - Sheet - + + + + + + + + + This drawing is our property; it can't be reproduced or communicated without our written consent. + A4 + + + + + + + + + Designed by Name + Date + Scale + Weight + Title + Subtitle + Drawing number + Sheet + diff --git a/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200TD.svg index 0fcd1bd873..60b8a7981a 100644 --- a/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200TD.svg @@ -1,46 +1,21 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing no.: - Date: - Revision: - - - - + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing no.: + Date: + Revision: + + + - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - FreeCAD DRAWING - - - - - - A4 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - + + + AUTHOR NAME + DRAWING TITLE + + FreeCAD DRAWING + + A4 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + diff --git a/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200_Pep.svg b/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200_Pep.svg index 49cfd0a349..232cf81de5 100644 --- a/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200_Pep.svg +++ b/src/Mod/TechDraw/Templates/A4_Landscape_ISO7200_Pep.svg @@ -1,300 +1,76 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A4 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A4 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! + + + diff --git a/src/Mod/TechDraw/Templates/A4_Landscape_blank.svg b/src/Mod/TechDraw/Templates/A4_Landscape_blank.svg index 7edd89e8db..cc20e1b8be 100644 --- a/src/Mod/TechDraw/Templates/A4_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/A4_Landscape_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200Pep.svg b/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200Pep.svg index ae5c86e567..0157dc10e9 100644 --- a/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200Pep.svg +++ b/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200Pep.svg @@ -1,299 +1,75 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Author: - Appr.: - Legal owner: - TITLE: - Document type: - Sheet: - Size: - Scale: - Toler.: - Part material: - Part number: - Drawing no.: - Date: - Revision: - - - - AUTHOR NAME - - - APPROVER NAME - - - OWNER NAME - - - FreeCAD - - - - - - - - - Mechanical assembly drawing - - - 99 of 99 - - - M x:x - - - +/- ? - - - PM - - - PN - - - DN - - - YYYY-MM-DD - - - REV A - - - A4 - - - (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Author: + Appr.: + Legal owner: + TITLE: + Document type: + Sheet: + Size: + Scale: + Toler.: + Part material: + Part number: + Drawing no.: + Date: + Revision: + + + AUTHOR NAME + APPROVER NAME + OWNER NAME + FreeCAD + + + Mechanical assembly drawing + 99 of 99 + M x:x + +/- ? + PM + PN + DN + YYYY-MM-DD + REV A + A4 + (R) DO NOT DUPLICATE THIS DRAWING TO THIRD PARTIES WITHOUT OWNER'S PERMISSION ! + + + diff --git a/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200TD.svg b/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200TD.svg index 0c32902c64..64097680de 100644 --- a/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200TD.svg +++ b/src/Mod/TechDraw/Templates/A4_Portrait_ISO7200TD.svg @@ -1,46 +1,21 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - Created by: - Title: - Supplementary information: - Size: - Sheet: - Scale: - Part number: - Drawing number: - Date: - Revision: - - - - AUTHOR NAME - - - DRAWING TITLE - - - - - - - - - FreeCAD DRAWING - - - - - - - - - - - - A4 - - - X / Y - - - SCALE - - - PN - - - DN - - - DD/MM/YYYY - - - REV A - - - - - + + + + + + + + + + + + + Created by: + Title: + Supplementary information: + Size: + Sheet: + Scale: + Part number: + Drawing number: + Date: + Revision: + + + AUTHOR NAME + DRAWING TITLE + + + FreeCAD DRAWING + + + + A4 + X / Y + SCALE + PN + DN + DD/MM/YYYY + REV A + + + - + + diff --git a/src/Mod/TechDraw/Templates/A4_Portrait_blank.svg b/src/Mod/TechDraw/Templates/A4_Portrait_blank.svg index 8293bac6f7..7825f11c2e 100644 --- a/src/Mod/TechDraw/Templates/A4_Portrait_blank.svg +++ b/src/Mod/TechDraw/Templates/A4_Portrait_blank.svg @@ -1,26 +1,11 @@ - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIA_Landscape.svg b/src/Mod/TechDraw/Templates/ANSIA_Landscape.svg index 5e56117684..dfa2108a76 100644 --- a/src/Mod/TechDraw/Templates/ANSIA_Landscape.svg +++ b/src/Mod/TechDraw/Templates/ANSIA_Landscape.svg @@ -1,531 +1,70 @@ - - - - - - - - - image/svg+xml - - - - - - - OutLine - - - - - - - - - - - - - - - - - - - - - - - - A - - - B - - - A - - - B - - - 1 - - - 2 - - - 1 - - - 2 - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - A - - - Weight - - - - Sheet n of m - - - - - + + + + + + + + image/svg+xml + + + + + + + OutLine + + + + + + + + + + + + + + + + + + + + + + + A + B + A + B + 1 + 2 + 1 + 2 + Drawn: + Checked: + Approved: + Approved: + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + A + Weight + Sheet n of m + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIA_Landscape_blank.svg b/src/Mod/TechDraw/Templates/ANSIA_Landscape_blank.svg index 400db11cbd..8f0280b30b 100644 --- a/src/Mod/TechDraw/Templates/ANSIA_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/ANSIA_Landscape_blank.svg @@ -1,29 +1,14 @@ - - - - - - - - - image/svg+xml - - - - - + + + + + + + + image/svg+xml + + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIA_Portrait.svg b/src/Mod/TechDraw/Templates/ANSIA_Portrait.svg index 5958337f43..d291e96340 100644 --- a/src/Mod/TechDraw/Templates/ANSIA_Portrait.svg +++ b/src/Mod/TechDraw/Templates/ANSIA_Portrait.svg @@ -1,552 +1,80 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - A - - - Weight - - - - Sheet n of m - - - - OutLine - - - - - A - - - B - - - - - 1 - - - 2 - - - - - - - - - 1 - - - 2 - - - - - A - - - B - - + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + Drawn: + Checked: + Approved: + Approved: + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + A + Weight + Sheet n of m + + + OutLine + + + + A + B + + 1 + 2 + + + + + + + 1 + 2 + + + A + B + + diff --git a/src/Mod/TechDraw/Templates/ANSIA_Portrait_blank.svg b/src/Mod/TechDraw/Templates/ANSIA_Portrait_blank.svg index 6bbfb6a152..cd02e9f844 100644 --- a/src/Mod/TechDraw/Templates/ANSIA_Portrait_blank.svg +++ b/src/Mod/TechDraw/Templates/ANSIA_Portrait_blank.svg @@ -1,29 +1,14 @@ - - - - - - - - - image/svg+xml - - - - - + + + + + + + + image/svg+xml + + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIB.svg b/src/Mod/TechDraw/Templates/ANSIB.svg index 3a257fba0b..f69d91dd83 100644 --- a/src/Mod/TechDraw/Templates/ANSIB.svg +++ b/src/Mod/TechDraw/Templates/ANSIB.svg @@ -1,525 +1,78 @@ - - - - - - - image/svg+xml - - - - - - - - - - - OutLine - - - - - - - - A - - - B - - - A - - - B - - - 1 - - - 2 - - - 1 - - - 2 - + + + + + + image/svg+xml + + + + + + + + + + + OutLine + + + - - - - - - - - - - - - - - - - - - - - - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - B - - - Weight - - - Sheet n of m - + + + A + B + A + B + 1 + 2 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + Drawn: + Checked: + Approved: + Approved: + + + + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + B + Weight + Sheet n of m + diff --git a/src/Mod/TechDraw/Templates/ANSIB_Landscape.svg b/src/Mod/TechDraw/Templates/ANSIB_Landscape.svg index 784dc48f84..bc79222e66 100644 --- a/src/Mod/TechDraw/Templates/ANSIB_Landscape.svg +++ b/src/Mod/TechDraw/Templates/ANSIB_Landscape.svg @@ -1,510 +1,69 @@ - - - - - - - image/svg+xml - - - - - - - OutLine - - - - A - - - B - - - A - - - B - - - 1 - - - 2 - - - 1 - - - 2 - - - - - - - - - - - - - - - - - - - - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - B - - - Weight - - - Sheet n of m - - - - - - - + + + + + + image/svg+xml + + + + + + + OutLine + + + A + B + A + B + 1 + 2 + 1 + 2 + + + + + + + + + + + + + + + + + + + + Drawn: + Checked: + Approved: + Approved: + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + B + Weight + Sheet n of m + + + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIB_Landscape_blank.svg b/src/Mod/TechDraw/Templates/ANSIB_Landscape_blank.svg index 4f380bc2c5..4c5a522ab6 100644 --- a/src/Mod/TechDraw/Templates/ANSIB_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/ANSIB_Landscape_blank.svg @@ -1,27 +1,12 @@ - - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIB_Portrait.svg b/src/Mod/TechDraw/Templates/ANSIB_Portrait.svg index 4f31d272cb..24317bdca3 100644 --- a/src/Mod/TechDraw/Templates/ANSIB_Portrait.svg +++ b/src/Mod/TechDraw/Templates/ANSIB_Portrait.svg @@ -1,402 +1,55 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - B - - - Weight - - - Sheet n of m - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Drawn: + Checked: + Approved: + Approved: + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + B + Weight + Sheet n of m diff --git a/src/Mod/TechDraw/Templates/ANSIB_Portrait_blank.svg b/src/Mod/TechDraw/Templates/ANSIB_Portrait_blank.svg index 41a4c5ae7e..a29ef29bdb 100644 --- a/src/Mod/TechDraw/Templates/ANSIB_Portrait_blank.svg +++ b/src/Mod/TechDraw/Templates/ANSIB_Portrait_blank.svg @@ -1,27 +1,12 @@ - - - - - - - image/svg+xml - - - - - + + + + + + image/svg+xml + + + + + diff --git a/src/Mod/TechDraw/Templates/ANSIC_Landscape.svg b/src/Mod/TechDraw/Templates/ANSIC_Landscape.svg index f77987ea09..d9e425346f 100644 --- a/src/Mod/TechDraw/Templates/ANSIC_Landscape.svg +++ b/src/Mod/TechDraw/Templates/ANSIC_Landscape.svg @@ -1,1430 +1,340 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - ANSI C - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + ANSI C + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + diff --git a/src/Mod/TechDraw/Templates/ANSIC_Portrait.svg b/src/Mod/TechDraw/Templates/ANSIC_Portrait.svg index c89e9d3409..4a0d7e38eb 100644 --- a/src/Mod/TechDraw/Templates/ANSIC_Portrait.svg +++ b/src/Mod/TechDraw/Templates/ANSIC_Portrait.svg @@ -1,1328 +1,363 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + ANSI C + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - ANSI C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Mod/TechDraw/Templates/ANSID_Landscape.svg b/src/Mod/TechDraw/Templates/ANSID_Landscape.svg index dc8f49e997..222ab1ae91 100644 --- a/src/Mod/TechDraw/Templates/ANSID_Landscape.svg +++ b/src/Mod/TechDraw/Templates/ANSID_Landscape.svg @@ -1,1210 +1,363 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + ANSI D + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - ANSI D - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Mod/TechDraw/Templates/ANSID_Portrait.svg b/src/Mod/TechDraw/Templates/ANSID_Portrait.svg index 576fa8d09a..ea0185e0a3 100644 --- a/src/Mod/TechDraw/Templates/ANSID_Portrait.svg +++ b/src/Mod/TechDraw/Templates/ANSID_Portrait.svg @@ -1,1211 +1,363 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + ANSI D + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - ANSI D - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Mod/TechDraw/Templates/ANSIE_Landscape.svg b/src/Mod/TechDraw/Templates/ANSIE_Landscape.svg index 09e69eb307..8939413b81 100644 --- a/src/Mod/TechDraw/Templates/ANSIE_Landscape.svg +++ b/src/Mod/TechDraw/Templates/ANSIE_Landscape.svg @@ -1,1187 +1,363 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + ANSI E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - ANSI E - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Mod/TechDraw/Templates/ANSIE_Portrait.svg b/src/Mod/TechDraw/Templates/ANSIE_Portrait.svg index 24ade336be..80cc00e140 100644 --- a/src/Mod/TechDraw/Templates/ANSIE_Portrait.svg +++ b/src/Mod/TechDraw/Templates/ANSIE_Portrait.svg @@ -1,1211 +1,363 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + ANSI E + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - ANSI E - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Mod/TechDraw/Templates/AR_IRAM/A0.svg b/src/Mod/TechDraw/Templates/AR_IRAM/A0.svg index 6e32554528..167b051055 100644 --- a/src/Mod/TechDraw/Templates/AR_IRAM/A0.svg +++ b/src/Mod/TechDraw/Templates/AR_IRAM/A0.svg @@ -1,1947 +1,255 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + - - FECHA1 - FECHA2 - FECHA3 - FECHA4 - APELLIDO1 - APELLIDO2 - APELLIDO3 - APELLIDO4 - ESCALA - FORMATO - TITULO - TOLERANCIAS - CLIENTE - NUM_REPRESENTADO - NOMBRE_ARCHIVO - EMPRESA - NUM_PLANO_CLIENTE - NUM_PLANO - NUM - SUBTITULO - - - Escala - Proyectó - Dibujó - Revisó - Aprobó - Tolerancias - Generales - Formato - Denominación - Cliente - N° plano cliente - N° plano - Pág. - F - A - B - C - D - E - H - G - K - J - M - L - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - P - N - R - Q - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - F - A - B - C - D - E - H - G - K - J - M - L - P - N - R - Q - 16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FECHA1 + FECHA2 + FECHA3 + FECHA4 + APELLIDO1 + APELLIDO2 + APELLIDO3 + APELLIDO4 + ESCALA + FORMATO + TITULO + TOLERANCIAS + CLIENTE + NUM_REPRESENTADO + NOMBRE_ARCHIVO + EMPRESA + NUM_PLANO_CLIENTE + NUM_PLANO + NUM + SUBTITULO + + + Escala + Proyectó + Dibujó + Revisó + Aprobó + Tolerancias + Generales + Formato + Denominación + Cliente + N° plano cliente + N° plano + Pág. + F + A + B + C + D + E + H + G + K + J + M + L + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + P + N + R + Q + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + F + A + B + C + D + E + H + G + K + J + M + L + P + N + R + Q + 16 + diff --git a/src/Mod/TechDraw/Templates/AR_IRAM/A1.svg b/src/Mod/TechDraw/Templates/AR_IRAM/A1.svg index 41500f4df5..ecd6a3ba74 100644 --- a/src/Mod/TechDraw/Templates/AR_IRAM/A1.svg +++ b/src/Mod/TechDraw/Templates/AR_IRAM/A1.svg @@ -1,1560 +1,208 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + - - FECHA1 - FECHA2 - FECHA3 - FECHA4 - APELLIDO1 - APELLIDO2 - APELLIDO3 - APELLIDO4 - ESCALA - FORMATO - TITULO - TOLERANCIAS - CLIENTE - NUM_REPRESENTADO - NOMBRE_ARCHIVO - EMPRESA - NUM_PLANO_CLIENTE - NUM_PLANO - NUM - SUBTITULO - - - 1 - 2 - 3 - 4 - Escala - Proyectó - Dibujó - Revisó - Aprobó - Tolerancias - Generales - Formato - Denominación - Cliente - N° plano cliente - N° plano - Pág. - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - F - A - B - C - D - E - H - G - 13 - 14 - 15 - 16 - K - J - M - L - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - F - A - B - C - D - E - H - G - K - J - M - L + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FECHA1 + FECHA2 + FECHA3 + FECHA4 + APELLIDO1 + APELLIDO2 + APELLIDO3 + APELLIDO4 + ESCALA + FORMATO + TITULO + TOLERANCIAS + CLIENTE + NUM_REPRESENTADO + NOMBRE_ARCHIVO + EMPRESA + NUM_PLANO_CLIENTE + NUM_PLANO + NUM + SUBTITULO + + + 1 + 2 + 3 + 4 + Escala + Proyectó + Dibujó + Revisó + Aprobó + Tolerancias + Generales + Formato + Denominación + Cliente + N° plano cliente + N° plano + Pág. + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + F + A + B + C + D + E + H + G + 13 + 14 + 15 + 16 + K + J + M + L + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + F + A + B + C + D + E + H + G + K + J + M + L + diff --git a/src/Mod/TechDraw/Templates/AR_IRAM/A2.svg b/src/Mod/TechDraw/Templates/AR_IRAM/A2.svg index 948c789689..8958d4787d 100644 --- a/src/Mod/TechDraw/Templates/AR_IRAM/A2.svg +++ b/src/Mod/TechDraw/Templates/AR_IRAM/A2.svg @@ -1,1290 +1,177 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + - - FECHA1 - FECHA2 - FECHA3 - FECHA4 - APELLIDO1 - APELLIDO2 - APELLIDO3 - APELLIDO4 - ESCALA - FORMATO - TITULO - TOLERANCIAS - CLIENTE - NUM_REPRESENTADO - NOMBRE_ARCHIVO - EMPRESA - NUM_PLANO_CLIENTE - NUM_PLANO - NUM - SUBTITULO - - - 1 - 2 - 3 - 4 - Escala - Proyectó - Dibujó - Revisó - Aprobó - Tolerancias - Generales - Formato - Denominación - Cliente - F - N° plano cliente - N° plano - Pág. - A - B - C - D - E - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - H - G - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - F - A - B - C - D - E - H - G + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FECHA1 + FECHA2 + FECHA3 + FECHA4 + APELLIDO1 + APELLIDO2 + APELLIDO3 + APELLIDO4 + ESCALA + FORMATO + TITULO + TOLERANCIAS + CLIENTE + NUM_REPRESENTADO + NOMBRE_ARCHIVO + EMPRESA + NUM_PLANO_CLIENTE + NUM_PLANO + NUM + SUBTITULO + + + 1 + 2 + 3 + 4 + Escala + Proyectó + Dibujó + Revisó + Aprobó + Tolerancias + Generales + Formato + Denominación + Cliente + F + N° plano cliente + N° plano + Pág. + A + B + C + D + E + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + H + G + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + F + A + B + C + D + E + H + G + diff --git a/src/Mod/TechDraw/Templates/AR_IRAM/A3.svg b/src/Mod/TechDraw/Templates/AR_IRAM/A3.svg index 727e01f4b9..52cb710960 100644 --- a/src/Mod/TechDraw/Templates/AR_IRAM/A3.svg +++ b/src/Mod/TechDraw/Templates/AR_IRAM/A3.svg @@ -1,980 +1,149 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FECHA1 - FECHA2 - FECHA3 - FECHA4 - APELLIDO1 - APELLIDO2 - APELLIDO3 - APELLIDO4 - ESCALA - FORMATO - TITULO - TOLERANCIAS - CLIENTE - NUM_REPRESENTADO - NOMBRE_ARCHIVO - EMPRESA - NUM_PLANO_CLIENTE - NUM_PLANO - NUM - SUBTITULO - - - 1 - 2 - 3 - 4 - Escala - Proyectó - Dibujó - Revisó - Aprobó - Tolerancias - Generales - Formato - Denominación - Cliente - 1 - 2 - 3 - F - N° plano cliente - N° plano - Pág. - 4 - E - F - A - B - C - D - E - A - B - D - C - 5 - 6 - 7 - 8 - 5 - 6 - 7 - 8 + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FECHA1 + FECHA2 + FECHA3 + FECHA4 + APELLIDO1 + APELLIDO2 + APELLIDO3 + APELLIDO4 + ESCALA + FORMATO + TITULO + TOLERANCIAS + CLIENTE + NUM_REPRESENTADO + NOMBRE_ARCHIVO + EMPRESA + NUM_PLANO_CLIENTE + NUM_PLANO + NUM + SUBTITULO + + + 1 + 2 + 3 + 4 + Escala + Proyectó + Dibujó + Revisó + Aprobó + Tolerancias + Generales + Formato + Denominación + Cliente + 1 + 2 + 3 + F + N° plano cliente + N° plano + Pág. + 4 + E + F + A + B + C + D + E + A + B + D + C + 5 + 6 + 7 + 8 + 5 + 6 + 7 + 8 + diff --git a/src/Mod/TechDraw/Templates/AR_IRAM/A4.svg b/src/Mod/TechDraw/Templates/AR_IRAM/A4.svg index 518839ac02..0f92581009 100644 --- a/src/Mod/TechDraw/Templates/AR_IRAM/A4.svg +++ b/src/Mod/TechDraw/Templates/AR_IRAM/A4.svg @@ -1,896 +1,130 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FECHA1 - FECHA2 - FECHA3 - FECHA4 - APELLIDO1 - APELLIDO2 - APELLIDO3 - APELLIDO4 - ESCALA - FORMATO - TITULO - TOLERANCIAS - CLIENTE - NUM_REPRESENTADO - NOMBRE_ARCHIVO - EMPRESA - NUM_PLANO_CLIENTE - NUM_PLANO - NUM - SUBTITULO - - - 1 - 2 - 3 - 4 - Escala - Proyectó - Dibujó - Revisó - Aprobó - Tolerancias - Generales - Formato - Denominación - Cliente - 1 - 2 - 3 - F - N° plano cliente - N° plano - Pág. - 4 - E - F - A - B - C - D - E - A - B - D - C - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FECHA1 + FECHA2 + FECHA3 + FECHA4 + APELLIDO1 + APELLIDO2 + APELLIDO3 + APELLIDO4 + ESCALA + FORMATO + TITULO + TOLERANCIAS + CLIENTE + NUM_REPRESENTADO + NOMBRE_ARCHIVO + EMPRESA + NUM_PLANO_CLIENTE + NUM_PLANO + NUM + SUBTITULO + + + 1 + 2 + 3 + 4 + Escala + Proyectó + Dibujó + Revisó + Aprobó + Tolerancias + Generales + Formato + Denominación + Cliente + 1 + 2 + 3 + F + N° plano cliente + N° plano + Pág. + 4 + E + F + A + B + C + D + E + A + B + D + C + diff --git a/src/Mod/TechDraw/Templates/Arch_A_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_A_Landscape.svg index aaf98432ab..e3cdc68160 100644 --- a/src/Mod/TechDraw/Templates/Arch_A_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_A_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch A - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch A + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_A_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_A_Portrait.svg index 302c04579a..1ded822c17 100644 --- a/src/Mod/TechDraw/Templates/Arch_A_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_A_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch A - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch A + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_B_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_B_Landscape.svg index 9d980e0654..3cdd78a0e6 100644 --- a/src/Mod/TechDraw/Templates/Arch_B_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_B_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch B - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch B + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_B_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_B_Portrait.svg index 3be50ef4e3..4e237d0900 100644 --- a/src/Mod/TechDraw/Templates/Arch_B_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_B_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch B - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch B + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_C_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_C_Landscape.svg index 46834407d7..796382529c 100644 --- a/src/Mod/TechDraw/Templates/Arch_C_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_C_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch C - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch C + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_C_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_C_Portrait.svg index a83e63caf1..8c09006836 100644 --- a/src/Mod/TechDraw/Templates/Arch_C_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_C_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch C - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch C + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_D_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_D_Landscape.svg index 1b7071358f..4d59337918 100644 --- a/src/Mod/TechDraw/Templates/Arch_D_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_D_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch D - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch D + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_D_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_D_Portrait.svg index 2a897e2dec..1b26acddc6 100644 --- a/src/Mod/TechDraw/Templates/Arch_D_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_D_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch D - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch D + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E1_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_E1_Landscape.svg index 9f7a874c12..2e45d144ae 100644 --- a/src/Mod/TechDraw/Templates/Arch_E1_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_E1_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E1 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E1 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E1_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_E1_Portrait.svg index e4503186a6..2da3f7b8bc 100644 --- a/src/Mod/TechDraw/Templates/Arch_E1_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_E1_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E1 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E1 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E2_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_E2_Landscape.svg index d473afeec4..0f2a74c409 100644 --- a/src/Mod/TechDraw/Templates/Arch_E2_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_E2_Landscape.svg @@ -1,1468 +1,346 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E2 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E2 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E2_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_E2_Portrait.svg index 725deb30b7..5502bfd6da 100644 --- a/src/Mod/TechDraw/Templates/Arch_E2_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_E2_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E2 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E2 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E3_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_E3_Landscape.svg index 478ecca225..9fcf6815b6 100644 --- a/src/Mod/TechDraw/Templates/Arch_E3_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_E3_Landscape.svg @@ -1,1388 +1,346 @@ - - - - _________ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + _________ + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E3 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E3 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E3_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_E3_Portrait.svg index cf146bbc48..54356f3237 100644 --- a/src/Mod/TechDraw/Templates/Arch_E3_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_E3_Portrait.svg @@ -1,1468 +1,346 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E3 - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + image/svg+xml + + + + + + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E3 + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/Arch_E_Landscape.svg b/src/Mod/TechDraw/Templates/Arch_E_Landscape.svg index 88957ea2ab..de392aa50c 100644 --- a/src/Mod/TechDraw/Templates/Arch_E_Landscape.svg +++ b/src/Mod/TechDraw/Templates/Arch_E_Landscape.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/Arch_E_Portrait.svg b/src/Mod/TechDraw/Templates/Arch_E_Portrait.svg index b4116e0914..42748c3a02 100644 --- a/src/Mod/TechDraw/Templates/Arch_E_Portrait.svg +++ b/src/Mod/TechDraw/Templates/Arch_E_Portrait.svg @@ -1,1388 +1,346 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _________ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _________ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AUTHOR NAME - - - CREATION DATE - - - SUPERVISOR NAME - - - CHECK DATE - - - Arch E - - - SCALE - - - WEIGHT - - - NUMBER - - - SHEET - - - TITLE - - - SUBTITLE - - - COMPANY NAME - - - COPYRIGHT - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - - - _________ - + + AUTHOR NAME + CREATION DATE + SUPERVISOR NAME + CHECK DATE + Arch E + SCALE + WEIGHT + NUMBER + SHEET + TITLE + SUBTITLE + COMPANY NAME + COPYRIGHT + _________ + _________ + _________ + _________ + _________ + _________ + _________ + _________ diff --git a/src/Mod/TechDraw/Templates/HowToExample.svg b/src/Mod/TechDraw/Templates/HowToExample.svg index e61bca21ae..c96c97b865 100644 --- a/src/Mod/TechDraw/Templates/HowToExample.svg +++ b/src/Mod/TechDraw/Templates/HowToExample.svg @@ -1,76 +1,17 @@ - - - - - - - image/svg+xml - - - - - - - - - Static Text - - - Editable Text - - - Another Editable - + + + + + + image/svg+xml + + + + + + + + Static Text + Editable Text + Another Editable diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A0.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A0.svg index dc7d213541..d54060abf6 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A0.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A0.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Landscape_A0 - - - - - - image/svg+xml - - RU_Leading_Landscape_A0 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А0 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Landscape_A0 + + + + + + image/svg+xml + + RU_Leading_Landscape_A0 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А0 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A1.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A1.svg index 5fc39e7c40..f701f1afa5 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A1.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A1.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Landscape_A1 - - - - - - image/svg+xml - - RU_Leading_Landscape_A1 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А1 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Landscape_A1 + + + + + + image/svg+xml + + RU_Leading_Landscape_A1 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А1 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A2.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A2.svg index 9b0d8bb6da..5f0587017b 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A2.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A2.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Landscape_A2 - - - - - - image/svg+xml - - RU_Leading_Landscape_A2 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А2 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Landscape_A2 + + + + + + image/svg+xml + + RU_Leading_Landscape_A2 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А2 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A3.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A3.svg index c76168a8f1..bc425dbc26 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A3.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A3.svg @@ -1,1533 +1,98 @@ - - - RU_Leading_Landscape_A3 - - - - - - image/svg+xml - - RU_Leading_Landscape_A3 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А3 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Landscape_A3 + + + + + + image/svg+xml + + RU_Leading_Landscape_A3 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А3 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A4_NotInGOST.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A4_NotInGOST.svg index e2a0465f63..a62bcbfbdb 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A4_NotInGOST.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Landscape_A4_NotInGOST.svg @@ -1,1502 +1,92 @@ - - - RU_Leading_Landscape_A4 - - - - - - image/svg+xml - - RU_Leading_Landscape_A4 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А4 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Landscape_A4 + + + + + + image/svg+xml + + RU_Leading_Landscape_A4 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А4 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A0.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A0.svg index 42eb2aee5c..fa4872590a 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A0.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A0.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Portrait_A0 - - - - - - image/svg+xml - - RU_Leading_Portrait_A0 - - - - Abrosimov Anton - - - 09.06.19 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А0 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Portrait_A0 + + + + + + image/svg+xml + + RU_Leading_Portrait_A0 + + + + Abrosimov Anton + + + 09.06.19 + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А0 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A1.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A1.svg index 43190046fc..704b0830c8 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A1.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A1.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Portrait_A1 - - - - - - image/svg+xml - - RU_Leading_Portrait_A1 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А1 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Portrait_A1 + + + + + + image/svg+xml + + RU_Leading_Portrait_A1 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А1 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A2.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A2.svg index 65fd4c236d..99c65d1795 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A2.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A2.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Portrait_A2 - - - - - - image/svg+xml - - RU_Leading_Portrait_A2 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А2 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Portrait_A2 + + + + + + image/svg+xml + + RU_Leading_Portrait_A2 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А2 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A3.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A3.svg index f47fc53184..d804a5b602 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A3.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A3.svg @@ -1,1534 +1,98 @@ - - - RU_Leading_Portrait_A3 - - - - - - image/svg+xml - - RU_Leading_Portrait_A3 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - Формат А3 - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Полоса —————————————— - Лит. - Масса - Масштаб - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Т. контр. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 0.000 - 1:1 - 01.01.01 - 01.01.01 - 01.01.01 - 50×100 ГОСТ 103-2006 - 12Х18Н10Т ГОСТ 5949-75 - - - + + + RU_Leading_Portrait_A3 + + + + + + image/svg+xml + + RU_Leading_Portrait_A3 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + + Формат А3 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A4.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A4.svg index 4698868f23..9043258cd3 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A4.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading/Portrait_A4.svg @@ -1,1592 +1,94 @@ - - - RU_Leading_Portrait_A4 - - - - - - image/svg+xml - - RU_Leading_Portrait_A4 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - - - Название детали - - - Полоса —————————————— - - - Лит. - - - Масса - - - Масштаб - - - Лист - - - Листов - - - Изм - - - Лист - - - № докум. - - - Подп. - - - Дата - - - Разраб. - - - Пров. - - - Т. контр. - - - Н. контр. - - - Утв. - - - ООО «Рога и копыта» - - - Иванов И. И. - - - Иванов И. И. - - - Иванов И. И. - - - 1 - - - 1 - - - 0.000 - - - 1:1 - - - 01.01.01 - - - 01.01.01 - - - 01.01.01 - - - 50×100 ГОСТ 103-2006 - - - 12Х18Н10Т ГОСТ 5949-75 - - - - - - - - - - - - - РИК-35.000000.000СБ - + + + RU_Leading_Portrait_A4 + + + + + + image/svg+xml + + RU_Leading_Portrait_A4 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А4 + + + + + + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Полоса —————————————— + Лит. + Масса + Масштаб + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Т. контр. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 0.000 + 1:1 + 01.01.01 + 01.01.01 + 01.01.01 + 50×100 ГОСТ 103-2006 + 12Х18Н10Т ГОСТ 5949-75 + + + + + РИК-35.000000.000СБ diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A3.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A3.svg index d119db5f0e..7c5bedddfa 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A3.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A3.svg @@ -1,1421 +1,85 @@ - - - RU_LeadingText_Portrait_A3 - - - - - - image/svg+xml - - RU_LeadingText_Portrait_A3 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А3 - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Лит. - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 01.01.01 - 01.01.01 - 01.01.01 - - - - - - - - - РИК-35.000000.000СБ + + + RU_LeadingText_Portrait_A3 + + + + + + image/svg+xml + + RU_LeadingText_Portrait_A3 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А3 + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Лит. + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 01.01.01 + 01.01.01 + 01.01.01 + + + + + + + + + РИК-35.000000.000СБ diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A4.svg b/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A4.svg index db56ef72a4..5172258d48 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A4.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Leading_text/Portrait_A4.svg @@ -1,1390 +1,79 @@ - - - RU_LeadingText_Portrait_A4 - - - - - - image/svg+xml - - RU_LeadingText_Portrait_A4 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А4 - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000СБ - Название детали - Лит. - Лист - Листов - Изм - Лист - № докум. - Подп. - Дата - Разраб. - Пров. - Н. контр. - Утв. - ООО «Рога и копыта» - Иванов И. И. - Иванов И. И. - Иванов И. И. - 1 - 1 - 01.01.01 - 01.01.01 - 01.01.01 - - - + + + RU_LeadingText_Portrait_A4 + + + + + + image/svg+xml + + RU_LeadingText_Portrait_A4 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А4 + + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000СБ + Название детали + Лит. + Лист + Листов + Изм + Лист + № докум. + Подп. + Дата + Разраб. + Пров. + Н. контр. + Утв. + ООО «Рога и копыта» + Иванов И. И. + Иванов И. И. + Иванов И. И. + 1 + 1 + 01.01.01 + 01.01.01 + 01.01.01 + + + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A0.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A0.svg index bc6365bd76..e2028f4223 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A0.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A0.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Landscape_A0 - - - - - - image/svg+xml - - RU_Subsequent_Landscape_A0 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А0 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Landscape_A0 + + + + + + image/svg+xml + + RU_Subsequent_Landscape_A0 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А0 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A1.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A1.svg index 4da7bdf94f..3c8f227971 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A1.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A1.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Landscape_A1 - - - - - - image/svg+xml - - RU_Subsequent_Landscape_A1 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А1 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Landscape_A1 + + + + + + image/svg+xml + + RU_Subsequent_Landscape_A1 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А1 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A2.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A2.svg index eca91f1388..0b97ba0f9f 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A2.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A2.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Landscape_A2 - - - - - - image/svg+xml - - RU_Subsequent_Landscape_A2 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А2 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Landscape_A2 + + + + + + image/svg+xml + + RU_Subsequent_Landscape_A2 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А2 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A3.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A3.svg index 692b1c3822..cd667a5c2d 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A3.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A3.svg @@ -1,1172 +1,58 @@ - - - RU_Subsequent_Landscape_A3 - - - - - - image/svg+xml - - RU_Subsequent_Landscape_A3 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А3 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Landscape_A3 + + + + + + image/svg+xml + + RU_Subsequent_Landscape_A3 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А3 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A4.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A4.svg index d0c93c9c32..c3bdf78c98 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A4.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Landscape_A4.svg @@ -1,1142 +1,52 @@ - - - RU_Subsequent_Landscape_A4 - - - - - - image/svg+xml - - RU_Subsequent_Landscape_A4 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А4 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Landscape_A4 + + + + + + image/svg+xml + + RU_Subsequent_Landscape_A4 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А4 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A0.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A0.svg index bf8f25fc80..38c8128199 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A0.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A0.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Portrait_A0 - - - - - - image/svg+xml - - RU_Subsequent_Portrait_A0 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А0 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Portrait_A0 + + + + + + image/svg+xml + + RU_Subsequent_Portrait_A0 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А0 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A1.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A1.svg index f2d94abf9f..9d46d4186b 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A1.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A1.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Portrait_A1 - - - - - - image/svg+xml - - RU_Subsequent_Portrait_A1 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А1 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Portrait_A1 + + + + + + image/svg+xml + + RU_Subsequent_Portrait_A1 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А1 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A2.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A2.svg index c92e362592..e44f79b311 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A2.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A2.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Portrait_A2 - - - - - - image/svg+xml - - RU_Subsequent_Portrait_A2 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А2 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Portrait_A2 + + + + + + image/svg+xml + + RU_Subsequent_Portrait_A2 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А2 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A3.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A3.svg index 0b33d320e0..1350e9d3bd 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A3.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A3.svg @@ -1,1173 +1,58 @@ - - - RU_Subsequent_Portrait_A3 - - - - - - image/svg+xml - - RU_Subsequent_Portrait_A3 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - РИК-35.000000.000-01 - - Формат А3 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Portrait_A3 + + + + + + image/svg+xml + + RU_Subsequent_Portrait_A3 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + + + + + РИК-35.000000.000-01 + + Формат А3 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A4.svg b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A4.svg index 7ae2ffbc3d..d55b6dff44 100644 --- a/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A4.svg +++ b/src/Mod/TechDraw/Templates/RU_GOST/Subsequent/Portrait_A4.svg @@ -1,1141 +1,52 @@ - - - RU_Subsequent_Portrait_A4 - - - - - - image/svg+xml - - RU_Subsequent_Portrait_A4 - - 09.06.19 - - - Abrosimov Anton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Формат А4 - - - - - - - - - - - РИК-35.000000.000-01 - Лист - Изм - Лист - № докум. - Подп. - Дата - 1 - + + + RU_Subsequent_Portrait_A4 + + + + + + image/svg+xml + + RU_Subsequent_Portrait_A4 + + 09.06.19 + + + Abrosimov Anton + + + + + + + + + + + + + + + + Формат А4 + + + + + + + + + + + РИК-35.000000.000-01 + Лист + Изм + Лист + № докум. + Подп. + Дата + 1 + diff --git a/src/Mod/TechDraw/Templates/USLetter_Landscape.svg b/src/Mod/TechDraw/Templates/USLetter_Landscape.svg index 103cdcc83c..39c0d88462 100644 --- a/src/Mod/TechDraw/Templates/USLetter_Landscape.svg +++ b/src/Mod/TechDraw/Templates/USLetter_Landscape.svg @@ -1,529 +1,68 @@ - - - - - - - - image/svg+xml - - - - - - - OutLine - - - - - - - - - - - - - - - - - - - - - - - - - - - A - - - B - - - A - - - B - - - 1 - - - 2 - - - 1 - - - 2 - - - Drawn: - - - Checked: - - - Approved: - - - Approved: - - - Company Name - - - 1234 Main St - - - Drawing Title 1 - - - Drawing Title 2 - - - Drawing Title 3 - - - Drawing Number - - - Rev - - - Drawn By - - - Checked By - - - Approved 1 - - - Approved 2 - - - Scale - - - Code - - - A - - - Weight -   - - - Sheet n of m - + + + + + + + image/svg+xml + + + + + + + OutLine + + + + + + + + + + + + + + + + + + + + + + + + + + A + B + A + B + 1 + 2 + 1 + 2 + Drawn: + Checked: + Approved: + Approved: + Company Name + 1234 Main St + Drawing Title 1 + Drawing Title 2 + Drawing Title 3 + Drawing Number + Rev + Drawn By + Checked By + Approved 1 + Approved 2 + Scale + Code + A + Weight + Sheet n of m diff --git a/src/Mod/TechDraw/Templates/USLetter_Landscape_blank.svg b/src/Mod/TechDraw/Templates/USLetter_Landscape_blank.svg index 4cbd624eb3..273b1f9036 100644 --- a/src/Mod/TechDraw/Templates/USLetter_Landscape_blank.svg +++ b/src/Mod/TechDraw/Templates/USLetter_Landscape_blank.svg @@ -1,28 +1,13 @@ - - - - - - - - image/svg+xml - - - - - + + + + + + + image/svg+xml + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_CLIP.svg index 8209903f3a..7acdc30c7d 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_CLIP.svg @@ -1,296 +1,322 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - - A - B - C - D - E - F - G - H - I - J - K - L - - A - B - C - D - E - F - G - H - I - J - K - L - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - - A0 - - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - - 材料牌号 - - - - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 297折线 - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + + + A + + B + C + D + E + F + G + H + I + J + K + L + + + A + B + C + D + E + F + G + H + I + J + K + L + + + 1 + + 2 + 3 + 4 + 5 + 6 + 7 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A0 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 297折线 + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_NO_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_NO_CLIP.svg index b8121cae68..f522fd4ccb 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_NO_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A0_Landscape_CN_NO_CLIP.svg @@ -1,281 +1,301 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - - A - B - C - D - E - F - G - H - I - J - K - L - - A - B - C - D - E - F - G - H - I - J - K - L - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - - 10 - 11 - 12 - 13 - 14 - 15 - 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - - A0 - - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - - 材料牌号 - - - - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + + + A + B + C + D + E + F + G + H + I + J + K + L + + + A + B + C + D + E + F + G + H + I + J + K + L + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + 10 + 11 + 12 + 13 + 14 + 15 + 16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A0 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_CLIP.svg index b838dbb51f..0889c74c55 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_CLIP.svg @@ -1,274 +1,298 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - - A - B - C - D - E - F - G - H - I - J - - A - B - C - D - E - F - G - H - I - J - - - 1 - 2 - 3 - 4 - 5 - - 8 - 9 - 10 - 11 - 12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - A1 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - 材料牌号 - - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 297折线 - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + A + B + C + D + E + F + G + H + I + J + + + A + B + C + D + E + F + G + H + I + J + + + + 1 + 2 + 3 + 4 + 5 + + 8 + 9 + 10 + 11 + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A1 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 297折线 + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_NO_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_NO_CLIP.svg index d80a32c500..71e76caa41 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_NO_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A1_Landscape_CN_NO_CLIP.svg @@ -1,253 +1,281 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - - A - B - C - D - E - F - G - H - I - J - - A - B - C - D - E - F - G - H - I - J - - - 1 - 2 - 3 - 4 - 5 - 8 - 9 - 10 - 11 - 12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - A1 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - 材料牌号 - - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + A + B + C + D + E + F + G + H + I + J + + + A + B + C + D + E + F + G + H + I + J + + + + 1 + 2 + 3 + 4 + 5 + 8 + 9 + 10 + 11 + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A1 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_CLIP.svg index a40aa3cdde..d76bd44909 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_CLIP.svg @@ -1,259 +1,281 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - A - B - C - D - E - F - G - H - - A - B - C - D - E - F - G - H - - 1 - 2 - 3 - 8 - 9 - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - - A2 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - - 材料牌号 - - - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - 重量 - - - - - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 297折线 - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + A + B + C + D + E + F + G + H + + + A + B + C + D + E + F + G + H + + + 1 + 2 + 3 + 8 + 9 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + + A2 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + + + 材料牌号 + + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + 重量 + + + + + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 297折线 + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_NO_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_NO_CLIP.svg index 070894ad52..71adf190fb 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_NO_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A2_Landscape_CN_NO_CLIP.svg @@ -1,230 +1,254 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - A - B - C - D - E - F - G - H - - A - B - C - D - E - F - G - H - - 1 - 2 - 3 - 4 - 7 - 8 - 9 - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - A2 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - 材料牌号 - - - 设计人 - 制图人 - 批准人 - 评审人 - 审核人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + A + B + C + D + E + F + G + H + + + A + B + C + D + E + F + G + H + + + 1 + 2 + 3 + 4 + 7 + 8 + 9 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A2 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + 设计人 + 制图人 + 批准人 + 评审人 + 审核人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_CLIP.svg index 709d27dc8b..1b1404a17d 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_CLIP.svg @@ -1,46 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 2 3 @@ -49,85 +65,110 @@ 6 7 8 - - A + + + A + B C D E F - + + A B C D E F - + + 1 2 7 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标记 处数 分区 @@ -138,93 +179,98 @@ 签名 (年月日) - + + 设计 (签名) (年月日) - + + 标准化 (签名) (年月日) - + + 阶段标记 重量 比例 - + + 审核 制图 工艺 批准 - + + - - A3 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - + + + A3 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + + 材料牌号 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计人 - 6制图人 - 审核人 - 批准人 - 评审人 - - 99 - 1 - M x:x - - - - - 重量 - - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计人 + 制图人 + 审核人 + 批准人 + 评审人 + + + 99 + 1 + M x:x + + + + + 重量 + + + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_NO_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_NO_CLIP.svg index 8bdd83c5c4..104a34a15e 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_NO_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A3_Landscape_CN_NO_CLIP.svg @@ -1,213 +1,238 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - - A - B - C - D - E - F - - A - B - C - D - E - F - - 1 - 2 - 3 - 6 - 7 - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - A3 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - 材料牌号 - - - - 设计人 - 审核人 - 评审人 - 制图人 - 批准人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + + + A + B + C + D + E + F + + + A + B + C + D + E + F + + + 1 + 2 + 3 + 6 + 7 + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A3 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + + 设计人 + 审核人 + 评审人 + 制图人 + 批准人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_CLIP.svg index 5d3d87cf66..4ca17de401 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_CLIP.svg @@ -1,115 +1,144 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 2 3 4 5 6 - + + A B C D - + + A B C D - + + 1 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标记 处数 分区 @@ -120,52 +149,56 @@ 签名 (年月日) - + + 设计 (签名) (年月日) - + + 标准化 (签名) (年月日) - + + 阶段标记 重量 比例 - + + 审核 制图 工艺 批准 - + + - - A4 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - - 材料牌号 + + + A4 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + + + 材料牌号 - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - 设计人 - 制图人 - 审核人 - 批准人 - 评审人 - 99 - 1 - M x:x - - - - - 重量 - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) + + 设计人 + 制图人 + 审核人 + 批准人 + 评审人 + 99 + 1 + M x:x + + + + + 重量 + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) diff --git a/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_NO_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_NO_CLIP.svg index 2f041eaa61..7318e37b1b 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_NO_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/landscape/A4_Landscape_CN_NO_CLIP.svg @@ -1,195 +1,218 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - - A - B - C - D - - A - B - C - D - - 1 - 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计 - (签名) - (年月日) - 标准化 - (签名) - (年月日) - 制图 - 审核 - 工艺 - 批准 - 阶段标记 - 重量 - 比例 - - - - - 标记 - 处数 - 分区 - - - - - - 签名 - (年月日) - A4 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - 材料牌号 - - - - 设计人 - 制图人 - 审核人 - 批准人 - 评审人 - 99 - 1 - M x:x - 重量 - - - - - YYYY-MM-DD - YYYY-MM-DD - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - (材料标记) - (项目标题) - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + + + A + B + C + D + + + A + B + C + D + + + 1 + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计 + (签名) + (年月日) + 标准化 + (签名) + (年月日) + 制图 + 审核 + 工艺 + 批准 + 阶段标记 + 重量 + 比例 + + + + + 标记 + 处数 + 分区 + + + + + + 签名 + (年月日) + A4 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + 材料牌号 + + + + 设计人 + 制图人 + 审核人 + 批准人 + 评审人 + 99 + 1 + M x:x + 重量 + + + + + YYYY-MM-DD + YYYY-MM-DD + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + (材料标记) + (项目标题) + (子项目标题) + (零件名称) + (版本号) + (图样代号) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/TechDraw/Templates/zh_CN/portrait/A3_Portrait_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/portrait/A3_Portrait_CN_CLIP.svg index cd49b22804..8d7f203081 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/portrait/A3_Portrait_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/portrait/A3_Portrait_CN_CLIP.svg @@ -1,59 +1,86 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 2 3 4 5 6 - + + A B C @@ -62,7 +89,8 @@ F G H - + + A B C @@ -71,7 +99,8 @@ F G H - + + 1 2 3 @@ -80,60 +109,82 @@ 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标记 处数 分区 @@ -144,18 +195,21 @@ 签名 (年月日) - + + 设计 (签名) (年月日) - + + 标准化 (签名) (年月日) 阶段标记 重量 比例 - + + 审核 制图 工艺 @@ -164,78 +218,79 @@ - - A3 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - + + + A3 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + + 材料牌号 - - - - - - - + + + + + + + + + + + + + + + + + + + + + 297折线 + + + + + + + + + + 设计人 + 制图人 + 审核人 + 批准人 + 评审人 + 99 + 1 + M x:x + + + + + + + 重量 + + + YYYY-MM-DD + YYYY-MM-DD + + + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + + + (材料标记) + (项目标题) + + + (子项目标题) + (零件名称) + (版本号) + (图样代号) - - - - - - - - - - - - - - - - - 297折线 - - - - - - - - - - - 设计人 - 制图人 - 审核人 - 批准人 - 评审人 - 99 - 1 - M x:x - - - - - - 重量 - - YYYY-MM-DD - YYYY-MM-DD - - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - - (材料标记) - (项目标题) - - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - diff --git a/src/Mod/TechDraw/Templates/zh_CN/portrait/A4_Portrait_CN_CLIP.svg b/src/Mod/TechDraw/Templates/zh_CN/portrait/A4_Portrait_CN_CLIP.svg index 59059c4b3d..f843987a28 100644 --- a/src/Mod/TechDraw/Templates/zh_CN/portrait/A4_Portrait_CN_CLIP.svg +++ b/src/Mod/TechDraw/Templates/zh_CN/portrait/A4_Portrait_CN_CLIP.svg @@ -1,118 +1,159 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 2 3 4 - + + A B C D E F - + + A B C D E F - + + 1 2 3 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标记 处数 分区 @@ -123,15 +164,18 @@ 签名 (年月日) - + + 设计 (签名) (年月日) - + + 标准化 (签名) (年月日) - + + 阶段标记 重量 比例 @@ -143,76 +187,77 @@ - - A4 - 模板版本:0.0.2 - 模板设计:李峰 - felix@95839.com - + + + A4 + 模板版本:0.0.2 + 模板设计:李峰 + felix@95839.com + + 材料牌号 - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计人 + 制图人 + 审核人 + 批准人 + 评审人 + 99 + 1 - - - - - - - - - - - - - + + M x:x + + + + + 重量 + + + YYYY-MM-DD + YYYY-MM-DD + + + (单位名称/单位代号) + (单位地址) + (单位电话/电邮) + + + (材料标记) + (项目标题) + + + (子项目标题) + (零件名称) + (版本号) + (图样代号) - - - - 设计人 - 制图人 - 审核人 - 批准人 - 评审人 - 99 - 1 - - M x:x - - - - - 重量 - - YYYY-MM-DD - YYYY-MM-DD - - (单位名称/单位代号) - (单位地址) - (单位电话/电邮) - - (材料标记) - (项目标题) - - (子项目标题) - (零件名称) - (版本号) - (图样代号) - - diff --git a/src/Mod/Tux/Resources/translations/Tux_ca.qm b/src/Mod/Tux/Resources/translations/Tux_ca.qm index 4999c16276..bcd353d03f 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_ca.qm and b/src/Mod/Tux/Resources/translations/Tux_ca.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_ca.ts b/src/Mod/Tux/Resources/translations/Tux_ca.ts index ff5ba53bcb..856bb9562c 100644 --- a/src/Mod/Tux/Resources/translations/Tux_ca.ts +++ b/src/Mod/Tux/Resources/translations/Tux_ca.ts @@ -86,7 +86,7 @@ Free Turntable - Free Turntable + Plataforma giratòria lliure diff --git a/src/Mod/Tux/Resources/translations/Tux_fr.qm b/src/Mod/Tux/Resources/translations/Tux_fr.qm index d288e70e86..a7c481237f 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_fr.qm and b/src/Mod/Tux/Resources/translations/Tux_fr.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_fr.ts b/src/Mod/Tux/Resources/translations/Tux_fr.ts index eee9a5f949..4e9cf5207b 100644 --- a/src/Mod/Tux/Resources/translations/Tux_fr.ts +++ b/src/Mod/Tux/Resources/translations/Tux_fr.ts @@ -81,7 +81,7 @@ Turntable - Table tournante + Vue en rotation diff --git a/src/Mod/Tux/Resources/translations/Tux_ja.qm b/src/Mod/Tux/Resources/translations/Tux_ja.qm index fb88b38351..4fc07395dc 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_ja.qm and b/src/Mod/Tux/Resources/translations/Tux_ja.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_ja.ts b/src/Mod/Tux/Resources/translations/Tux_ja.ts index bf88a8b33d..013ae95058 100644 --- a/src/Mod/Tux/Resources/translations/Tux_ja.ts +++ b/src/Mod/Tux/Resources/translations/Tux_ja.ts @@ -81,12 +81,12 @@ Turntable - ターン テーブル + ターンテーブル Free Turntable - Free Turntable + フリーターンテーブル diff --git a/src/Mod/Tux/Resources/translations/Tux_pt-BR.qm b/src/Mod/Tux/Resources/translations/Tux_pt-BR.qm index 6acb406dae..65bb8110b7 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_pt-BR.qm and b/src/Mod/Tux/Resources/translations/Tux_pt-BR.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_pt-BR.ts b/src/Mod/Tux/Resources/translations/Tux_pt-BR.ts index f3568fe6e1..287da19a31 100644 --- a/src/Mod/Tux/Resources/translations/Tux_pt-BR.ts +++ b/src/Mod/Tux/Resources/translations/Tux_pt-BR.ts @@ -86,7 +86,7 @@ Free Turntable - Free Turntable + Girarmesa Livre diff --git a/src/Mod/Tux/Resources/translations/Tux_zh-CN.qm b/src/Mod/Tux/Resources/translations/Tux_zh-CN.qm index b0e48eee8d..9034ee126e 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_zh-CN.qm and b/src/Mod/Tux/Resources/translations/Tux_zh-CN.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_zh-CN.ts b/src/Mod/Tux/Resources/translations/Tux_zh-CN.ts index 2334edc910..a3f6d888b1 100644 --- a/src/Mod/Tux/Resources/translations/Tux_zh-CN.ts +++ b/src/Mod/Tux/Resources/translations/Tux_zh-CN.ts @@ -86,7 +86,7 @@ Free Turntable - Free Turntable + 自由转盘 diff --git a/src/Mod/Tux/Resources/translations/Tux_zh-TW.qm b/src/Mod/Tux/Resources/translations/Tux_zh-TW.qm index a26a54cc46..586d20fb80 100644 Binary files a/src/Mod/Tux/Resources/translations/Tux_zh-TW.qm and b/src/Mod/Tux/Resources/translations/Tux_zh-TW.qm differ diff --git a/src/Mod/Tux/Resources/translations/Tux_zh-TW.ts b/src/Mod/Tux/Resources/translations/Tux_zh-TW.ts index 2b621e835b..9150d10b7c 100644 --- a/src/Mod/Tux/Resources/translations/Tux_zh-TW.ts +++ b/src/Mod/Tux/Resources/translations/Tux_zh-TW.ts @@ -86,7 +86,7 @@ Free Turntable - 自由轉盤 + Free Turntable diff --git a/src/Mod/Web/Gui/Resources/translations/Web_ca.ts b/src/Mod/Web/Gui/Resources/translations/Web_ca.ts index 5818e205d2..997c74adc8 100644 --- a/src/Mod/Web/Gui/Resources/translations/Web_ca.ts +++ b/src/Mod/Web/Gui/Resources/translations/Web_ca.ts @@ -76,7 +76,7 @@ Stop loading - Aturar la carrega + Atura la càrrega
    @@ -104,7 +104,7 @@ Zoom out - Allunyar + Allunya @@ -122,7 +122,7 @@ Opens a website in FreeCAD - Obre una pàgina web al FreeCAD + Obre un lloc web al FreeCAD @@ -151,7 +151,7 @@ There were errors while loading the file. Some data might have been modified or not recovered at all. Look in the report view for more specific information about the objects involved. - S'han produït errors en carregar el fitxer. Algunes dades es poden haver modificades o no s'han recuperat. Consulteu la vista d'informe per a obtenir informació més específica sobre els objectes implicats. + S'han produït errors en carregar el fitxer. Algunes dades es poden haver modificat o no s'han recuperat. Consulteu la vista d'informe per a obtenir informació més específica sobre els objectes implicats. @@ -161,7 +161,7 @@ Loading %1... - Carregant 1%... + S'està carregant %1... diff --git a/src/Mod/Web/Gui/Resources/translations/Web_zh-TW.ts b/src/Mod/Web/Gui/Resources/translations/Web_zh-TW.ts index 5f1e6a6dda..0288053df5 100644 --- a/src/Mod/Web/Gui/Resources/translations/Web_zh-TW.ts +++ b/src/Mod/Web/Gui/Resources/translations/Web_zh-TW.ts @@ -156,7 +156,7 @@ There were serious errors while loading the file. Some data might have been modified or not recovered at all. Saving the project will most likely result in loss of data. - 載入檔案時出現嚴重錯誤. 某些資料可能已被修改或根本未恢復. 儲存專案很可能會導致資料丟失. + There were serious errors while loading the file. Some data might have been modified or not recovered at all. Saving the project will most likely result in loss of data. diff --git a/src/Tools/generateTemplates/templateClassPyExport.py b/src/Tools/generateTemplates/templateClassPyExport.py index 7c39527bd7..c328bfb971 100644 --- a/src/Tools/generateTemplates/templateClassPyExport.py +++ b/src/Tools/generateTemplates/templateClassPyExport.py @@ -57,7 +57,7 @@ namespace @self.export.Namespace.replace("::"," { namespace ")@ class @self.export.Namespace.replace("::","_")@Export @self.export.Name@ : public @self.export.FatherNamespace@::@self.export.Father@ { protected: - ~@self.export.Name@(); + ~@self.export.Name@() override; public: static PyTypeObject Type; @@ -79,12 +79,12 @@ public: static int descriptorSetter(PyObject* self, PyObject* obj, PyObject* value); - static PyGetSetDef GetterSetter[]; - virtual PyTypeObject *GetType() {return &Type;} + PyTypeObject *GetType() override {return &Type;} public: @self.export.Name@(@self.export.TwinPointer@ *pcObject, PyTypeObject *T = &Type); static PyObject *PyMake(struct _typeobject *, PyObject *, PyObject *); - virtual int PyInit(PyObject* args, PyObject*k); + int PyInit(PyObject* args, PyObject*k) override; + if (self.export.Initialization): int initialization(); @@ -93,7 +93,7 @@ public: using PointerType = @self.export.TwinPointer@*; - virtual PyObject *_repr(); // the representation + PyObject *_repr() override; // the representation std::string representation() const; /** @name callbacks and implementers for the python object methods */ @@ -232,8 +232,8 @@ public: /// setter for special attributes (e.g. dynamic ones) /// Output: Success=1, Failure=-1, Ignore=0 int setCustomAttributes(const char* attr, PyObject *obj); - PyObject *_getattr(const char *attr); // __getattr__ function - int _setattr(const char *attr, PyObject *value); // __setattr__ function + PyObject *_getattr(const char *attr) override; // __getattr__ function + int _setattr(const char *attr, PyObject *value) override; // __setattr__ function - /// getter for the object handled by this class @@ -371,20 +371,20 @@ PyMethodDef @self.export.Name@::Methods[] = { {"@i.Name@", + if i.Keyword: + if i.Class: - reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), + reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), METH_VARARGS|METH_KEYWORDS|METH_CLASS, = elif i.Static: - reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), + reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), METH_VARARGS|METH_KEYWORDS|METH_STATIC, = else: - reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), + reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), METH_VARARGS|METH_KEYWORDS, - = elif i.Class: - reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), + reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), METH_VARARGS|METH_CLASS, = elif i.Static: - reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), + reinterpret_cast(reinterpret_cast( staticCallback_@i.Name@ )), METH_VARARGS|METH_STATIC, = else: reinterpret_cast( staticCallback_@i.Name@ ), @@ -571,7 +571,7 @@ PyObject * @self.export.Name@::staticCallback_@i.Name@ (PyObject *self, PyObject - + if not i.Static and not i.Class: + if (not i.Const): - if (ret != 0) + if (ret != nullptr) static_cast<@self.export.Name@*>(self)->startNotify(); - - diff --git a/src/Tools/macos_sign_and_notarize.sh b/src/Tools/macos_sign_and_notarize.sh new file mode 100644 index 0000000000..ed9b50cc41 --- /dev/null +++ b/src/Tools/macos_sign_and_notarize.sh @@ -0,0 +1,78 @@ +#!/bin/zsh + +# SPDX-License-Identifier: LGPL-2.1-or-later + +# This script signs and notarizes a FreeCAD.app bundle. It expects that the bundle is in a folder +# by itself (that folder will be used as the basis for the created disk image file, so anything +# else in it will become part of the image). That folder should be located in the same folder as +# this script. + +# An environment variable called FREECAD_SIGNING_KEY_ID must exist that contains the ID of a +# Developer ID Application certificate that has been installed into the login keychain. See the +# output of +# security find-identity -p basic -v +# for a list of available keys, and the documentation for +# xcrun notarytool store-credentials +# for instructions on how to configure the credentials for the tool for use before running this +# script. + +# CONFIGURATION OPTIONS +CONTAINING_FOLDER="FreeCAD-0.21-RC1-x86" # Must contain FreeCAD.app and nothing else +ARCH="intel_x86" # intel_x86 or arm64 +VERSION_MAJOR="0" +VERSION_MINOR="21" +VERSION_PATCH="0" +VERSION_SUFFIX="RC1" # e.g. alpha, beta, RC1, RC2, release + + +# Sign all library files +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp `find ${CONTAINING_FOLDER}/FreeCAD.app -name "*.dylib"` +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp `find ${CONTAINING_FOLDER}/FreeCAD.app -name "*.so"` + +# This list of files is generated from: +# file `find . -type f -perm +111 -print` | grep "Mach-O 64-bit executable" +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/bin/freecadcmd +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/bin/python +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/bin/ccx +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/bin/freecad +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/QtWebEngineProcess +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/gstreamer-1.0/gst-hotdoc-plugins-scanner +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/gstreamer-1.0/gst-plugin-scanner +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/gstreamer-1.0/gst-ptp-helper +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/p11-kit/p11-kit-server +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/libexec/p11-kit/p11-kit-remote +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kproplog +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/krb5kdc +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/gss-server +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/sserver +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kprop +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kadmin.local +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kdb5_util +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kpropd +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/sim_server +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/kadmind +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/sbin/uuserver +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/pgxs/src/test/regress/pg_regress +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/pgxs/src/test/isolation/isolationtester +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/pgxs/src/test/isolation/pg_isolation_regress +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/gettext/urlget +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/gettext/hostname +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Resources/lib/gettext/cldr-plurals + +# Two additional files that must be signed that aren't caught by the above searches: +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/packages.txt +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app/Contents/Library/QuickLook/QuicklookFCStd.qlgenerator/Contents/MacOS/QuicklookFCStd + +# Finally, sign the app itself (must be done last) +codesign --options runtime -f -s ${FREECAD_SIGNING_KEY_ID} --timestamp ${CONTAINING_FOLDER}/FreeCAD.app + +# Create a disk image from the folder +DMG_NAME="FreeCAD-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_SUFFIX}-mac-${ARCH}" +echo "Creating disk image ${DMG_NAME}" +hdiutil create -srcfolder "${CONTAINING_FOLDER}" "${DMG_NAME}" + +# Submit it for notarization (requires that an App Store API Key has been set up in the notarytool) +xcrun notarytool submit --wait --keychain-profile "FreeCAD" ${DMG_NAME}.dmg + +# Assuming that notarization succeeded, it's a good practice to staple that notarization to the DMG +xcrun stapler staple ${DMG_NAME} diff --git a/src/WindowsInstaller/README.md b/src/WindowsInstaller/README.md index 9e194776c6..9db81808d8 100644 --- a/src/WindowsInstaller/README.md +++ b/src/WindowsInstaller/README.md @@ -1,57 +1,59 @@ -# FreeCADInstProj -A Windows installer for FreeCAD +# Creating a Windows installer for FreeCAD -To build the installer you can do the following: -1. Get the latest zip-file of the whole installer source code "FC-standard-installer.zip" from
    - https://github.com/donovaly/FreeCADInstProj/releases -2. Extract it to e.g. the path "C:\FreeCAD\Installer" -3. Open the file *Settings.nsh* with a text editor
    - (the editor jEdit (jedit.org) can be recommended to edit NSIS files)
    - and adapt there the following paths to the ones on your PC, e.g.:
    - `!define FILES_FREECAD "C:\FreeCAD\Installer\FreeCAD"`
    - `!define FILES_DEPS "C:\FreeCAD\Installer\MSVCRedist"` -4. Specify in Settings.nsh if it should be an installer for 32bit by commenting the line
    - `!define MULTIUSER_USE_PROGRAMFILES64` -5. Install the latest version 3.x of NSIS (https://nsis.sourceforge.io/Download) -6. Download these special release files of NSIS that support large strings:
    +These are instructions for building an NSIS-based installer for FreeCAD. They were designed for FreeCAD 0.21 and later, +and presume that you have cloned a copy of FreeCAD's source code, and therefore have the directory *src/WindowsInstaller*. + +## Install NSIS +To set up your system for building an NSIS installer: +1. Install the latest version 3.x of NSIS (https://nsis.sourceforge.io/Download) +2. Download these special release files of NSIS that support large strings:
    https://nsis.sourceforge.io/Special_Builds#Large_strings
    - and copy the containing files into the corresponding NSIS installations folders -7. Download these special release files of NSIS that support logging:
    + and copy the contained files into the corresponding NSIS installations folders +3. Download these special release files of NSIS that support logging:
    https://nsis.sourceforge.io/Special_Builds#Advanced_logging
    - and copy the containing files into the corresponding NSIS installations folders -8. Copy the file *~\nsprocess\Include\nsProcess.nsh* to the folder
    - *\Include* of NSIS's installation folder.
    - Copy the file *~\nsprocess\Plugins\x86-unicode\nsProcess.dll* to the folder
    - *\Plugins\x86-unicode* of NSIS's installation folder.
    - (You can alternatively get nsProcess from https://nsis.sourceforge.io/NsProcess_plugin) + and copy the contained files into the corresponding NSIS installations folders +4. Download and install the nsProcess plugin from https://nsis.sourceforge.io/NsProcess_plugin -- you will need the version that supports Unicode, so make sure to follow the appropriate instructions on their site to install that one (as of this writing it involves manually copying and renaming the plugin DLL file). -Now you have 2 options: - -* Either you got an already compiled FreeCAD, then copy all FreeCAD files to the folder
    - *~\FreeCAD" e.g. "C:\FreeCAD\Installer\FreeCAD* -* Or you compiled FreeCAD on your own as described [here](https://wiki.freecad.org/Compile_on_Windows). Then: - * Open the file *Settings.nsh* as described in step 3. above and set there
    - `!define FILES_FREECAD` to the folder you specified as `CMAKE_INSTALL_PREFIX` - * Copy into that folder the file *Delete.bat* that is part of the installer - * change to that folder and search it for **\*_debug.\*** - * delete all found files - * repeat this for the searches with **\*_d.\***, **\*.pyc** and **\*.pdb** - * open a command line in Windows and change in this to the folder - * run the comamand
    - `Delete.bat` - * (These steps assure that the installer only contains files users need. Moreover it assures that the - overall files size is below 2 GB and we can use the most compact compression for the installer.) - -10. If you use a version of FreeCAD that was compiled using another MSVC version than MSVC 2019, - copy its distributable DLLs to the folder FILES_DEPS (see step 3). -11. Right-click on the file *FreeCAD-installer.nsi* and choose **Compile NSIS script** +## Build the installer +Next, update the installer settings for the current version of FreeCAD. Starting from the *src/WindowsInstaller* folder in the FreeCAD source tree: +1. Set the appropriate version strings for the release you are creating. These are used to construct the filename of the installer, among other things. If you have to upload a new version of the installer for the exact same release of FreeCAD, increment `APP_VERSION BUILD` as needed. +``` +!define APP_VERSION_MAJOR 0 +!define APP_VERSION_MINOR 21 +!define APP_VERSION_REVISION 0 +!define APP_VERSION_EMERGENCY "RC1" +!define APP_VERSION_BUILD 1 +``` +2. Within the folder *src/WindowsInstaller*, create a new folder called MSVCRedist and copy the following files from your MSVC installation into it: +``` +vcruntime140.dll +concrt140.dll +msvcp140.dll +vcamp140.dll +vccorlib140.dll +vcomp140.dll +``` +3. Open the file *Settings.nsh* with a text editor (both jEdit and Visual Studio Code are good editors for NSIS files). Edit the following paths to correspond to your system: `FILES_FREECAD` corresponds to your installation directory (e.g. `CMAKE_INSTALL_PREFIX` if you self-compiled) and `FILES_DEPS` is the folder you created with the MSVC redistributable files in it. +``` +!define FILES_FREECAD "C:\FreeCAD\Installer\FreeCAD" +!define FILES_DEPS "C:\FreeCAD\Installer\MSVCRedist" +``` +4. Ensure the FreeCAD files are in place. Here you have two options: + * If you are working from an already-compiled version of FreeCAD provided to you by an outside source: in this case, simply ensure that `FILES_FREECAD` is set to the directory containing those files. + * If you compiled FreeCAD on your own as described [here](https://wiki.freecad.org/Compile_on_Windows) (and using the Install option outlined there). Then: + * Open the file *Settings.nsh* as described in step 3. above and set there
    + `!define FILES_FREECAD` to the folder you specified as `CMAKE_INSTALL_PREFIX` + * Copy into that folder the file *Delete.bat* that is part of the installer + * open a command line in Windows and change to the folder + * run the comamand
    + `Delete.bat` + * (These steps assure that the installer only contains files users need. Moreover it assures that the + overall files size is below 2 GB and we can use the most compact compression for the installer.) +5. Right-click on the file *FreeCAD-installer.nsi* and choose **Compile NSIS script** to compile the installer. -12. The folder *~\MSVCRedist* contains already all MSVC 2019 x64 redistributable DLLs necessary - for FreeCAD 0.20. If another MSVC version was used to compile FreeCAD, replace the DLLs by - the ones of the used MSVC. (They are usually available in the folder - *C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC*) -For test builds of the installer you can turn off the compression. This speeds up + +NOTE: For test builds of the installer you can turn off the compression. This speeds up the build time for the installer a lot but increases its file size. The compression is turned off by uncommenting the line
    `SetCompressor /SOLID lzma`
    diff --git a/src/XDGData/org.freecadweb.FreeCAD.appdata.xml.in b/src/XDGData/org.freecadweb.FreeCAD.appdata.xml.in index 859d8f8dea..582eecc9a6 100644 --- a/src/XDGData/org.freecadweb.FreeCAD.appdata.xml.in +++ b/src/XDGData/org.freecadweb.FreeCAD.appdata.xml.in @@ -1,9 +1,10 @@ - + org.freecadweb.FreeCAD LGPL-2.1 CC0-1.0 The FreeCAD Team + org.freecadweb.FreeCAD.desktop FreeCAD An open source parametric 3D CAD modeler diff --git a/src/XDGData/org.freecadweb.FreeCAD.desktop b/src/XDGData/org.freecadweb.FreeCAD.desktop index 1b63c92ebf..5b0dbc55cb 100644 --- a/src/XDGData/org.freecadweb.FreeCAD.desktop +++ b/src/XDGData/org.freecadweb.FreeCAD.desktop @@ -14,10 +14,10 @@ GenericName[de]=CAD-Anwendung GenericName[ko]=CAD 응용프로그램 GenericName[pl]=Aplikacja CAD GenericName[ru]=Система автоматизированного проектирования -Exec=FreeCAD %F +Exec=FreeCAD - --single-instance %F Terminal=false Type=Application Icon=org.freecadweb.FreeCAD Categories=Graphics;Science;Education;Engineering; StartupNotify=true -MimeType=application/x-extension-fcstd; +MimeType=application/x-extension-fcstd;model/obj;model/iges;image/vnd.dwg;image/vnd.dxf;model/vnd.collada+xml;application/iges;model/iges;model/step;model/step+zip;model/stl;application/vnd.shp;model/vrml; diff --git a/src/boost_regex.hpp b/src/boost_regex.hpp index ac5b5fbced..a08b52b5af 100644 --- a/src/boost_regex.hpp +++ b/src/boost_regex.hpp @@ -10,6 +10,7 @@ # define NOMINMAX # endif # include +# undef BASETYPES # endif #endif diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 09db35011f..d63d1ac186 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,9 +38,9 @@ add_executable(Tests_run) add_subdirectory(lib) add_subdirectory(src) target_include_directories(Tests_run PUBLIC ${Python3_INCLUDE_DIRS} ${XercesC_INCLUDE_DIRS}) -target_link_libraries(Tests_run gtest_main ${Google_Tests_LIBS} FreeCADApp) +target_link_libraries(Tests_run gtest_main gmock_main ${Google_Tests_LIBS} FreeCADApp) add_executable(Sketcher_tests_run) add_subdirectory(src/Mod/Sketcher) -target_include_directories(Sketcher_tests_run PUBLIC ${EIGEN3_INCLUDE_DIR}) +target_include_directories(Sketcher_tests_run PUBLIC ${EIGEN3_INCLUDE_DIR} ${OCC_INCLUDE_DIR} ${Python3_INCLUDE_DIRS}) target_link_libraries(Sketcher_tests_run gtest_main ${Google_Tests_LIBS} Sketcher) diff --git a/tests/src/App/CMakeLists.txt b/tests/src/App/CMakeLists.txt index e14c01958f..8a98989dc9 100644 --- a/tests/src/App/CMakeLists.txt +++ b/tests/src/App/CMakeLists.txt @@ -3,6 +3,7 @@ target_sources( PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Application.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Branding.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ComplexGeoData.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Expression.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ElementMap.cpp ${CMAKE_CURRENT_SOURCE_DIR}/IndexedName.cpp diff --git a/tests/src/App/ComplexGeoData.cpp b/tests/src/App/ComplexGeoData.cpp new file mode 100644 index 0000000000..2447c6209c --- /dev/null +++ b/tests/src/App/ComplexGeoData.cpp @@ -0,0 +1,417 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "gtest/gtest.h" + +#include +#include + +#include +#include +#include + + +class ConcreteComplexGeoDataForTesting: public Data::ComplexGeoData +{ +public: + std::vector getElementTypes() const override + { + return {"EDGE"}; + } + + unsigned long countSubElements(const char* Type) const override + { + (void)Type; + return 0; + } + + Data::Segment* getSubElement(const char* Type, unsigned long number) const override + { + (void)number; + (void)Type; + return nullptr; + } + + unsigned int getMemSize() const override + { + return 0; + } + + void Save(Base::Writer& writer) const override + { + (void)writer; + } + + void Restore(Base::XMLReader& reader) override + { + (void)reader; + } + + void setTransform(const Base::Matrix4D& rclTrf) override + { + (void)rclTrf; + } + + Base::Matrix4D getTransform() const override + { + return {}; + } + + void transformGeometry(const Base::Matrix4D& rclMat) override + { + (void)rclMat; + } + + Base::BoundBox3d getBoundBox() const override + { + return Base::BoundBox3d(); + } +}; + +class ComplexGeoDataTest: public ::testing::Test +{ +protected: + static void SetUpTestSuite() + { + if (App::Application::GetARGC() == 0) { + constexpr int argc = 1; + std::array argv {"FreeCAD"}; + App::Application::Config()["ExeName"] = "FreeCAD"; + App::Application::init(argc, argv.data()); + } + } + + void SetUp() override + { + _docName = App::GetApplication().getUniqueDocumentName("test"); + App::GetApplication().newDocument(_docName.c_str(), "testUser"); + } + + void TearDown() override + { + App::GetApplication().closeDocument(_docName.c_str()); + } + + ConcreteComplexGeoDataForTesting& cgd() + { + return _complexGeoData; + } + + std::tuple createMappedName(const std::string& name) + { + auto elementMap = std::make_shared(); + cgd().resetElementMap(elementMap); + auto mappedName = Data::MappedName(name.c_str()); + auto indexedName = Data::IndexedName(_complexGeoData.getElementTypes().front(), 1); + elementMap->setElementName(indexedName, mappedName, 0); + return std::make_tuple(indexedName, mappedName); + } + +private: + ConcreteComplexGeoDataForTesting _complexGeoData; + std::string _docName; +}; + +// NOLINTBEGIN(readability-magic-numbers) + +TEST_F(ComplexGeoDataTest, getIndexedNameNoName)// NOLINT +{ + // Arrange & Act + auto result = cgd().getIndexedName(Data::MappedName()); + + // Assert + EXPECT_FALSE(result); +} + +TEST_F(ComplexGeoDataTest, getIndexedNameNoElementMap)// NOLINT +{ + // Arrange & Act + auto result = cgd().getIndexedName(Data::MappedName("TestName")); + + // Assert + EXPECT_TRUE(result); +} + +TEST_F(ComplexGeoDataTest, getMappedNameNoElement)// NOLINT +{ + // Arrange & Act + auto result = cgd().getMappedName(Data::IndexedName {}); + + // Assert + EXPECT_FALSE(result); +} + +TEST_F(ComplexGeoDataTest, getMappedNameDisallowUnmappedNoMap)// NOLINT +{ + // Arrange & Act + auto result = cgd().getMappedName(Data::IndexedName {"TestName"}, false); + + // Assert + EXPECT_FALSE(result); +} + +TEST_F(ComplexGeoDataTest, getMappedNameDisallowUnmappedWithMap)// NOLINT +{ + // Arrange + auto elementMap = std::make_shared(); + cgd().resetElementMap(elementMap); + auto mappedName = Data::MappedName("TestMappedName"); + auto indexedName = Data::IndexedName("EDGE", 1); + elementMap->setElementName(indexedName, mappedName, 0); + + // Act + auto result = cgd().getMappedName(indexedName, false); + + // Assert + EXPECT_TRUE(result); + EXPECT_EQ(mappedName, result); +} + +TEST_F(ComplexGeoDataTest, getMappedNameDisallowUnmappedMissingFromMap)// NOLINT +{ + // Arrange + auto mappedName = Data::MappedName("NotTheTestName"); + cgd().getIndexedName(mappedName);// Put it in the map + + // Act + auto result = cgd().getMappedName(Data::IndexedName {"TestName"}, false); + + // Assert + EXPECT_FALSE(result); +} + +TEST_F(ComplexGeoDataTest, getMappedNameAllowUnmapped)// NOLINT +{ + // Arrange & Act + auto result = cgd().getMappedName(Data::IndexedName {"TestName"}, true); + + // Assert + EXPECT_TRUE(result); +} + +TEST_F(ComplexGeoDataTest, getElementNameGivenIndexedName)// NOLINT +{ + // Arrange + const char* name {"EDGE123"}; + auto indexedName = cgd().getIndexedName(Data::MappedName(name)); + + // Act + auto result = cgd().getElementName(name); + + // Assert + EXPECT_EQ(result.index, indexedName); +} + +TEST_F(ComplexGeoDataTest, getElementNameGivenMappedName)// NOLINT +{ + // Arrange + const char* name {"EDGE123"}; + auto mappedName = cgd().getMappedName(Data::IndexedName(name)); + + // Act + auto result = cgd().getElementName(name); + + // Assert + EXPECT_EQ(result.name, mappedName); +} + +TEST_F(ComplexGeoDataTest, getElementMappedNamesNoMapNoUnmapped)// NOLINT +{ + // Arrange + // Do not create an element map + auto indexedName = Data::IndexedName("EDGE1"); + + // Act + auto result = cgd().getElementMappedNames(indexedName, false); + + // Assert + EXPECT_TRUE(result.empty()); +} + +TEST_F(ComplexGeoDataTest, getElementMappedNamesWithMapNoUnmapped)// NOLINT +{ + // Arrange + auto elementMap = std::make_shared(); + cgd().resetElementMap(elementMap); + auto mappedName = Data::MappedName("TestMappedName"); + auto indexedName = Data::IndexedName("EDGE", 1); + elementMap->setElementName(indexedName, mappedName, 0); + + // Act + auto result = cgd().getElementMappedNames(indexedName, false); + + // Assert + EXPECT_FALSE(result.empty()); + EXPECT_EQ(result[0].first, mappedName); +} + +TEST_F(ComplexGeoDataTest, getElementMappedNamesNoMapWithUnmapped)// NOLINT +{ + // Do not create an element map + auto indexedName = Data::IndexedName("EDGE1"); + + // Act + auto result = cgd().getElementMappedNames(indexedName, true); + + // Assert + EXPECT_FALSE(result.empty()); +} + + +TEST_F(ComplexGeoDataTest, getElementMappedNamesWithMapWithUnmapped)// NOLINT +{ + // Arrange + Data::MappedName mappedName; + Data::IndexedName indexedName; + std::tie(indexedName, mappedName) = createMappedName("TestMappedName"); + auto unmappedName = Data::IndexedName("EDGE", 2); + + // Act + auto result = cgd().getElementMappedNames(unmappedName, true); + + // Assert + EXPECT_FALSE(result.empty()); + EXPECT_NE(result[0].first, mappedName); +} + +TEST_F(ComplexGeoDataTest, elementTypeValidIndexName)// NOLINT +{ + // Arrange + auto indexedName = Data::IndexedName("EDGE", 1); + + // Act + char elementType = cgd().elementType(indexedName); + + // Assert + EXPECT_EQ(elementType, 'E'); +} + +TEST_F(ComplexGeoDataTest, elementTypeInvalidIndexedName)// NOLINT +{ + // Arrange + auto indexedName = Data::IndexedName("INVALID", 1);// Not in the element type list + + // Act + char elementType = cgd().elementType(indexedName); + + // Assert + EXPECT_EQ(elementType, 0); +} + +TEST_F(ComplexGeoDataTest, elementTypeCharEmptyName)// NOLINT +{ + // Arrange & Act + char elementType = cgd().elementType(nullptr); + + // Assert + EXPECT_EQ(elementType, 0); +} + +TEST_F(ComplexGeoDataTest, elementTypeCharIndexedName)// NOLINT +{ + // Arrange & Act + char elementType = cgd().elementType("EDGE1"); + + // Assert + EXPECT_EQ(elementType, 'E'); +} + +TEST_F(ComplexGeoDataTest, elementTypeCharMappedNameNoPrefix)// NOLINT +{ + // Arrange + int size {0}; + Data::MappedName mappedName; + Data::IndexedName indexedName; + std::tie(indexedName, mappedName) = createMappedName("TestMappedName:;"); + + // Act + char elementType = cgd().elementType(mappedName.toConstString(0, size)); + + // Assert + EXPECT_EQ(elementType, 'E'); +} + +TEST_F(ComplexGeoDataTest, elementTypeCharMappedNameWithPrefix)// NOLINT +{ + // Arrange + int size {0}; + Data::MappedName mappedName; + Data::IndexedName indexedName; + auto name = fmt::format("{}TestMappedElement:;", Data::ELEMENT_MAP_PREFIX); + std::tie(indexedName, mappedName) = createMappedName(name); + + // Act + char elementType = cgd().elementType(mappedName.toConstString(0, size)); + + // Assert + EXPECT_EQ(elementType, 'E'); +} + +TEST_F(ComplexGeoDataTest, resetElementMapNoArgument)// NOLINT +{ + // Arrange & Act + cgd().resetElementMap(); + + // Assert + EXPECT_EQ(cgd().getElementMapSize(), 0); +} + +TEST_F(ComplexGeoDataTest, resetElementMapWithArgument)// NOLINT +{ + // Arrange + auto elementMap = std::make_shared(); + auto mappedName = Data::MappedName("TestMappedName"); + auto indexedName = Data::IndexedName("EDGE", 1); + elementMap->setElementName(indexedName, mappedName, 0); + + // Act + cgd().resetElementMap(elementMap); + + // Assert + EXPECT_EQ(cgd().getElementMapSize(), 1); +} + +TEST_F(ComplexGeoDataTest, setAndGetElementMap)// NOLINT +{ + // Arrange + auto elementMap = std::make_shared(); + cgd().resetElementMap(elementMap); + std::vector vecMappedElements; + auto mappedNameA = Data::MappedName("TestMappedNameA"); + auto indexedNameA = Data::IndexedName("EDGE", 1); + vecMappedElements.emplace_back(indexedNameA, mappedNameA); + auto mappedNameB = Data::MappedName("TestMappedNameB"); + auto indexedNameB = Data::IndexedName("EDGE", 2); + vecMappedElements.emplace_back(indexedNameB, mappedNameB); + + // Act + auto emptyElementMap = cgd().getElementMap(); + cgd().setElementMap(vecMappedElements); + auto resultingElementMap = cgd().getElementMap(); + + // Assert + EXPECT_TRUE(emptyElementMap.empty()); + EXPECT_EQ(resultingElementMap.size(), vecMappedElements.size()); +} + +TEST_F(ComplexGeoDataTest, getElementMapSize)// NOLINT +{ + // Arrange + auto elementMap = std::make_shared(); + auto mappedName = Data::MappedName("TestMappedName"); + auto indexedName = Data::IndexedName("EDGE", 1); + elementMap->setElementName(indexedName, mappedName, 0); + cgd().resetElementMap(elementMap); + + // Act + auto result = cgd().getElementMapSize(); + + // Assert + EXPECT_EQ(result, 1); +} + +TEST_F(ComplexGeoDataTest, flushElementMap)// NOLINT +{ + // Does nothing in the base class +} + +// NOLINTEND(readability-magic-numbers) diff --git a/tests/src/App/ElementMap.cpp b/tests/src/App/ElementMap.cpp index 13819bd723..3e103be85a 100644 --- a/tests/src/App/ElementMap.cpp +++ b/tests/src/App/ElementMap.cpp @@ -45,21 +45,29 @@ class ElementMapTest: public ::testing::Test protected: static void SetUpTestSuite() { - int argc = 1; - char* argv[] = {"FreeCAD"}; - App::Application::Config()["ExeName"] = "FreeCAD"; - App::Application::init(argc, argv); + if (App::Application::GetARGC() == 0) { + int argc = 1; + char* argv[] = {"FreeCAD"}; + App::Application::Config()["ExeName"] = "FreeCAD"; + App::Application::init(argc, argv); + } } void SetUp() override { - App::GetApplication().newDocument("test", "testUser"); + _docName = App::GetApplication().getUniqueDocumentName("test"); + App::GetApplication().newDocument(_docName.c_str(), "testUser"); _sids = &_sid; _hasher = Base::Reference(new App::StringHasher); + ASSERT_EQ(_hasher.getRefCount(), 1); } - // void TearDown() override {} + void TearDown() override + { + App::GetApplication().closeDocument(_docName.c_str()); + } + std::string _docName; Data::ElementIDRefs _sid; QVector* _sids; App::StringHasherRef _hasher; diff --git a/tests/src/App/MappedName.cpp b/tests/src/App/MappedName.cpp index 4b11ec5f6e..35bf068ad7 100644 --- a/tests/src/App/MappedName.cpp +++ b/tests/src/App/MappedName.cpp @@ -225,8 +225,11 @@ TEST(MappedName, fromRawData) TEST(MappedName, fromRawDataQByteArray) { + // Arrange + QByteArray testByteArray("TESTTEST", 10); + // Act - Data::MappedName mappedName = Data::MappedName::fromRawData(QByteArray("TESTTEST", 10)); + Data::MappedName mappedName = Data::MappedName::fromRawData(testByteArray); // Assert EXPECT_EQ(mappedName.isRaw(), true); @@ -239,7 +242,8 @@ TEST(MappedName, fromRawDataQByteArray) TEST(MappedName, fromRawDataCopy) { // Arrange - Data::MappedName temp = Data::MappedName::fromRawData(QByteArray("TESTTEST", 10)); + QByteArray testByteArray("TESTTEST", 10); + Data::MappedName temp = Data::MappedName::fromRawData(testByteArray); temp.append("TESTPOSTFIX"); temp.compact();// Always call compact before accessing data! @@ -257,7 +261,8 @@ TEST(MappedName, fromRawDataCopy) TEST(MappedName, fromRawDataCopyStartposAndSize) { // Arrange - Data::MappedName temp = Data::MappedName::fromRawData(QByteArray("TESTTEST", 8)); + QByteArray testByteArray("TESTTEST", 8); + Data::MappedName temp = Data::MappedName::fromRawData(testByteArray); temp.append("ABCDEFGHIJKLM");// postfix temp.compact(); // Always call compact before accessing data! @@ -373,11 +378,12 @@ TEST(MappedName, additionOperators) { // Arrange Data::MappedName mappedName(Data::MappedName("TEST"), "POSTFIXTEST"); + QByteArray post3("POST3"); // Act mappedName += "POST1"; mappedName += std::string("POST2"); - mappedName += QByteArray("POST3"); + mappedName += post3; mappedName += Data::MappedName("POST4"); // Assert @@ -389,12 +395,13 @@ TEST(MappedName, additionOperators) // Arrange mappedName = Data::MappedName(Data::MappedName("TEST"), "POSTFIXTEST"); + QByteArray post8("POST8"); // Act mappedName = mappedName + Data::MappedName("POST5"); mappedName = mappedName + "POST6"; mappedName = mappedName + std::string("POST7"); - mappedName = mappedName + QByteArray("POST8"); + mappedName = mappedName + post8; // Assert EXPECT_EQ(mappedName.isRaw(), false); @@ -826,6 +833,125 @@ TEST(MappedName, startsWith) EXPECT_EQ(mappedName.startsWith("WASD"), false); } +TEST(MappedName, findTagInElementNameHexPositiveIndexNonrecursive) +{ + // The non-recursive version will find just the last tag, prefixed by the POSTFIX_TAG (";:H"). + // It consists of a tag (stored in hexadecimal) and a length (also stored in hex), separated by + // a colon. In this example, we expect the get ;:H1b:10,F as our element, which is a tag of + // 0x1b and an indicated length of 0x10 (16 bytes). So the output length is the position of the + // tag (36) minus the indicated length, giving 20. + + // Arrange + Data::MappedName mappedName("#94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F"); + long tagOutput {0}; + int lenOutput {0}; + std::string postfix; + char type {0}; + + // Act + int result = + mappedName.findTagInElementName(&tagOutput, &lenOutput, &postfix, &type, false, false); + + // Assert + EXPECT_EQ(result, 36); // The location of the tag + EXPECT_EQ(tagOutput, 0x1b);// The tag + EXPECT_EQ(lenOutput, 20); // The calculated length based on the tag's length parameter + EXPECT_EQ(postfix, ";:H1b:10,F"); + EXPECT_EQ(type, 'F');// F=Face +} + +TEST(MappedName, findTagInElementNameDecPositiveIndexNonrecursive) +{ + // Test backwards compatibility with the older style decimal tag storage. + + // Arrange + Data::MappedName mappedName("#94;:G0;XTR;:T19:8,F;:T26,F;BND:-1:0;:T27:16,F"); + long tagOutput {0}; + int lenOutput {0}; + std::string postfix; + char type {0}; + + // Act + int result = + mappedName.findTagInElementName(&tagOutput, &lenOutput, &postfix, &type, false, false); + + // Assert + EXPECT_EQ(result, 36); // The location of the tag + EXPECT_EQ(tagOutput, 27);// The tag + EXPECT_EQ(lenOutput, 16);// The specified length + EXPECT_EQ(postfix, ";:T27:16,F"); + EXPECT_EQ(type, 'F');// F=Face +} + +TEST(MappedName, findTagInElementNameHexNegativeIndexNonrecursive) +{ + // Test handling a negative index that is flipped to positive + + // Arrange + Data::MappedName mappedName("#94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H-1b:10,F"); + long tagOutput {0}; + int lenOutput {0}; + std::string postfix; + char type {0}; + + // Act + int result = + mappedName.findTagInElementName(&tagOutput, &lenOutput, &postfix, &type, false, false); + + // Assert + EXPECT_EQ(result, 36); // The location of the tag + EXPECT_EQ(tagOutput, 0x1b);// The tag is returned positive, even though it was input negative + EXPECT_EQ(lenOutput, 20); // The calculated length based on the tag's length parameter + EXPECT_EQ(postfix, ";:H-1b:10,F"); + EXPECT_EQ(type, 'F');// F=Face +} + +TEST(MappedName, findTagInElementNameHexExpectedNegativeIndexNonrecursive) +{ + // Test handling an untransformed negative index + + // Arrange + Data::MappedName mappedName("#94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H-1b:10,F"); + long tagOutput {0}; + int lenOutput {0}; + std::string postfix; + char type {0}; + + // Act + int result = + mappedName.findTagInElementName(&tagOutput, &lenOutput, &postfix, &type, true, false); + + // Assert + EXPECT_EQ(result, 36); // The location of the tag + EXPECT_EQ(tagOutput, -0x1b);// The tag is returned negative + EXPECT_EQ(lenOutput, 20); // The calculated length based on the tag's length parameter + EXPECT_EQ(postfix, ";:H-1b:10,F"); + EXPECT_EQ(type, 'F');// F=Face +} + +TEST(MappedName, findTagInElementNameRecursive) +{ + // Test the recursive resolution of the name + + // Arrange + Data::MappedName mappedName("#94;:G0;XTR;:H19:8,F;:H1a,F;BND:-1:0;:H1b:10,F"); + long tagOutput {0}; + int lenOutput {0}; + std::string postfix; + char type {0}; + + // Act + int result = + mappedName.findTagInElementName(&tagOutput, &lenOutput, &postfix, &type, false, true); + + // Assert + EXPECT_EQ(result, 36); // The location of the tag + EXPECT_EQ(tagOutput, 0x1b);// The tag + EXPECT_EQ(lenOutput, 27); // Now includes the next tag, from the recursive search + EXPECT_EQ(postfix, ";:H1b:10,F"); + EXPECT_EQ(type, 'F');// F=Face +} + TEST(MappedName, hash) { // Arrange diff --git a/tests/src/Base/tst_Tools.cpp b/tests/src/Base/tst_Tools.cpp index 4f2fa6051d..033aff61d7 100644 --- a/tests/src/Base/tst_Tools.cpp +++ b/tests/src/Base/tst_Tools.cpp @@ -40,3 +40,13 @@ TEST(BaseToolsSuite, TestUniqueName8) { EXPECT_EQ(Base::Tools::getUniqueName("Body12345", {"Body"}, 3), "Body12346"); } + +TEST(BaseToolsSuite, TestQuote) +{ + EXPECT_EQ(Base::Tools::quoted("Test"), "\"Test\""); +} + +TEST(BaseToolsSuite, TestJoinList) +{ + EXPECT_EQ(Base::Tools::joinList({"AB", "CD"}), "AB, CD, "); +} diff --git a/tests/src/Mod/Sketcher/App/CMakeLists.txt b/tests/src/Mod/Sketcher/App/CMakeLists.txt index 425a06675b..7bcb006997 100644 --- a/tests/src/Mod/Sketcher/App/CMakeLists.txt +++ b/tests/src/Mod/Sketcher/App/CMakeLists.txt @@ -1 +1,7 @@ +target_sources( + Sketcher_tests_run + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/SketchObject.cpp +) + add_subdirectory(planegcs) diff --git a/tests/src/Mod/Sketcher/App/SketchObject.cpp b/tests/src/Mod/Sketcher/App/SketchObject.cpp new file mode 100644 index 0000000000..56e6144382 --- /dev/null +++ b/tests/src/Mod/Sketcher/App/SketchObject.cpp @@ -0,0 +1,158 @@ +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "gtest/gtest.h" + +#include + +#include +#include +#include +#include + +class SketchObjectTest: public ::testing::Test +{ +protected: + static void SetUpTestSuite() + { + if (App::Application::GetARGC() == 0) { + int argc = 1; + char* argv[] = {"FreeCAD"}; + App::Application::Config()["ExeName"] = "FreeCAD"; + App::Application::init(argc, argv); + } + } + + void SetUp() override + { + _docName = App::GetApplication().getUniqueDocumentName("test"); + auto _doc = App::GetApplication().newDocument(_docName.c_str(), "testUser"); + // TODO: Do we add a body first, or is just adding sketch sufficient for this test? + _sketchobj = static_cast(_doc->addObject("Sketcher::SketchObject")); + } + + void TearDown() override + { + App::GetApplication().closeDocument(_docName.c_str()); + } + + Sketcher::SketchObject* getObject() + { + return _sketchobj; + } + +private: + // TODO: use shared_ptr or something else here? + Sketcher::SketchObject* _sketchobj; + std::string _docName; + std::vector allowedTypes {"Vertex", "Edge", "ExternalEdge", "H_Axis", "V_Axis", "RootPoint"}; +}; + +TEST_F(SketchObjectTest, createSketchObject) // NOLINT +{ + // Arrange + + // Act + + // Assert +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeEdge) +{ + // Arrange + // TODO: Do we need to separate existing vs non-existing? + // It would need to be implemented in code as well. + Data::IndexedName name("Edge", 1); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, 0); + EXPECT_EQ(posId, Sketcher::PointPos::none); +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeVertex) +{ + // Arrange + // For operating on vertices, there is first a check if the vertex exists. + Base::Vector3d p1(0.0, 0.0, 0.0), p2(1.0, 0.0, 0.0); + std::unique_ptr geoline(new Part::GeomLineSegment()); + static_cast(geoline.get())->setPoints(p1, p2); + getObject()->addGeometry(geoline.get()); + // TODO: Do we need to separate existing vs non-existing? + // It would need to be implemented in code as well. + Data::IndexedName name("Vertex", 1); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, 0); + EXPECT_EQ(posId, Sketcher::PointPos::start); +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeExternalEdge) +{ + // Arrange + // TODO: Do we need to separate existing vs non-existing? + // It would need to be implemented in code as well. + Data::IndexedName name("ExternalEdge", 1); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, Sketcher::GeoEnum::RefExt); + EXPECT_EQ(posId, Sketcher::PointPos::none); +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeHAxis) +{ + // Arrange + Data::IndexedName name("H_Axis"); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, Sketcher::GeoEnum::HAxis); + EXPECT_EQ(posId, Sketcher::PointPos::none); +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeVAxis) +{ + // Arrange + Data::IndexedName name("V_Axis"); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, Sketcher::GeoEnum::VAxis); + EXPECT_EQ(posId, Sketcher::PointPos::none); +} + +TEST_F(SketchObjectTest, testGeoIdFromShapeTypeRootPoint) +{ + // Arrange + Data::IndexedName name("RootPoint"); + int geoId; + Sketcher::PointPos posId; + + // Act + getObject()->geoIdFromShapeType(name, geoId, posId); + + // Assert + EXPECT_EQ(geoId, Sketcher::GeoEnum::RtPnt); + EXPECT_EQ(posId, Sketcher::PointPos::start); +} diff --git a/tests/src/Qt/InventorBuilder.cpp b/tests/src/Qt/InventorBuilder.cpp index c3f63ac6fc..cede8eebfa 100644 --- a/tests/src/Qt/InventorBuilder.cpp +++ b/tests/src/Qt/InventorBuilder.cpp @@ -23,8 +23,7 @@ public: testInventorBuilder() : builder(output) {} - ~testInventorBuilder() - {} + ~testInventorBuilder() override = default; SoNode* loadBuffer(const std::string& buffer) { diff --git a/tools/build/Docker/ubuntu.sh b/tools/build/Docker/ubuntu.sh index e61c5b824f..c342a2283a 100644 --- a/tools/build/Docker/ubuntu.sh +++ b/tools/build/Docker/ubuntu.sh @@ -12,4 +12,5 @@ apt-get install --no-install-recommends --yes build-essential cmake doxygen git libvtk-dicom-dev libx11-dev libxerces-c-dev libxmu-dev libxmuu-dev \ libzipios++-dev netgen netgen-headers pyside2-tools python3-dev \ python3-matplotlib python3-pivy python3-ply python3-pyside2.qtsvg \ - python3-pyside2.qtuitools qtchooser qttools5-dev shiboken2 swig + python3-pyside2.qtuitools qtchooser qttools5-dev shiboken2 swig \ + qtwebengine5-dev qtwayland5