diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llxml/llcontrol.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/linden/indra/llxml/llcontrol.h b/linden/indra/llxml/llcontrol.h index 91545ce..2500ae0 100644 --- a/linden/indra/llxml/llcontrol.h +++ b/linden/indra/llxml/llcontrol.h | |||
@@ -83,7 +83,7 @@ typedef enum e_control_type | |||
83 | TYPE_COUNT | 83 | TYPE_COUNT |
84 | } eControlType; | 84 | } eControlType; |
85 | 85 | ||
86 | class LLControlVariable | 86 | class LLControlVariable : public LLRefCount |
87 | { | 87 | { |
88 | friend class LLControlGroup; | 88 | friend class LLControlGroup; |
89 | typedef boost::signal<void(const LLSD&)> signal_t; | 89 | typedef boost::signal<void(const LLSD&)> signal_t; |
@@ -92,7 +92,7 @@ private: | |||
92 | LLString mName; | 92 | LLString mName; |
93 | LLString mComment; | 93 | LLString mComment; |
94 | eControlType mType; | 94 | eControlType mType; |
95 | BOOL mPersist; | 95 | bool mPersist; |
96 | std::vector<LLSD> mValues; | 96 | std::vector<LLSD> mValues; |
97 | 97 | ||
98 | signal_t mSignal; | 98 | signal_t mSignal; |
@@ -100,7 +100,7 @@ private: | |||
100 | public: | 100 | public: |
101 | LLControlVariable(const LLString& name, eControlType type, | 101 | LLControlVariable(const LLString& name, eControlType type, |
102 | LLSD initial, const LLString& comment, | 102 | LLSD initial, const LLString& comment, |
103 | BOOL persist = TRUE); | 103 | bool persist = true); |
104 | 104 | ||
105 | virtual ~LLControlVariable(); | 105 | virtual ~LLControlVariable(); |
106 | 106 | ||
@@ -108,33 +108,41 @@ public: | |||
108 | const LLString& getComment() const { return mComment; } | 108 | const LLString& getComment() const { return mComment; } |
109 | 109 | ||
110 | eControlType type() { return mType; } | 110 | eControlType type() { return mType; } |
111 | BOOL isType(eControlType tp) { return tp == mType; } | 111 | bool isType(eControlType tp) { return tp == mType; } |
112 | 112 | ||
113 | void resetToDefault(bool fire_signal = TRUE); | 113 | void resetToDefault(bool fire_signal = false); |
114 | 114 | ||
115 | signal_t* getSignal() { return &mSignal; } | 115 | signal_t* getSignal() { return &mSignal; } |
116 | 116 | ||
117 | bool isDefault() { return (mValues.size() == 1); } | 117 | bool isDefault() { return (mValues.size() == 1); } |
118 | bool isSaveValueDefault(); | 118 | bool isSaveValueDefault(); |
119 | bool isPersisted() { return mPersist; } | 119 | bool isPersisted() { return mPersist; } |
120 | void set(const LLSD& val) { setValue(val); } | ||
121 | LLSD get() const { return getValue(); } | 120 | LLSD get() const { return getValue(); } |
122 | LLSD getDefault() const { return mValues.front(); } | ||
123 | LLSD getValue() const { return mValues.back(); } | 121 | LLSD getValue() const { return mValues.back(); } |
122 | LLSD getDefault() const { return mValues.front(); } | ||
124 | LLSD getSaveValue() const; | 123 | LLSD getSaveValue() const; |
124 | |||
125 | void set(const LLSD& val) { setValue(val); } | ||
125 | void setValue(const LLSD& value, bool saved_value = TRUE); | 126 | void setValue(const LLSD& value, bool saved_value = TRUE); |
127 | void setDefaultValue(const LLSD& value); | ||
128 | void setPersist(bool state); | ||
129 | void setComment(const std::string& comment); | ||
130 | |||
126 | void firePropertyChanged() | 131 | void firePropertyChanged() |
127 | { | 132 | { |
128 | mSignal(mValues.back()); | 133 | mSignal(mValues.back()); |
129 | } | 134 | } |
130 | bool llsd_compare(const LLSD& a, const LLSD& b); | 135 | private: |
136 | LLSD getComparableValue(const LLSD& value); | ||
137 | bool llsd_compare(const LLSD& a, const LLSD & b); | ||
138 | |||
131 | }; | 139 | }; |
132 | 140 | ||
133 | //const U32 STRING_CACHE_SIZE = 10000; | 141 | //const U32 STRING_CACHE_SIZE = 10000; |
134 | class LLControlGroup | 142 | class LLControlGroup |
135 | { | 143 | { |
136 | protected: | 144 | protected: |
137 | typedef std::map<LLString, LLControlVariable* > ctrl_name_table_t; | 145 | typedef std::map<LLString, LLPointer<LLControlVariable> > ctrl_name_table_t; |
138 | ctrl_name_table_t mNameTable; | 146 | ctrl_name_table_t mNameTable; |
139 | std::set<LLString> mWarnings; | 147 | std::set<LLString> mWarnings; |
140 | LLString mTypeString[TYPE_COUNT]; | 148 | LLString mTypeString[TYPE_COUNT]; |
@@ -146,7 +154,7 @@ public: | |||
146 | ~LLControlGroup(); | 154 | ~LLControlGroup(); |
147 | void cleanup(); | 155 | void cleanup(); |
148 | 156 | ||
149 | LLControlVariable* getControl(const LLString& name); | 157 | LLPointer<LLControlVariable> getControl(const LLString& name); |
150 | 158 | ||
151 | struct ApplyFunctor | 159 | struct ApplyFunctor |
152 | { | 160 | { |
@@ -213,7 +221,7 @@ public: | |||
213 | // as the given type. | 221 | // as the given type. |
214 | U32 loadFromFileLegacy(const LLString& filename, BOOL require_declaration = TRUE, eControlType declare_as = TYPE_STRING); | 222 | U32 loadFromFileLegacy(const LLString& filename, BOOL require_declaration = TRUE, eControlType declare_as = TYPE_STRING); |
215 | U32 saveToFile(const LLString& filename, BOOL nondefault_only); | 223 | U32 saveToFile(const LLString& filename, BOOL nondefault_only); |
216 | U32 loadFromFile(const LLString& filename); | 224 | U32 loadFromFile(const LLString& filename, bool default_values = false); |
217 | void resetToDefaults(); | 225 | void resetToDefaults(); |
218 | 226 | ||
219 | 227 | ||