[TD]handle bad preferences in AppImage temp dir

This commit is contained in:
wandererfan
2020-08-13 13:26:14 -04:00
committed by WandererFan
parent 1c432fd617
commit f56825c79f
5 changed files with 34 additions and 36 deletions

View File

@@ -106,8 +106,6 @@ DrawGeomHatch::DrawGeomHatch(void)
m_saveFile = "";
m_saveName = "";
// getParameters();
std::string patFilter("pat files (*.pat *.PAT);;All files (*)");
FilePattern.setFilter(patFilter);
@@ -538,31 +536,6 @@ TopoDS_Face DrawGeomHatch::extractFace(DrawViewPart* source, int iface )
return result;
}
void DrawGeomHatch::getParameters(void)
{
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/PAT");
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/PAT/";
std::string defaultFileName = defaultDir + "FCPAT.pat";
QString patternFileName = QString::fromStdString(hGrp->GetASCII("FilePattern",defaultFileName.c_str()));
if (patternFileName.isEmpty()) {
patternFileName = QString::fromStdString(defaultFileName);
}
QFileInfo tfi(patternFileName);
if (tfi.isReadable()) {
FilePattern.setValue(patternFileName.toUtf8().constData());
} else {
Base::Console().Error("DrawGeomHatch: PAT file: %s Not Found\n",patternFileName.toUtf8().constData());
}
hGrp = App::GetApplication().GetUserParameter()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/PAT");
std::string defaultNamePattern = "Diamond";
NamePattern.setValue(hGrp->GetASCII("NamePattern",defaultNamePattern.c_str()));
}
PyObject *DrawGeomHatch::getPyObject(void)
{
if (PythonObject.is(Py::_None())) {
@@ -646,9 +619,12 @@ std::string DrawGeomHatch::prefGeomHatchFile(void)
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/PAT/";
std::string defaultFileName = defaultDir + "FCPAT.pat";
std::string result = hGrp->GetASCII("FilePattern", defaultFileName.c_str());
if (result.empty()) {
std::string prefHatchFile = hGrp->GetASCII("FilePattern", defaultFileName.c_str());
std::string result = prefHatchFile;
Base::FileInfo fi(result);
if (!fi.isReadable()) {
result = defaultFileName;
Base::Console().Warning("Pat Hatch File: %s is not readable\n", prefHatchFile.c_str());
}
return result;
}

View File

@@ -101,7 +101,6 @@ protected:
void makeLineSets(void);
void getParameters(void);
std::vector<PATLineSpec> getDecodedSpecsFromFile();
std::vector<LineSet> m_lineSets;
std::string m_saveFile;

View File

@@ -266,9 +266,12 @@ std::string DrawHatch::prefSvgHatch(void)
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Patterns/";
std::string defaultFileName = defaultDir + "simple.svg";
std::string result = hGrp->GetASCII("FileHatch",defaultFileName.c_str());
if (result.empty()) {
std::string prefHatchFile = hGrp->GetASCII("FileHatch",defaultFileName.c_str());
std::string result = prefHatchFile;
Base::FileInfo fi(result);
if (!fi.isReadable()) {
result = defaultFileName;
Base::Console().Warning("Svg Hatch File: %s is not readable\n", prefHatchFile.c_str());
}
return result;
}

View File

@@ -33,6 +33,7 @@
#include <App/Material.h>
#include <Base/Console.h>
#include <Base/Exception.h>
#include <Base/FileInfo.h>
#include <Base/Parameter.h>
#include <Base/Vector3D.h>
@@ -191,9 +192,12 @@ QString Preferences::defaultTemplate()
GetGroup("Mod/TechDraw/Files");
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Templates/";
std::string defaultFileName = defaultDir + "A4_LandscapeTD.svg";
QString templateFileName = QString::fromStdString(hGrp->GetASCII("TemplateFile",defaultFileName.c_str()));
if (templateFileName.isEmpty()) {
std::string prefFileName = hGrp->GetASCII("TemplateFile",defaultFileName.c_str());
QString templateFileName = QString::fromStdString(prefFileName);
Base::FileInfo fi(prefFileName);
if (!fi.isReadable()) {
templateFileName = QString::fromStdString(defaultFileName);
Base::Console().Warning("Template File: %s is not readable\n", prefFileName.c_str());
}
return templateFileName;
}
@@ -204,7 +208,13 @@ QString Preferences::defaultTemplateDir()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Files");
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Templates";
QString templateDir = QString::fromStdString(hGrp->GetASCII("TemplateDir", defaultDir.c_str()));
std::string prefTemplateDir = hGrp->GetASCII("TemplateDir", defaultDir.c_str());
QString templateDir = QString::fromStdString(prefTemplateDir);
Base::FileInfo fi(prefTemplateDir);
if (!fi.isReadable()) {
templateDir = QString::fromStdString(defaultDir);
Base::Console().Warning("Template Directory: %s is not readable\n", prefTemplateDir.c_str());
}
return templateDir;
}
@@ -215,7 +225,11 @@ std::string Preferences::lineGroupFile()
GetGroup("Preferences")->GetGroup("Mod/TechDraw/Files");
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/LineGroup/";
std::string defaultFileName = defaultDir + "LineGroup.csv";
std::string lgFileName = hGrp->GetASCII("LineGroupFile",defaultFileName.c_str());
Base::FileInfo fi(lgFileName);
if (!fi.isReadable()) {
lgFileName = defaultFileName;
Base::Console().Warning("Line Group File: %s is not readable\n", lgFileName.c_str());
}
return lgFileName;
}

View File

@@ -202,6 +202,12 @@ QString PreferencesGui::weldingDirectory()
std::string symbolDir = hGrp->GetASCII("WeldingDir", defaultDir.c_str());
QString qSymbolDir = QString::fromUtf8(symbolDir.c_str());
Base::FileInfo fi(symbolDir);
if (!fi.isReadable()) {
qSymbolDir = QString::fromUtf8(defaultDir.c_str());
Base::Console().Warning("Welding Directory: %s is not readable\n", symbolDir.c_str());
}
return qSymbolDir;
}