00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KPTWBSDEFINITION_H
00021 #define KPTWBSDEFINITION_H
00022
00023 #include <QString>
00024 #include <QMap>
00025 #include <QPair>
00026 #include <QList>
00027
00028 class QStringList;
00029
00030 namespace KPlato
00031 {
00032
00033 class Part;
00034
00035 class WBSDefinition {
00036
00037 public:
00038 WBSDefinition();
00039 ~WBSDefinition();
00040
00041 class CodeDef {
00042 public:
00043 CodeDef() {}
00044 CodeDef(QString c, QString s) { code = c; separator = s; }
00045 ~CodeDef() {}
00046 void clear() { code = separator = QString(); }
00047 bool isEmpty() { return code.isEmpty(); }
00048 QString code;
00049 QString separator;
00050 };
00051
00052 void clear();
00053
00055 QString wbs(uint index, int level);
00057 QString code(uint index, int level);
00059 QString separator(int level);
00060
00061 CodeDef &defaultDef() { return m_defaultDef; }
00062 void setDefaultDef(CodeDef def) { m_defaultDef = def; }
00063
00064 bool isLevelsDefEnabled() const { return m_levelsEnabled; }
00065 bool level0Enabled();
00066 void setLevelsDefEnabled(bool on) { m_levelsEnabled = on; }
00067 void clearLevelsDef() { m_levelsDef.clear(); }
00068 const QMap<int, CodeDef> &levelsDef() const { return m_levelsDef; }
00069 void setLevelsDef(QMap<int, CodeDef> def);
00070 CodeDef levelsDef(int level) const;
00071 void setLevelsDef(int level, CodeDef def);
00072 void setLevelsDef(int level, QString c, QString s);
00073
00074 QStringList codeList();
00075 int defaultCodeIndex() const;
00076 bool setDefaultCode(uint index);
00077 QString defaultSeparator() const { return m_defaultDef.separator; }
00078 void setDefaultSeparator(QString s);
00079
00080 protected:
00081 QString code(CodeDef &def, uint index);
00082 QString toRoman(int n, bool upper = false);
00083
00084 private:
00085 CodeDef m_defaultDef;
00086
00087 bool m_levelsEnabled;
00088 QMap<int, CodeDef> m_levelsDef;
00089
00090 QList<QPair<QString, QString> > m_codeLists;
00091 };
00092
00093 }
00094
00095 #endif //WBSDEFINITION_H