umbrello/umbrello
optionstate.h
Go to the documentation of this file.00001 /*************************************************************************** 00002 * * 00003 * This program is free software; you can redistribute it and/or modify * 00004 * it under the terms of the GNU General Public License as published by * 00005 * the Free Software Foundation; either version 2 of the License, or * 00006 * (at your option) any later version. * 00007 * * 00008 * copyright (C) 2002-2006 * 00009 * Umbrello UML Modeller Authors <uml-devel@uml.sf.net> * 00010 ***************************************************************************/ 00011 00012 #ifndef OPTIONSTATE_H 00013 #define OPTIONSTATE_H 00014 00015 00016 #include "umlnamespace.h" 00017 #include "codeviewerstate.h" 00018 #include "codegenerationpolicy.h" 00019 00020 namespace Settings { 00021 00022 enum Page 00023 { 00024 page_general = 0, 00025 page_font, 00026 page_UI, 00027 page_class, 00028 page_codegen, 00029 page_codeview 00030 }; 00031 00032 //public structs 00033 struct GeneralState { 00034 bool undo; 00035 bool tabdiagrams; 00036 bool newcodegen; 00037 bool angularlines; 00038 bool footerPrinting; 00039 bool autosave; 00040 int time; //old autosave time, kept for compatibility 00041 int autosavetime; 00042 QString autosavesuffix; 00043 bool loadlast; 00044 Uml::Diagram_Type diagram; 00045 Uml::Programming_Language defaultLanguage; 00046 QString lastFile; 00047 }; 00048 00049 struct UIState { 00050 bool useFillColor; 00051 QColor fillColor; 00052 QColor lineColor; 00053 uint lineWidth; 00054 QFont font; 00055 }; 00056 00057 struct ClassState { 00058 bool showVisibility; 00059 bool showAtts; 00060 bool showOps; 00061 bool showStereoType; 00062 bool showAttSig; 00063 bool showOpSig; 00064 bool showPackage; 00065 bool showAttribAssocs; 00066 bool showPublicOnly; 00067 Uml::Visibility defaultAttributeScope; 00068 Uml::Visibility defaultOperationScope; 00069 }; 00070 00071 00072 00073 struct CodeGenerationState{ 00074 bool autoGenEmptyConstructors; 00075 CodeGenerationPolicy::CommentStyle commentStyle; 00076 Uml::Visibility::Value defaultAssocFieldScope; 00077 Uml::Visibility::Value defaultAttributeAccessorScope; 00078 bool forceDoc; 00079 bool forceSections; 00080 QDir headingsDirectory; 00081 bool includeHeadings; 00082 int indentationAmount; 00083 CodeGenerationPolicy::IndentationType indentationType; 00084 CodeGenerationPolicy::NewLineType lineEndingType; 00085 CodeGenerationPolicy::ModifyNamePolicy modnamePolicy; 00086 QDir outputDirectory; 00087 CodeGenerationPolicy::OverwritePolicy overwritePolicy; 00088 00089 00090 struct CPPCodeGenerationState { 00091 bool autoGenAccessors; 00092 bool inlineAccessors; 00093 bool inlineOps; 00094 bool packageIsNamespace; 00095 bool publicAccessors; 00096 QString stringClassName; 00097 QString stringClassNameInclude; 00098 bool stringIncludeIsGlobal; 00099 QString vectorClassName; 00100 QString vectorClassNameInclude; 00101 QString docToolTag; 00102 bool vectorIncludeIsGlobal; 00103 bool virtualDestructors; 00104 }; 00105 00106 struct DCodeGenerationState { 00107 bool autoGenerateAttributeAccessors; 00108 bool autoGenerateAssocAccessors; 00109 bool buildANTDocument; 00110 }; 00111 00112 struct JavaCodeGenerationState{ 00113 bool autoGenerateAttributeAccessors; 00114 bool autoGenerateAssocAccessors; 00115 bool buildANTDocument; 00116 }; 00117 00118 struct RubyCodeGenerationState{ 00119 bool autoGenerateAttributeAccessors; 00120 bool autoGenerateAssocAccessors; 00121 }; 00122 00123 CPPCodeGenerationState cppCodeGenerationState; 00124 DCodeGenerationState dCodeGenerationState; 00125 JavaCodeGenerationState javaCodeGenerationState; 00126 RubyCodeGenerationState rubyCodeGenerationState; 00127 00128 }; 00129 00130 struct OptionState { 00131 GeneralState generalState; 00132 UIState uiState; 00133 ClassState classState; 00134 CodeViewerState codeViewerState; 00135 CodeGenerationState codeGenerationState; 00136 00137 }; 00138 00139 OptionState& getOptionState(); 00140 void setOptionState(const OptionState& optstate); 00141 00142 } // namespace Settings 00143 00144 #endif
KDE 4.4 API Reference