Wed, 10 Jan 2018 22:54:09 +0200
drop Qt4 support
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
1 | /* | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
2 | * LDForge: LDraw parts authoring CAD | 
| 1222 | 3 | * Copyright (C) 2013 - 2018 Teemu Piippo | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
4 | * | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
5 | * This program is free software: you can redistribute it and/or modify | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
6 | * it under the terms of the GNU General Public License as published by | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
7 | * the Free Software Foundation, either version 3 of the License, or | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
8 | * (at your option) any later version. | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
9 | * | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
10 | * This program is distributed in the hope that it will be useful, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
13 | * GNU General Public License for more details. | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
14 | * | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
15 | * You should have received a copy of the GNU General Public License | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
17 | */ | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
18 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
19 | #pragma once | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
20 | #include "main.h" | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
21 | #include "basics.h" | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
22 | #include <QRegExp> | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
23 | #include <QDialog> | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
24 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
25 | class LDDocument; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
26 | class Ui_MakePrimUI; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
27 | class PrimitiveCategory; | 
| 794 | 28 | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
29 | struct Primitive | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
30 | { | 
| 794 | 31 | QString name; | 
| 32 | QString title; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
33 | PrimitiveCategory* category; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
34 | }; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
35 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
36 | class PrimitiveCategory : public QObject | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
37 | { | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
38 | Q_OBJECT | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
39 | |
| 794 | 40 | public: | 
| 41 | enum RegexType | |
| 42 | { | |
| 43 | EFilenameRegex, | |
| 44 | ETitleRegex | |
| 45 | }; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
46 | |
| 794 | 47 | struct RegexEntry | 
| 48 | { | |
| 49 | QRegExp regex; | |
| 50 | RegexType type; | |
| 51 | }; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
52 | |
| 794 | 53 | QList<RegexEntry> regexes; | 
| 54 | QList<Primitive> prims; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
55 | |
| 1217 | 56 | explicit PrimitiveCategory(QString name, QObject* parent = 0); | 
| 794 | 57 | bool isValidToInclude(); | 
| 
1010
 
969b48eddd6b
A bit more cleanup. Finally removed the PROPERTY macro. (now let's see about making a new one sometime that isn't so terrible?)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
984 
diff
changeset
 | 
58 | QString name() const; | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
59 | |
| 794 | 60 | static void loadCategories(); | 
| 61 | static void populateCategories(); | |
| 
1010
 
969b48eddd6b
A bit more cleanup. Finally removed the PROPERTY macro. (now let's see about making a new one sometime that isn't so terrible?)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
984 
diff
changeset
 | 
62 | |
| 
 
969b48eddd6b
A bit more cleanup. Finally removed the PROPERTY macro. (now let's see about making a new one sometime that isn't so terrible?)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
984 
diff
changeset
 | 
63 | private: | 
| 
 
969b48eddd6b
A bit more cleanup. Finally removed the PROPERTY macro. (now let's see about making a new one sometime that isn't so terrible?)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
984 
diff
changeset
 | 
64 | QString m_name; | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
65 | }; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
66 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
67 | // | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
68 | // Worker object that scans the primitives folder for primitives and | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
69 | // builds an index of them. | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
70 | // | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
71 | class PrimitiveScanner : public QObject | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
72 | { | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
73 | Q_OBJECT | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
74 | |
| 794 | 75 | public: | 
| 1217 | 76 | explicit PrimitiveScanner(QObject* parent = 0); | 
| 794 | 77 | virtual ~PrimitiveScanner(); | 
| 78 | static void start(); | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
79 | |
| 794 | 80 | public slots: | 
| 81 | void work(); | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
82 | |
| 794 | 83 | signals: | 
| 1217 | 84 | void starting(int num); | 
| 794 | 85 | void workDone(); | 
| 1217 | 86 | void update(int i); | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
87 | |
| 794 | 88 | private: | 
| 89 | QList<Primitive> m_prims; | |
| 90 | QStringList m_files; | |
| 91 | int m_i; | |
| 92 | int m_baselen; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
93 | }; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
94 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
95 | extern QList<PrimitiveCategory*> g_PrimitiveCategories; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
96 | |
| 
861
 
83426c5fa732
- major identifier renaming
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
844 
diff
changeset
 | 
97 | void LoadPrimitives(); | 
| 
 
83426c5fa732
- major identifier renaming
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
844 
diff
changeset
 | 
98 | PrimitiveScanner* ActivePrimitiveScanner(); | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
99 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
100 | enum PrimitiveType | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
101 | { | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
102 | Circle, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
103 | Cylinder, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
104 | Disc, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
105 | DiscNeg, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
106 | Ring, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
107 | Cone, | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
108 | }; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
109 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
110 | class PrimitivePrompt : public QDialog | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
111 | { | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
112 | Q_OBJECT | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
113 | |
| 794 | 114 | public: | 
| 1217 | 115 | explicit PrimitivePrompt(QWidget* parent = nullptr, Qt::WindowFlags f = 0); | 
| 794 | 116 | virtual ~PrimitivePrompt(); | 
| 117 | Ui_MakePrimUI* ui; | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
118 | |
| 794 | 119 | public slots: | 
| 1217 | 120 | void hiResToggled(bool on); | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
121 | }; | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
122 | |
| 1217 | 123 | void MakeCircle(int segs, int divs, double radius, QList<QLineF>& lines); | 
| 124 | LDDocument* GeneratePrimitive(PrimitiveType type, int segs, int divs, int num); | |
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
125 | |
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
126 | // Gets a primitive by the given specs. If the primitive cannot be found, it will | 
| 
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
127 | // be automatically generated. | 
| 1217 | 128 | LDDocument* GetPrimitive(PrimitiveType type, int segs, int divs, int num); | 
| 
655
 
b376645315ab
- renamed files to camelCase
 
Santeri Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
129 | |
| 1217 | 130 | QString MakeRadialFileName(PrimitiveType type, int segs, int divs, int num); |