Skip to content

Commit

Permalink
[TD]fix preference file handling
Browse files Browse the repository at this point in the history
  • Loading branch information
WandererFan committed Jun 3, 2022
1 parent d73f9e3 commit 2b0dd54
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 33 deletions.
15 changes: 2 additions & 13 deletions src/Mod/TechDraw/App/DrawGeomHatch.cpp
Expand Up @@ -70,6 +70,7 @@

#include "HatchLine.h"
#include "DrawUtil.h"
#include "Preferences.h"
#include "Geometry.h"
#include "DrawPage.h"
#include "DrawViewPart.h"
Expand Down Expand Up @@ -615,19 +616,7 @@ void DrawGeomHatch::unsetupObject(void)

std::string DrawGeomHatch::prefGeomHatchFile(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";
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;
return Preferences::patFile();
}

std::string DrawGeomHatch::prefGeomHatchName()
Expand Down
15 changes: 2 additions & 13 deletions src/Mod/TechDraw/App/DrawHatch.cpp
Expand Up @@ -45,6 +45,7 @@

#include "DrawViewPart.h"
#include "DrawUtil.h"
#include "Preferences.h"
#include "DrawHatch.h"

#include <Mod/TechDraw/App/DrawHatchPy.h> // generated from DrawHatchPy.xml
Expand Down Expand Up @@ -261,19 +262,7 @@ void DrawHatch::unsetupObject(void)
//standard preference getters
std::string DrawHatch::prefSvgHatch(void)
{
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Files");

std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Patterns/";
std::string defaultFileName = defaultDir + "simple.svg";
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;
return Preferences::svgFile();
}

App::Color DrawHatch::prefSvgHatchColor(void)
Expand Down
46 changes: 46 additions & 0 deletions src/Mod/TechDraw/App/Preferences.cpp
Expand Up @@ -193,6 +193,9 @@ QString Preferences::defaultTemplate()
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Templates/";
std::string defaultFileName = defaultDir + "A4_LandscapeTD.svg";
std::string prefFileName = hGrp->GetASCII("TemplateFile",defaultFileName.c_str());
if (prefFileName.empty()) {
prefFileName = defaultFileName;
}
QString templateFileName = QString::fromStdString(prefFileName);
Base::FileInfo fi(prefFileName);
if (!fi.isReadable()) {
Expand All @@ -209,6 +212,9 @@ QString Preferences::defaultTemplateDir()

std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Templates";
std::string prefTemplateDir = hGrp->GetASCII("TemplateDir", defaultDir.c_str());
if (prefTemplateDir.empty()) {
prefTemplateDir = defaultDir;
}
QString templateDir = QString::fromStdString(prefTemplateDir);
Base::FileInfo fi(prefTemplateDir);
if (!fi.isReadable()) {
Expand All @@ -226,6 +232,9 @@ std::string Preferences::lineGroupFile()
std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/LineGroup/";
std::string defaultFileName = defaultDir + "LineGroup.csv";
std::string lgFileName = hGrp->GetASCII("LineGroupFile",defaultFileName.c_str());
if (lgFileName.empty()) {
lgFileName = defaultFileName;
}
Base::FileInfo fi(lgFileName);
if (!fi.isReadable()) {
Base::Console().Warning("Line Group File: %s is not readable\n", lgFileName.c_str());
Expand Down Expand Up @@ -256,3 +265,40 @@ int Preferences::mattingStyle()
int style = hGrp->GetInt("MattingStyle", 0);
return style;
}

std::string Preferences::svgFile()
{
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/TechDraw/Files");

std::string defaultDir = App::Application::getResourceDir() + "Mod/TechDraw/Patterns/";
std::string defaultFileName = defaultDir + "simple.svg";
std::string prefHatchFile = hGrp->GetASCII("FileHatch",defaultFileName.c_str());
if (prefHatchFile.empty()) {
prefHatchFile = defaultFileName;
}
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;
}

std::string Preferences::patFile()
{
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";
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;
}
3 changes: 3 additions & 0 deletions src/Mod/TechDraw/App/Preferences.h
Expand Up @@ -71,6 +71,9 @@ static int altDecimals();

static int mattingStyle();

static std::string svgFile();
static std::string patFile();

};

} //end namespace TechDraw
Expand Down
12 changes: 5 additions & 7 deletions src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp
Expand Up @@ -25,6 +25,11 @@

#include "PreCompiled.h"

#include <App/Application.h>
#include <Base/Console.h>
#include <Base/Parameter.h>
#include <Base/Tools.h>

#include <Mod/TechDraw/App/DrawHatch.h>
#include <Mod/TechDraw/App/DrawGeomHatch.h>

Expand Down Expand Up @@ -97,13 +102,6 @@ void DlgPrefsTechDrawGeneralImp::loadSettings()
ui->cbProjAngle->onRestore();
ui->cbHiddenLineStyle->onRestore();

ui->pfc_DefTemp->setFileName(Preferences::defaultTemplate());
ui->pfc_DefDir->setFileName(Preferences::defaultTemplateDir());
ui->pfc_HatchFile->setFileName(QString::fromStdString(DrawHatch::prefSvgHatch()));
ui->pfc_LineGroup->setFileName(QString::fromUtf8(Preferences::lineGroupFile().c_str()));
ui->pfc_Welding->setFileName(PreferencesGui::weldingDirectory());
ui->pfc_FilePattern->setFileName(QString::fromStdString(DrawGeomHatch::prefGeomHatchFile()));

ui->pfc_DefTemp->onRestore();
ui->pfc_DefDir->onRestore();
ui->pfc_HatchFile->onRestore();
Expand Down
3 changes: 3 additions & 0 deletions src/Mod/TechDraw/Gui/PreferencesGui.cpp
Expand Up @@ -190,6 +190,9 @@ QString PreferencesGui::weldingDirectory()
GetGroup("Preferences")->GetGroup("Mod/TechDraw/Files");

std::string symbolDir = hGrp->GetASCII("WeldingDir", defaultDir.c_str());
if (symbolDir.empty()) {
symbolDir = defaultDir;
}
QString qSymbolDir = QString::fromUtf8(symbolDir.c_str());
Base::FileInfo fi(symbolDir);
if (!fi.isReadable()) {
Expand Down

0 comments on commit 2b0dd54

Please sign in to comment.