umbrello 2.34.70-5524f40e1
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
44 enum NewLineType {UNIX=0, DOS, MAC};
47
50
51 virtual ~CodeGenerationPolicy();
52
55
56 void setCodeVerboseSectionComments(bool new_var);
58
59 void setCodeVerboseDocumentComments(bool new_var);
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
73
74 QString getNewLineEndingChars() const;
75
78
79 void setIndentationAmount(int amount);
81
82 QString getIndentation() const;
83
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
110signals:
111
112 void modifiedCodeContent();
113
114protected:
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
145
147
148/*
149protected:
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 modifiedCodeContent()
Definition: moc_codegenerationpolicy.cpp:130
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