-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmkclass.py
More file actions
96 lines (80 loc) · 2.05 KB
/
Copy pathmkclass.py
File metadata and controls
96 lines (80 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import sys
import os
ns = sys.argv[1]
module_name = sys.argv[2]
class_name = sys.argv[3]
print("namespace is: " + ns)
print("module is: " + module_name)
print("class is: " + class_name)
# cpp
try:
fcpp = open("./modules/" + module_name + "/src/" +
class_name.lower() + ".cpp", "x")
content = f'''#include "{module_name + "/" +class_name.lower() + ".h"}"'''
content += "\n"
content += f'''#include "{module_name + "/private/" +class_name.lower() + "_p.h"}"'''
content += "\n"
content += f'''
namespace {ns}{{
namespace {module_name}{{
}}
}}
using namespace {ns}::{module_name};
{class_name}::{class_name}(Object* parent /*= nullptr*/)
:{class_name}(*new {class_name}Private, parent)
{{
}}
{class_name}::{class_name}({class_name}Private& d, Object* parent /*= nullptr*/)
: Object(d, parent)
{{
}}
'''
fcpp.write(content)
fcpp.close()
except OSError as err:
print(err)
# hpp
try:
fhpp = open("./include/" + module_name + "/" +
class_name.lower() + ".h", "x")
content = f'''#pragma once
#include "common.hpp"
namespace {ns} {{
namespace {module_name}{{
class {class_name}Private;
class {class_name} : public Object {{
Q_DECLARE_PRIVATE({class_name})
public:
{class_name}(Object*parent = nullptr);
protected:
{class_name}({class_name}Private& d, Object*parent = nullptr);
}};
}}
}}
'''
fhpp.write(content)
fhpp.close()
except OSError as err:
print(err)
try:
os.mkdir("./include/" + module_name + "/private")
except OSError as err:
print(err)
# private
try:
fprivate = open("./include/" + module_name + "/private/" +
class_name.lower() + "_p.h", "x")
content = f'''#pragma once
namespace {ns} {{
namespace {module_name}{{
class {class_name}Private : public ObjectPrivate {{
Q_DECLARE_PUBLIC({class_name})
public:
}};
}}
}}
'''
fprivate.write(content)
fprivate.close()
except OSError as err:
print(err)