Compare commits
132 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| be7d41dea7 | |||
| 2a8d648ad3 | |||
| b2a1e2a6e1 | |||
| 3f42824ffa | |||
| 4fa7dd76f0 | |||
| 6f90c5ea61 | |||
| 5d387ae014 | |||
| 45866b5f41 | |||
| 0b0d1ccc12 | |||
| 7980d82207 | |||
| 151e3a987e | |||
| 0f4be480b1 | |||
| 484c89818c | |||
| cf656ba77e | |||
| 110b4b0d95 | |||
| 66a2dd984e | |||
| f6c75c7838 | |||
| 2161e31328 | |||
| 73e4b296b1 | |||
| f0da095cf8 | |||
| b918cac67a | |||
| d2bbd78c67 | |||
| 4bb8f7e8eb | |||
| 23290b8050 | |||
| f218c5f25c | |||
| 0a73f53990 | |||
| 8c8b26ee4b | |||
| eb4231266e | |||
| c77e1d840c | |||
| 900d5ae255 | |||
| e0c5c89bd9 | |||
| 551ab85076 | |||
| 10cc4dea16 | |||
| 33d1d80555 | |||
| 1ec1f1506e | |||
| 2e3a4d541c | |||
| f4e78e3163 | |||
| 50392855bf | |||
| 4d0c35dd2d | |||
| 11eba3f25c | |||
| 5fc650b2ff | |||
| 0aec9c3b21 | |||
| 526f7f2550 | |||
| a514cfdf4b | |||
| a77f96ea86 | |||
| 5da1e3d899 | |||
| 15d9e14851 | |||
| d4bfa82161 | |||
| bb172e4a6b | |||
| f8afa5ac72 | |||
| 29d2285ed7 | |||
| 00a4de14e7 | |||
| c422404020 | |||
| 0083364dbe | |||
| 4fd6dc5120 | |||
| ccc4e084aa | |||
| e212f2a175 | |||
| df2774ac72 | |||
| 011a6d93bd | |||
| bd844b8273 | |||
| f9c05d18af | |||
| 86037a1462 | |||
| 2a79543c79 | |||
| a283855697 | |||
| c041671a1b | |||
| 4dd03be0dc | |||
| 587bb9179e | |||
| 4005b78e6d | |||
| 5211400cae | |||
| cc7706ec6f | |||
| 2903f480ae | |||
| 3aaa225145 | |||
| dbf1f00c01 | |||
| 84dfab257f | |||
| 26615ea5d8 | |||
| 4417f501a5 | |||
| 04279e27dd | |||
| 93868d54b7 | |||
| 9e6509a3a4 | |||
| a19db66c8b | |||
| b0a79a6f2c | |||
| 0dc28c57d7 | |||
| e4ec4cb0df | |||
| 9d25f6f53d | |||
| ec5b9a808d | |||
| 092ba973f2 | |||
| c0ebb8e88d | |||
| cdc798ec12 | |||
| ca1528e2a9 | |||
| a704ac301d | |||
| 888ba973a5 | |||
| a18f45914b | |||
| 10709bd467 | |||
| e8f826d0ed | |||
| bb37dfda0e | |||
| 9c22fc55f9 | |||
| 32840628ae | |||
| af2d42a4aa | |||
| da4ebb56cb | |||
| e2bab72bb5 | |||
| eb1e0d7f11 | |||
| 4f33d66fb3 | |||
| f4f8bd2c81 | |||
| 62caf967c7 | |||
| ad1724550e | |||
| edce05d992 | |||
| 920a2363a7 | |||
| 183e82607a | |||
| 2f91f74ac9 | |||
| 04a9579561 | |||
| 4b50d72769 | |||
| 5f8f2c5bd2 | |||
| 8432fab0a9 | |||
| 3f6a0ee78b | |||
| 4fbb389ce1 | |||
| cf2e3026a2 | |||
| bbfd84d7b1 | |||
| 7fb93c5a50 | |||
| 0976fdb0fa | |||
| e7643dc929 | |||
| 114b679f64 | |||
| 6f62d69b9f | |||
| e464cdb73d | |||
| d699d080e0 | |||
| d1d6846af0 | |||
| f7dc85ef29 | |||
| 093152b1dc | |||
| 9c5e8f8340 | |||
| 9ad22dcc0e | |||
| bcefebca5f | |||
| a970235484 | |||
| 1bcf0d4996 |
@@ -105,3 +105,4 @@ cbea6b60942f8327e6105b12e8c1d5db4647984c # FEM: Apply pre-commit to FEM files
|
||||
f9d66096878c7d89c273522b9ca57bdb14fee3bc # Rearranged CommandCreateGeo.cpp
|
||||
b23d5809414d63ea90bcc744212c126645051438 # BIM: add to pre-commit and apply Black formatting
|
||||
50e4864efb06faf3e2126e8cb9ff9058a08a54b2 # Draft: add to pre-commit and apply Black formatting
|
||||
25c3ba733889264bcb3b3c8d2287b79053c0c8ec # All: Reformat according to new standard
|
||||
@@ -24,4 +24,4 @@ jobs:
|
||||
- name: 'Checkout Repository'
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- name: 'Dependency Review'
|
||||
uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4
|
||||
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4
|
||||
|
||||
@@ -62,6 +62,7 @@ jobs:
|
||||
title: "Update translations from Crowdin"
|
||||
body: "Automatic Crowdin update."
|
||||
labels: "translations, automated"
|
||||
token: ${{ secrets.GH_TOKEN_FOR_CROWDIN_SYNC }}
|
||||
delete-branch: true
|
||||
add-paths: |
|
||||
src
|
||||
|
||||
@@ -13,6 +13,7 @@ jobs:
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: releases/FreeCAD-1-1
|
||||
|
||||
- name: Install Qt ≥ 6.8
|
||||
uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005
|
||||
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
include:
|
||||
- { target: linux-64, os: ubuntu-22.04 }
|
||||
- { target: linux-arm64, os: ubuntu-22.04-arm }
|
||||
- { target: osx-64, os: macos-13 }
|
||||
- { target: osx-64, os: macos-15-intel }
|
||||
- { target: osx-arm64, os: macos-latest }
|
||||
- { target: win-64, os: windows-latest }
|
||||
fail-fast: false
|
||||
|
||||
@@ -62,7 +62,7 @@ jobs:
|
||||
run: |
|
||||
mkdir -p ${{ env.artifactsDownloadDir }}
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
with:
|
||||
path: ${{ env.artifactsDownloadDir }}
|
||||
- name: Save input data to file
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ endif()
|
||||
project(FreeCAD)
|
||||
|
||||
set(PACKAGE_VERSION_MAJOR "1")
|
||||
set(PACKAGE_VERSION_MINOR "1")
|
||||
set(PACKAGE_VERSION_MINOR "2")
|
||||
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)
|
||||
|
||||
@@ -119,8 +119,96 @@ run_codesign "${CONTAINING_FOLDER}/${APP_NAME}"
|
||||
echo "Creating disk image ${DMG_NAME}"
|
||||
dmgbuild -s ${DMG_SETTINGS} -Dcontaining_folder="${CONTAINING_FOLDER}" -Dapp_name="${APP_NAME}" "${VOLUME_NAME}" "${DMG_NAME}"
|
||||
|
||||
# Submit it for notarization (requires that an App Store API Key has been set up in the notarytool)
|
||||
time xcrun notarytool submit --wait --keychain-profile "${KEYCHAIN_PROFILE}" "${DMG_NAME}"
|
||||
ID_FILE="${DMG_NAME}.notarization_id"
|
||||
|
||||
# Assuming that notarization succeeded, it's a good practice to staple that notarization to the DMG
|
||||
xcrun stapler staple "${DMG_NAME}"
|
||||
# Submit it for notarization (requires that an App Store API Key has been set up in the notarytool)
|
||||
# This is a *very slow* process, and occasionally the GitHub runners lose the internet connection for a short time
|
||||
# during the run. So in order to be fault-tolerant, this script polls, instead of using --wait
|
||||
submit_notarization_request() {
|
||||
if [[ -s "$ID_FILE" ]]; then
|
||||
cat "$ID_FILE"
|
||||
return
|
||||
fi
|
||||
local out
|
||||
if ! out=$(xcrun notarytool submit --keychain-profile "$KEYCHAIN_PROFILE" \
|
||||
--output-format json --no-progress "$DMG_NAME" 2>&1); then
|
||||
print -r -- "$out" >&2
|
||||
return 1
|
||||
fi
|
||||
# We asked for JSON output so we had something stable, but of course parsing JSON with ZSH is ugly, so a quick bit of
|
||||
# Python does it instead...
|
||||
local id
|
||||
id=$(print -r -- "$out" |
|
||||
/usr/bin/python3 -c 'import sys, json; print(json.load(sys.stdin).get("id",""))'
|
||||
)
|
||||
[[ -n "$id" ]] || { print -r -- "Could not parse submission id" >&2; return 1; }
|
||||
print -r -- "$id" > "$ID_FILE"
|
||||
print -r -- "$id" # ID is a string here, not an integer, so I can't just return it
|
||||
}
|
||||
|
||||
wait_for_notarization_result() {
|
||||
local id="$1" attempt=0
|
||||
while :; do
|
||||
if xcrun notarytool wait "$id" --keychain-profile "$KEYCHAIN_PROFILE" \
|
||||
--timeout 10m --no-progress >/dev/null; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
(( attempt++ ))
|
||||
# If the failure was transient (timeout/HTTP/connection) just retry, but make sure to check to see if the problem
|
||||
# was actually that the signing failed before retrying.
|
||||
local tmp_json
|
||||
tmp_json=$(mktemp)
|
||||
trap 'rm -f "$tmp_json"' EXIT INT TERM
|
||||
|
||||
xcrun notarytool info "$id" --keychain-profile "$KEYCHAIN_PROFILE" --output-format json 2>/dev/null > "$tmp_json"
|
||||
/usr/bin/python3 - "$tmp_json" <<'PY'
|
||||
import sys, json
|
||||
try:
|
||||
with open(sys.argv[1]) as f:
|
||||
s = (json.load(f).get("status") or "").lower()
|
||||
if s in ("invalid", "rejected"):
|
||||
sys.exit(2)
|
||||
else:
|
||||
sys.exit(0)
|
||||
except Exception:
|
||||
sys.exit(1)
|
||||
PY
|
||||
rc=$?
|
||||
|
||||
rm -f "$tmp_json"
|
||||
|
||||
if [[ $rc == 2 ]]; then
|
||||
print -r -- "Notarization was not accepted by Apple:" >&2
|
||||
xcrun notarytool log "$id" --keychain-profile "$KEYCHAIN_PROFILE" >&2
|
||||
return 3
|
||||
fi
|
||||
|
||||
if [[ $attempt -gt 120 ]]; then
|
||||
print -r -- "🏳️ Notarization is taking too long, bailing out. 🏳️" >&2
|
||||
return 4
|
||||
fi
|
||||
sleep $(( (attempt<6?2**attempt:60) + RANDOM%5 )) # Increasing timeout plus jitter for multi-run safety
|
||||
done
|
||||
}
|
||||
|
||||
if ! id="$(submit_notarization_request)"; then
|
||||
print -r -- "❌ Failed to submit notarization request" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "$id" ]]; then
|
||||
print -r -- "❌ Submission succeeded but no ID was returned" >&2
|
||||
exit 1
|
||||
fi
|
||||
print "Notarization submission ID: $id"
|
||||
|
||||
if wait_for_notarization_result "$id"; then
|
||||
print "✅ Notarization succeeded. Stapling..."
|
||||
xcrun stapler staple "$DMG_NAME"
|
||||
print "Stapled: $DMG_NAME"
|
||||
rm -f "$ID_FILE"
|
||||
else
|
||||
rc=$?
|
||||
print "❌ Notarization failed (code $rc)." >&2
|
||||
exit "$rc"
|
||||
fi
|
||||
|
||||
+44
-23
@@ -31,31 +31,38 @@ namespace App
|
||||
|
||||
class Application;
|
||||
|
||||
/// Helper class to manager transaction (i.e. undo/redo)
|
||||
/**
|
||||
* @brief A helper class to manage transactions (i.e. undo/redo).
|
||||
*
|
||||
* An AutoTransaction object is meant to be allocated on the stack and governs
|
||||
* the transactions in that scope.
|
||||
*/
|
||||
class AppExport AutoTransaction
|
||||
{
|
||||
public:
|
||||
/// Private new operator to prevent heap allocation
|
||||
/// Delete the new operator to prevent heap allocation.
|
||||
void* operator new(std::size_t) = delete;
|
||||
|
||||
public:
|
||||
/** Constructor
|
||||
/**
|
||||
* @brief Construct an auto transaction.
|
||||
*
|
||||
* @param name: optional new transaction name on construction
|
||||
* @param tmpName: if true and a new transaction is setup, the name given is
|
||||
* @param[in] name: optional new transaction name on construction
|
||||
* @param[in] tmpName: if true and a new transaction is setup, the name given is
|
||||
* considered as temporary, and subsequent construction of this class (or
|
||||
* calling Application::setActiveTransaction()) can override the transaction
|
||||
* name.
|
||||
*
|
||||
* The constructor increments an internal counter
|
||||
* (Application::_activeTransactionGuard). The counter prevents any new
|
||||
* active transaction being setup. It also prevents close (i.e. commits) the
|
||||
* current active transaction until it reaches zero. It does not have any
|
||||
* effect on aborting transaction, though.
|
||||
* active transactions being setup. It also prevents to close
|
||||
* (i.e. commits) the current active transaction until it reaches zero. It
|
||||
* does not have any effect on aborting transactions though.
|
||||
*/
|
||||
AutoTransaction(const char* name = nullptr, bool tmpName = false);
|
||||
|
||||
/** Destructor
|
||||
/**
|
||||
* @brief Destruct an auto transaction.
|
||||
*
|
||||
* This destructor decrease an internal counter
|
||||
* (Application::_activeTransactionGuard), and will commit any current
|
||||
@@ -63,15 +70,19 @@ public:
|
||||
*/
|
||||
~AutoTransaction();
|
||||
|
||||
/** Close or abort the transaction
|
||||
/**
|
||||
* @brief Close or abort the transaction.
|
||||
*
|
||||
* This function can be used to explicitly close (i.e. commit) the
|
||||
* transaction, if the current transaction ID matches the one created inside
|
||||
* the constructor. For aborting, it will abort any current transaction
|
||||
* the constructor. For aborting, it will abort any current transaction.
|
||||
*
|
||||
* @param[in] abort: if true, abort the transaction; otherwise, commit it.
|
||||
*/
|
||||
void close(bool abort = false);
|
||||
|
||||
/** Enable/Disable any AutoTransaction instance in the current stack
|
||||
/**
|
||||
* @brief Enable/Disable any AutoTransaction instance on the current stack.
|
||||
*
|
||||
* Once disabled, any empty temporary named transaction is closed. If there
|
||||
* are non-empty or non-temporary named active transaction, it will not be
|
||||
@@ -79,6 +90,8 @@ public:
|
||||
*
|
||||
* This function may be used in, for example, Gui::Document::setEdit() to
|
||||
* allow a transaction live past any command scope.
|
||||
*
|
||||
* @param[in] enable: if true, enable the AutoTransaction; otherwise, disable it.
|
||||
*/
|
||||
static void setEnable(bool enable);
|
||||
|
||||
@@ -87,47 +100,55 @@ private:
|
||||
};
|
||||
|
||||
|
||||
/** Helper class to lock a transaction from being closed or aborted.
|
||||
/**
|
||||
* @brief Helper class to lock a transaction from being closed or aborted.
|
||||
*
|
||||
* The helper class is used to protect some critical transaction from being
|
||||
* The helper class is used to protect some critical transactions from being
|
||||
* closed prematurely, e.g. when deleting some object.
|
||||
*/
|
||||
class AppExport TransactionLocker
|
||||
{
|
||||
public:
|
||||
/** Constructor
|
||||
* @param lock: whether to activate the lock
|
||||
|
||||
/**
|
||||
* @brief Construct a transaction locker.
|
||||
*
|
||||
* @param[in] lock: whether to activate the lock
|
||||
*/
|
||||
TransactionLocker(bool lock = true);
|
||||
|
||||
/** Destructor
|
||||
* Unlock the transaction is this locker is active
|
||||
/**
|
||||
* @brief Destruct a transaction locker.
|
||||
*
|
||||
* Unlock the transaction if this locker is active
|
||||
*/
|
||||
~TransactionLocker();
|
||||
|
||||
/** Activate or deactivate this locker
|
||||
* @param enable: whether to activate the locker
|
||||
/**
|
||||
* @brief Activate or deactivate this locker.
|
||||
*
|
||||
* An internal counter is used to support recursive locker. When activated,
|
||||
* the current active transaction cannot be closed or aborted. But the
|
||||
* closing call (Application::closeActiveTransaction()) will be remembered,
|
||||
* and performed when the internal lock counter reaches zero.
|
||||
*
|
||||
* @param enable: whether to activate the locker
|
||||
*/
|
||||
void activate(bool enable);
|
||||
|
||||
/// Check if the locker is active
|
||||
/// Check if the locker is active.
|
||||
bool isActive() const
|
||||
{
|
||||
return active;
|
||||
}
|
||||
|
||||
/// Check if transaction is being locked
|
||||
/// Check if transaction is being locked.
|
||||
static bool isLocked();
|
||||
|
||||
friend class Application;
|
||||
|
||||
public:
|
||||
/// Private new operator to prevent heap allocation
|
||||
/// Delete the new operator to prevent heap allocation.
|
||||
void* operator new(std::size_t) = delete;
|
||||
|
||||
private:
|
||||
|
||||
+5
-4
@@ -140,16 +140,17 @@ public:
|
||||
bool operator==(const Material& m) const
|
||||
{
|
||||
// clang-format off
|
||||
return _matType == m._matType
|
||||
&& shininess == m.shininess
|
||||
if (!uuid.empty() && uuid == m.uuid) {
|
||||
return true;
|
||||
}
|
||||
return shininess == m.shininess
|
||||
&& transparency == m.transparency
|
||||
&& ambientColor == m.ambientColor
|
||||
&& diffuseColor == m.diffuseColor
|
||||
&& specularColor == m.specularColor
|
||||
&& emissiveColor == m.emissiveColor
|
||||
&& image == m.image
|
||||
&& image == m.imagePath
|
||||
&& uuid == m.uuid;
|
||||
&& imagePath == m.imagePath;
|
||||
// clang-format on
|
||||
}
|
||||
bool operator!=(const Material& m) const
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/Interpreter.h>
|
||||
#include <Base/ProgramVersion.h>
|
||||
#include <Base/Reader.h>
|
||||
#include <Base/Writer.h>
|
||||
#include <Base/Quantity.h>
|
||||
@@ -2226,6 +2227,25 @@ unsigned int PropertyBoolList::getMemSize() const
|
||||
// PropertyColor
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
namespace
|
||||
{
|
||||
/// The definition of "alpha" was corrected in FreeCAD 1.1 -- returns true if the reader is working
|
||||
/// on a file that pre-dates that correction.
|
||||
bool readerRequiresAlphaConversion(const Base::XMLReader &reader)
|
||||
{
|
||||
return Base::getVersion(reader.ProgramVersion) < Base::Version::v1_1;
|
||||
}
|
||||
|
||||
/// Given a material, invert the alpha channel of all of its colors.
|
||||
void convertAlphaInMaterial(App::Material& material)
|
||||
{
|
||||
material.ambientColor.a = 1.0F - material.ambientColor.a;
|
||||
material.diffuseColor.a = 1.0F - material.diffuseColor.a;
|
||||
material.specularColor.a = 1.0F - material.specularColor.a;
|
||||
material.emissiveColor.a = 1.0F - material.emissiveColor.a;
|
||||
}
|
||||
}
|
||||
|
||||
TYPESYSTEM_SOURCE(App::PropertyColor, App::Property)
|
||||
|
||||
//**************************************************************************
|
||||
@@ -2367,6 +2387,12 @@ void PropertyColor::Restore(Base::XMLReader& reader)
|
||||
reader.readElement("PropertyColor");
|
||||
// get the value of my Attribute
|
||||
unsigned long rgba = reader.getAttribute<unsigned long>("value");
|
||||
if (readerRequiresAlphaConversion(reader)) {
|
||||
// Convert transparency / alpha value
|
||||
constexpr unsigned long alphaMax = 0xff;
|
||||
unsigned long alpha = alphaMax - (rgba & alphaMax);
|
||||
rgba = rgba - (rgba & alphaMax) + alpha;
|
||||
}
|
||||
setValue(rgba);
|
||||
}
|
||||
|
||||
@@ -2448,6 +2474,8 @@ void PropertyColorList::Restore(Base::XMLReader& reader)
|
||||
// initiate a file read
|
||||
reader.addFile(file.c_str(), this);
|
||||
}
|
||||
|
||||
requiresAlphaConversion = readerRequiresAlphaConversion(reader);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2472,6 +2500,11 @@ void PropertyColorList::RestoreDocFile(Base::Reader& reader)
|
||||
str >> value;
|
||||
it.setPackedValue(value);
|
||||
}
|
||||
if (requiresAlphaConversion) {
|
||||
for (auto& it : values) {
|
||||
it.a = 1.0F - it.a;
|
||||
}
|
||||
}
|
||||
setValues(values);
|
||||
}
|
||||
|
||||
@@ -2702,6 +2735,9 @@ void PropertyMaterial::Restore(Base::XMLReader& reader)
|
||||
_cMat.emissiveColor.setPackedValue(reader.getAttribute<unsigned long>("emissiveColor"));
|
||||
_cMat.shininess = (float)reader.getAttribute<double>("shininess");
|
||||
_cMat.transparency = (float)reader.getAttribute<double>("transparency");
|
||||
if (readerRequiresAlphaConversion(reader)) {
|
||||
convertAlphaInMaterial(_cMat);
|
||||
}
|
||||
if (reader.hasAttribute("image")) {
|
||||
_cMat.image = reader.getAttribute<const char*>("image");
|
||||
}
|
||||
@@ -3247,6 +3283,8 @@ void PropertyMaterialList::Restore(Base::XMLReader& reader)
|
||||
// initiate a file read
|
||||
reader.addFile(file.c_str(), this);
|
||||
}
|
||||
|
||||
requiresAlphaConversion = readerRequiresAlphaConversion(reader);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3330,6 +3368,7 @@ void PropertyMaterialList::RestoreDocFileV0(uint32_t count, Base::Reader& reader
|
||||
str >> valueF;
|
||||
it.transparency = valueF;
|
||||
}
|
||||
convertAlpha(values);
|
||||
setValues(values);
|
||||
}
|
||||
|
||||
@@ -3360,9 +3399,17 @@ void PropertyMaterialList::RestoreDocFileV3(Base::Reader& reader)
|
||||
readString(str, it.imagePath);
|
||||
readString(str, it.uuid);
|
||||
}
|
||||
convertAlpha(values);
|
||||
setValues(values);
|
||||
}
|
||||
|
||||
void PropertyMaterialList::convertAlpha(std::vector<App::Material>& materials) const
|
||||
{
|
||||
if (requiresAlphaConversion) {
|
||||
std::ranges::for_each(materials, convertAlphaInMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyMaterialList::readString(Base::InputStream& str, std::string& value)
|
||||
{
|
||||
uint32_t uCt {};
|
||||
|
||||
@@ -1091,6 +1091,9 @@ public:
|
||||
|
||||
protected:
|
||||
Base::Color getPyValue(PyObject* py) const override;
|
||||
|
||||
private:
|
||||
bool requiresAlphaConversion {false}; // In 1.1 the handling of alpha was inverted
|
||||
};
|
||||
|
||||
|
||||
@@ -1294,8 +1297,10 @@ private:
|
||||
void verifyIndex(int index) const;
|
||||
void setMinimumSizeOne();
|
||||
int resizeByOneIfNeeded(int index);
|
||||
void convertAlpha(std::vector<App::Material>& materials) const;
|
||||
|
||||
Format formatVersion {Version_0};
|
||||
bool requiresAlphaConversion {false}; // In 1.1 the handling of alpha was inverted
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<location filename="../../Link.cpp" line="131"/>
|
||||
<source>Stores the last user choice of whether to apply CopyOnChange setup to all links
|
||||
that reference the same configurable object</source>
|
||||
<translation>Захоўвае апошні выбар карыстальніка адносна таго, ці варта ўжываць наладу CopyOnChange да ўсіх спасылак, якія спасылаюцца на адзін і той жа аб'ект, які наладжваецца</translation>
|
||||
<translation>Захоўвае апошні выбар карыстальніка адносна таго, ці варта ўжываць наладу 'Змена копіі' (CopyOnChange) да ўсіх спасылак, якія спасылаюцца на адзін і той жа аб'ект, які наладжваецца</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -32,20 +32,40 @@ namespace App
|
||||
class Document;
|
||||
class TransactionObject;
|
||||
|
||||
/** Base class of transactional objects
|
||||
/**
|
||||
* @brief Base class of transactional objects.
|
||||
*
|
||||
* A transactional object provides functionality that is inherited by its
|
||||
* children to ensure that these children objects can be targeted by a
|
||||
* transaction.
|
||||
*/
|
||||
class AppExport TransactionalObject: public App::ExtensionContainer
|
||||
{
|
||||
PROPERTY_HEADER_WITH_OVERRIDE(App::TransactionalObject);
|
||||
|
||||
public:
|
||||
/// Constructor
|
||||
TransactionalObject();
|
||||
~TransactionalObject() override;
|
||||
|
||||
/// Check if this object is attached to a document.
|
||||
virtual bool isAttachedToDocument() const;
|
||||
|
||||
/**
|
||||
* @brief Deteach this object from the document.
|
||||
*
|
||||
* @return the name of the document this object was attached to.
|
||||
*/
|
||||
virtual const char* detachFromDocument();
|
||||
|
||||
protected:
|
||||
/**
|
||||
* @brief Notify the document that a property is about to be changed.
|
||||
*
|
||||
* This function is called before the property is changed.
|
||||
*
|
||||
* @param[in,out] doc the document this object is attached to.
|
||||
* @param[in] prop the property that is about to be changed.
|
||||
*/
|
||||
void onBeforeChangeProperty(Document* doc, const Property* prop);
|
||||
};
|
||||
|
||||
|
||||
@@ -52,10 +52,6 @@ Transaction::Transaction(int id)
|
||||
transID = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* A destructor.
|
||||
* A more elaborate description of the destructor.
|
||||
*/
|
||||
Transaction::~Transaction()
|
||||
{
|
||||
auto& index = _Objects.get<0>();
|
||||
@@ -291,16 +287,8 @@ TYPESYSTEM_SOURCE_ABSTRACT(App::TransactionObject, Base::Persistence)
|
||||
//**************************************************************************
|
||||
// Construction/Destruction
|
||||
|
||||
/**
|
||||
* A constructor.
|
||||
* A more elaborate description of the constructor.
|
||||
*/
|
||||
TransactionObject::TransactionObject() = default;
|
||||
|
||||
/**
|
||||
* A destructor.
|
||||
* A more elaborate description of the destructor.
|
||||
*/
|
||||
TransactionObject::~TransactionObject()
|
||||
{
|
||||
for (auto& v : _PropChangeMap) {
|
||||
@@ -344,7 +332,7 @@ void TransactionObject::applyChn(Document& /*Doc*/, TransactionalObject* pcObj,
|
||||
}
|
||||
|
||||
// getPropertyName() is specially coded to be safe even if prop has
|
||||
// been destroies. We must prepare for the case where user removed
|
||||
// been destroyed. We must prepare for the case where user removed
|
||||
// a dynamic property but does not recordered as transaction.
|
||||
auto name = pcObj->getPropertyName(prop);
|
||||
if (!name || (!data.name.empty() && data.name != name)
|
||||
|
||||
+164
-32
@@ -40,52 +40,105 @@ class TransactionObject;
|
||||
class TransactionalObject;
|
||||
|
||||
|
||||
/** Represents a atomic transaction of the document
|
||||
/**
|
||||
* @brief A class that represents an atomic transaction of the document.
|
||||
*
|
||||
* A transaction can contain multiple actions. These actions are represented
|
||||
* by TransactionObject objects. Actions can be on objects: adding one,
|
||||
* removing one, or changing one. It can also be on properties: adding one or
|
||||
* removing one.
|
||||
*/
|
||||
class AppExport Transaction: public Base::Persistence
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
|
||||
public:
|
||||
/** Construction
|
||||
/**
|
||||
* @brief Construct a transaction.
|
||||
*
|
||||
* @param id: transaction id. If zero, then it will be generated
|
||||
* @param[in] id: The transaction id. If zero, then it will be generated
|
||||
* automatically as a monotonically increasing index across the entire
|
||||
* application. User can pass in a transaction id to group multiple
|
||||
* transactions from different document, so that they can be undo/redo
|
||||
* application. Users can pass in a transaction id to group multiple
|
||||
* transactions from different document, so that they can be undone/redone
|
||||
* together.
|
||||
*/
|
||||
explicit Transaction(int id = 0);
|
||||
/// Construction
|
||||
|
||||
~Transaction() override;
|
||||
|
||||
/// apply the content to the document
|
||||
/**
|
||||
* @brief Apply the content of this transaction to the document.
|
||||
*
|
||||
* @param[in] Doc The document to apply the transaction to.
|
||||
* @param[in] forward If true, apply the transaction; otherwise, undo it.
|
||||
*/
|
||||
void apply(Document& Doc, bool forward);
|
||||
|
||||
// the utf-8 name of the transaction
|
||||
/// The UTF-8 name of the transaction
|
||||
std::string Name;
|
||||
|
||||
unsigned int getMemSize() const override;
|
||||
void Save(Base::Writer& writer) const override;
|
||||
/// This method is used to restore properties from an XML document.
|
||||
void Restore(Base::XMLReader& reader) override;
|
||||
|
||||
/// Return the transaction ID
|
||||
/// Get the transaction ID of this transaction.
|
||||
int getID() const;
|
||||
|
||||
/// Generate a new unique transaction ID
|
||||
/// Generate a new unique transaction ID.
|
||||
static int getNewID();
|
||||
|
||||
/// Get the last transaction ID.
|
||||
static int getLastID();
|
||||
|
||||
/// Returns true if the transaction list is empty; otherwise returns false.
|
||||
/// Check if the transaction list is empty.
|
||||
bool isEmpty() const;
|
||||
/// check if this object is used in a transaction
|
||||
|
||||
/**
|
||||
* @brief Check if this object is used in a transaction.
|
||||
*
|
||||
* @param[in] Obj The object to check.
|
||||
* @return true if the object is used in a transaction; otherwise false.
|
||||
*/
|
||||
bool hasObject(const TransactionalObject* Obj) const;
|
||||
|
||||
/**
|
||||
* @brief Record renaming a property.
|
||||
*
|
||||
* @param[in] Obj The object of which the property to rename.
|
||||
* @param[in] pcProp The property with a new name.
|
||||
* @param[in] oldName The old name of the property.
|
||||
*/
|
||||
void renameProperty(TransactionalObject* Obj, const Property* pcProp, const char* oldName);
|
||||
|
||||
/**
|
||||
* @brief Record adding or removing a property from an object.
|
||||
*
|
||||
* @param[in] Obj The object to add or remove the property from.
|
||||
* @param[in] pcProp The property to add or remove.
|
||||
* @param[in] add If true, add the property; otherwise, remove it.
|
||||
*/
|
||||
void addOrRemoveProperty(TransactionalObject* Obj, const Property* pcProp, bool add);
|
||||
|
||||
/**
|
||||
* @brief Record adding a new object to the transaction.
|
||||
*
|
||||
* @param[in] Obj The object to add.
|
||||
*/
|
||||
void addObjectNew(TransactionalObject* Obj);
|
||||
|
||||
/**
|
||||
* @brief Record removing an object from the transaction.
|
||||
*
|
||||
* @param[in] Obj The object to remove.
|
||||
*/
|
||||
void addObjectDel(const TransactionalObject* Obj);
|
||||
|
||||
/**
|
||||
*@brief Record changing an object in the transaction.
|
||||
*
|
||||
* @param[in] Obj The object to change.
|
||||
* @param[in] Prop The property that is changed.
|
||||
*/
|
||||
void addObjectChange(const TransactionalObject* Obj, const Property* Prop);
|
||||
|
||||
private:
|
||||
@@ -103,41 +156,87 @@ private:
|
||||
_Objects;
|
||||
};
|
||||
|
||||
/** Represents an entry for an object in a Transaction
|
||||
/**
|
||||
* @brief Class that represents an entry for an object in a Transaction.
|
||||
*
|
||||
* This class is used to store the information about the object and its
|
||||
* properties. It should not be confused with the TransactionalObject class
|
||||
* that is a base class that contains functionality for a DocumentObject
|
||||
* regarding transactions.
|
||||
*/
|
||||
class AppExport TransactionObject: public Base::Persistence
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
|
||||
public:
|
||||
/// Construction
|
||||
TransactionObject();
|
||||
/// Destruction
|
||||
|
||||
~TransactionObject() override;
|
||||
|
||||
virtual void applyNew(Document& Doc, TransactionalObject* pcObj);
|
||||
virtual void applyDel(Document& Doc, TransactionalObject* pcObj);
|
||||
virtual void applyChn(Document& Doc, TransactionalObject* pcObj, bool Forward);
|
||||
/**
|
||||
* @brief Apply the transaction that adds a new object to the document.
|
||||
*
|
||||
* @param[in,out] doc The document to apply the transaction to.
|
||||
* @param[in,out] obj The object that is added in the transaction.
|
||||
*/
|
||||
virtual void applyNew(Document& doc, TransactionalObject* obj);
|
||||
|
||||
void setProperty(const Property* pcProp);
|
||||
void renameProperty(const Property* pcProp, const char* newName);
|
||||
void addOrRemoveProperty(const Property* pcProp, bool add);
|
||||
/**
|
||||
* @brief Apply the transaction that removes an object from the document.
|
||||
*
|
||||
* @param[in,out] doc The document to apply the transaction to.
|
||||
* @param[in,out] obj The object that is removed in the transaction.
|
||||
*/
|
||||
virtual void applyDel(Document& doc, TransactionalObject* obj);
|
||||
|
||||
/**
|
||||
* @brief Apply the transaction that changes an object in the document.
|
||||
*
|
||||
* @param[in,out] doc The document to apply the transaction to.
|
||||
* @param[in,out] obj The object that is changed in the transaction.
|
||||
* @param[in] forward If true, apply the transaction; otherwise, undo it.
|
||||
*/
|
||||
virtual void applyChn(Document& doc, TransactionalObject* obj, bool forward);
|
||||
|
||||
/**
|
||||
* @brief Set the property of the object that is affected by the transaction.
|
||||
*
|
||||
* @param[in] prop The property that is affected by the transaction.
|
||||
*/
|
||||
void setProperty(const Property* prop);
|
||||
|
||||
/**
|
||||
* @brief Rename a property.
|
||||
*
|
||||
* @param[in] pcProp The property with the new name.
|
||||
* @param[in] oldName The old name of the property.
|
||||
*/
|
||||
void renameProperty(const Property* pcProp, const char* oldName);
|
||||
|
||||
/**
|
||||
* @brief Add or remove a property from the object.
|
||||
*
|
||||
* @param[in] prop The property to add or remove.
|
||||
* @param[in] add If true, add the property; otherwise, remove it.
|
||||
*/
|
||||
void addOrRemoveProperty(const Property* prop, bool add);
|
||||
|
||||
unsigned int getMemSize() const override;
|
||||
void Save(Base::Writer& writer) const override;
|
||||
/// This method is used to restore properties from an XML document.
|
||||
void Restore(Base::XMLReader& reader) override;
|
||||
|
||||
friend class Transaction;
|
||||
|
||||
protected:
|
||||
/// The status of the transaction object.
|
||||
enum Status
|
||||
{
|
||||
New,
|
||||
Del,
|
||||
Chn
|
||||
New, ///< A new object is added to the document.
|
||||
Del, ///< An object is deleted from the document.
|
||||
Chn ///< An object is changed in the document.
|
||||
} status {New};
|
||||
|
||||
/// Struct to maintain property information.
|
||||
struct PropData: DynamicProperty::PropData
|
||||
{
|
||||
Base::Type propertyType;
|
||||
@@ -145,34 +244,59 @@ protected:
|
||||
// for property renaming
|
||||
std::string nameOrig;
|
||||
};
|
||||
|
||||
/// A map to maintain the properties of the object.
|
||||
std::unordered_map<int64_t, PropData> _PropChangeMap;
|
||||
|
||||
/// The name of the object in the document.
|
||||
std::string _NameInDocument;
|
||||
};
|
||||
|
||||
/** Represents an entry for a document object in a transaction
|
||||
/**
|
||||
* @brief Class that represents an entry for a document object in a transaction.
|
||||
*/
|
||||
class AppExport TransactionDocumentObject: public TransactionObject
|
||||
{
|
||||
TYPESYSTEM_HEADER_WITH_OVERRIDE();
|
||||
|
||||
public:
|
||||
/// Construction
|
||||
TransactionDocumentObject();
|
||||
/// Destruction
|
||||
|
||||
~TransactionDocumentObject() override;
|
||||
|
||||
void applyNew(Document& Doc, TransactionalObject* pcObj) override;
|
||||
void applyDel(Document& Doc, TransactionalObject* pcObj) override;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Class that represents a factory for creating transaction objects.
|
||||
*
|
||||
* This class is used to create transaction objects for different types of
|
||||
* transactions.
|
||||
*/
|
||||
class AppExport TransactionFactory
|
||||
{
|
||||
public:
|
||||
/// Get the singleton instance of the TransactionFactory.
|
||||
static TransactionFactory& instance();
|
||||
|
||||
/// Destruct the singleton instance of the TransactionFactory.
|
||||
static void destruct();
|
||||
|
||||
/**
|
||||
* @brief Create a transaction object for the given type.
|
||||
*
|
||||
* @param[in] type The type of the transaction object to create.
|
||||
* @return A pointer to the created transaction object.
|
||||
*/
|
||||
TransactionObject* createTransaction(const Base::Type& type) const;
|
||||
|
||||
/**
|
||||
* @brief Add a producer for a transaction object.
|
||||
*
|
||||
* @param[in] type The type id of the transaction object.
|
||||
* @param[in,out] producer The producer to add.
|
||||
*/
|
||||
void addProducer(const Base::Type& type, Base::AbstractProducer* producer);
|
||||
|
||||
private:
|
||||
@@ -183,10 +307,20 @@ private:
|
||||
~TransactionFactory() = default;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Class that represents a producer for creating transaction objects.
|
||||
*
|
||||
* @tparam CLASS The class of the transaction object to produce.
|
||||
*/
|
||||
template<class CLASS>
|
||||
class TransactionProducer: public Base::AbstractProducer
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @brief Construct a transaction producer.
|
||||
*
|
||||
* @param[in] type The type of the transaction object.
|
||||
*/
|
||||
explicit TransactionProducer(const Base::Type& type)
|
||||
{
|
||||
TransactionFactory::instance().addProducer(type, this);
|
||||
@@ -194,9 +328,7 @@ public:
|
||||
|
||||
~TransactionProducer() override = default;
|
||||
|
||||
/**
|
||||
* Creates an instance of the specified transaction object.
|
||||
*/
|
||||
/// Creates an instance of the specified transaction object.
|
||||
void* Produce() const override
|
||||
{
|
||||
return (new CLASS);
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2024 Werner Mayer <wmayer[at]users.sourceforge.net> *
|
||||
* *
|
||||
* 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 *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef BASE_PROGRAM_VERSION_H
|
||||
#define BASE_PROGRAM_VERSION_H
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <string_view>
|
||||
#include <FCGlobal.h>
|
||||
|
||||
namespace Base
|
||||
{
|
||||
|
||||
enum class Version : std::uint8_t
|
||||
{
|
||||
v0_1x,
|
||||
v0_16,
|
||||
v0_17,
|
||||
v0_18,
|
||||
v0_19,
|
||||
v0_20,
|
||||
v0_21,
|
||||
v0_22,
|
||||
v1_0,
|
||||
v1_1,
|
||||
v1_x,
|
||||
};
|
||||
|
||||
inline Version getVersion(std::string_view str)
|
||||
{
|
||||
// clang-format off
|
||||
struct VersionItem
|
||||
{
|
||||
std::string_view name;
|
||||
Version version;
|
||||
};
|
||||
static const std::initializer_list<VersionItem> items = {
|
||||
{.name="0.16", .version=Version::v0_16},
|
||||
{.name="0.17", .version=Version::v0_17},
|
||||
{.name="0.18", .version=Version::v0_18},
|
||||
{.name="0.19", .version=Version::v0_19},
|
||||
{.name="0.20", .version=Version::v0_20},
|
||||
{.name="0.21", .version=Version::v0_21},
|
||||
{.name="0.22", .version=Version::v0_22},
|
||||
{.name="1.0" , .version=Version::v1_0 },
|
||||
{.name="1.1" , .version=Version::v1_1 },
|
||||
};
|
||||
// clang-format on
|
||||
auto it = std::ranges::find_if(items, [str](const auto& item) {
|
||||
return str.compare(0, item.name.size(), item.name) == 0;
|
||||
});
|
||||
if (it != items.end()) {
|
||||
return it->version;
|
||||
}
|
||||
if (!str.empty() && str[0] == '0') {
|
||||
return Version::v0_1x;
|
||||
}
|
||||
return Version::v1_x;
|
||||
}
|
||||
|
||||
} // namespace Base
|
||||
|
||||
#endif // BASE_PROGRAM_VERSION_H
|
||||
@@ -65,11 +65,7 @@ using namespace std;
|
||||
Base::XMLReader::XMLReader(const char* FileName, std::istream& str)
|
||||
: _File(FileName)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
str.imbue(std::locale::empty());
|
||||
#else
|
||||
str.imbue(std::locale::classic());
|
||||
#endif
|
||||
|
||||
// create the parser
|
||||
parser = XMLReaderFactory::createXMLReader(); // NOLINT
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Стандартная (мм, кг, с, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>Сістэма МКС (м, кг, с, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Звычайная Злучаных Штатаў (цалі, фунты)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Брытанская для грамадскіх інжынераў (футы, фунты, міль/г)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Брытанская сістэма (цалі, фунты)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Еўрапейская будаўнічая (см, м², м³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Будаўнічая Злучаных Штатаў (футы-цалі, кв. футы, куб. футы)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Малыя метрычныя дэталі і CNC (мм, мм/хв)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>МКЭ (мм, Н, с)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Sistema Estàndard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>Sistema MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Sistema US (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Sistema Imperial per Enginyeria Civil (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Sistema imperial decimal (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Sistema Construcció Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Sistema Construcció US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Mètrica per a peces petites i CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,19 +9,19 @@
|
||||
<translation>Standardní (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Obvyklé v USA (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
<translation>Imperiální pro stavebnictví (ft, lb, mph)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="75"/>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Imperiální desetinné (palce, libry)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Stavební Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Stavební US (ft-in, sqft, cuft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrické malé díly & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>MKP (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Standard, US (i, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Imperial for bygningsingeniører (ft, ft/s)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Imperial (i, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Bygningsstandard, EU (cm, m2, m3)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Bygningsstandard, US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrisk finmekanik og CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US-Maßeinheiten (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Angloamerikanisch für Bauingenieurwesen (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Angloamerikanisch dezimal (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Euro-Bauwesen (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>US-Bauwesen (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrische Kleinteile & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Στάνταρ (mm, kg, s, ")</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Μονάδες ΗΠΑ (ίντσες/λίβρες)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Αγγλοσαξονικό Συστήματος Μονάδων (ίντσες/λίβρες)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Μονάδες Μέτρησης Ευρώπης (εκατοστά cm,/τετραγωνικά μέτρα cm²/κυβικά μέτρα m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Μονάδες Μέτρησης ΗΠΑ (πόδια-ίντσες/τετραγωνικά πόδια/κυβικά πόδια)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Μετρικό σύστημα μικρών εξαρτημάτων & CNC (χιλιοστά mm, χιλιοστά/λεπτά mm/min) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, sec)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,19 +9,19 @@
|
||||
<translation>Estándar (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Sistema estadounidense (EE. UU) (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
<translation>Imperiales para ingeniería civil (pies, libras, millas por hora)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="75"/>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Decimales imperiales (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Construcción Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Construcción US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Piezas pequeñas métricas y CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Estandarra (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>AEBko pertsonalizatua (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Dezimal inperiala (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Europar neurriak (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>AEBetako neurriak (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation type="unfinished">Metric small parts & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standardi (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>USA:n yksikköjärjestelmä (tuumat/ paunat)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Brittiläinen, maa- ja vesirakentaminen (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Englantilainen desimaaliluku (tuumat / paunat)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Rakentaminen Euro (cm/m²/m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Rakentaminen USA (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrinen, pienet osat & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Unités états-uniennes (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Impérial pour le génie civil (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Système impérial (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Construction européenne (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Construction états-unienne (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Métrique, petites pièces & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>U. S. prilagođeno (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Carski decimalni (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Europska Gradnja (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Gradnja US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrički mali dijelovi & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Alapértelmezett (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS rendszer (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US szokásos (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Angolszász polgári mérnöki (láb, font, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Császári decimális (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Épület Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Építészet US (láb-hüvelyk, négyzetláb, köbláb)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrikus kis alkatrészek és CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>VEM (mm, N, mp)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Tradizionale US (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Imperiale per Ingegneria civile (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Imperiale decimale (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Costruttivo Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Costruttivo US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrico piccole parti & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>標準(mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS単位系(m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>米国慣用単位(in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>土木用 帝国単位 (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>帝国単位(in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>建築:メートル法(cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>建築:国際フィート(ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>パーツ、CNC工作機械(mm、mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>有限要素法(mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>სტანდარტული (მმ, კგ, წმ, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>სი (მ, კგ, წმ, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US საბაჟო ერთეულები (დუიმი, გირვანქა)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>იმპერიული საზომი ერთეულები სამოქალაქო ინჟინერიისთვის(ფუტი, გირვანქა, მილი/სთ)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>იმპერიული საზ. ერთ.(დუი, გირვან)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>სამშენებლო ევრო (სმ, მ², მ³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>სამშენებლო აშშ (ფუტი-დუიმი,კვ. ფტ, კუბ. ფტ.)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>მეტრული პატარა ნაწილები & CNC(მმ, მმ/წთ)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>სასრული ელემენტების მეთოდი (მმ, ნ, წმ)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>표준 단위계(mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS 단위계 (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>미국 단위계(in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>영국 단위계(in/lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>유럽식 건축단위 (cm/m²/m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>미국식 건축단위 (ft-in/sqft/cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation type="unfinished">Metric small parts & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation type="unfinished">FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standaard (mm, kg, s, graden)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, graden)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Amerikaans (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Engelse eenheden voor Civiele Techniek (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Engels (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Bouw (Europees) (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Bouw (Amerikaans) (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrische kleine onderdelen en CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standardowe (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Zwyczajowy USA (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Brytyjski dla inżynierii lądowej (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Dziesiętny brytyjski (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Budowlany europejski (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Budowlany USA (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metryczny dla mniejszych części i CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>MES (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Padrão (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Padrão US (in/lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Unidades Imperiais Eng. Civil (pés, libras, milhas por hora)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Decimal Imperial (in / lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Construção Euro (cm/m²/m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Construção US (ft-in/sqft/cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Métrico peças pequenas & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Sistem imperial -SUA- (in/lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Zecimale imperiale (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Construcție unități măsură metrice -Europeană - (cm/m²/m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Construcție SUA (ft-in/sqft/cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metric - piese mici & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Стандартная система мер (мм, кг, сек, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>МКС (м, кг, сек, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Американская традиционная система мер (дюймы, фунты)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Английская для гражданского строительства (фут, фунт, миль/ч)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Английская десятичная (дюймы, фунты)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Европейская для строительства (см, м², м³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>США для строительства (фут-дюйм, квадратный фут, кубический фут)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Метрическая для мелких деталей и ЧПУ (мм, мм/мин)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>Для расчётов МКЭ (мм, Н, сек)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standardni (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Ameriške (palci, funti)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Anglosaške decimalke (palci, funti)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Metrični gradbeni (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>ZDA gradbeni (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrični za drobne dele in CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>MKE (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US sistem jedinica (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Imperijalni za građevinarstvo (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Imperijalni decimalni (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Građevinski Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Građevinski US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrički mali delovi & CNC(mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Cтандард (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US cиcтем јединица (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Империјални за грађевинарство (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Империјални децимални (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Грађевински Euro (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Грађевински US (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Метрички мали делови & CNC(mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>МКЕ (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standard (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>US-amerikanska mått (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>Imperiala för civilingenjörsvetenskap (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Brittiska enheter (in/lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Europeiska byggenheter (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Amerikanska byggenheter (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metriska smådelar & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Standart (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>ABD geleneksel (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>İngiliz ölçüsü onluk (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Yapı Avrupa (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Yapı ABD (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Metrik küçük parçalar ve CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>Стандарт (мм, кг, с, градус)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>МКС (м, кг, с, градус)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>Умовні позначення США (дюйми, фунти)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>Імперська десяткова система (дюйми, фунти)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>Будівництво Євро (см, м², м³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>Будівництво США (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>Метричні дрібні деталі та ЧПК (мм, мм/хв)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>МСЕ (мм, Н, с)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>标准 (mm, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>公制 (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>美制 (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation>土木工程英制单位(ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>英制 (in, lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>欧规 (cm, m², m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>美制 (ft-in, sqft, cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>公制小零件与数控 (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -9,17 +9,17 @@
|
||||
<translation>標準(mm、kg、s、°)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="323"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="326"/>
|
||||
<source>MKS (m, kg, s, °)</source>
|
||||
<translation>MKS (m, kg, s, °)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="587"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="593"/>
|
||||
<source>US customary (in, lb)</source>
|
||||
<translation>美制(in、lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="636"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="642"/>
|
||||
<source>Imperial for Civil Eng (ft, lb, mph)</source>
|
||||
<translation type="unfinished">Imperial for Civil Eng (ft, lb, mph)</translation>
|
||||
</message>
|
||||
@@ -29,12 +29,12 @@
|
||||
<translation>英制(in、lb)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="548"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="554"/>
|
||||
<source>Building Euro (cm, m², m³)</source>
|
||||
<translation>歐洲建築(cm、m²、m³)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="625"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="631"/>
|
||||
<source>Building US (ft-in, sqft, cft)</source>
|
||||
<translation>美國建築(ft-in、sqft、cft)</translation>
|
||||
</message>
|
||||
@@ -44,7 +44,7 @@
|
||||
<translation>公制小零件 & CNC (mm, mm/min)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../UnitsSchemasData.h" line="575"/>
|
||||
<location filename="../../UnitsSchemasData.h" line="581"/>
|
||||
<source>FEM (mm, N, s)</source>
|
||||
<translation>FEM (mm, N, s)</translation>
|
||||
</message>
|
||||
|
||||
@@ -318,11 +318,7 @@ void Writer::putNextEntry(const char* file, const char* obj)
|
||||
ZipWriter::ZipWriter(const char* FileName)
|
||||
: ZipStream(FileName)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
ZipStream.imbue(std::locale::empty());
|
||||
#else
|
||||
ZipStream.imbue(std::locale::classic());
|
||||
#endif
|
||||
ZipStream.precision(std::numeric_limits<double>::digits10 + 1);
|
||||
ZipStream.setf(std::ios::fixed, std::ios::floatfield);
|
||||
}
|
||||
@@ -330,11 +326,7 @@ ZipWriter::ZipWriter(const char* FileName)
|
||||
ZipWriter::ZipWriter(std::ostream& os)
|
||||
: ZipStream(os)
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
ZipStream.imbue(std::locale::empty());
|
||||
#else
|
||||
ZipStream.imbue(std::locale::classic());
|
||||
#endif
|
||||
ZipStream.precision(std::numeric_limits<double>::digits10 + 1);
|
||||
ZipStream.setf(std::ios::fixed, std::ios::floatfield);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ Alexander Gryson
|
||||
Alexandre Prokoudine
|
||||
Amritpal Singh
|
||||
Ana Margarita J. Baylon
|
||||
Andrea Reale (mosfet80)
|
||||
Andrej Nabergoj
|
||||
Angelescu Constantin
|
||||
apeltauer
|
||||
|
||||
+17
-17
@@ -136,7 +136,7 @@ void StdCmdOpen::activated(int iMsg)
|
||||
QString selectedFilter;
|
||||
QStringList fileList = FileDialog::getOpenFileNames(
|
||||
getMainWindow(),
|
||||
QObject::tr("Open document"),
|
||||
QObject::tr("Open Document"),
|
||||
QString(),
|
||||
formatList,
|
||||
&selectedFilter
|
||||
@@ -150,7 +150,7 @@ void StdCmdOpen::activated(int iMsg)
|
||||
if (dict.isEmpty()) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
qApp->translate("StdCmdOpen", "Cannot open file"),
|
||||
qApp->translate("StdCmdOpen", "Cannot Open File"),
|
||||
qApp->translate("StdCmdOpen", "Loading the file %1 is not supported").arg(fileList.front())
|
||||
);
|
||||
}
|
||||
@@ -233,7 +233,7 @@ void StdCmdImport::activated(int iMsg)
|
||||
QString selectedFilter = QString::fromStdString(hPath->GetASCII("FileImportFilter"));
|
||||
QStringList fileList = FileDialog::getOpenFileNames(
|
||||
getMainWindow(),
|
||||
QObject::tr("Import file"),
|
||||
QObject::tr("Import File"),
|
||||
QString(),
|
||||
formatList,
|
||||
&selectedFilter
|
||||
@@ -431,7 +431,7 @@ void StdCmdExport::activated(int iMsg)
|
||||
if (selection.empty()) {
|
||||
QMessageBox::warning(
|
||||
Gui::getMainWindow(),
|
||||
QCoreApplication::translate("StdCmdExport", "No selection"),
|
||||
QCoreApplication::translate("StdCmdExport", "No Selection"),
|
||||
QCoreApplication::translate(
|
||||
"StdCmdExport",
|
||||
"Select objects to export before using the Export command."
|
||||
@@ -515,7 +515,7 @@ void StdCmdExport::activated(int iMsg)
|
||||
// Launch the file selection modal dialog
|
||||
QString filename = FileDialog::getSaveFileName(
|
||||
getMainWindow(),
|
||||
QObject::tr("Export file"),
|
||||
QObject::tr("Export File"),
|
||||
defaultFilename,
|
||||
formatList,
|
||||
&selectedFilter
|
||||
@@ -581,7 +581,7 @@ void StdCmdMergeProjects::activated(int iMsg)
|
||||
QString exe = qApp->applicationName();
|
||||
QString project = FileDialog::getOpenFileName(
|
||||
Gui::getMainWindow(),
|
||||
QString::fromUtf8(QT_TR_NOOP("Merge document")),
|
||||
QString::fromUtf8(QT_TR_NOOP("Merge Document")),
|
||||
FileDialog::getWorkingDirectory(),
|
||||
QString::fromUtf8(QT_TR_NOOP("%1 document (*.FCStd)")).arg(exe)
|
||||
);
|
||||
@@ -593,7 +593,7 @@ void StdCmdMergeProjects::activated(int iMsg)
|
||||
if (proj == info) {
|
||||
QMessageBox::critical(
|
||||
Gui::getMainWindow(),
|
||||
QString::fromUtf8(QT_TR_NOOP("Merge document")),
|
||||
QString::fromUtf8(QT_TR_NOOP("Merge Document")),
|
||||
QString::fromUtf8(QT_TR_NOOP("Cannot merge document with itself."))
|
||||
);
|
||||
return;
|
||||
@@ -658,7 +658,7 @@ StdCmdExportDependencyGraph::StdCmdExportDependencyGraph()
|
||||
: Command("Std_ExportDependencyGraph")
|
||||
{
|
||||
sGroup = "Tools";
|
||||
sMenuText = QT_TR_NOOP("Export Dependency &Graph");
|
||||
sMenuText = QT_TR_NOOP("Export Dependency &Graph…");
|
||||
sToolTipText = QT_TR_NOOP("Exports the dependency graph as a Graphviz (.gv) file");
|
||||
sStatusTip = sToolTipText;
|
||||
sWhatsThis = "Std_ExportDependencyGraph";
|
||||
@@ -673,7 +673,7 @@ void StdCmdExportDependencyGraph::activated(int iMsg)
|
||||
QString format = QStringLiteral("%1 (*.gv)").arg(Gui::GraphvizView::tr("Graphviz format"));
|
||||
QString fn = Gui::FileDialog::getSaveFileName(
|
||||
Gui::getMainWindow(),
|
||||
Gui::GraphvizView::tr("Export graph"),
|
||||
Gui::GraphvizView::tr("Export Graph"),
|
||||
QString(),
|
||||
format
|
||||
);
|
||||
@@ -1319,7 +1319,7 @@ void StdCmdDuplicateSelection::activated(int iMsg)
|
||||
if (!unsaved.empty()) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Unsaved document"),
|
||||
QObject::tr("Unsaved Document"),
|
||||
QObject::tr(
|
||||
"The exported object contains an external link. Save the document."
|
||||
"at least once before exporting."
|
||||
@@ -1341,7 +1341,7 @@ void StdCmdDuplicateSelection::activated(int iMsg)
|
||||
if (hasXLink && !doc->isSaved()) {
|
||||
auto ret = QMessageBox::question(
|
||||
getMainWindow(),
|
||||
qApp->translate("Std_DuplicateSelection", "Object dependencies"),
|
||||
qApp->translate("Std_DuplicateSelection", "Object Dependencies"),
|
||||
qApp->translate(
|
||||
"Std_DuplicateSelection",
|
||||
"To link to external objects, the document must be saved at least once.\n"
|
||||
@@ -1531,7 +1531,7 @@ void StdCmdDelete::activated(int iMsg)
|
||||
|
||||
auto ret = QMessageBox::warning(
|
||||
Gui::getMainWindow(),
|
||||
qApp->translate("Std_Delete", "Object dependencies"),
|
||||
qApp->translate("Std_Delete", "Object Dependencies"),
|
||||
bodyMessage,
|
||||
QMessageBox::Yes,
|
||||
QMessageBox::No
|
||||
@@ -1574,7 +1574,7 @@ void StdCmdDelete::activated(int iMsg)
|
||||
catch (const Base::Exception& e) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Delete failed"),
|
||||
QObject::tr("Delete Failed"),
|
||||
QString::fromLatin1(e.what())
|
||||
);
|
||||
e.reportException();
|
||||
@@ -1582,7 +1582,7 @@ void StdCmdDelete::activated(int iMsg)
|
||||
catch (...) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Delete failed"),
|
||||
QObject::tr("Delete Failed"),
|
||||
QStringLiteral("Unknown error")
|
||||
);
|
||||
}
|
||||
@@ -1639,7 +1639,7 @@ void StdCmdRefresh::activated([[maybe_unused]] int iMsg)
|
||||
catch (Base::Exception& /*e*/) {
|
||||
auto ret = QMessageBox::warning(
|
||||
getMainWindow(),
|
||||
QObject::tr("Dependency error"),
|
||||
QObject::tr("Dependency Error"),
|
||||
qApp->translate(
|
||||
"Std_Refresh",
|
||||
"The document contains dependency cycles.\n"
|
||||
@@ -2121,7 +2121,7 @@ protected:
|
||||
if (failed) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Expression error"),
|
||||
QObject::tr("Expression Error"),
|
||||
QObject::tr(
|
||||
"Failed to parse some of the expressions.\n"
|
||||
"Check the report view for more details."
|
||||
@@ -2155,7 +2155,7 @@ protected:
|
||||
abortCommand();
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Failed to paste expressions"),
|
||||
QObject::tr("Failed to Paste Expressions"),
|
||||
QString::fromLatin1(e.what())
|
||||
);
|
||||
e.reportException();
|
||||
|
||||
@@ -64,7 +64,7 @@ void StdCmdDlgMacroRecord::activated(int iMsg)
|
||||
if (cDlg.exec() && getAction()) {
|
||||
getAction()->setIcon(Gui::BitmapFactory().iconFromTheme("media-playback-stop"));
|
||||
getAction()->setText(
|
||||
QCoreApplication::translate("StdCmdDlgMacroRecord", "S&top macro recording")
|
||||
QCoreApplication::translate("StdCmdDlgMacroRecord", "S&top Macro Recording")
|
||||
);
|
||||
getAction()->setToolTip(
|
||||
QCoreApplication::translate("StdCmdDlgMacroRecord", "Stop the macro recording session")
|
||||
|
||||
@@ -457,7 +457,7 @@ StdCmdDlgCustomize::StdCmdDlgCustomize()
|
||||
: Command("Std_DlgCustomize")
|
||||
{
|
||||
sGroup = "Tools";
|
||||
sMenuText = QT_TR_NOOP("Cu&stomize…");
|
||||
sMenuText = QT_TR_NOOP("Cu&stomize");
|
||||
sToolTipText = QT_TR_NOOP("Opens a dialog to edit toolbars, shortcuts, and macros");
|
||||
sWhatsThis = "Std_DlgCustomize";
|
||||
sStatusTip = sToolTipText;
|
||||
|
||||
+10
-10
@@ -401,7 +401,7 @@ void StdCmdFreezeViews::activated(int iMsg)
|
||||
for (QList<QAction*>::Iterator it = acts.begin() + offset; it != acts.end(); ++it, index++) {
|
||||
if (!(*it)->isVisible()) {
|
||||
savedViews++;
|
||||
QString viewnr = QString(QObject::tr("Restore view &%1")).arg(index);
|
||||
QString viewnr = QString(QObject::tr("Restore View &%1")).arg(index);
|
||||
(*it)->setText(viewnr);
|
||||
(*it)->setToolTip(QString::fromLatin1(ppReturn));
|
||||
(*it)->setVisible(true);
|
||||
@@ -433,7 +433,7 @@ void StdCmdFreezeViews::onSaveViews()
|
||||
// Save the views to an XML file
|
||||
QString fn = FileDialog::getSaveFileName(
|
||||
getMainWindow(),
|
||||
QObject::tr("Save frozen views"),
|
||||
QObject::tr("Save Frozen Views"),
|
||||
QString(),
|
||||
QStringLiteral("%1 (*.cam)").arg(QObject::tr("Frozen views"))
|
||||
);
|
||||
@@ -479,7 +479,7 @@ void StdCmdFreezeViews::onRestoreViews()
|
||||
if (savedViews > 0) {
|
||||
auto ret = QMessageBox::question(
|
||||
getMainWindow(),
|
||||
QObject::tr("Restore views"),
|
||||
QObject::tr("Restore Views"),
|
||||
QObject::tr(
|
||||
"Importing the restored views would clear the already stored views.\n"
|
||||
"Continue?"
|
||||
@@ -495,7 +495,7 @@ void StdCmdFreezeViews::onRestoreViews()
|
||||
// Restore the views from an XML file
|
||||
QString fn = FileDialog::getOpenFileName(
|
||||
getMainWindow(),
|
||||
QObject::tr("Restore frozen views"),
|
||||
QObject::tr("Restore Frozen Views"),
|
||||
QString(),
|
||||
QStringLiteral("%1 (*.cam)").arg(QObject::tr("Frozen views"))
|
||||
);
|
||||
@@ -506,7 +506,7 @@ void StdCmdFreezeViews::onRestoreViews()
|
||||
if (!file.open(QFile::ReadOnly)) {
|
||||
QMessageBox::critical(
|
||||
getMainWindow(),
|
||||
QObject::tr("Restore views"),
|
||||
QObject::tr("Restore Views"),
|
||||
QObject::tr("Cannot open file '%1'.").arg(fn)
|
||||
);
|
||||
return;
|
||||
@@ -573,7 +573,7 @@ void StdCmdFreezeViews::onRestoreViews()
|
||||
}
|
||||
for (int i = 0; i < numRestoredViews; i++) {
|
||||
QString setting = cameras[i];
|
||||
QString viewnr = QString(QObject::tr("Restore view &%1")).arg(i + 1);
|
||||
QString viewnr = QString(QObject::tr("Restore View &%1")).arg(i + 1);
|
||||
acts[i + offset]->setText(viewnr);
|
||||
acts[i + offset]->setToolTip(setting);
|
||||
acts[i + offset]->setVisible(true);
|
||||
@@ -776,7 +776,7 @@ void StdCmdDrawStyle::languageChange()
|
||||
auto pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
|
||||
QList<QAction*> a = pcAction->actions();
|
||||
|
||||
a[0]->setText(QCoreApplication::translate("Std_DrawStyle", "&1 As is"));
|
||||
a[0]->setText(QCoreApplication::translate("Std_DrawStyle", "&1 As Is"));
|
||||
a[0]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "Normal mode"));
|
||||
|
||||
a[1]->setText(QCoreApplication::translate("Std_DrawStyle", "&2 Points"));
|
||||
@@ -785,16 +785,16 @@ void StdCmdDrawStyle::languageChange()
|
||||
a[2]->setText(QCoreApplication::translate("Std_DrawStyle", "&3 Wireframe"));
|
||||
a[2]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "Wireframe mode"));
|
||||
|
||||
a[3]->setText(QCoreApplication::translate("Std_DrawStyle", "&4 Hidden line"));
|
||||
a[3]->setText(QCoreApplication::translate("Std_DrawStyle", "&4 Hidden Line"));
|
||||
a[3]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "Hidden line mode"));
|
||||
|
||||
a[4]->setText(QCoreApplication::translate("Std_DrawStyle", "&5 No shading"));
|
||||
a[4]->setText(QCoreApplication::translate("Std_DrawStyle", "&5 No Shading"));
|
||||
a[4]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "No shading mode"));
|
||||
|
||||
a[5]->setText(QCoreApplication::translate("Std_DrawStyle", "&6 Shaded"));
|
||||
a[5]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "Shaded mode"));
|
||||
|
||||
a[6]->setText(QCoreApplication::translate("Std_DrawStyle", "&7 Flat lines"));
|
||||
a[6]->setText(QCoreApplication::translate("Std_DrawStyle", "&7 Flat Lines"));
|
||||
a[6]->setToolTip(QCoreApplication::translate("Std_DrawStyle", "Flat lines mode"));
|
||||
}
|
||||
|
||||
|
||||
@@ -540,7 +540,7 @@ void ParameterGroup::onDeleteSelectedItem()
|
||||
if (sel && sel->isSelected() && sel->parent()) {
|
||||
if (QMessageBox::question(
|
||||
this,
|
||||
tr("Remove group"),
|
||||
tr("Remove Group"),
|
||||
tr("Remove this parameter group?"),
|
||||
QMessageBox::Yes | QMessageBox::No,
|
||||
QMessageBox::No
|
||||
@@ -579,7 +579,7 @@ void ParameterGroup::onCreateSubgroup()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New sub-group"),
|
||||
QObject::tr("New Sub-Group"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -596,7 +596,7 @@ void ParameterGroup::onCreateSubgroup()
|
||||
if (hGrp->HasGroup(name.toLatin1())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing sub-group"),
|
||||
tr("Existing Sub-Group"),
|
||||
tr("The sub-group '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -613,7 +613,7 @@ void ParameterGroup::onExportToFile()
|
||||
{
|
||||
QString file = FileDialog::getSaveFileName(
|
||||
this,
|
||||
tr("Export parameter to file"),
|
||||
tr("Export Parameter to File"),
|
||||
QString(),
|
||||
QStringLiteral("XML (*.FCParam)")
|
||||
);
|
||||
@@ -631,7 +631,7 @@ void ParameterGroup::onImportFromFile()
|
||||
{
|
||||
QString file = FileDialog::getOpenFileName(
|
||||
this,
|
||||
tr("Import parameter from file"),
|
||||
tr("Import Parameter From File"),
|
||||
QString(),
|
||||
QStringLiteral("XML (*.FCParam)")
|
||||
);
|
||||
@@ -659,7 +659,7 @@ void ParameterGroup::onImportFromFile()
|
||||
catch (const Base::Exception&) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Import error"),
|
||||
tr("Import Error"),
|
||||
tr("Reading from '%1' failed.").arg(file)
|
||||
);
|
||||
}
|
||||
@@ -815,7 +815,7 @@ void ParameterValue::onCreateTextItem()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New text item"),
|
||||
QObject::tr("New Text Item"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -832,7 +832,7 @@ void ParameterValue::onCreateTextItem()
|
||||
if (name == QLatin1String(it.first.c_str())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing item"),
|
||||
tr("Existing Item"),
|
||||
tr("The item '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -841,7 +841,7 @@ void ParameterValue::onCreateTextItem()
|
||||
|
||||
QString val = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New text item"),
|
||||
QObject::tr("New Text Item"),
|
||||
QObject::tr("Enter text:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -860,7 +860,7 @@ void ParameterValue::onCreateIntItem()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New integer item"),
|
||||
QObject::tr("New Integer Item"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -877,7 +877,7 @@ void ParameterValue::onCreateIntItem()
|
||||
if (name == QLatin1String(it.first.c_str())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing item"),
|
||||
tr("Existing Item"),
|
||||
tr("The item '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -886,7 +886,7 @@ void ParameterValue::onCreateIntItem()
|
||||
|
||||
int val = QInputDialog::getInt(
|
||||
this,
|
||||
QObject::tr("New integer item"),
|
||||
QObject::tr("New Integer Item"),
|
||||
QObject::tr("Enter number:"),
|
||||
0,
|
||||
-2147483647,
|
||||
@@ -908,7 +908,7 @@ void ParameterValue::onCreateUIntItem()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New unsigned item"),
|
||||
QObject::tr("New Unsigned Item"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -925,7 +925,7 @@ void ParameterValue::onCreateUIntItem()
|
||||
if (name == QLatin1String(it.first.c_str())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing item"),
|
||||
tr("Existing Item"),
|
||||
tr("The item '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -953,7 +953,7 @@ void ParameterValue::onCreateFloatItem()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New float item"),
|
||||
QObject::tr("New Float Item"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -970,7 +970,7 @@ void ParameterValue::onCreateFloatItem()
|
||||
if (name == QLatin1String(it.first.c_str())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing item"),
|
||||
tr("Existing Item"),
|
||||
tr("The item '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -979,7 +979,7 @@ void ParameterValue::onCreateFloatItem()
|
||||
|
||||
double val = QInputDialog::getDouble(
|
||||
this,
|
||||
QObject::tr("New float item"),
|
||||
QObject::tr("New Float Item"),
|
||||
QObject::tr("Enter number:"),
|
||||
0,
|
||||
-2147483647,
|
||||
@@ -1000,7 +1000,7 @@ void ParameterValue::onCreateBoolItem()
|
||||
bool ok;
|
||||
QString name = QInputDialog::getText(
|
||||
this,
|
||||
QObject::tr("New boolean item"),
|
||||
QObject::tr("New Boolean Item"),
|
||||
QObject::tr("Enter the name:"),
|
||||
QLineEdit::Normal,
|
||||
QString(),
|
||||
@@ -1017,7 +1017,7 @@ void ParameterValue::onCreateBoolItem()
|
||||
if (name == QLatin1String(it.first.c_str())) {
|
||||
QMessageBox::critical(
|
||||
this,
|
||||
tr("Existing item"),
|
||||
tr("Existing Item"),
|
||||
tr("The item '%1' already exists.").arg(name)
|
||||
);
|
||||
return;
|
||||
@@ -1028,7 +1028,7 @@ void ParameterValue::onCreateBoolItem()
|
||||
list << QStringLiteral("true") << QStringLiteral("false");
|
||||
QString val = QInputDialog::getItem(
|
||||
this,
|
||||
QObject::tr("New boolean item"),
|
||||
QObject::tr("New Boolean Item"),
|
||||
QObject::tr("Choose an item:"),
|
||||
list,
|
||||
0,
|
||||
|
||||
@@ -133,8 +133,8 @@ DlgVersionMigrator::DlgVersionMigrator(MainWindow* mw)
|
||||
// NOTE: All rich-text strings are generated programmatically so that translators don't have to
|
||||
// deal with the markup. The two strings in the middle of the dialog are set in the UI file.
|
||||
|
||||
auto programNameString = tr("Welcome to %1 %2.%3\n\n")
|
||||
.arg(programName, QString::number(major), QString::number(minor));
|
||||
auto programNameString
|
||||
= tr("Welcome to %1 %2.%3").arg(programName, QString::number(major), QString::number(minor));
|
||||
auto welcomeString = QStringLiteral("<b>") + programNameString + QStringLiteral("</b>");
|
||||
|
||||
auto calculatingSizeString = QStringLiteral("<b>") + tr("Calculating size…")
|
||||
|
||||
@@ -1823,6 +1823,7 @@ void Document::RestoreDocFile(Base::Reader& reader)
|
||||
localreader->readElement("Document");
|
||||
long scheme = localreader->getAttribute<long>("SchemaVersion");
|
||||
localreader->DocumentSchema = scheme;
|
||||
localreader->ProgramVersion = d->_pcDocument->getProgramVersion();
|
||||
|
||||
bool hasExpansion = localreader->hasAttribute("HasExpansion");
|
||||
if (hasExpansion) {
|
||||
|
||||
@@ -1013,7 +1013,7 @@ void ExpressionLineEdit::slotTextChanged(const QString& text)
|
||||
}
|
||||
}
|
||||
|
||||
void ExpressionLineEdit::slotCompleteText(const QString& completionPrefix, bool isActivated)
|
||||
void ExpressionLineEdit::slotCompleteText(const QString& completionPrefix, ActivationMode mode)
|
||||
{
|
||||
int start, end;
|
||||
completer->getPrefixRange(start, end);
|
||||
@@ -1030,7 +1030,7 @@ void ExpressionLineEdit::slotCompleteText(const QString& completionPrefix, bool
|
||||
|
||||
// chain completions if we select an entry from the completer drop down
|
||||
// and that entry ends with '.' or '#'
|
||||
if (isActivated) {
|
||||
if (mode == ActivationMode::Activated) {
|
||||
std::string textToComplete = completionPrefix.toUtf8().constData();
|
||||
if (textToComplete.size()
|
||||
&& (*textToComplete.crbegin() == '.' || *textToComplete.crbegin() == '#')) {
|
||||
@@ -1042,12 +1042,12 @@ void ExpressionLineEdit::slotCompleteText(const QString& completionPrefix, bool
|
||||
|
||||
void ExpressionLineEdit::slotCompleteTextHighlighted(const QString& completionPrefix)
|
||||
{
|
||||
slotCompleteText(completionPrefix, false);
|
||||
slotCompleteText(completionPrefix, ActivationMode::Highlighted);
|
||||
}
|
||||
|
||||
void ExpressionLineEdit::slotCompleteTextSelected(const QString& completionPrefix)
|
||||
{
|
||||
slotCompleteText(completionPrefix, true);
|
||||
slotCompleteText(completionPrefix, ActivationMode::Activated);
|
||||
}
|
||||
|
||||
|
||||
@@ -1116,13 +1116,13 @@ void ExpressionTextEdit::setDocumentObject(const App::DocumentObject* currentDoc
|
||||
completer,
|
||||
qOverload<const QString&>(&QCompleter::activated),
|
||||
this,
|
||||
&ExpressionTextEdit::slotCompleteText
|
||||
&ExpressionTextEdit::slotCompleteTextSelected
|
||||
);
|
||||
connect(
|
||||
completer,
|
||||
qOverload<const QString&>(&QCompleter::highlighted),
|
||||
this,
|
||||
&ExpressionTextEdit::slotCompleteText
|
||||
&ExpressionTextEdit::slotCompleteTextHighlighted
|
||||
);
|
||||
connect(this, &ExpressionTextEdit::textChanged2, completer, &ExpressionCompleter::slotUpdate);
|
||||
connect(
|
||||
@@ -1155,7 +1155,7 @@ void ExpressionTextEdit::slotTextChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void ExpressionTextEdit::slotCompleteText(const QString& completionPrefix)
|
||||
void ExpressionTextEdit::slotCompleteText(const QString& completionPrefix, ActivationMode mode)
|
||||
{
|
||||
QTextCursor cursor = textCursor();
|
||||
int start, end;
|
||||
@@ -1165,17 +1165,31 @@ void ExpressionTextEdit::slotCompleteText(const QString& completionPrefix)
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, end - pos);
|
||||
}
|
||||
cursor.movePosition(QTextCursor::PreviousCharacter, QTextCursor::KeepAnchor, end - start);
|
||||
|
||||
Base::FlagToggler<bool> flag(block, false);
|
||||
cursor.insertText(completionPrefix);
|
||||
completer->updatePrefixEnd(cursor.positionInBlock());
|
||||
|
||||
std::string textToComplete = completionPrefix.toUtf8().constData();
|
||||
if (textToComplete.size()
|
||||
&& (*textToComplete.crbegin() == '.' || *textToComplete.crbegin() == '#')) {
|
||||
completer->slotUpdate(cursor.block().text(), cursor.positionInBlock());
|
||||
// chain completions only when activated (Enter/Click), not when highlighted (arrow keys)
|
||||
if (mode == ActivationMode::Activated) {
|
||||
std::string textToComplete = completionPrefix.toUtf8().constData();
|
||||
if (!textToComplete.empty()
|
||||
&& (*textToComplete.crbegin() == '.' || *textToComplete.crbegin() == '#')) {
|
||||
completer->slotUpdate(cursor.block().text(), cursor.positionInBlock());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ExpressionTextEdit::slotCompleteTextHighlighted(const QString& completionPrefix)
|
||||
{
|
||||
slotCompleteText(completionPrefix, ActivationMode::Highlighted);
|
||||
}
|
||||
|
||||
void ExpressionTextEdit::slotCompleteTextSelected(const QString& completionPrefix)
|
||||
{
|
||||
slotCompleteText(completionPrefix, ActivationMode::Activated);
|
||||
}
|
||||
|
||||
void ExpressionTextEdit::keyPressEvent(QKeyEvent* e)
|
||||
{
|
||||
Base::FlagToggler<bool> flag(block, true);
|
||||
@@ -1208,9 +1222,8 @@ void ExpressionTextEdit::keyPressEvent(QKeyEvent* e)
|
||||
if (!completer->popup()->currentIndex().isValid()) {
|
||||
completer->popup()->setCurrentIndex(completer->popup()->model()->index(0, 0));
|
||||
}
|
||||
// insert completion
|
||||
completer->setCurrentRow(completer->popup()->currentIndex().row());
|
||||
slotCompleteText(completer->currentCompletion());
|
||||
slotCompleteText(completer->currentCompletion(), ActivationMode::Highlighted);
|
||||
|
||||
// refresh completion list
|
||||
completer->setCompletionPrefix(completer->currentCompletion());
|
||||
|
||||
@@ -44,6 +44,12 @@ class ObjectIdentifier;
|
||||
namespace Gui
|
||||
{
|
||||
|
||||
enum class ActivationMode
|
||||
{
|
||||
Highlighted, // browsing with arrow keys
|
||||
Activated // confirmed selection (Enter/Click)
|
||||
};
|
||||
|
||||
class GuiExport ExpressionValidator: public QValidator
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -123,8 +129,7 @@ Q_SIGNALS:
|
||||
void textChanged2(QString text, int pos);
|
||||
public Q_SLOTS:
|
||||
void slotTextChanged(const QString& text);
|
||||
// activated == pressed enter on the completion item
|
||||
void slotCompleteText(const QString& completionPrefix, bool isActivated);
|
||||
void slotCompleteText(const QString& completionPrefix, ActivationMode mode);
|
||||
void slotCompleteTextHighlighted(const QString& completionPrefix);
|
||||
void slotCompleteTextSelected(const QString& completionPrefix);
|
||||
|
||||
@@ -159,7 +164,9 @@ Q_SIGNALS:
|
||||
void textChanged2(QString text, int pos);
|
||||
public Q_SLOTS:
|
||||
void slotTextChanged();
|
||||
void slotCompleteText(const QString& completionPrefix);
|
||||
void slotCompleteText(const QString& completionPrefix, ActivationMode mode);
|
||||
void slotCompleteTextHighlighted(const QString& completionPrefix);
|
||||
void slotCompleteTextSelected(const QString& completionPrefix);
|
||||
void adjustCompleterToCursor();
|
||||
|
||||
private:
|
||||
|
||||
@@ -502,7 +502,7 @@ bool GraphvizView::onMsg(const char* pMsg, const char**)
|
||||
QString selectedFilter;
|
||||
QString fn = Gui::FileDialog::getSaveFileName(
|
||||
this,
|
||||
tr("Export graph"),
|
||||
tr("Export Graph"),
|
||||
QString(),
|
||||
filter.join(QLatin1String(";;")),
|
||||
&selectedFilter
|
||||
@@ -604,7 +604,7 @@ void GraphvizView::printPdf()
|
||||
QString selectedFilter;
|
||||
QString fn = Gui::FileDialog::getSaveFileName(
|
||||
this,
|
||||
tr("Export graph"),
|
||||
tr("Export Graph"),
|
||||
QString(),
|
||||
filter.join(QLatin1String(";;")),
|
||||
&selectedFilter
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,554 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
width="552"
|
||||
height="189"
|
||||
viewBox="0 0 552 189"
|
||||
sodipodi:docname="freecadabout.svg"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
|
||||
inkscape:export-filename="../Documents/FreeCAD/src/Gui/Icons/freecadabout.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs1"><linearGradient
|
||||
id="linearGradient1"><stop
|
||||
style="stop-color:#fdb616;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop287" /><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop288" /></linearGradient><linearGradient
|
||||
id="linearGradient283"
|
||||
inkscape:collect="always"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop283" /><stop
|
||||
style="stop-color:#ededed;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop284" /></linearGradient><linearGradient
|
||||
id="linearGradient280"
|
||||
inkscape:collect="always"
|
||||
inkscape:label="Grid Opacity"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop280" /><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop281" /></linearGradient><linearGradient
|
||||
id="linearGradient278"
|
||||
inkscape:collect="always"><stop
|
||||
style="stop-color:#e8e8e8;stop-opacity:0.99607843;"
|
||||
offset="0"
|
||||
id="stop278" /><stop
|
||||
style="stop-color:#f8f8f8;stop-opacity:0.99607843;"
|
||||
offset="1"
|
||||
id="stop279" /></linearGradient><linearGradient
|
||||
id="linearGradient1-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1" /><stop
|
||||
style="stop-color:#aeaeae;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2" /></linearGradient><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient73"
|
||||
x1="15.5"
|
||||
y1="14.5"
|
||||
x2="15.5"
|
||||
y2="171.5"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient278"
|
||||
id="linearGradient279"
|
||||
x1="292.51031"
|
||||
y1="168.74944"
|
||||
x2="292.1037"
|
||||
y2="17.832161"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient283"
|
||||
id="linearGradient284"
|
||||
x1="15.5"
|
||||
y1="273"
|
||||
x2="536"
|
||||
y2="273"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1-1"
|
||||
id="linearGradient285"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15.5"
|
||||
y1="14.5"
|
||||
x2="15.5"
|
||||
y2="171.5" /><filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Blur"
|
||||
id="filter288"
|
||||
x="-0.028083052"
|
||||
y="-0.094032927"
|
||||
width="1.0561661"
|
||||
height="1.1880659"><feGaussianBlur
|
||||
stdDeviation="6.0729598"
|
||||
result="blur"
|
||||
id="feGaussianBlur288" /></filter><mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask291"><rect
|
||||
style="opacity:1;fill:url(#linearGradient291);stroke:none;stroke-width:16;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.25"
|
||||
id="rect291"
|
||||
width="520"
|
||||
height="156"
|
||||
x="16"
|
||||
y="15"
|
||||
rx="0"
|
||||
ry="0"
|
||||
inkscape:label="Grid Mask" /></mask><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient280"
|
||||
id="linearGradient291"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="142.6841"
|
||||
y1="156.8309"
|
||||
x2="218.92583"
|
||||
y2="221.28627" /><mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask2"><g
|
||||
id="g3"
|
||||
inkscape:label="Bands"
|
||||
style="display:inline"><rect
|
||||
style="opacity:1;fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect2"
|
||||
width="520"
|
||||
height="15"
|
||||
x="16"
|
||||
y="156"
|
||||
rx="0"
|
||||
ry="0"
|
||||
inkscape:label="Lower" /><rect
|
||||
style="opacity:1;fill:#f8f8f8;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect3"
|
||||
width="520"
|
||||
height="15"
|
||||
x="16"
|
||||
y="15"
|
||||
rx="0"
|
||||
ry="0"
|
||||
inkscape:label="Upper" /></g></mask><mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask1"><rect
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect1"
|
||||
width="520"
|
||||
height="156"
|
||||
x="16"
|
||||
y="15"
|
||||
ry="14.999999"
|
||||
rx="15.000001"
|
||||
inkscape:label="Mask" /></mask><mask
|
||||
maskUnits="userSpaceOnUse"
|
||||
id="mask3"><rect
|
||||
style="display:inline;opacity:1;fill:#e9e9e9;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.25"
|
||||
id="rect5"
|
||||
width="520"
|
||||
height="156"
|
||||
x="16"
|
||||
y="15"
|
||||
ry="15"
|
||||
rx="15"
|
||||
inkscape:label="Clip Mask" /></mask></defs><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showguides="false"
|
||||
inkscape:zoom="1.102646"
|
||||
inkscape:cx="300.187"
|
||||
inkscape:cy="154.62805"
|
||||
inkscape:window-width="1512"
|
||||
inkscape:window-height="916"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="38"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer9"
|
||||
showgrid="false"><inkscape:grid
|
||||
id="grid202"
|
||||
units="px"
|
||||
originx="0.5"
|
||||
originy="0.5"
|
||||
spacingx="0.5"
|
||||
spacingy="0.5"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="2"
|
||||
dotted="true"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="false" /><sodipodi:guide
|
||||
position="116.55931,189"
|
||||
orientation="-0.70710678,0.70710678"
|
||||
id="guide276"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" /><sodipodi:guide
|
||||
position="276.25974,0"
|
||||
orientation="-0.70710678,0.70710678"
|
||||
id="guide277"
|
||||
inkscape:locked="false"
|
||||
inkscape:label=""
|
||||
inkscape:color="rgb(0,134,229)" /></sodipodi:namedview><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer9"
|
||||
inkscape:label="Base"
|
||||
style="display:inline"><rect
|
||||
style="display:inline;opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;filter:url(#filter288)"
|
||||
id="rect288"
|
||||
width="519"
|
||||
height="155"
|
||||
x="16.5"
|
||||
y="15.5"
|
||||
ry="14.5"
|
||||
rx="14.5"
|
||||
inkscape:label="Shadow" /><g
|
||||
id="g284"
|
||||
inkscape:label="Content"
|
||||
clip-path="none"
|
||||
style="display:inline"
|
||||
mask="url(#mask3)"><rect
|
||||
style="display:inline;opacity:1;fill:url(#linearGradient284);stroke:none;stroke-width:16;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.25"
|
||||
id="rect276"
|
||||
width="520.5"
|
||||
height="156"
|
||||
x="15.5"
|
||||
y="15"
|
||||
ry="15"
|
||||
rx="15" /><path
|
||||
style="display:inline;fill:url(#linearGradient279);stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 116.55931,0 H 465.25975 L 276.25974,189 H -72.44069 Z"
|
||||
id="path277"
|
||||
sodipodi:nodetypes="ccccc" /><g
|
||||
id="g279"
|
||||
inkscape:label="Grid"
|
||||
style="display:inline"
|
||||
mask="url(#mask291)"><g
|
||||
id="g224"
|
||||
inkscape:label="Horizontal Grid"
|
||||
style="display:inline;opacity:1;stroke:#000000;stroke-opacity:0.12"><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 16,46.5 H 536"
|
||||
id="path202"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,62.5 H 536"
|
||||
id="path207"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,78.5 H 536"
|
||||
id="path208"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 16,94.5 H 536"
|
||||
id="path209"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,110.5 H 536"
|
||||
id="path210"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,126.5 H 536"
|
||||
id="path211"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 16,142.5 H 536"
|
||||
id="path212"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,158.5 H 536"
|
||||
id="path213"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 16,30.5 H 536"
|
||||
id="path214"
|
||||
sodipodi:nodetypes="cc" /></g><g
|
||||
id="g267"
|
||||
inkscape:label="Vertical Grid"
|
||||
style="display:inline;opacity:1;stroke:#000000;stroke-opacity:0.12"><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 99.5,15 V 171"
|
||||
id="path232" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 83.5,15 V 171"
|
||||
id="path233" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 67.5,15 V 171"
|
||||
id="path234" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 51.5,15 V 171"
|
||||
id="path235" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 35.5,15 V 171"
|
||||
id="path236" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 19.5,15 V 171"
|
||||
id="path237" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 195.5,15 V 171"
|
||||
id="path238" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 179.5,15 V 171"
|
||||
id="path239" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 163.5,15 V 171"
|
||||
id="path240" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 147.5,15 V 171"
|
||||
id="path241" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 131.5,15 V 171"
|
||||
id="path242" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 115.5,15 V 171"
|
||||
id="path243" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 291.5,15 V 171"
|
||||
id="path244" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 275.5,15 V 171"
|
||||
id="path245" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 259.5,15 V 171"
|
||||
id="path246" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 243.5,15 V 171"
|
||||
id="path247" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 227.5,15 V 171"
|
||||
id="path248" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 211.5,15 V 171"
|
||||
id="path249" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 387.5,15 V 171"
|
||||
id="path250" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 371.5,15 V 171"
|
||||
id="path251" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 355.5,15 V 171"
|
||||
id="path252" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 339.5,15 V 171"
|
||||
id="path253" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 323.5,15 V 171"
|
||||
id="path254" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 307.5,15 V 171"
|
||||
id="path255" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 483.5,15 V 171"
|
||||
id="path256" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 467.5,15 V 171"
|
||||
id="path257" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 451.5,15 V 171"
|
||||
id="path258" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 435.5,15 V 171"
|
||||
id="path259" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 419.5,15 V 171"
|
||||
id="path260" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 403.5,15 V 171"
|
||||
id="path261" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.25"
|
||||
d="M 531.5,15 V 171"
|
||||
id="path265" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 515.5,15 V 171"
|
||||
id="path266" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.12"
|
||||
d="M 499.5,15 V 171"
|
||||
id="path267" /></g></g><g
|
||||
id="g76"
|
||||
transform="matrix(0.2,0,0,0.2,263.2,116.6)"
|
||||
style="display:inline;stroke-width:4.99999"
|
||||
inkscape:label="Logo"><path
|
||||
d="m -312.744,0 v -226.134 h 114.75 v 20.502 H -290.1 v 81.702 h 88.74 v 20.502 H -290.1 V 0 Z m 141.252,0 v -167.382 h 22.644 v 23.868 c 8.874,-18.36 23.256,-26.622 47.43,-27.846 v 22.338 c -31.518,3.06 -47.43,20.196 -47.43,51.408 V 0 Z M 79.57,-76.194 H -71.9 c 1.836,33.048 30.6,59.364 65.178,59.364 25.398,0 48.96,-15.3 58.446,-38.25 H 75.286 C 63.046,-19.89 30.304,3.978 -6.11,3.978 c -49.572,0 -88.434,-38.862 -88.434,-88.434 0,-48.654 38.25,-86.904 86.598,-86.904 33.048,0 62.73,17.442 77.418,45.594 7.344,14.076 10.098,27.234 10.098,49.572 z M -71.288,-96.696 H 56.926 c -7.65,-33.354 -32.436,-53.856 -64.872,-53.856 -31.824,0 -57.222,21.726 -63.342,53.856 z M 278.59,-76.194 H 127.119 c 1.836,33.048 30.6,59.364 65.181,59.364 25.4,0 48.96,-15.3 58.44,-38.25 h 23.57 c -12.24,35.19 -44.99,59.058 -81.4,59.058 -49.573,0 -88.435,-38.862 -88.435,-88.434 0,-48.654 38.25,-86.904 86.595,-86.904 33.05,0 62.73,17.442 77.42,45.594 7.35,14.076 10.1,27.234 10.1,49.572 z M 127.731,-96.696 H 255.95 c -7.65,-33.354 -32.44,-53.856 -64.88,-53.856 -31.821,0 -57.219,21.726 -63.339,53.856 z m 348.039,33.66 h 49.27 c -17.75,41.31 -57.84,67.014 -104.35,67.014 -66.09,0 -119.03,-52.326 -119.03,-117.81 0,-63.954 52.32,-116.28 116.28,-116.28 28.46,0 55.69,9.792 76.8,27.54 14.39,12.24 21.73,22.338 30.3,41.31 h -46.82 c -15.3,-19.89 -33.05,-28.458 -59.36,-28.458 -23.26,0 -42.54,8.568 -56.31,24.786 -11.63,13.464 -18.66,33.048 -18.66,51.408 0,42.228 33.96,77.112 75.88,77.112 21.73,0 37.34,-7.344 56,-26.622 z M 529.76,0 624,-226.134 h 33.05 L 751.91,0 h -46.2 L 681.53,-58.446 H 601.05 L 575.96,0 Z m 86.59,-98.532 h 48.35 l -24.17,-68.544 z M 775.85,0 v -226.134 h 51.72 c 37.02,0 64.26,5.814 82.62,17.748 29.98,19.278 46.81,53.856 46.81,95.778 0,46.818 -21.42,84.15 -57.22,100.98 C 881.73,-3.366 861.84,0 828.48,0 Z m 41.92,-40.086 h 9.18 c 25.1,0 42.54,-3.366 55.08,-10.098 20.2,-11.016 32.75,-35.19 32.75,-62.424 0,-29.682 -13.77,-54.162 -36.11,-65.178 -12.85,-6.12 -26.62,-8.262 -52.63,-8.262 h -8.27 z"
|
||||
fill="#212529"
|
||||
id="path5-5"
|
||||
style="display:inline;stroke:none;stroke-width:4.99999" /><g
|
||||
id="g1-5"
|
||||
style="stroke:none;stroke-width:4.99999"
|
||||
transform="translate(-816,-353)"><path
|
||||
d="m 400,80 -80,80 H 160 v 60 h 80 v 80 h -80 v 100 l -80,80 h 81.0076 c 6.0652,0 11.4378,-3.9054 13.3118,-9.6738 l 14.4798,-44.5656 c 1.384,-4.2618 4.7298,-7.5966 8.9916,-8.9814 l 11.1312,-3.6172 c 4.262,-1.386 8.9314,-0.65 12.5572,1.984 l 37.8994,27.5434 c 4.9066,3.5646 11.5574,3.5646 16.464,0 l 33.972,-24.691 c 4.9072,-3.5648 6.9592,-9.8788 5.085,-15.6474 l -14.4798,-44.5658 c -1.386,-4.262 -0.64,-8.9314 1.994,-12.5572 l 6.8834,-9.4672 c 2.6338,-3.6254 6.8358,-5.777 11.317,-5.7774 l 46.86,0.0102 c 6.0656,2e-4 11.4378,-3.9154 13.3118,-9.684 l 12.9812,-39.9354 c 1.874,-5.7684 -0.18,-12.093 -5.085,-15.658 L 350.7724,237.173 c -3.6256,-2.6342 -5.767,-6.8356 -5.767,-11.3172 V 214.146 c 4e-4,-4.4814 2.1412,-8.6936 5.767,-11.3274 l 43.4598,-31.5742 C 397.8584,168.6106 400,164.3988 400,159.9174 Z"
|
||||
style="fill:#418fde;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.2283;stroke-linecap:square"
|
||||
id="path8-4-4" /><path
|
||||
id="path7-7-2"
|
||||
style="display:inline;fill:#ff585d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.2283;stroke-linecap:square"
|
||||
d="m 320,0 -80,80 h 80 v 80 L 400,80 V 0 Z M 80,320 0,400 v 80 h 80 l 80,-80 H 80 Z" /><path
|
||||
d="M 80,0 0,80 V 400 L 80,320 V 80 H 240 L 320,0 Z"
|
||||
style="fill:#cb333b;fill-rule:evenodd;stroke:none;stroke-width:13.2283;stroke-linecap:square"
|
||||
id="path3-1-7" /><path
|
||||
d="m 80,400 h 80 V 300 h 80 V 220 H 160 V 160 H 320 V 80 H 80 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.2283;stroke-linecap:square"
|
||||
id="path9-4-0" /></g></g></g><rect
|
||||
style="display:inline;opacity:0.75;fill:none;fill-opacity:1;stroke:url(#linearGradient285);stroke-width:1;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect285"
|
||||
width="519"
|
||||
height="155"
|
||||
x="16.5"
|
||||
y="15.5"
|
||||
ry="14.5"
|
||||
rx="14.5"
|
||||
inkscape:label="Outline" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:20px;line-height:1.25;font-family:Evolventa;-inkscape-font-specification:'Evolventa Bold';display:inline"
|
||||
x="453.62109"
|
||||
y="140.77539"
|
||||
id="text288"
|
||||
inkscape:label="Version"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan288"
|
||||
x="453.62109"
|
||||
y="140.77539"
|
||||
style="font-size:20px;text-align:end;text-anchor:end"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;font-family:Evolventa;-inkscape-font-specification:Evolventa;text-align:end;text-anchor:end"
|
||||
id="tspan290">version </tspan><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:20px;font-family:Evolventa;-inkscape-font-specification:'Evolventa Bold';text-align:end;text-anchor:end"
|
||||
id="version_string">1.2</tspan></tspan></text></g><g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="Release Candidate Stamp"
|
||||
style="display:none"><g
|
||||
id="g6"><g
|
||||
id="g7"
|
||||
transform="rotate(7.2612671,367.29829,706.44945)"><rect
|
||||
style="fill:#ffffff;fill-opacity:0.704651;stroke:#c13138;stroke-width:2;stroke-dasharray:none;stroke-opacity:0.956863"
|
||||
id="rect6"
|
||||
width="243.05171"
|
||||
height="25.393463"
|
||||
x="204.05461"
|
||||
y="36.276375"
|
||||
rx="4" /><text
|
||||
xml:space="preserve"
|
||||
style="font-size:21.3333px;font-family:Evolventa;-inkscape-font-specification:Evolventa;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#c13138;fill-opacity:0.956863;stroke:#c13138;stroke-width:3;stroke-dasharray:none;stroke-opacity:0.956863"
|
||||
x="208.58916"
|
||||
y="56.414566"
|
||||
id="text6"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6"
|
||||
x="208.58916"
|
||||
y="56.414566"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:'American Typewriter';-inkscape-font-specification:'American Typewriter';fill:#c13138;fill-opacity:0.956863;stroke:none">RELEASE CANDIDATE</tspan></text></g></g></g><g
|
||||
inkscape:groupmode="layer"
|
||||
id="dev_layer"
|
||||
inkscape:label="Development Overlay"
|
||||
style="display:none"><g
|
||||
id="g55"
|
||||
clip-path="none"
|
||||
inkscape:label="Stripes Group"
|
||||
mask="url(#mask1)"><g
|
||||
id="g21"
|
||||
inkscape:label="Stripes"
|
||||
clip-path="none"
|
||||
style="display:inline"
|
||||
mask="url(#mask2)"><rect
|
||||
style="display:inline;fill:#202529;fill-opacity:1;stroke:none;stroke-width:0.999999;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect4"
|
||||
width="520"
|
||||
height="156"
|
||||
x="16"
|
||||
y="15"
|
||||
ry="0"
|
||||
rx="0"
|
||||
inkscape:label="Base" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -58.628057,170.99999 50.8083,14.708681"
|
||||
id="path5"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -18.628057,170.99999 90.8083,14.708681"
|
||||
id="path6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 21.371943,170.99999 130.8083,14.708681"
|
||||
id="path7"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 61.371943,170.99999 170.8083,14.708681"
|
||||
id="path8"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 101.37194,170.99999 210.8083,14.708681"
|
||||
id="path9"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 141.37194,170.99999 250.8083,14.708681"
|
||||
id="path10"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 181.37194,170.99999 290.8083,14.708681"
|
||||
id="path11"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 221.37194,170.99999 330.8083,14.708681"
|
||||
id="path12"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 261.37194,170.99999 370.8083,14.708681"
|
||||
id="path13"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 301.37194,170.99999 410.8083,14.708681"
|
||||
id="path14"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 341.37194,170.99999 450.8083,14.708681"
|
||||
id="path15"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 381.37194,170.99999 490.8083,14.708681"
|
||||
id="path16"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 421.37194,170.99999 530.8083,14.708681"
|
||||
id="path17"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 461.37194,170.99999 570.8083,14.708681"
|
||||
id="path18"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 501.37194,170.99999 610.8083,14.708681"
|
||||
id="path19"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#fdb616;stroke-width:16;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -58.628057,170.99999 50.8083,14.708681"
|
||||
id="path20"
|
||||
sodipodi:nodetypes="cc" /></g></g><rect
|
||||
style="display:inline;opacity:0.5;fill:none;fill-opacity:1;stroke:url(#linearGradient73);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect71"
|
||||
width="519"
|
||||
height="155"
|
||||
x="16.5"
|
||||
y="15.5"
|
||||
ry="14.5"
|
||||
rx="14.5"
|
||||
inkscape:label="Outline" /></g></svg>
|
||||
|
After Width: | Height: | Size: 29 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 21 KiB |
@@ -769,6 +769,12 @@ void InputField::fixup(QString& input) const
|
||||
if (localePlus != asciiPlus) {
|
||||
input.replace(localePlus, asciiPlus);
|
||||
}
|
||||
|
||||
// workaround for improper handling of plus sign
|
||||
// in Building US unit system
|
||||
// https://github.com/FreeCAD/FreeCAD/issues/11345
|
||||
QString asciiMinusMinus(QStringLiteral("--"));
|
||||
input.replace(asciiPlus, asciiMinusMinus);
|
||||
}
|
||||
|
||||
QValidator::State InputField::validate(QString& input, int& pos) const
|
||||
|
||||
+279
-250
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+669
-640
File diff suppressed because it is too large
Load Diff
+393
-364
File diff suppressed because it is too large
Load Diff
+279
-250
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+350
-321
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+314
-282
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+1055
-1029
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+278
-250
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+306
-273
File diff suppressed because it is too large
Load Diff
+280
-248
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+332
-285
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+280
-251
File diff suppressed because it is too large
Load Diff
+280
-251
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+278
-249
File diff suppressed because it is too large
Load Diff
+277
-248
File diff suppressed because it is too large
Load Diff
+283
-254
File diff suppressed because it is too large
Load Diff
+292
-264
File diff suppressed because it is too large
Load Diff
@@ -427,7 +427,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags f)
|
||||
d->hintLabel = new InputHintWidget(statusBar());
|
||||
d->hintLabel->setObjectName(QStringLiteral("hintLabel"));
|
||||
//: A context menu action used to show or hide the input hints in the status bar
|
||||
d->hintLabel->setWindowTitle(tr("Input hints"));
|
||||
d->hintLabel->setWindowTitle(tr("Input Hints"));
|
||||
|
||||
statusBar()->addWidget(d->hintLabel);
|
||||
|
||||
@@ -437,7 +437,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags f)
|
||||
statusBar()->addPermanentWidget(d->rightSideLabel);
|
||||
d->rightSideLabel->setObjectName(QStringLiteral("rightSideLabel"));
|
||||
//: A context menu action used to enable or disable quick measure in the status bar
|
||||
d->rightSideLabel->setWindowTitle(tr("Quick measure"));
|
||||
d->rightSideLabel->setWindowTitle(tr("Quick Measure"));
|
||||
|
||||
auto hGrp = App::GetApplication().GetParameterGroupByPath(
|
||||
"User parameter:BaseApp/Preferences/NotificationArea"
|
||||
|
||||
@@ -801,14 +801,14 @@ void OverlayTabWidget::restore(ParameterGrp::handle handle)
|
||||
return;
|
||||
}
|
||||
|
||||
const char* defaultWidgets = "";
|
||||
|
||||
// If overlay was ever used and disabled by the user it should respect that choice
|
||||
if (handle->GetInt("Width", 0) == 0 || handle->GetInt("Height", 0) == 0) {
|
||||
defaultWidgets = getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : "";
|
||||
if (handle->GetInt("Width", 0) != 0 || handle->GetInt("Height", 0) != 0) {
|
||||
// save current value with old default to prevent layout change
|
||||
handle->SetASCII("Widgets", handle->GetASCII("Widgets", ""));
|
||||
}
|
||||
|
||||
std::string widgets = handle->GetASCII("Widgets", defaultWidgets);
|
||||
std::string widgets
|
||||
= handle->GetASCII("Widgets", getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : "");
|
||||
|
||||
for (auto& name : QString::fromUtf8(widgets.c_str()).split(QLatin1Char(','))) {
|
||||
if (name.isEmpty()) {
|
||||
|
||||
@@ -463,10 +463,6 @@
|
||||
<FCText Name="Robot_Edge2Trac"></FCText>
|
||||
<FCText Name="Robot_ExportKukaCompact"></FCText>
|
||||
<FCText Name="Robot_ExportKukaFull"></FCText>
|
||||
<FCText Name="Robot_InsertKukaIR125"></FCText>
|
||||
<FCText Name="Robot_InsertKukaIR16"></FCText>
|
||||
<FCText Name="Robot_InsertKukaIR210"></FCText>
|
||||
<FCText Name="Robot_InsertKukaIR500"></FCText>
|
||||
<FCText Name="Robot_InsertWaypoint">A</FCText>
|
||||
<FCText Name="Robot_InsertWaypointPreselect">W</FCText>
|
||||
<FCText Name="Robot_RestoreHomePos"></FCText>
|
||||
|
||||
@@ -82,7 +82,7 @@ DlgSettingsGeneral::DlgSettingsGeneral(QWidget* parent)
|
||||
recreatePreferencePackMenu();
|
||||
|
||||
for (const char* option : Translator::formattingOptions) {
|
||||
ui->UseLocaleFormatting->addItem(tr(option));
|
||||
ui->UseLocaleFormatting->addItem(QCoreApplication::translate("Gui::Translator", option));
|
||||
}
|
||||
|
||||
ui->themesCombobox->setEnabled(true);
|
||||
|
||||
@@ -120,7 +120,9 @@ void DlgSettingsUI::loadSettings()
|
||||
|
||||
void DlgSettingsUI::loadStyleSheet()
|
||||
{
|
||||
populateStylesheets("StyleSheet", "qss", ui->StyleSheets, "No style sheet");
|
||||
static std::string translatedString; // Make sure the memory doesn't disappear on us
|
||||
translatedString = tr("No style sheet").toStdString();
|
||||
populateStylesheets("StyleSheet", "qss", ui->StyleSheets, translatedString.c_str());
|
||||
populateStylesheets("OverlayActiveStyleSheet", "overlay", ui->OverlayStyleSheets, "Auto");
|
||||
}
|
||||
|
||||
|
||||
@@ -195,8 +195,9 @@ void ViewProviderGeometryObject::updateData(const App::Property* prop)
|
||||
*/
|
||||
App::Material defaultMaterial;
|
||||
auto material = geometry->getMaterialAppearance();
|
||||
if ((materialAppearance == defaultMaterial)
|
||||
|| (ShapeAppearance.getSize() == 1 && ShapeAppearance[0] == materialAppearance)) {
|
||||
if ((ShapeAppearance.getSize() == 1)
|
||||
&& (ShapeAppearance[0] == defaultMaterial || ShapeAppearance[0] == materialAppearance)
|
||||
&& (material != defaultMaterial)) {
|
||||
ShapeAppearance.setValue(material);
|
||||
}
|
||||
materialAppearance = material;
|
||||
|
||||
+6
-1
@@ -1577,7 +1577,12 @@ bool ExpLineEdit::apply(const std::string& propName)
|
||||
if (!ExpressionBinding::apply(propName)) {
|
||||
if (!autoClose) {
|
||||
QString val = QString::fromUtf8(Base::Interpreter().strToPython(text().toUtf8()).c_str());
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "%s = \"%s\"", propName.c_str(), val.constData());
|
||||
Gui::Command::doCommand(
|
||||
Gui::Command::Doc,
|
||||
"%s = \"%s\"",
|
||||
propName.c_str(),
|
||||
val.toUtf8().constData()
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -252,8 +252,41 @@ void AssemblyLink::synchronizeComponents()
|
||||
std::vector<App::DocumentObject*> assemblyGroup = assembly->Group.getValues();
|
||||
std::vector<App::DocumentObject*> assemblyLinkGroup = Group.getValues();
|
||||
|
||||
// We check if a component needs to be added to the AssemblyLink
|
||||
// Filter out child objects from Part-workbench features to get only top-level components.
|
||||
// An object is considered a child if it's referenced by another object's 'Base', 'Tool',
|
||||
// or 'Shapes' property within the same group.
|
||||
std::set<App::DocumentObject*> children;
|
||||
for (auto* obj : assemblyGroup) {
|
||||
if (auto* partFeat = dynamic_cast<PartApp::Feature*>(obj)) {
|
||||
if (auto* prop = dynamic_cast<App::PropertyLink*>(partFeat->getPropertyByName("Base"))) {
|
||||
if (prop->getValue()) {
|
||||
children.insert(prop->getValue());
|
||||
}
|
||||
}
|
||||
if (auto* prop = dynamic_cast<App::PropertyLink*>(partFeat->getPropertyByName("Tool"))) {
|
||||
if (prop->getValue()) {
|
||||
children.insert(prop->getValue());
|
||||
}
|
||||
}
|
||||
if (auto* prop
|
||||
= dynamic_cast<App::PropertyLinkList*>(partFeat->getPropertyByName("Shapes"))) {
|
||||
for (auto* shapeObj : prop->getValues()) {
|
||||
children.insert(shapeObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<App::DocumentObject*> topLevelComponents;
|
||||
std::copy_if(
|
||||
assemblyGroup.begin(),
|
||||
assemblyGroup.end(),
|
||||
std::back_inserter(topLevelComponents),
|
||||
[&children](App::DocumentObject* obj) { return children.find(obj) == children.end(); }
|
||||
);
|
||||
|
||||
// We check if a component needs to be added to the AssemblyLink
|
||||
for (auto* obj : topLevelComponents) {
|
||||
if (!obj->isDerivedFrom<App::Part>() && !obj->isDerivedFrom<PartApp::Feature>()
|
||||
&& !obj->isDerivedFrom<App::Link>()) {
|
||||
continue;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user