Merge branch 'master' into RRF-PP-for-Path

This commit is contained in:
P-C-R
2021-11-05 10:42:26 +01:00
committed by GitHub
65 changed files with 227 additions and 147 deletions

View File

@@ -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()

View File

@@ -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<std::string> _pendingDocsReopen;
std::map<std::string,std::vector<std::string> > _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<std::string,std::set<std::string> > _docReloadAttempts;

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -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());

View File

@@ -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;
}

View File

@@ -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");

View File

@@ -97,15 +97,15 @@ BitmapFactoryInst& BitmapFactoryInst::instance(void)
std::map<std::string,std::string>::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/"));
}

View File

@@ -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);
}

View File

@@ -71,7 +71,7 @@ DlgCustomActionsImp::DlgCustomActionsImp( QWidget* parent )
for (unsigned int i=0; i<d.count(); i++ )
ui->actionMacros->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; i<d.count(); i++ ) {

View File

@@ -121,7 +121,7 @@ void DlgMacroExecuteImp::fillUpList(void)
item->setText(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)

View File

@@ -666,7 +666,7 @@ void DocumentRecoveryHandler::checkForPreviousCrashes(const std::function<void(Q
tmp.setNameFilters(QStringList() << QString::fromLatin1("*.lock"));
tmp.setFilter(QDir::Files);
QString exeName = QString::fromLatin1(App::GetApplication().getExecutableName());
QString exeName = QString::fromStdString(App::Application::getExecutableName());
QList<QFileInfo> locks = tmp.entryInfoList();
for (QList<QFileInfo>::iterator it = locks.begin(); it != locks.end(); ++it) {
QString bn = it->baseName();

View File

@@ -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<ParameterGrp> hPath = App::GetApplication().GetUserParameter().GetGroup("BaseApp")

View File

@@ -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);
}

View File

@@ -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();
}

View File

@@ -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());

View File

@@ -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";
}

View File

@@ -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 << " <Source>\n" ;
com << " <Creator>Unknown</Creator>\n" ;
com << " <CreationDate>" << QDateTime::currentDateTime().toString().toLatin1().constData() << "</CreationDate>\n" ;
com << " <CreatingSystem>" << App::GetApplication().getExecutableName() << " " << major << "." << minor << "</CreatingSystem>\n" ;
com << " <CreatingSystem>" << App::Application::getExecutableName() << " " << major << "." << minor << "</CreatingSystem>\n" ;
com << " <PartNumber>Unknown</PartNumber>\n";
com << " <Revision>1.0</Revision>\n";
com << " </Source>\n" ;

View File

@@ -680,7 +680,7 @@ void AboutDialog::on_copyButton_clicked()
QTextStream str(&data);
std::map<std::string, std::string>& config = App::Application::Config();
std::map<std::string,std::string>::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());

View File

@@ -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
//

View File

@@ -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):

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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; }

View File

@@ -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<Base::Vector3f> &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();

View File

@@ -42,6 +42,8 @@
<file>icons/RegularSolids/Mesh_Ellipsoid.svg</file>
<file>icons/RegularSolids/Mesh_Sphere.svg</file>
<file>icons/RegularSolids/Mesh_Torus.svg</file>
</qresource>
<qresource>
<file>translations/Mesh_af.qm</file>
<file>translations/Mesh_de.qm</file>
<file>translations/Mesh_fi.qm</file>

View File

@@ -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);

View File

@@ -21,8 +21,8 @@
***************************************************************************/
#ifndef PARTGUI_IEWPROVIDER2DOBJECT_H
#define PARTGUI_IEWPROVIDER2DOBJECT_H
#ifndef PARTGUI_VIEWPROVIDER2DOBJECT_H
#define PARTGUI_VIEWPROVIDER2DOBJECT_H
#include "ViewProvider.h"
#include <App/PropertyUnits.h>
@@ -103,5 +103,5 @@ typedef Gui::ViewProviderPythonFeatureT<ViewProvider2DObject> ViewProvider2DObje
} // namespace PartGui
#endif // PARTGUI_IEWPROVIDER2DOBJECT_H
#endif // PARTGUI_VIEWPROVIDER2DOBJECT_H

View File

@@ -28,6 +28,7 @@
# include <QMessageBox>
#endif
#include <App/Application.h>
#include <Gui/Application.h>
#include "DlgActiveBody.h"
@@ -92,10 +93,15 @@ void DlgActiveBody::accept()
App::DocumentObject* selectedBody =
selectedItems[0]->data(Qt::UserRole).value<App::DocumentObject*>();
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();
}

View File

@@ -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")

View File

@@ -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";

View File

