umbrello 2.38.4
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
16class QWidget;
18
25class CodeGenerationPolicy : public QObject
26{
27 Q_OBJECT
28public:
29
45 enum NewLineType {UNIX=0, DOS, MAC};
48
51
52 virtual ~CodeGenerationPolicy();
53
56
59
60 void setCodeVerboseDocumentComments(bool new_var);
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
74
75 QString getNewLineEndingChars() const;
76
79
80 void setIndentationAmount(int amount);
82
83 QString getIndentation() const;
84
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
111signals:
112
114
115protected:
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
146
148
149/*
150protected:
151
152 void initFields();
153*/
154};
155
156#endif // CODEGENERATIONPOLICY_H
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 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
Definition codegenerationpolicypage.h:17
Enum
Definition basictypes.h:45