umbrello  2.32.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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov> *
8  * copyright (C) 2004-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef CODEGENERATIONPOLICY_H
13 #define CODEGENERATIONPOLICY_H
14 
15 #include "basictypes.h"
16 
17 #include <QDir>
18 #include <QObject>
19 
20 class QWidget;
22 
29 class CodeGenerationPolicy : public QObject
30 {
31  Q_OBJECT
32 public:
33 
48  enum NewLineType {UNIX=0, DOS, MAC};
51 
54 
55  virtual ~CodeGenerationPolicy();
56 
57  void setOverwritePolicy(OverwritePolicy new_var);
59 
60  void setCodeVerboseSectionComments(bool new_var);
61  bool getCodeVerboseSectionComments() const;
62 
63  void setCodeVerboseDocumentComments(bool new_var);
64  bool getCodeVerboseDocumentComments() const;
65 
66  void setHeadingFileDir(const QString & path);
67  QString getHeadingFileDir() const;
68 
69  void setIncludeHeadings(bool new_var);
70  bool getIncludeHeadings() const;
71 
72  void setOutputDirectory(QDir new_var);
73  QDir getOutputDirectory();
74 
75  void setLineEndingType(NewLineType type);
77 
78  QString getNewLineEndingChars() const;
79 
82 
83  void setIndentationAmount(int amount);
85 
86  QString getIndentation() const;
87 
88  void setModifyPolicy(ModifyNamePolicy new_var);
90 
91  void setAutoGenerateConstructors(bool var);
93 
96 
99 
100  virtual CodeGenerationPolicyPage * createPage(QWidget *parent = 0, const char * name = 0);
101 
102  QString getHeadingFile(const QString& str);
103 
104  virtual void setDefaults(CodeGenerationPolicy * defaults, bool emitUpdateSignal = true);
105  virtual void setDefaults(bool emitUpdateSignal = true);
106 
107  virtual void writeConfig();
108 
110 
111  void setCommentStyle(CommentStyle new_var);
113 
114 signals:
115 
116  void modifiedCodeContent();
117 
118 protected:
119 
120 /*
121  // Policy of how to deal with overwriting existing files. Allowed values are "ask", "yes" and "no".
122  OverwritePolicy m_overwritePolicy;
123 
124  // Whether or not verbose code commenting for sections is desired.
125  // If true, comments for sections will be written even if the section is empty.
126  bool m_codeVerboseSectionComments;
127 
128  // Whether or not verbose code commenting for documentation is desired.
129  // If true, documentation for various code will be written even if no
130  //code would normally be created at that point in the file.
131  bool m_codeVerboseDocumentComments;
132 
133  QDir m_headingFiles; // location of the header file template.
134  bool m_includeHeadings;
135  QDir m_outputDirectory; // location of where output files will go.
136  NewLineType m_lineEndingType; // What type of line ending characters to use.
137  IndentationType m_indentationType; // The amount and type of whitespace to indent with.
138  int m_indentationAmount; // The amount of units to indent with.
139  ModifyNamePolicy m_modifyPolicy;
140  bool m_autoGenerateConstructors;
141  CommentStyle m_commentStyle;
142  Uml::Visibility::Value m_attributeAccessorScope;
143  Uml::Visibility::Value m_associationFieldScope;
144 */
145 
146  // these 2 private fields 'cache' the string values of other fields we may frequently call for
148  QString m_indentation;
149 
150  void calculateIndentation();
151 
152 /*
153 protected:
154 
155  void initFields();
156 */
157 };
158 
159 #endif // CODEGENERATIONPOLICY_H
Definition: codegenerationpolicypage.h:31
Definition: codegenerationpolicy.h:30
void setIndentationAmount(int amount)
Definition: codegenerationpolicy.cpp:282
QString m_indentation
Definition: codegenerationpolicy.h:148
void setIndentationType(IndentationType type)
Definition: codegenerationpolicy.cpp:263
bool getCodeVerboseSectionComments() const
Definition: codegenerationpolicy.cpp:127
virtual CodeGenerationPolicyPage * createPage(QWidget *parent=0, const char *name=0)
Definition: codegenerationpolicy.cpp:412
void setModifyPolicy(ModifyNamePolicy new_var)
Definition: codegenerationpolicy.cpp:337
Uml::Visibility::Enum getAssociationFieldScope()
Definition: codegenerationpolicy.cpp:403
ModifyNamePolicy
Definition: codegenerationpolicy.h:47
@ Underscore
Definition: codegenerationpolicy.h:47
@ No
Definition: codegenerationpolicy.h:47
@ Capitalise
Definition: codegenerationpolicy.h:47
void setAutoGenerateConstructors(bool var)
Definition: codegenerationpolicy.cpp:355
NewLineType
Definition: codegenerationpolicy.h:48
@ MAC
Definition: codegenerationpolicy.h:48
@ DOS
Definition: codegenerationpolicy.h:48
@ UNIX
Definition: codegenerationpolicy.h:48
QDir getOutputDirectory()
Definition: codegenerationpolicy.cpp:211
void calculateIndentation()
Definition: codegenerationpolicy.cpp:312
QString m_lineEndingChars
Definition: codegenerationpolicy.h:147
IndentationType
Definition: codegenerationpolicy.h:49
@ NONE
Definition: codegenerationpolicy.h:49
@ TAB
Definition: codegenerationpolicy.h:49
@ SPACE
Definition: codegenerationpolicy.h:49
IndentationType getIndentationType()
Definition: codegenerationpolicy.cpp:273
ModifyNamePolicy getModifyPolicy() const
Definition: codegenerationpolicy.cpp:346
virtual void writeConfig()
Definition: codegenerationpolicy.cpp:508
void setLineEndingType(NewLineType type)
Definition: codegenerationpolicy.cpp:221
QString getHeadingFile(const QString &str)
Definition: codegenerationpolicy.cpp:546
void setIncludeHeadings(bool new_var)
Definition: codegenerationpolicy.cpp:181
OverwritePolicy
Definition: codegenerationpolicy.h:46
@ Cancel
Definition: codegenerationpolicy.h:46
@ Ask
Definition: codegenerationpolicy.h:46
@ Never
Definition: codegenerationpolicy.h:46
@ Ok
Definition: codegenerationpolicy.h:46
QString getNewLineEndingChars() const
Definition: codegenerationpolicy.cpp:253
bool getCodeVerboseDocumentComments() const
Definition: codegenerationpolicy.cpp:152
Uml::Visibility::Enum getAttributeAccessorScope()
Definition: codegenerationpolicy.cpp:384
bool getAutoGenerateConstructors()
Definition: codegenerationpolicy.cpp:365
bool getIncludeHeadings() const
Definition: codegenerationpolicy.cpp:191
void setCommentStyle(CommentStyle new_var)
Definition: codegenerationpolicy.cpp:94
QString getHeadingFileDir() const
Definition: codegenerationpolicy.cpp:172
OverwritePolicy getOverwritePolicy() const
Definition: codegenerationpolicy.cpp:85
void setHeadingFileDir(const QString &path)
Definition: codegenerationpolicy.cpp:162
void emitModifiedCodeContentSig()
Definition: codegenerationpolicy.cpp:420
void modifiedCodeContent()
Definition: moc_codegenerationpolicy.cpp:130
void setCodeVerboseDocumentComments(bool new_var)
Definition: codegenerationpolicy.cpp:139
CommentStyle getCommentStyle()
Definition: codegenerationpolicy.cpp:104
void setOverwritePolicy(OverwritePolicy new_var)
Definition: codegenerationpolicy.cpp:74
void setAttributeAccessorScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:374
int getIndentationAmount()
Definition: codegenerationpolicy.cpp:295
CommentStyle
Definition: codegenerationpolicy.h:50
@ SingleLine
Definition: codegenerationpolicy.h:50
@ MultiLine
Definition: codegenerationpolicy.h:50
virtual ~CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:64
void setAssociationFieldScope(Uml::Visibility::Enum var)
Definition: codegenerationpolicy.cpp:393
void setOutputDirectory(QDir new_var)
Definition: codegenerationpolicy.cpp:201
virtual void setDefaults(CodeGenerationPolicy *defaults, bool emitUpdateSignal=true)
Definition: codegenerationpolicy.cpp:429
NewLineType getLineEndingType()
Definition: codegenerationpolicy.cpp:244
QString getIndentation() const
Definition: codegenerationpolicy.cpp:304
CodeGenerationPolicy()
Definition: codegenerationpolicy.cpp:56
void setCodeVerboseSectionComments(bool new_var)
Definition: codegenerationpolicy.cpp:115
Enum
Definition: basictypes.h:59