@@ -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)

View File

@@ -6,32 +6,57 @@
<rect>
<x>0</x>
<y>0</y>
<width>311</width>
<height>453</height>
<width>266</width>
<height>684</height>
</rect>
</property>
<property name="windowTitle">
<string>Sketcher validation</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<item row="5" column="0">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Reversed external geometry</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QPushButton" name="findReversed">
<property name="toolTip">
<string>Finds reversed external geometries</string>
</property>
<property name="text">
<string>Find</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="swapReversed">
<property name="toolTip">
<string>Fixes found reversed external geometries by swapping their endpoints</string>
</property>
<property name="text">
<string>Swap endpoints in constraints</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_1">
<property name="toolTip">
<string>Fixes found missing coincidences by adding extra coincident constrains</string>
</property>
<property name="title">
<string>Missing coincidences</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Tolerance:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxTolerance"/>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="checkBoxIgnoreConstruction">
<property name="toolTip">
<string>If checked, construction geometries are ignored in the search</string>
</property>
<property name="text">
<string>Ignore construction geometry</string>
</property>
@@ -42,11 +67,22 @@
</item>
<item row="2" column="0">
<widget class="QPushButton" name="findButton">
<property name="toolTip">
<string>Finds and displays missing coincidences found in the sketch
This is done by analyzing the sketch geometries and constraints</string>
</property>
<property name="text">
<string>Find</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Tolerance:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="fixButton">
<property name="text">
@@ -54,17 +90,17 @@
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QPushButton" name="highlightButton">
<property name="text">
<string>Highlight open vertexes</string>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxTolerance">
<property name="toolTip">
<string>Defines the X/Y tolerance inside which missing coincidences are searched.</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Invalid constraints</string>
@@ -72,6 +108,9 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPushButton" name="findConstraint">
<property name="toolTip">
<string>Finds invalid/malformed constrains in the sketch</string>
</property>
<property name="text">
<string>Find</string>
</property>
@@ -79,6 +118,9 @@
</item>
<item row="0" column="1">
<widget class="QPushButton" name="fixConstraint">
<property name="toolTip">
<string>Tries to fix found invalid constraints</string>
</property>
<property name="text">
<string>Fix</string>
</property>
@@ -86,6 +128,9 @@
</item>
<item row="1" column="0" colspan="2">
<widget class="QPushButton" name="delConstrExtr">
<property name="toolTip">
<string>Deletes constrains refering to external geometry</string>
</property>
<property name="text">
<string>Delete constraints to external geom.</string>
</property>
@@ -94,7 +139,39 @@
</layout>
</widget>
</item>
<item row="2" column="0">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_0">
<property name="title">
<string>Open and non-manifold vertexes</string>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="highlightButton">
<property name="toolTip">
<string>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.</string>
</property>
<property name="text">
<string>Highlight troublesome vertexes</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Degenerated geometry</string>
@@ -102,6 +179,9 @@
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="0">
<widget class="QPushButton" name="findDegenerated">
<property name="toolTip">
<string>Finds degenerated geometries in the sketch</string>
</property>
<property name="text">
<string>Find</string>
</property>
@@ -109,6 +189,9 @@
</item>
<item row="0" column="1">
<widget class="QPushButton" name="fixDegenerated">
<property name="toolTip">
<string>Tries to fix found degenerated geometries</string>
</property>
<property name="text">
<string>Fix</string>
</property>
@@ -117,30 +200,7 @@
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Reversed external geometry</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QPushButton" name="findReversed">
<property name="text">
<string>Find</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="swapReversed">
<property name="text">
<string>Swap endpoints in constraints</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0">
<item row="6" column="0">
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Constraint orientation locking</string>
@@ -148,6 +208,9 @@
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QPushButton" name="orientLockEnable">
<property name="toolTip">
<string>Enables/updates constraint orientation locking</string>
</property>
<property name="text">
<string>Enable/Update</string>
</property>
@@ -155,6 +218,9 @@
</item>
<item row="1" column="0">
<widget class="QPushButton" name="orientLockDisable">
<property name="toolTip">
<string>Disables constraint orientation locking</string>
</property>
<property name="text">
<string>Disable</string>
</property>

View File

@@ -351,7 +351,7 @@ void PropertySheet::copyCells(Base::Writer& writer, const std::vector<Range>& ra
writer.incInd();
do {
auto cell = getValue(*range);
if (cell) {
if (cell && cell->isUsed()) {
cell->save(writer);
}
else {

View File

@@ -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

View File

@@ -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.

View File

@@ -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"

View File

@@ -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

View File

@@ -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 "مستند - ليك"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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ů"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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文書"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"