src/ldpaths.cpp

changeset 1208
8d4b8a9df724
parent 1125
d8f94e56d42e
equal deleted inserted replaced
1207:b5df72b194f4 1208:8d4b8a9df724
19 #include <QDir> 19 #include <QDir>
20 #include "ldpaths.h" 20 #include "ldpaths.h"
21 #include "mainwindow.h" 21 #include "mainwindow.h"
22 #include "dialogs/ldrawpathdialog.h" 22 #include "dialogs/ldrawpathdialog.h"
23 23
24 LDPaths::LDPaths (Configuration *config, QObject* parent) : 24 LDPaths::LDPaths(QObject* parent) :
25 QObject(parent), 25 QObject {parent},
26 m_config(config), 26 m_dialog {nullptr} {}
27 m_dialog(nullptr) {}
28 27
28 LDPaths::~LDPaths()
29 {
30 delete m_dialog;
31 }
29 32
30 void LDPaths::checkPaths() 33 bool LDPaths::checkPaths()
31 { 34 {
32 QString pathconfig = m_config->lDrawPath(); 35 QString pathconfig = configuration().lDrawPath();
33 36
34 if (not configurePaths (pathconfig)) 37 if (configurePaths (pathconfig))
38 {
39 return true;
40 }
41 else
35 { 42 {
36 m_dialog = new LDrawPathDialog (pathconfig, false); 43 m_dialog = new LDrawPathDialog (pathconfig, false);
37 connect(m_dialog, &LDrawPathDialog::pathChanged, this, &LDPaths::configurePaths); 44 connect(m_dialog, &LDrawPathDialog::pathChanged, this, &LDPaths::configurePaths);
38 45
39 if (m_dialog->exec() != QDialog::Accepted) 46 if (m_dialog->exec() != QDialog::Accepted)
40 exit(1); 47 return false;
41 else 48
42 m_config->setLDrawPath(m_dialog->path()); 49 configuration().setLDrawPath(m_dialog->path());
50 return true;
43 } 51 }
44 } 52 }
45 53
46 54
47 bool LDPaths::isValid (const QDir& dir) const 55 bool LDPaths::isValid (const QDir& dir) const
68 } 76 }
69 77
70 78
71 bool LDPaths::configurePaths (QString path) 79 bool LDPaths::configurePaths (QString path)
72 { 80 {
73 QDir dir (path); 81 QDir dir {path};
74 bool ok = isValid (dir); 82 bool ok = isValid(dir);
75 83
76 if (ok) 84 if (ok)
77 { 85 {
78 baseDir() = dir; 86 baseDir() = dir;
79 ldConfigPath() = format ("%1" DIRSLASH "LDConfig.ldr", path); 87 ldConfigPath() = format("%1/LDConfig.ldr", path);
80 partsDir() = QDir (path + DIRSLASH "parts"); 88 partsDir() = path + "/parts";
81 primitivesDir() = QDir (path + DIRSLASH "p"); 89 primitivesDir() = path + "/p";
82 } 90 }
83 91
84 if (m_dialog) 92 if (m_dialog)
85 m_dialog->setStatusText (m_error.isEmpty() ? "OK" : m_error, ok); 93 m_dialog->setStatusText(m_error.isEmpty() ? "OK" : m_error, ok);
86 94
87 return ok; 95 return ok;
88 } 96 }
89 97
90 98

mercurial