umbrello  2.32.1
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 
44  enum NewLineType {UNIX=0, DOS, MAC};
47 
50 
51  virtual ~CodeGenerationPolicy();
52 
53  void setOverwritePolicy(OverwritePolicy new_var);
55 
56  void setCodeVerboseSectionComments(bool new_var);
57  bool getCodeVerboseSectionComments() const;
58 
59  void setCodeVerboseDocumentComments(bool new_var);
60  bool getCodeVerboseDocumentComments() const;
61 
62  void setHeadingFileDir(const QString & path);
63  QString getHeadingFileDir() const;
64 
65  void setIncludeHeadings(bool new_var);
66  bool getIncludeHeadings() const;
67 
68  void setOutputDirectory(QDir new_var);
69  QDir getOutputDirectory();
70 
71  void setLineEndingType(NewLineType type);
73 
74  QString getNewLineEndingChars() const;
75 
78 
79  void setIndentationAmount(int amount);
81 
82  QString getIndentation() const;
83 
84  void setModifyPolicy(ModifyNamePolicy new_var);
86 
87  void setAutoGenerateConstructors(bool var);
89 
92 
95 
96  virtual CodeGenerationPolicyPage * createPage(QWidget *parent = 0, const char * name = 0);
97 
98  QString getHeadingFile(const QString& str);
99 
100  virtual void setDefaults(CodeGenerationPolicy * defaults, bool emitUpdateSignal = true);
101  virtual void setDefaults(bool emitUpdateSignal = true);
102 
103  virtual void writeConfig();
104 
106 
107  void setCommentStyle(CommentStyle new_var);
109 
110 signals:
111 
113 
114 protected:
115 
116 /*
117  // Policy of how to deal with overwriting existing files. Allowed values are "ask", "yes" and "no".
118  OverwritePolicy m_overwritePolicy;
119 
120  // Whether or not verbose code commenting for sections is desired.
121  // If true, comments for sections will be written even if the section is empty.
122  bool m_codeVerboseSectionComments;
123 
124  // Whether or not verbose code commenting for documentation is desired.
125  // If true, documentation for various code will be written even if no
126  //code would normally be created at that point in the file.
127  bool m_codeVerboseDocumentComments;
128 
129  QDir m_headingFiles; // location of the header file template.
130  bool m_includeHeadings;
131  QDir m_outputDirectory; // location of where output files will go.
132  NewLineType m_lineEndingType; // What type of line ending characters to use.
133  IndentationType m_indentationType; // The amount and type of whitespace to indent with.
134  int m_indentationAmount; // The amount of units to indent with.
135  ModifyNamePolicy m_modifyPolicy;
136  bool m_autoGenerateConstructors;
137  CommentStyle m_commentStyle;
138  Uml::Visibility::Value m_attributeAccessorScope;
139  Uml::Visibility::Value m_associationFieldScope;
140 */
141 
142  // these 2 private fields 'cache' the string values of other fields we may frequently call for
144  QString m_indentation;
145 
146  void calculateIndentation();
147 
148 /*
149 protected:
150 
151  void initFields();
152 */
153 };
154 
155 #endif // CODEGENERATIONPOLICY_H
Definition: codegenerationpolicypage.h:17
Definition: codegenerationpolicy.h:26
void setIndentationAmount(int amount)
Definition: codegenerationpolicy.cpp:278
QString m_indentation
Definition: codegenerationpolicy.h:144
void setIndentationType(IndentationType type)
Definition: codegenerationpolicy.cpp:259
bool getCodeVerboseSectionComments() const
Definition: codegenerationpolicy.cpp:123
virtual CodeGenerationPolicyPage * createPage(QWidget *parent=0, const char *name=0)
Definition: codegenerationpolicy.cpp:408
void setModifyPolicy(ModifyNamePolicy new_var)
Definition: codegenerationpolicy.cpp:333
Uml::Visibility::Enum getAssociationFieldScope()
Definition: codegenerationpolicy.cpp:399
ModifyNamePolicy
Definition: codegenerationpolicy.h:43
@ Underscore
Definition: codegenerationpolicy.h:43
@ No
Definition: codegenerationpolicy.h:43
@ Capitalise
Definition: codegenerationpolicy.h:43
void setAutoGenerateConstructors(bool var)
Definition: codegenerationpolicy.cpp:351
NewLineType
Definition: codegenerationpolicy.h:44
@ MAC
Definition: codegenerationpolicy.h:44
@ DOS
Definition: codegenerationpolicy.h:44
@ UNIX
Definition: codegenerationpolicy.h:44
QDir getOutputDirectory()
Definition: codegenerationpolicy.cpp:207
void calculateIndentation()
Definition: codegenerationpolicy.cpp:308
QString m_lineEndingChars
Definition: codegenerationpolicy.h:143
IndentationType
Definition: codegenerationpolicy.h:45
@ NONE
Definition: codegenerationpolicy.h:45
@ TAB
Definition: codegenerationpolicy.h:45
@ SPACE
Definition: codegenerationpolicy.h:45
IndentationType getIndentationType()
Definition: codegenerationpolicy.cpp:269
ModifyNamePolicy getModifyPolicy() const
Definition: codegenerationpolicy.cpp:342
virtual void writeConfig()
Definition: codegenerationpolicy.cpp:504
void setLineEndingType(NewLineType type)
Definition: codegenerationpolicy.cpp:217
QString getHeadingFile(const QString &str)
Definition: codegenerationpolicy.cpp:542
void setIncludeHeadings(bool new_var)
Definition: codegenerationpolicy.cpp:177
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:249
bool getCodeVerboseDocumentComments() const
Definition: codegenerationpolicy.cpp:148
Uml::Visibility::Enum getAttributeAccessorScope()
Definition: codegenerationpolicy.cpp:380
bool getAutoGenerateConstructors()
Definition: codegenerationpolicy.cpp:361
bool getIncludeHeadings() const
Definition: codegenerationpolicy.cpp:187
void setCommentStyle(CommentStyle new_var)
Definition: codegenerationpolicy.cpp:90
QString getHeadingFileDir() const
Definition: codegenerationpolicy.cpp:168
OverwritePolicy getOverwritePolicy() const
Definition: codegenerationpolicy.cpp:81
void setHeadingFileDir(const QString &path)
Definition: codegenerationpolicy.cpp:158
void emitModifiedCodeContentSig()
Definition: codegenerationpolicy.cpp:416
void setCodeVerboseDocumentComments(bool new_var)
Definition: codegenerationpolicy.cpp:135
CommentStyle getCommentStyle()
Definition: codegenerationpolicy.cpp:100
void setOverwritePolicy(OverwritePolicy new_var)
Definition: codegenerationpolicy.cpp:70
void setAttributeAccessorScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:370
int getIndentationAmount()
Definition: codegenerationpolicy.cpp:291
CommentStyle
Definition: codegenerationpolicy.h:46
@ SingleLine
Definition: codegenerationpolicy.h:46
@ MultiLine
Definition: codegenerationpolicy.h:46
virtual ~CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:60
void setAssociationFieldScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:389
void setOutputDirectory(QDir new_var)
Definition: codegenerationpolicy.cpp:197
virtual void setDefaults(CodeGenerationPolicy *defaults, bool emitUpdateSignal=true)
Definition: codegenerationpolicy.cpp:425
NewLineType getLineEndingType()
Definition: codegenerationpolicy.cpp:240
QString getIndentation() const
Definition: codegenerationpolicy.cpp:300
CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:52
void setCodeVerboseSectionComments(bool new_var)
Definition: codegenerationpolicy.cpp:111
Enum
Definition: basictypes.h:45