umbrello  2.38.5
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codegenerationpolicy.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3 
4  SPDX-FileCopyrightText: 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov>
5  SPDX-FileCopyrightText: 2004-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6 */
7 
8 #ifndef CODEGENERATIONPOLICY_H
9 #define CODEGENERATIONPOLICY_H
10 
11 #include "basictypes.h"
12 
13 #include <QDir>
14 #include <QObject>
15 
16 class QWidget;
18 
25 class CodeGenerationPolicy : public QObject
26 {
27  Q_OBJECT
28 public:
29 
45  enum NewLineType {UNIX=0, DOS, MAC};
48 
51 
52  virtual ~CodeGenerationPolicy();
53 
54  void setOverwritePolicy(OverwritePolicy new_var);
56 
59 
60  void setCodeVerboseDocumentComments(bool new_var);
61  bool getCodeVerboseDocumentComments() const;
62 
63  void setHeadingFileDir(const QString & path);
64  QString getHeadingFileDir() const;
65 
66  void setIncludeHeadings(bool new_var);
67  bool getIncludeHeadings() const;
68 
69  void setOutputDirectory(QDir new_var);
70  QDir getOutputDirectory();
71 
72  void setLineEndingType(NewLineType type);
74 
75  QString getNewLineEndingChars() const;
76 
79 
80  void setIndentationAmount(int amount);
82 
83  QString getIndentation() const;
84 
85  void setModifyPolicy(ModifyNamePolicy new_var);
87 
88  void setAutoGenerateConstructors(bool var);
90 
93 
96 
97  virtual CodeGenerationPolicyPage * createPage(QWidget *parent = 0, const char * name = 0);
98 
99  QString getHeadingFile(const QString& str);
100 
101  virtual void setDefaults(CodeGenerationPolicy * defaults, bool emitUpdateSignal = true);
102  virtual void setDefaults(bool emitUpdateSignal = true);
103 
104  virtual void writeConfig();
105 
107 
108  void setCommentStyle(CommentStyle new_var);
110 
111 signals:
112 
113  void modifiedCodeContent();
114 
115 protected:
116 
117 /*
118  // Policy of how to deal with overwriting existing files. Allowed values are "ask", "yes" and "no".
119  OverwritePolicy m_overwritePolicy;
120 
121  // Whether or not verbose code commenting for sections is desired.
122  // If true, comments for sections will be written even if the section is empty.
123  WriteSectionCommentsPolicy m_sectionCommentsPolicy;
124 
125  // Whether or not verbose code commenting for documentation is desired.
126  // If true, documentation for various code will be written even if no
127  //code would normally be created at that point in the file.
128  bool m_codeVerboseDocumentComments;
129 
130  QDir m_headingFiles; // location of the header file template.
131  bool m_includeHeadings;
132  QDir m_outputDirectory; // location of where output files will go.
133  NewLineType m_lineEndingType; // What type of line ending characters to use.
134  IndentationType m_indentationType; // The amount and type of whitespace to indent with.
135  int m_indentationAmount; // The amount of units to indent with.
136  ModifyNamePolicy m_modifyPolicy;
137  bool m_autoGenerateConstructors;
138  CommentStyle m_commentStyle;
139  Uml::Visibility::Value m_attributeAccessorScope;
140  Uml::Visibility::Value m_associationFieldScope;
141 */
142 
143  // these 2 private fields 'cache' the string values of other fields we may frequently call for
145  QString m_indentation;
146 
147  void calculateIndentation();
148 
149 /*
150 protected:
151 
152  void initFields();
153 */
154 };
155 
156 #endif // CODEGENERATIONPOLICY_H
void setIncludeHeadings(bool new_var)
Definition: codegenerationpolicy.cpp:175
Definition: codegenerationpolicy.h:45
void setLineEndingType(NewLineType type)
Definition: codegenerationpolicy.cpp:215
WriteSectionCommentsPolicy getSectionCommentsPolicy() const
Definition: codegenerationpolicy.cpp:121
Definition: codegenerationpolicy.h:43
WriteSectionCommentsPolicy
Definition: codegenerationpolicy.h:44
Definition: codegenerationpolicy.h:45
void modifiedCodeContent()
Definition: moc_codegenerationpolicy.cpp:130
void setAutoGenerateConstructors(bool var)
Definition: codegenerationpolicy.cpp:349
Enum
Definition: basictypes.h:45
Definition: codegenerationpolicy.h:46
void emitModifiedCodeContentSig()
Definition: codegenerationpolicy.cpp:414
void setOutputDirectory(QDir new_var)
Definition: codegenerationpolicy.cpp:195
QString getNewLineEndingChars() const
Definition: codegenerationpolicy.cpp:247
QString m_indentation
Definition: codegenerationpolicy.h:145
void calculateIndentation()
Definition: codegenerationpolicy.cpp:306
int getIndentationAmount()
Definition: codegenerationpolicy.cpp:289
Definition: codegenerationpolicy.h:25
Definition: codegenerationpolicy.h:42
void setCodeVerboseDocumentComments(bool new_var)
Definition: codegenerationpolicy.cpp:133
void setAssociationFieldScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:387
ModifyNamePolicy getModifyPolicy() const
Definition: codegenerationpolicy.cpp:340
virtual void setDefaults(CodeGenerationPolicy *defaults, bool emitUpdateSignal=true)
Definition: codegenerationpolicy.cpp:423
Definition: codegenerationpolicy.h:43
Definition: codegenerationpolicy.h:46
Definition: codegenerationpolicy.h:44
CommentStyle
Definition: codegenerationpolicy.h:47
QDir getOutputDirectory()
Definition: codegenerationpolicy.cpp:205
bool getCodeVerboseDocumentComments() const
Definition: codegenerationpolicy.cpp:146
Uml::Visibility::Enum getAssociationFieldScope()
Definition: codegenerationpolicy.cpp:397
CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:47
Definition: codegenerationpolicy.h:47
Definition: codegenerationpolicy.h:45
void setModifyPolicy(ModifyNamePolicy new_var)
Definition: codegenerationpolicy.cpp:331
IndentationType getIndentationType()
Definition: codegenerationpolicy.cpp:267
QString getIndentation() const
Definition: codegenerationpolicy.cpp:298
virtual CodeGenerationPolicyPage * createPage(QWidget *parent=0, const char *name=0)
Definition: codegenerationpolicy.cpp:406
Definition: codegenerationpolicy.h:42
QString m_lineEndingChars
Definition: codegenerationpolicy.h:144
OverwritePolicy
Definition: codegenerationpolicy.h:42
void setSectionCommentsPolicy(WriteSectionCommentsPolicy new_var)
Definition: codegenerationpolicy.cpp:107
Definition: codegenerationpolicy.h:43
virtual void writeConfig()
Definition: codegenerationpolicy.cpp:497
Definition: codegenerationpolicy.h:44
IndentationType
Definition: codegenerationpolicy.h:46
void setIndentationAmount(int amount)
Definition: codegenerationpolicy.cpp:276
void setAttributeAccessorScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:368
bool getAutoGenerateConstructors()
Definition: codegenerationpolicy.cpp:359
OverwritePolicy getOverwritePolicy() const
Definition: codegenerationpolicy.cpp:76
virtual ~CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:55
void setCommentStyle(CommentStyle new_var)
Definition: codegenerationpolicy.cpp:85
Uml::Visibility::Enum getAttributeAccessorScope()
Definition: codegenerationpolicy.cpp:378
NewLineType
Definition: codegenerationpolicy.h:45
ModifyNamePolicy
Definition: codegenerationpolicy.h:43
NewLineType getLineEndingType()
Definition: codegenerationpolicy.cpp:238
void setIndentationType(IndentationType type)
Definition: codegenerationpolicy.cpp:257
Definition: codegenerationpolicy.h:46
Definition: codegenerationpolicypage.h:16
Definition: codegenerationpolicy.h:44
void setHeadingFileDir(const QString &path)
Definition: codegenerationpolicy.cpp:156
Definition: codegenerationpolicy.h:42
QString getHeadingFile(const QString &str)
Definition: codegenerationpolicy.cpp:535
Definition: codegenerationpolicy.h:42
CommentStyle getCommentStyle()
Definition: codegenerationpolicy.cpp:95
QString getHeadingFileDir() const
Definition: codegenerationpolicy.cpp:166
void setOverwritePolicy(OverwritePolicy new_var)
Definition: codegenerationpolicy.cpp:65
Definition: codegenerationpolicy.h:47
bool getIncludeHeadings() const
Definition: codegenerationpolicy.cpp:185