diff --git a/data/examples/PartDesignExample.FCStd b/data/examples/PartDesignExample.FCStd index 8e5278bc54..58a0116085 100644 Binary files a/data/examples/PartDesignExample.FCStd and b/data/examples/PartDesignExample.FCStd differ diff --git a/src/App/Application.cpp b/src/App/Application.cpp index d51a6740fc..faac993af3 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -1040,14 +1040,14 @@ Application::TransactionSignaller::~TransactionSignaller() { } } -const char* Application::getHomePath(void) const +std::string Application::getHomePath() { - return _mConfig["AppHomePath"].c_str(); + return mConfig["AppHomePath"]; } -const char* Application::getExecutableName(void) const +std::string Application::getExecutableName() { - return _mConfig["ExeName"].c_str(); + return mConfig["ExeName"]; } std::string Application::getTempPath() diff --git a/src/App/Application.h b/src/App/Application.h index 0d38fcfdab..2e7237ea9e 100644 --- a/src/App/Application.h +++ b/src/App/Application.h @@ -395,8 +395,8 @@ public: /** @name Application directories */ //@{ - const char* getHomePath(void) const; - const char* getExecutableName(void) const; + static std::string getHomePath(); + static std::string getExecutableName(); /*! Returns the temporary directory. By default, this is set to the system's temporary directory but can be customized by the user. @@ -597,7 +597,7 @@ private: std::deque _pendingDocsReopen; std::map > _pendingDocMap; - // To prevent infinite recursion of reloading a partial document due a truely + // To prevent infinite recursion of reloading a partial document due a truly // missing object std::map > _docReloadAttempts; diff --git a/src/App/ApplicationPy.cpp b/src/App/ApplicationPy.cpp index 0eaa6ac788..de213ff32e 100644 --- a/src/App/ApplicationPy.cpp +++ b/src/App/ApplicationPy.cpp @@ -691,7 +691,7 @@ PyObject* Application::sGetHomePath(PyObject * /*self*/, PyObject *args) if (!PyArg_ParseTuple(args, "")) // convert args: Python->C return NULL; // NULL triggers exception - Py::String homedir(GetApplication().getHomePath(),"utf-8"); + Py::String homedir(Application::getHomePath(),"utf-8"); return Py::new_reference_to(homedir); } diff --git a/src/App/Document.cpp b/src/App/Document.cpp index f6ec4f46ac..0c6fceb43f 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -1685,7 +1685,7 @@ std::string Document::getTransientDirectoryName(const std::string& uuid, const s std::stringstream s; QCryptographicHash hash(QCryptographicHash::Sha1); hash.addData(filename.c_str(), filename.size()); - s << App::Application::getTempPath() << GetApplication().getExecutableName() + s << App::Application::getTempPath() << App::Application::getExecutableName() << "_Doc_" << uuid << "_" << hash.result().toHex().left(6).constData() << "_" << QCoreApplication::applicationPid(); diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index e0ce35be61..0dc5ed879a 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -1955,13 +1955,13 @@ void Application::runApplication(void) mainApp.setApplicationName(QString::fromUtf8(it->second.c_str())); } else { - mainApp.setApplicationName(QString::fromUtf8(App::GetApplication().getExecutableName())); + mainApp.setApplicationName(QString::fromStdString(App::Application::getExecutableName())); } #ifndef Q_OS_MACX mainApp.setWindowIcon(Gui::BitmapFactory().pixmap(App::Application::Config()["AppIcon"].c_str())); #endif QString plugin; - plugin = QString::fromUtf8(App::GetApplication().getHomePath()); + plugin = QString::fromStdString(App::Application::getHomePath()); plugin += QLatin1String("/plugins"); QCoreApplication::addLibraryPath(plugin); @@ -2127,7 +2127,7 @@ void Application::runApplication(void) // init the Inventor subsystem initOpenInventor(); - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); it = cfg.find("WindowTitle"); if (it != cfg.end()) { @@ -2267,7 +2267,7 @@ void Application::runApplication(void) try { std::stringstream s; - s << App::Application::getTempPath() << App::GetApplication().getExecutableName() + s << App::Application::getTempPath() << App::Application::getExecutableName() << "_" << QCoreApplication::applicationPid() << ".lock"; // open a lock file with the PID Base::FileInfo fi(s.str()); diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index cf23554b0d..82a883cb1f 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -1029,7 +1029,7 @@ PyObject* Application::sAddResPath(PyObject * /*self*/, PyObject *args) PyMem_Free(filePath); if (QDir::isRelativePath(path)) { // Home path ends with '/' - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); path = home + path; } @@ -1048,7 +1048,7 @@ PyObject* Application::sAddLangPath(PyObject * /*self*/, PyObject *args) PyMem_Free(filePath); if (QDir::isRelativePath(path)) { // Home path ends with '/' - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); path = home + path; } @@ -1066,7 +1066,7 @@ PyObject* Application::sAddIconPath(PyObject * /*self*/, PyObject *args) PyMem_Free(filePath); if (QDir::isRelativePath(path)) { // Home path ends with '/' - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); path = home + path; } diff --git a/src/Gui/Assistant.cpp b/src/Gui/Assistant.cpp index f903c7a28f..e905fe8dfd 100644 --- a/src/Gui/Assistant.cpp +++ b/src/Gui/Assistant.cpp @@ -85,8 +85,8 @@ bool Assistant::startAssistant() if (proc->state() != QProcess::Running) { #ifdef Q_OS_WIN QString app; - app = QDir::toNativeSeparators(QString::fromUtf8 - (App::GetApplication().getHomePath()) + QLatin1String("bin/")); + app = QDir::toNativeSeparators(QString::fromStdString + (App::Application::getHomePath()) + QLatin1String("bin/")); #elif defined(Q_OS_MAC) QString app = QCoreApplication::applicationDirPath() + QDir::separator(); #else @@ -95,8 +95,8 @@ bool Assistant::startAssistant() app += QLatin1String("assistant"); // get the name of the executable and the doc path - QString exe = QString::fromUtf8(App::GetApplication().getExecutableName()); - QString doc = QString::fromUtf8(App::Application::getHelpDir().c_str()); + QString exe = QString::fromStdString(App::Application::getExecutableName()); + QString doc = QString::fromStdString(App::Application::getHelpDir()); QString qhc = doc + exe.toLower() + QLatin1String(".qhc"); diff --git a/src/Gui/BitmapFactory.cpp b/src/Gui/BitmapFactory.cpp index bfa5317cf1..2e9ffd7156 100644 --- a/src/Gui/BitmapFactory.cpp +++ b/src/Gui/BitmapFactory.cpp @@ -97,15 +97,15 @@ BitmapFactoryInst& BitmapFactoryInst::instance(void) std::map::const_iterator it; it = App::GetApplication().Config().find("ProgramIcons"); if (it != App::GetApplication().Config().end()) { - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); QString path = QString::fromUtf8(it->second.c_str()); if (QDir(path).isRelative()) { path = QFileInfo(QDir(home), path).absoluteFilePath(); } _pcSingleton->addPath(path); } - _pcSingleton->addPath(QString::fromLatin1("%1/icons").arg(QString::fromUtf8(App::GetApplication().getHomePath()))); - _pcSingleton->addPath(QString::fromLatin1("%1/icons").arg(QString::fromUtf8(App::GetApplication().Config()["UserAppData"].c_str()))); + _pcSingleton->addPath(QString::fromLatin1("%1/icons").arg(QString::fromStdString(App::Application::getHomePath()))); + _pcSingleton->addPath(QString::fromLatin1("%1/icons").arg(QString::fromStdString(App::Application::getUserAppDataDir()))); _pcSingleton->addPath(QLatin1String(":/icons/")); _pcSingleton->addPath(QLatin1String(":/Icons/")); } diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp index cd95d3ae31..3f44c28d87 100644 --- a/src/Gui/Command.cpp +++ b/src/Gui/Command.cpp @@ -1117,7 +1117,7 @@ void MacroCommand::activated(int iMsg) d = QDir(QString::fromUtf8(cMacroPath.c_str())); } else { - QString dirstr = QString::fromUtf8(App::GetApplication().getHomePath()) + QString::fromUtf8("Macro"); + QString dirstr = QString::fromStdString(App::Application::getHomePath()) + QString::fromLatin1("Macro"); d = QDir(dirstr); } diff --git a/src/Gui/DlgActionsImp.cpp b/src/Gui/DlgActionsImp.cpp index 35aa3b9f0b..f2c85ebb99 100644 --- a/src/Gui/DlgActionsImp.cpp +++ b/src/Gui/DlgActionsImp.cpp @@ -71,7 +71,7 @@ DlgCustomActionsImp::DlgCustomActionsImp( QWidget* parent ) for (unsigned int i=0; iactionMacros->insertItem(0,d[i],QVariant(false)); - QString systemMacroDirStr = QString::fromUtf8(App::GetApplication().getHomePath()) + QString::fromUtf8("Macro"); + QString systemMacroDirStr = QString::fromStdString(App::Application::getHomePath()) + QString::fromLatin1("Macro"); d = QDir(systemMacroDirStr, QLatin1String("*.FCMacro *.py")); if (d.exists()) { for (unsigned int i=0; isetText(0, dir[i]); } - QString dirstr = QString::fromUtf8(App::GetApplication().getHomePath()) + QString::fromUtf8("Macro"); + QString dirstr = QString::fromStdString(App::Application::getHomePath()) + QString::fromLatin1("Macro"); dir = QDir(dirstr, QLatin1String("*.FCMacro *.py")); ui->systemMacroListBox->clear(); @@ -268,7 +268,7 @@ void DlgMacroExecuteImp::accept() dir =QDir(this->macroPath); } else { - QString dirstr = QString::fromUtf8(App::GetApplication().getHomePath()) + QString::fromUtf8("Macro"); + QString dirstr = QString::fromStdString(App::Application::getHomePath()) + QString::fromLatin1("Macro"); dir = QDir(dirstr); } @@ -319,7 +319,7 @@ void DlgMacroExecuteImp::on_editButton_clicked() else { //index == 1 system-wide item = ui->systemMacroListBox->currentItem(); - dir.setPath(QString::fromUtf8(App::GetApplication().getHomePath()) + QString::fromUtf8("Macro")); + dir.setPath(QString::fromStdString(App::Application::getHomePath()) + QString::fromLatin1("Macro")); } if (!item) diff --git a/src/Gui/DocumentRecovery.cpp b/src/Gui/DocumentRecovery.cpp index 4f2d60006e..924c4e32fb 100644 --- a/src/Gui/DocumentRecovery.cpp +++ b/src/Gui/DocumentRecovery.cpp @@ -666,7 +666,7 @@ void DocumentRecoveryHandler::checkForPreviousCrashes(const std::function locks = tmp.entryInfoList(); for (QList::iterator it = locks.begin(); it != locks.end(); ++it) { QString bn = it->baseName(); diff --git a/src/Gui/DownloadItem.cpp b/src/Gui/DownloadItem.cpp index 43e59a26ba..6e87fbc5e8 100644 --- a/src/Gui/DownloadItem.cpp +++ b/src/Gui/DownloadItem.cpp @@ -273,7 +273,7 @@ void DownloadItem::init() QString DownloadItem::getDownloadDirectory() const { - QString exe = QString::fromLatin1(App::GetApplication().getExecutableName()); + QString exe = QString::fromStdString(App::Application::getExecutableName()); QString path = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); QString dirPath = QDir(path).filePath(exe); Base::Reference hPath = App::GetApplication().GetUserParameter().GetGroup("BaseApp") diff --git a/src/Gui/GuiApplication.cpp b/src/Gui/GuiApplication.cpp index b254658000..1a9e7e335f 100644 --- a/src/Gui/GuiApplication.cpp +++ b/src/Gui/GuiApplication.cpp @@ -177,7 +177,7 @@ public: , running(false) { timer->setSingleShot(true); - std::string exeName = App::GetApplication().getExecutableName(); + std::string exeName = App::Application::getExecutableName(); serverName = QString::fromStdString(exeName); } diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 35a335e9c3..b0dfe66630 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1490,7 +1490,7 @@ QPixmap MainWindow::aboutImage() const if (!about_path.empty() && about_image.isNull()) { QString path = QString::fromUtf8(about_path.c_str()); if (QDir(path).isRelative()) { - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); path = QFileInfo(QDir(home), path).absoluteFilePath(); } about_image.load(path); @@ -1517,7 +1517,7 @@ QPixmap MainWindow::splashImage() const if (splash_image.isNull()) { QString path = QString::fromUtf8(splash_path.c_str()); if (QDir(path).isRelative()) { - QString home = QString::fromUtf8(App::GetApplication().getHomePath()); + QString home = QString::fromStdString(App::Application::getHomePath()); path = QFileInfo(QDir(home), path).absoluteFilePath(); } diff --git a/src/Gui/NetworkRetriever.cpp b/src/Gui/NetworkRetriever.cpp index 8ba993e207..38e8528f62 100644 --- a/src/Gui/NetworkRetriever.cpp +++ b/src/Gui/NetworkRetriever.cpp @@ -418,7 +418,7 @@ Action * StdCmdDownloadOnlineHelp::createAction(void) { Action *pcAction; - QString exe = QString::fromLatin1(App::GetApplication().getExecutableName()); + QString exe = QString::fromStdString(App::Application::getExecutableName()); pcAction = new Action(this,getMainWindow()); pcAction->setText(QCoreApplication::translate( this->className(), getMenuText())); @@ -437,7 +437,7 @@ Action * StdCmdDownloadOnlineHelp::createAction(void) void StdCmdDownloadOnlineHelp::languageChange() { if (_pcAction) { - QString exe = QString::fromLatin1(App::GetApplication().getExecutableName()); + QString exe = QString::fromStdString(App::Application::getExecutableName()); _pcAction->setText(QCoreApplication::translate( this->className(), getMenuText())); _pcAction->setToolTip(QCoreApplication::translate( @@ -483,7 +483,7 @@ void StdCmdDownloadOnlineHelp::activated(int iMsg) bool canStart = false; // set output directory - QString path = QString::fromUtf8(App::GetApplication().getHomePath()); + QString path = QString::fromStdString(App::Application::getHomePath()); path += QString::fromLatin1("/doc/"); ParameterGrp::handle hURLGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/OnlineHelp"); path = QString::fromUtf8(hURLGrp->GetASCII( "DownloadLocation", path.toLatin1() ).c_str()); diff --git a/src/Gui/OpenSCADNavigationStyle.cpp b/src/Gui/OpenSCADNavigationStyle.cpp index 1681ce5281..75b34dac11 100644 --- a/src/Gui/OpenSCADNavigationStyle.cpp +++ b/src/Gui/OpenSCADNavigationStyle.cpp @@ -69,7 +69,7 @@ const char* OpenSCADNavigationStyle::mouseButtons(ViewerMode mode) case NavigationStyle::DRAGGING: return QT_TR_NOOP("Press left mouse button and move mouse"); case NavigationStyle::ZOOMING: - return QT_TR_NOOP("Press SHIFT and middle or right mouse button"); + return QT_TR_NOOP("Press middle mouse button or SHIFT and right mouse button"); default: return "No description"; } diff --git a/src/Gui/SoFCOffscreenRenderer.cpp b/src/Gui/SoFCOffscreenRenderer.cpp index a54220fac7..01c393fd46 100644 --- a/src/Gui/SoFCOffscreenRenderer.cpp +++ b/src/Gui/SoFCOffscreenRenderer.cpp @@ -166,7 +166,7 @@ void SoFCOffscreenRenderer::writeToImageFile(const char* filename, const char* c img.setText(QLatin1String("Description"), QString::fromUtf8(comment)); img.setText(QLatin1String("Creation Time"), QDateTime::currentDateTime().toString()); img.setText(QLatin1String("Software"), - QString::fromUtf8(App::GetApplication().getExecutableName())); + QString::fromStdString(App::Application::getExecutableName())); } QFile f(QString::fromUtf8(filename)); @@ -296,7 +296,7 @@ std::string SoFCOffscreenRenderer::createMIBA(const SbMatrix& mat) const com << " \n" ; com << " Unknown\n" ; com << " " << QDateTime::currentDateTime().toString().toLatin1().constData() << "\n" ; - com << " " << App::GetApplication().getExecutableName() << " " << major << "." << minor << "\n" ; + com << " " << App::Application::getExecutableName() << " " << major << "." << minor << "\n" ; com << " Unknown\n"; com << " 1.0\n"; com << " \n" ; diff --git a/src/Gui/Splashscreen.cpp b/src/Gui/Splashscreen.cpp index 4b8e5b53fd..c899f92ae9 100644 --- a/src/Gui/Splashscreen.cpp +++ b/src/Gui/Splashscreen.cpp @@ -680,7 +680,7 @@ void AboutDialog::on_copyButton_clicked() QTextStream str(&data); std::map& config = App::Application::Config(); std::map::iterator it; - QString exe = QString::fromLatin1(App::GetApplication().getExecutableName()); + QString exe = QString::fromStdString(App::Application::getExecutableName()); QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp index b68456e7a4..241c35f655 100644 --- a/src/Gui/WidgetFactory.cpp +++ b/src/Gui/WidgetFactory.cpp @@ -431,7 +431,7 @@ void PyResource::load(const char* name) // checks whether it's a relative path if (fi.isRelative()) { QString cwd = QDir::currentPath (); - QString home= QDir(QString::fromUtf8(App::GetApplication().getHomePath())).path(); + QString home= QDir(QString::fromStdString(App::Application::getHomePath())).path(); // search in cwd and home path for the file // diff --git a/src/Mod/Fem/femtaskpanels/task_material_common.py b/src/Mod/Fem/femtaskpanels/task_material_common.py index 1ce0320928..4ceb7fa941 100644 --- a/src/Mod/Fem/femtaskpanels/task_material_common.py +++ b/src/Mod/Fem/femtaskpanels/task_material_common.py @@ -549,7 +549,7 @@ class _TaskPanel: # for example PoissonRatio value = Units.Quantity(inputfield_text).Value old_value = Units.Quantity(self.material[matProperty]).Value - # value = float(inputfield_text) # this fails on locale with komma + # value = float(inputfield_text) # this fails on locale with comma # https://forum.freecadweb.org/viewtopic.php?f=18&t=56912&p=523313#p523313 if value: if not (1 - variation < float(old_value) / value < 1 + variation): diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index f76e59bf15..88e7f2be6e 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -368,7 +368,7 @@ private: //makeHeader.SetName(new TCollection_HAsciiString((Standard_CString)Utf8Name.c_str())); makeHeader.SetAuthorValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Author", "Author").c_str())); makeHeader.SetOrganizationValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Company").c_str())); - makeHeader.SetOriginatingSystem(new TCollection_HAsciiString(App::GetApplication().getExecutableName())); + makeHeader.SetOriginatingSystem(new TCollection_HAsciiString(App::Application::getExecutableName().c_str())); makeHeader.SetDescriptionValue(1, new TCollection_HAsciiString("FreeCAD Model")); IFSelect_ReturnStatus ret = writer.Write(name8bit.c_str()); if (ret == IFSelect_RetError || ret == IFSelect_RetFail || ret == IFSelect_RetStop) { diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index 774c40e2f9..8f855a3a32 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -668,7 +668,7 @@ private: //makeHeader.SetName(new TCollection_HAsciiString((Standard_CString)Utf8Name.c_str())); makeHeader.SetAuthorValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Author", "Author").c_str())); makeHeader.SetOrganizationValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Company").c_str())); - makeHeader.SetOriginatingSystem(new TCollection_HAsciiString(App::GetApplication().getExecutableName())); + makeHeader.SetOriginatingSystem(new TCollection_HAsciiString(App::Application::getExecutableName().c_str())); makeHeader.SetDescriptionValue(1, new TCollection_HAsciiString("FreeCAD Model")); IFSelect_ReturnStatus ret = writer.Write(name8bit.c_str()); if (ret == IFSelect_RetError || ret == IFSelect_RetFail || ret == IFSelect_RetStop) { diff --git a/src/Mod/Mesh/App/Core/Approximation.h b/src/Mod/Mesh/App/Core/Approximation.h index 99d73be059..524fca7d25 100644 --- a/src/Mod/Mesh/App/Core/Approximation.h +++ b/src/Mod/Mesh/App/Core/Approximation.h @@ -514,7 +514,7 @@ public: dKoeff[ ct ] = pKoef[ ct ]; } /** - * Destruktor. Deletes the ImpicitSurface instance + * Destructor. Deletes the ImpicitSurface instance * of the WildMagic library */ ~FunctionContainer(){ delete pImplSurf; } diff --git a/src/Mod/Mesh/App/Core/Elements.cpp b/src/Mod/Mesh/App/Core/Elements.cpp index bd434698ce..53bc252add 100644 --- a/src/Mod/Mesh/App/Core/Elements.cpp +++ b/src/Mod/Mesh/App/Core/Elements.cpp @@ -180,22 +180,22 @@ MeshFacetArray& MeshFacetArray::operator = (const MeshFacetArray &rclFAry) bool MeshGeomEdge::ContainedByOrIntersectBoundingBox ( const Base::BoundBox3f &rclBB ) const { - // Test, ob alle Eckpunkte der Edge sich auf einer der 6 Seiten der BB befinden + // Test whether all corner points of the Edge are on one of the 6 sides of the BB if ((GetBoundBox() && rclBB) == false) return false; - // Test, ob Edge-BB komplett in BB liegt + // Test whether Edge-BB is completely in BB if (rclBB.IsInBox(GetBoundBox())) return true; - // Test, ob einer der Eckpunkte in BB liegt + // Test whether one of the corner points is in BB for (int i=0;i<2;i++) { if (rclBB.IsInBox(_aclPoints[i])) return true; } - // "echter" Test auf Schnitt + // "real" test for cut if (IntersectBoundingBox(rclBB)) return true; @@ -487,7 +487,7 @@ bool MeshGeomFacet::IsPointOf (const Base::Vector3f &rclPoint, float fDistance) clProjPt.ProjectToPlane(_aclPoints[0], clNorm); - // Kante P0 --> P1 + // Edge P0 --> P1 clEdge = clP1 - clP0; fLP = clProjPt.DistanceToLine(clP0, clEdge); if (fLP > 0.0f) @@ -500,9 +500,9 @@ bool MeshGeomFacet::IsPointOf (const Base::Vector3f &rclPoint, float fDistance) } else return false; - } + } - // Kante P0 --> P2 + // Edge P0 --> P2 clEdge = clP2 - clP0; fLP = clProjPt.DistanceToLine(clP0, clEdge); if (fLP > 0.0f) @@ -515,9 +515,9 @@ bool MeshGeomFacet::IsPointOf (const Base::Vector3f &rclPoint, float fDistance) } else return false; - } + } - // Kante P1 --> P2 + // Edge P1 --> P2 clEdge = clP2 - clP1; fLP = clProjPt.DistanceToLine(clP1, clEdge); if (fLP > 0.0f) @@ -537,7 +537,7 @@ bool MeshGeomFacet::IsPointOf (const Base::Vector3f &rclPoint, float fDistance) bool MeshGeomFacet::IsPointOfFace (const Base::Vector3f& rclP, float fDistance) const { - // effektivere Implementierung als in MeshGeomFacet::IsPointOf + // more effective implementation than in MeshGeomFacet::IsPointOf // Base::Vector3f a(_aclPoints[0].x, _aclPoints[0].y, _aclPoints[0].z); Base::Vector3f b(_aclPoints[1].x, _aclPoints[1].y, _aclPoints[1].z); @@ -907,7 +907,7 @@ bool MeshGeomFacet::Foraminate (const Base::Vector3f &P, const Base::Vector3f &d bool MeshGeomFacet::IntersectPlaneWithLine (const Base::Vector3f &rclPt, const Base::Vector3f &rclDir, Base::Vector3f &rclRes) const { - // berechne den Schnittpunkt Gerade <-> Ebene + // calculate the intersection of the straight line <-> plane if ( fabs(rclDir * GetNormal()) < 1e-3f ) return false; // line and plane are parallel @@ -979,7 +979,7 @@ void MeshGeomFacet::SubSample (float fStep, std::vector &rclPoin Base::Vector3f clVecAC(C - A); Base::Vector3f clVecBC(C - B); - // laengste Achse entspricht AB + // longest axis corresponds to AB float fLenAB = clVecAB.Length(); float fLenAC = clVecAC.Length(); float fLenBC = clVecBC.Length(); diff --git a/src/Mod/Mesh/Gui/Resources/Mesh.qrc b/src/Mod/Mesh/Gui/Resources/Mesh.qrc index 3c358b6c78..5dbfb6d409 100644 --- a/src/Mod/Mesh/Gui/Resources/Mesh.qrc +++ b/src/Mod/Mesh/Gui/Resources/Mesh.qrc @@ -42,6 +42,8 @@ icons/RegularSolids/Mesh_Ellipsoid.svg icons/RegularSolids/Mesh_Sphere.svg icons/RegularSolids/Mesh_Torus.svg + + translations/Mesh_af.qm translations/Mesh_de.qm translations/Mesh_fi.qm diff --git a/src/Mod/Part/Gui/ViewProvider2DObject.cpp b/src/Mod/Part/Gui/ViewProvider2DObject.cpp index 3c1ad047a4..a19a47803c 100644 --- a/src/Mod/Part/Gui/ViewProvider2DObject.cpp +++ b/src/Mod/Part/Gui/ViewProvider2DObject.cpp @@ -274,7 +274,7 @@ void ViewProvider2DObjectGrid::onChanged(const App::Property* prop) ViewProviderPart::onChanged(prop); if (prop == &ShowGrid || prop == &ShowOnlyInEditMode || prop == &Visibility) { - if (ShowGrid.getValue() && Visibility.getValue() && !(ShowOnlyInEditMode.getValue() && !this->isEditing())) + if (ShowGrid.getValue() && ((Visibility.getValue() && !ShowOnlyInEditMode.getValue()) || this->isEditing())) createGrid(); else Gui::coinRemoveAllChildren(GridRoot); diff --git a/src/Mod/Part/Gui/ViewProvider2DObject.h b/src/Mod/Part/Gui/ViewProvider2DObject.h index a6fd7b9221..135265d0b8 100644 --- a/src/Mod/Part/Gui/ViewProvider2DObject.h +++ b/src/Mod/Part/Gui/ViewProvider2DObject.h @@ -21,8 +21,8 @@ ***************************************************************************/ -#ifndef PARTGUI_IEWPROVIDER2DOBJECT_H -#define PARTGUI_IEWPROVIDER2DOBJECT_H +#ifndef PARTGUI_VIEWPROVIDER2DOBJECT_H +#define PARTGUI_VIEWPROVIDER2DOBJECT_H #include "ViewProvider.h" #include @@ -103,5 +103,5 @@ typedef Gui::ViewProviderPythonFeatureT ViewProvider2DObje } // namespace PartGui -#endif // PARTGUI_IEWPROVIDER2DOBJECT_H +#endif // PARTGUI_VIEWPROVIDER2DOBJECT_H diff --git a/src/Mod/PartDesign/Gui/DlgActiveBody.cpp b/src/Mod/PartDesign/Gui/DlgActiveBody.cpp index 9aeb1b6c36..fb4841d94f 100644 --- a/src/Mod/PartDesign/Gui/DlgActiveBody.cpp +++ b/src/Mod/PartDesign/Gui/DlgActiveBody.cpp @@ -28,6 +28,7 @@ # include #endif +#include #include #include "DlgActiveBody.h" @@ -92,10 +93,15 @@ void DlgActiveBody::accept() App::DocumentObject* selectedBody = selectedItems[0]->data(Qt::UserRole).value(); - if (selectedBody) + if (selectedBody) { activeBody = makeBodyActive(selectedBody, _doc); - else + } + else { + // A transaction must be created as otherwise the undo/redo is broken + App::GetApplication().setActiveTransaction(QT_TRANSLATE_NOOP("Command", "Add a Body"), true); activeBody = makeBody(_doc); + App::GetApplication().closeActiveTransaction(); + } QDialog::accept(); } diff --git a/src/Mod/Path/Gui/AppPathGuiPy.cpp b/src/Mod/Path/Gui/AppPathGuiPy.cpp index a442244b41..062da3a069 100644 --- a/src/Mod/Path/Gui/AppPathGuiPy.cpp +++ b/src/Mod/Path/Gui/AppPathGuiPy.cpp @@ -82,7 +82,7 @@ private: wc.restoreCursor(); try { - std::string path = App::GetApplication().getHomePath(); + std::string path = App::Application::getHomePath(); path += "Mod/Path/PathScripts/post/"; QDir dir1(QString::fromUtf8(path.c_str()), QString::fromLatin1("*_pre.py")); std::string cMacroPath = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Macro") @@ -149,7 +149,7 @@ private: wc.restoreCursor(); try { - std::string path = App::GetApplication().getHomePath(); + std::string path = App::Application::getHomePath(); path += "Mod/Path/PathScripts/post/"; QDir dir1(QString::fromUtf8(path.c_str()), QString::fromLatin1("*_pre.py")); std::string cMacroPath = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Macro") @@ -225,7 +225,7 @@ private: if (objlist.size() == 0) throw Py::RuntimeError("No object to export"); - std::string path = App::GetApplication().getHomePath(); + std::string path = App::Application::getHomePath(); path += "Mod/Path/PathScripts/post/"; QDir dir1(QString::fromUtf8(path.c_str()), QString::fromLatin1("*_post.py")); std::string cMacroPath = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Macro") diff --git a/src/Mod/Raytracing/App/AppRaytracingPy.cpp b/src/Mod/Raytracing/App/AppRaytracingPy.cpp index 5b124e91fc..dc6a528415 100644 --- a/src/Mod/Raytracing/App/AppRaytracingPy.cpp +++ b/src/Mod/Raytracing/App/AppRaytracingPy.cpp @@ -222,7 +222,7 @@ private: if (! PyArg_ParseTuple(args.ptr(), "ss",&FileName,&DestDir)) throw Py::Exception(); - std::string resName = App::GetApplication().getHomePath(); + std::string resName = App::Application::getHomePath(); resName += "Mod"; resName += PATHSEP ; resName += "Raytracing"; diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp index bebd6a5844..81a2ec0077 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp @@ -264,9 +264,6 @@ void TaskSketcherGeneral::onChangedSketchView(const Gui::ViewProvider& vp, QSignalBlocker block(widget); widget->checkGridView(sketchView->ShowGrid.getValue()); widget->enableGridSettings(sketchView->ShowGrid.getValue()); - if (sketchView->ShowGrid.getValue()) { - sketchView->createGrid(); - } } else if (&sketchView->GridSize == &prop) { QSignalBlocker block(widget); @@ -293,7 +290,6 @@ void TaskSketcherGeneral::onToggleGridView(bool on) Base::ConnectionBlocker block(changedSketchView); sketchView->ShowGrid.setValue(on); widget->enableGridSettings(on); - if (on) sketchView->createGrid(); } void TaskSketcherGeneral::onSetGridSize(double val) diff --git a/src/Mod/Sketcher/Gui/TaskSketcherValidation.ui b/src/Mod/Sketcher/Gui/TaskSketcherValidation.ui index 4cf647b8cf..bde339ba91 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherValidation.ui +++ b/src/Mod/Sketcher/Gui/TaskSketcherValidation.ui @@ -6,32 +6,57 @@ 0 0 - 311 - 453 + 266 + 684 Sketcher validation - - + + + + Reversed external geometry + + + + + + Finds reversed external geometries + + + Find + + + + + + + Fixes found reversed external geometries by swapping their endpoints + + + Swap endpoints in constraints + + + + + + + + + + Fixes found missing coincidences by adding extra coincident constrains + Missing coincidences - - - - Tolerance: - - - - - - + + If checked, construction geometries are ignored in the search + Ignore construction geometry @@ -42,11 +67,22 @@ + + Finds and displays missing coincidences found in the sketch +This is done by analyzing the sketch geometries and constraints + Find + + + + Tolerance: + + + @@ -54,17 +90,17 @@ - - - - Highlight open vertexes + + + + Defines the X/Y tolerance inside which missing coincidences are searched. - + Invalid constraints @@ -72,6 +108,9 @@ + + Finds invalid/malformed constrains in the sketch + Find @@ -79,6 +118,9 @@ + + Tries to fix found invalid constraints + Fix @@ -86,6 +128,9 @@ + + Deletes constrains refering to external geometry + Delete constraints to external geom. @@ -94,7 +139,39 @@ - + + + + Open and non-manifold vertexes + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + Highlights open and non-manifold vertexes that could lead to error if sketch is used to generate solids +This is purely based on topological shape of the sketch and not on its geometry/constrain set. + + + Highlight troublesome vertexes + + + + + + + Degenerated geometry @@ -102,6 +179,9 @@ + + Finds degenerated geometries in the sketch + Find @@ -109,6 +189,9 @@ + + Tries to fix found degenerated geometries + Fix @@ -117,30 +200,7 @@ - - - - Reversed external geometry - - - - - - Find - - - - - - - Swap endpoints in constraints - - - - - - - + Constraint orientation locking @@ -148,6 +208,9 @@ + + Enables/updates constraint orientation locking + Enable/Update @@ -155,6 +218,9 @@ + + Disables constraint orientation locking + Disable diff --git a/src/Mod/Spreadsheet/App/PropertySheet.cpp b/src/Mod/Spreadsheet/App/PropertySheet.cpp index 286b72890f..265f8d7697 100644 --- a/src/Mod/Spreadsheet/App/PropertySheet.cpp +++ b/src/Mod/Spreadsheet/App/PropertySheet.cpp @@ -351,7 +351,7 @@ void PropertySheet::copyCells(Base::Writer& writer, const std::vector& ra writer.incInd(); do { auto cell = getValue(*range); - if (cell) { + if (cell && cell->isUsed()) { cell->save(writer); } else { diff --git a/src/Mod/Spreadsheet/Gui/SheetModel.cpp b/src/Mod/Spreadsheet/Gui/SheetModel.cpp index ed12e8ad44..c289dcc121 100644 --- a/src/Mod/Spreadsheet/Gui/SheetModel.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetModel.cpp @@ -547,6 +547,16 @@ bool SheetModel::setData(const QModelIndex & index, const QVariant & value, int try { QString str = value.toString(); + + // Check to see if this is already the value in the cell, and skip the update if so + auto cell = sheet->getCell(address); + if (cell) { + std::string oldContent; + cell->getStringContent(oldContent); + if (str == QString::fromStdString(oldContent)) + return true; + } + Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Edit cell")); // Because of possible complication of recursively escaped // characters, let's take a shortcut and bypass the command diff --git a/src/WindowsInstaller/README.md b/src/WindowsInstaller/README.md index 542f264de7..777ce80e43 100644 --- a/src/WindowsInstaller/README.md +++ b/src/WindowsInstaller/README.md @@ -20,7 +20,7 @@ To build the installer you can do the following: (You can alternatively get nsProcess from https://nsis.sourceforge.io/NsProcess_plugin) 7. Copy all FreeCAD files to the folder "~\FreeCAD" e.g. "C:\FreeCAD\Installer\FreeCAD" -8. If you use a version of FreeCAD that was compiled using another MSVC version than MSVC 2017, +8. If you use a version of FreeCAD that was compiled using another MSVC version than MSVC 2019, copy its distributable DLLs to the folder FILES_DEPS (see step 3). 9. Right-click on the file FreeCAD-installer.nsi and choose "Compile NSIS script" to compile the installer. diff --git a/src/WindowsInstaller/include/declarations.nsh b/src/WindowsInstaller/include/declarations.nsh index 03e26d9b6a..c63da6e971 100644 --- a/src/WindowsInstaller/include/declarations.nsh +++ b/src/WindowsInstaller/include/declarations.nsh @@ -26,9 +26,9 @@ Configuration and variables of FreeCAD installer !define APP_DIR_USERDATA ${APP_NAME} #!define APP_DIR_USERDATA "${APP_NAME}${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}" !define APP_INFO "${APP_NAME} - Your Own 3D Parametric Modeler" -!define APP_WEBPAGE "https://freecadweb.org/" +!define APP_WEBPAGE "https://freecad.org/" !define APP_WEBPAGE_INFO "${APP_NAME} Website" -!define APP_WIKI "https://www.freecadweb.org/wiki/Main_Page" +!define APP_WIKI "https://www.freecad.org/wiki/Main_Page" !define APP_WIKI_INFO "${APP_NAME} Wiki" !define APP_COPYRIGHT "${APP_NAME} is Copyright © 2001-${COPYRIGHT_YEAR} by the ${APP_NAME} Team" diff --git a/src/WindowsInstaller/include/gui.nsh b/src/WindowsInstaller/include/gui.nsh index ac0d6b5c80..16a285284f 100644 --- a/src/WindowsInstaller/include/gui.nsh +++ b/src/WindowsInstaller/include/gui.nsh @@ -66,7 +66,7 @@ BrandingText " " !define MUI_FINISHPAGE_SHOWREADME_FUNCTION StartFreeCAD !define MUI_FINISHPAGE_SHOWREADME_TEXT $(FinishPageRun) !define MUI_FINISHPAGE_LINK $(TEXT_FINISH_WEBSITE) -!define MUI_FINISHPAGE_LINK_LOCATION "https://freecadweb.org/" +!define MUI_FINISHPAGE_LINK_LOCATION "https://freecad.org/" #!define MUI_PAGE_CUSTOMFUNCTION_SHOW CheckDesktopShortcut !insertmacro MUI_PAGE_FINISH diff --git a/src/WindowsInstaller/lang/arabic.nsh b/src/WindowsInstaller/lang/arabic.nsh index a97346e770..f7771f51af 100644 --- a/src/WindowsInstaller/lang/arabic.nsh +++ b/src/WindowsInstaller/lang/arabic.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "هذا المساعد سوف يرشدك خلال #${LangFileString} TEXT_CONFIGURE_PYTHON "بناء سكربتات بايثون..." ${LangFileString} TEXT_FINISH_DESKTOP "إنشاء اختصار سطح المكتب" -${LangFileString} TEXT_FINISH_WEBSITE "زيارة freecadweb.org لمشاهدة آخر الاخبار, الدعم والأفكار" +${LangFileString} TEXT_FINISH_WEBSITE "زيارة freecad.org لمشاهدة آخر الاخبار, الدعم والأفكار" #${LangFileString} FileTypeTitle "مستند - ليك" diff --git a/src/WindowsInstaller/lang/basque.nsh b/src/WindowsInstaller/lang/basque.nsh index 981d11bf20..7f4bfe2c86 100644 --- a/src/WindowsInstaller/lang/basque.nsh +++ b/src/WindowsInstaller/lang/basque.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Morroi honek $(^NameDA) aplikazioaren instalazio #${LangFileString} TEXT_CONFIGURE_PYTHON "Python script-ak konpilatzen..." ${LangFileString} TEXT_FINISH_DESKTOP "Sortu mahaigaineko lasterbidea" -${LangFileString} TEXT_FINISH_WEBSITE "Bisitatu freecadweb.org azken berriak, aholkuak eta laguntza lortzeko" +${LangFileString} TEXT_FINISH_WEBSITE "Bisitatu freecad.org azken berriak, aholkuak eta laguntza lortzeko" #${LangFileString} FileTypeTitle "FreeCAD-dokumentua" diff --git a/src/WindowsInstaller/lang/catalan.nsh b/src/WindowsInstaller/lang/catalan.nsh index 12a77adc31..2c9c5d32dc 100644 --- a/src/WindowsInstaller/lang/catalan.nsh +++ b/src/WindowsInstaller/lang/catalan.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Aquest assistent us guiarà en la instal·lació #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "Document FreeCAD" diff --git a/src/WindowsInstaller/lang/czech.nsh b/src/WindowsInstaller/lang/czech.nsh index 807cf7c82e..399945e327 100644 --- a/src/WindowsInstaller/lang/czech.nsh +++ b/src/WindowsInstaller/lang/czech.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Tento pomocník vás provede instalací FreeCADu #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "FreeCAD-dokumentů" diff --git a/src/WindowsInstaller/lang/danish.nsh b/src/WindowsInstaller/lang/danish.nsh index 9c43044e6f..9ef681a349 100644 --- a/src/WindowsInstaller/lang/danish.nsh +++ b/src/WindowsInstaller/lang/danish.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Denne guide vil installere FreeCAD på din compu #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "FreeCAD-Dokument" diff --git a/src/WindowsInstaller/lang/dutch.nsh b/src/WindowsInstaller/lang/dutch.nsh index e3cc15322f..07ddce249d 100644 --- a/src/WindowsInstaller/lang/dutch.nsh +++ b/src/WindowsInstaller/lang/dutch.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Dit installatie programma zal FreeCAD op uw syst #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "FreeCAD-Document" diff --git a/src/WindowsInstaller/lang/english.nsh b/src/WindowsInstaller/lang/english.nsh index 138c5aada0..fcf401586c 100644 --- a/src/WindowsInstaller/lang/english.nsh +++ b/src/WindowsInstaller/lang/english.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "This wizard will guide you through the installat #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org/ for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org/ for the latest news, support and tips" #${LangFileString} FileTypeTitle "FreeCAD-Document" diff --git a/src/WindowsInstaller/lang/french.nsh b/src/WindowsInstaller/lang/french.nsh index 5b4132444f..c75e5b9ce5 100644 --- a/src/WindowsInstaller/lang/french.nsh +++ b/src/WindowsInstaller/lang/french.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Cet assistant va vous guider tout au long de l'i #${LangFileString} TEXT_CONFIGURE_PYTHON "Compilation des scripts Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Créer un raccourci sur le bureau" -${LangFileString} TEXT_FINISH_WEBSITE "Consulter les dernières nouvelles, trucs et astuces sur le site freecadweb.org" +${LangFileString} TEXT_FINISH_WEBSITE "Consulter les dernières nouvelles, trucs et astuces sur le site freecad.org" #${LangFileString} FileTypeTitle "Document FreeCAD" diff --git a/src/WindowsInstaller/lang/galician.nsh b/src/WindowsInstaller/lang/galician.nsh index 48d684f2d9..f66e93e863 100644 --- a/src/WindowsInstaller/lang/galician.nsh +++ b/src/WindowsInstaller/lang/galician.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Este asistente vai-no guiar na instalación do F #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "Documento FreeCAD" diff --git a/src/WindowsInstaller/lang/german.nsh b/src/WindowsInstaller/lang/german.nsh index 44e831d58e..dbb04b10df 100644 --- a/src/WindowsInstaller/lang/german.nsh +++ b/src/WindowsInstaller/lang/german.nsh @@ -15,7 +15,7 @@ ${LangFileString} TEXT_WELCOME "Dieser Assistent wird Sie durch die Installation #${LangFileString} TEXT_CONFIGURE_PYTHON "Kompiliere Python Skripte..." ${LangFileString} TEXT_FINISH_DESKTOP "Ein Symbol auf der Arbeitsoberfläche erzeugen" -${LangFileString} TEXT_FINISH_WEBSITE "Besuchen Sie freecadweb.org für aktuelle Neuigkeiten" +${LangFileString} TEXT_FINISH_WEBSITE "Besuchen Sie freecad.org für aktuelle Neuigkeiten" #${LangFileString} FileTypeTitle "FreeCAD-Dokument" diff --git a/src/WindowsInstaller/lang/hungarian.nsh b/src/WindowsInstaller/lang/hungarian.nsh index 5230dc66a4..55e6ac43d5 100644 --- a/src/WindowsInstaller/lang/hungarian.nsh +++ b/src/WindowsInstaller/lang/hungarian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "A varázsló segítségével tudja telepíteni a #${LangFileString} TEXT_CONFIGURE_PYTHON "Python parancsfájlok fordítása..." ${LangFileString} TEXT_FINISH_DESKTOP "Indítóikon létrehozása Asztalon" -${LangFileString} TEXT_FINISH_WEBSITE "Látogasson el a freecadweb.org oldalra az aktuális hírekért, támogatásért és tippekért" +${LangFileString} TEXT_FINISH_WEBSITE "Látogasson el a freecad.org oldalra az aktuális hírekért, támogatásért és tippekért" #${LangFileString} FileTypeTitle "FreeCAD-dokumentum" diff --git a/src/WindowsInstaller/lang/indonesian.nsh b/src/WindowsInstaller/lang/indonesian.nsh index 1b92dd13b3..09282cc38a 100644 --- a/src/WindowsInstaller/lang/indonesian.nsh +++ b/src/WindowsInstaller/lang/indonesian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Program ini akan memandu anda dalam melakukan in #${LangFileString} TEXT_CONFIGURE_PYTHON "Proses kompilasi skrip Python ..." ${LangFileString} TEXT_FINISH_DESKTOP "Membuat pintasan ikon di destop" -${LangFileString} TEXT_FINISH_WEBSITE "Kunjungi freecadweb.org untuk berita terbaru serta dukungan" +${LangFileString} TEXT_FINISH_WEBSITE "Kunjungi freecad.org untuk berita terbaru serta dukungan" #${LangFileString} FileTypeTitle "Dokumen-FreeCAD" diff --git a/src/WindowsInstaller/lang/italian.nsh b/src/WindowsInstaller/lang/italian.nsh index 589ac1e945..4eff2860c0 100644 --- a/src/WindowsInstaller/lang/italian.nsh +++ b/src/WindowsInstaller/lang/italian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Verrete guidati nell'installazione di $(^NameDA) #${LangFileString} TEXT_CONFIGURE_PYTHON "Compilazione degli script Python in corso..." ${LangFileString} TEXT_FINISH_DESKTOP "Crea icona sul desktop" -${LangFileString} TEXT_FINISH_WEBSITE "Visitate freecadweb.org per ultime novità, aiuto e suggerimenti" +${LangFileString} TEXT_FINISH_WEBSITE "Visitate freecad.org per ultime novità, aiuto e suggerimenti" #${LangFileString} FileTypeTitle "Documento di FreeCAD" diff --git a/src/WindowsInstaller/lang/japanese.nsh b/src/WindowsInstaller/lang/japanese.nsh index b973095539..7320c9cfdc 100644 --- a/src/WindowsInstaller/lang/japanese.nsh +++ b/src/WindowsInstaller/lang/japanese.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "このウィザードが、あなたのFreeCAD #${LangFileString} TEXT_CONFIGURE_PYTHON "Pythonスクリプトをコンパイルしています..." ${LangFileString} TEXT_FINISH_DESKTOP "デスクトップにショートカットを作成する" -${LangFileString} TEXT_FINISH_WEBSITE "freecadweb.orgを開いて最新ニュースやサポート、ヒントなどを入手する" +${LangFileString} TEXT_FINISH_WEBSITE "freecad.orgを開いて最新ニュースやサポート、ヒントなどを入手する" #${LangFileString} FileTypeTitle "FreeCAD文書" diff --git a/src/WindowsInstaller/lang/norwegian.nsh b/src/WindowsInstaller/lang/norwegian.nsh index 6069b9278f..2e3293b4f1 100644 --- a/src/WindowsInstaller/lang/norwegian.nsh +++ b/src/WindowsInstaller/lang/norwegian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Denne veiviseren installerer FreeCAD på datamas #${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilerer Python script..." ${LangFileString} TEXT_FINISH_DESKTOP "Lager snarveg på skrivebordet" -${LangFileString} TEXT_FINISH_WEBSITE "Besøk freecadweb.org for de seneste nyhetene, hjelp og støtte" +${LangFileString} TEXT_FINISH_WEBSITE "Besøk freecad.org for de seneste nyhetene, hjelp og støtte" #${LangFileString} FileTypeTitle "FreeCAD-dokument" diff --git a/src/WindowsInstaller/lang/polish.nsh b/src/WindowsInstaller/lang/polish.nsh index 861959f5a4..8e9ad43d90 100644 --- a/src/WindowsInstaller/lang/polish.nsh +++ b/src/WindowsInstaller/lang/polish.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Kreator przeprowadzi Ciebie przez proces instala #${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilowanie skryptów Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Utwórz skrót na pulpicie" -${LangFileString} TEXT_FINISH_WEBSITE "Odwiedź freecadweb.org by poznać wiadomości i wskazówki lub skorzystać ze wsparcia" +${LangFileString} TEXT_FINISH_WEBSITE "Odwiedź freecad.org by poznać wiadomości i wskazówki lub skorzystać ze wsparcia" #${LangFileString} FileTypeTitle "Dokument FreeCAD" diff --git a/src/WindowsInstaller/lang/portuguese.nsh b/src/WindowsInstaller/lang/portuguese.nsh index df7aa3fbb5..24757e9b59 100644 --- a/src/WindowsInstaller/lang/portuguese.nsh +++ b/src/WindowsInstaller/lang/portuguese.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Este assistente de instalação irá guiá-lo at #${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando os scripts de Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Criar um atalho no ambiente de trabalho" -${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para as últimas notícias, suporte e dicas" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecad.org para as últimas notícias, suporte e dicas" #${LangFileString} FileTypeTitle "Documento FreeCAD" diff --git a/src/WindowsInstaller/lang/portugueseBR.nsh b/src/WindowsInstaller/lang/portugueseBR.nsh index b2925508e4..2658c70d98 100644 --- a/src/WindowsInstaller/lang/portugueseBR.nsh +++ b/src/WindowsInstaller/lang/portugueseBR.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Este assistente guiará você durante a instala #${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando scripts Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Criar atalho na área de trabalho" -${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para ver as últimas novidades do FreeCAD!" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecad.org para ver as últimas novidades do FreeCAD!" #${LangFileString} FileTypeTitle "Documento-FreeCAD" diff --git a/src/WindowsInstaller/lang/romanian.nsh b/src/WindowsInstaller/lang/romanian.nsh index c95950fe2c..2dadf8a9c5 100644 --- a/src/WindowsInstaller/lang/romanian.nsh +++ b/src/WindowsInstaller/lang/romanian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Acest asistent vă va ghida în procesul de inst #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "Document FreeCAD" diff --git a/src/WindowsInstaller/lang/russian.nsh b/src/WindowsInstaller/lang/russian.nsh index 92cc4169fd..879ebce14f 100644 --- a/src/WindowsInstaller/lang/russian.nsh +++ b/src/WindowsInstaller/lang/russian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Этот мастер проведет вас ч #${LangFileString} TEXT_CONFIGURE_PYTHON "Компиляция скриптов Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Создать ярлык на рабочем столе" -${LangFileString} TEXT_FINISH_WEBSITE "Перейти на freecadweb.org за новостями, поддержкой и советами" +${LangFileString} TEXT_FINISH_WEBSITE "Перейти на freecad.org за новостями, поддержкой и советами" #${LangFileString} FileTypeTitle "FreeCAD-Document" diff --git a/src/WindowsInstaller/lang/slovak.nsh b/src/WindowsInstaller/lang/slovak.nsh index 14e0aef61e..910538a125 100644 --- a/src/WindowsInstaller/lang/slovak.nsh +++ b/src/WindowsInstaller/lang/slovak.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Tento sprievodca Vám pomáha inštalovať FreeC #${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilácia Python skriptov..." ${LangFileString} TEXT_FINISH_DESKTOP "Vytvoriť skratku pre pracovnú plochu" -${LangFileString} TEXT_FINISH_WEBSITE "Navštívte freecadweb.org pre posledné novinky, podporu a tipy" +${LangFileString} TEXT_FINISH_WEBSITE "Navštívte freecad.org pre posledné novinky, podporu a tipy" #${LangFileString} FileTypeTitle "FreeCAD dokument" diff --git a/src/WindowsInstaller/lang/spanish.nsh b/src/WindowsInstaller/lang/spanish.nsh index eb6c5a2079..3540bf480b 100644 --- a/src/WindowsInstaller/lang/spanish.nsh +++ b/src/WindowsInstaller/lang/spanish.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Este programa instalará FreeCAD en su ordenador #${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando guiones Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Crear acceso directo en el escritorio" -${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para últimas noticias, ayuda y consejos" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecad.org para últimas noticias, ayuda y consejos" #${LangFileString} FileTypeTitle "Documento FreeCAD" diff --git a/src/WindowsInstaller/lang/swedish.nsh b/src/WindowsInstaller/lang/swedish.nsh index 22bb333d20..0176d07b3f 100644 --- a/src/WindowsInstaller/lang/swedish.nsh +++ b/src/WindowsInstaller/lang/swedish.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Denna guide tar dig igenom installationen av $(^ #${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilerar Pythonskript..." ${LangFileString} TEXT_FINISH_DESKTOP "Skapa skrivbordsgenväg" -${LangFileString} TEXT_FINISH_WEBSITE "Besök freecadweb.org för de senaste nyheterna, support och tips" +${LangFileString} TEXT_FINISH_WEBSITE "Besök freecad.org för de senaste nyheterna, support och tips" #${LangFileString} FileTypeTitle "FreeCAD-dokument" diff --git a/src/WindowsInstaller/lang/turkish.nsh b/src/WindowsInstaller/lang/turkish.nsh index dd1511abcf..12f4eedab2 100644 --- a/src/WindowsInstaller/lang/turkish.nsh +++ b/src/WindowsInstaller/lang/turkish.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "Bu sihirbaz size FreeCAD programını kuracak.$\ #${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." ${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" -${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecad.org for the latest news, support and tips" #${LangFileString} FileTypeTitle "FreeCAD-Document" diff --git a/src/WindowsInstaller/lang/ukrainian.nsh b/src/WindowsInstaller/lang/ukrainian.nsh index d1e4f975f2..fac5191ab4 100644 --- a/src/WindowsInstaller/lang/ukrainian.nsh +++ b/src/WindowsInstaller/lang/ukrainian.nsh @@ -14,7 +14,7 @@ ${LangFileString} TEXT_WELCOME "За допомогою цього майстр #${LangFileString} TEXT_CONFIGURE_PYTHON "Обробка скриптів Python..." ${LangFileString} TEXT_FINISH_DESKTOP "Створити значок на стільниці" -${LangFileString} TEXT_FINISH_WEBSITE "Відвідати freecadweb.org, щоб ознайомитися з новинами, довідковими матеріалами та підказками" +${LangFileString} TEXT_FINISH_WEBSITE "Відвідати freecad.org, щоб ознайомитися з новинами, довідковими матеріалами та підказками" #${LangFileString} FileTypeTitle "Документ FreeCAD" diff --git a/src/WindowsInstaller/setup/configure.nsh b/src/WindowsInstaller/setup/configure.nsh index dae07512f0..d42ef4d6bb 100644 --- a/src/WindowsInstaller/setup/configure.nsh +++ b/src/WindowsInstaller/setup/configure.nsh @@ -45,9 +45,9 @@ Section -InstallData WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayVersion" "${APP_VERSION}" WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayIcon" "$INSTDIR\${APP_RUN}" WriteRegStr SHCTX ${APP_UNINST_KEY} "URLUpdateInfo" "${APP_WEBPAGE}" - WriteRegStr SHCTX ${APP_UNINST_KEY} "URLInfoAbout" "https://www.freecadweb.org/" + WriteRegStr SHCTX ${APP_UNINST_KEY} "URLInfoAbout" "https://www.freecad.org/" WriteRegStr SHCTX ${APP_UNINST_KEY} "Publisher" "${APP_NAME} Team" - WriteRegStr SHCTX ${APP_UNINST_KEY} "HelpLink" "https://forum.freecadweb.org/" + WriteRegStr SHCTX ${APP_UNINST_KEY} "HelpLink" "https://forum.freecad.org/" WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoModify" 0x00000001 WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoRepair" 0x00000001 WriteRegStr SHCTX ${APP_UNINST_KEY} "StartMenu" "$SMPROGRAMS\$StartmenuFolder"