umbrello  2.39.2
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
Definition: codegenerationpolicypage.h:17
Definition: codegenerationpolicy.h:26
void setIndentationAmount(int amount)
Definition: codegenerationpolicy.cpp:276
QString m_indentation
Definition: codegenerationpolicy.h:145
void setIndentationType(IndentationType type)
Definition: codegenerationpolicy.cpp:257
virtual CodeGenerationPolicyPage * createPage(QWidget *parent=0, const char *name=0)
Definition: codegenerationpolicy.cpp:406
void setModifyPolicy(ModifyNamePolicy new_var)
Definition: codegenerationpolicy.cpp:331
Uml::Visibility::Enum getAssociationFieldScope()
Definition: codegenerationpolicy.cpp:397
ModifyNamePolicy
Definition: codegenerationpolicy.h:43
@ Underscore
Definition: codegenerationpolicy.h:43
@ No
Definition: codegenerationpolicy.h:43
@ Capitalise
Definition: codegenerationpolicy.h:43
void setSectionCommentsPolicy(WriteSectionCommentsPolicy new_var)
Definition: codegenerationpolicy.cpp:107
void setAutoGenerateConstructors(bool var)
Definition: codegenerationpolicy.cpp:349
NewLineType
Definition: codegenerationpolicy.h:45
@ MAC
Definition: codegenerationpolicy.h:45
@ DOS
Definition: codegenerationpolicy.h:45
@ UNIX
Definition: codegenerationpolicy.h:45
QDir getOutputDirectory()
Definition: codegenerationpolicy.cpp:205
void calculateIndentation()
Definition: codegenerationpolicy.cpp:306
QString m_lineEndingChars
Definition: codegenerationpolicy.h:144
IndentationType
Definition: codegenerationpolicy.h:46
@ NONE
Definition: codegenerationpolicy.h:46
@ TAB
Definition: codegenerationpolicy.h:46
@ SPACE
Definition: codegenerationpolicy.h:46
IndentationType getIndentationType()
Definition: codegenerationpolicy.cpp:267
ModifyNamePolicy getModifyPolicy() const
Definition: codegenerationpolicy.cpp:340
virtual void writeConfig()
Definition: codegenerationpolicy.cpp:497
void setLineEndingType(NewLineType type)
Definition: codegenerationpolicy.cpp:215
QString getHeadingFile(const QString &str)
Definition: codegenerationpolicy.cpp:535
void setIncludeHeadings(bool new_var)
Definition: codegenerationpolicy.cpp:175
OverwritePolicy
Definition: codegenerationpolicy.h:42
@ Cancel
Definition: codegenerationpolicy.h:42
@ Ask
Definition: codegenerationpolicy.h:42
@ Never
Definition: codegenerationpolicy.h:42
@ Ok
Definition: codegenerationpolicy.h:42
QString getNewLineEndingChars() const
Definition: codegenerationpolicy.cpp:247
bool getCodeVerboseDocumentComments() const
Definition: codegenerationpolicy.cpp:146
WriteSectionCommentsPolicy
Definition: codegenerationpolicy.h:44
@ None
Definition: codegenerationpolicy.h:44
@ Always
Definition: codegenerationpolicy.h:44
@ WhenNonEmpty
Definition: codegenerationpolicy.h:44
Uml::Visibility::Enum getAttributeAccessorScope()
Definition: codegenerationpolicy.cpp:378
bool getAutoGenerateConstructors()
Definition: codegenerationpolicy.cpp:359
bool getIncludeHeadings() const
Definition: codegenerationpolicy.cpp:185
void setCommentStyle(CommentStyle new_var)
Definition: codegenerationpolicy.cpp:85
QString getHeadingFileDir() const
Definition: codegenerationpolicy.cpp:166
OverwritePolicy getOverwritePolicy() const
Definition: codegenerationpolicy.cpp:76
void setHeadingFileDir(const QString &path)
Definition: codegenerationpolicy.cpp:156
void emitModifiedCodeContentSig()
Definition: codegenerationpolicy.cpp:414
void modifiedCodeContent()
Definition: moc_codegenerationpolicy.cpp:130
void setCodeVerboseDocumentComments(bool new_var)
Definition: codegenerationpolicy.cpp:133
CommentStyle getCommentStyle()
Definition: codegenerationpolicy.cpp:95
void setOverwritePolicy(OverwritePolicy new_var)
Definition: codegenerationpolicy.cpp:65
void setAttributeAccessorScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:368
int getIndentationAmount()
Definition: codegenerationpolicy.cpp:289
CommentStyle
Definition: codegenerationpolicy.h:47
@ SingleLine
Definition: codegenerationpolicy.h:47
@ MultiLine
Definition: codegenerationpolicy.h:47
virtual ~CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:55
void setAssociationFieldScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:387
void setOutputDirectory(QDir new_var)
Definition: codegenerationpolicy.cpp:195
virtual void setDefaults(CodeGenerationPolicy *defaults, bool emitUpdateSignal=true)
Definition: codegenerationpolicy.cpp:423
NewLineType getLineEndingType()
Definition: codegenerationpolicy.cpp:238
QString getIndentation() const
Definition: codegenerationpolicy.cpp:298
WriteSectionCommentsPolicy getSectionCommentsPolicy() const
Definition: codegenerationpolicy.cpp:121
CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:47
Enum
Definition: basictypes.h:45