/[svn]/gigedit/trunk/src/gigedit/MacroEditor.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/MacroEditor.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3186 by schoenebeck, Wed May 17 12:28:39 2017 UTC revision 3187 by schoenebeck, Wed May 17 16:14:20 2017 UTC
# Line 58  MacroEditor::MacroEditor() : Line 58  MacroEditor::MacroEditor() :
58          //column->set_renderer(m_valueCellRenderer, m_treeModelMacro.m_col_value);          //column->set_renderer(m_valueCellRenderer, m_treeModelMacro.m_col_value);
59          column->add_attribute(m_valueCellRenderer.property_text(),          column->add_attribute(m_valueCellRenderer.property_text(),
60                                m_treeModelMacro.m_col_value);                                m_treeModelMacro.m_col_value);
61          //column->add_attribute(m_valueCellRenderer.property_has_entry(),          column->add_attribute(m_valueCellRenderer.property_has_entry(),
62          //                      m_treeModelMacro.m_col_allowTextEntry);                                m_treeModelMacro.m_col_allowTextEntry);
63          column->add_attribute(m_valueCellRenderer.property_editable(),          column->add_attribute(m_valueCellRenderer.property_editable(),
64                                m_treeModelMacro.m_col_editable);                                m_treeModelMacro.m_col_editable);
65          column->add_attribute(m_valueCellRenderer.property_model(),          column->add_attribute(m_valueCellRenderer.property_model(),
# Line 196  Glib::RefPtr<Gtk::ListStore> MacroEditor Line 196  Glib::RefPtr<Gtk::ListStore> MacroEditor
196      return refOptions;      return refOptions;
197  }  }
198    
199    inline static Serialization::String _boolToStr(bool b) {
200        // 'NO' intentional all uper case in contrast to 'Yes', simply because I
201        // find them easier distinguishable that way on quick readings
202        return b ? "Yes" : "NO";
203    }
204    
205    static const char* _boolOptions[] = { "Yes", "NO", NULL };
206    
207  void MacroEditor::buildTreeView(const Gtk::TreeModel::Row& parentRow, const Serialization::Object& parentObject) {  void MacroEditor::buildTreeView(const Gtk::TreeModel::Row& parentRow, const Serialization::Object& parentObject) {
208      for (int iMember = 0; iMember < parentObject.members().size(); ++iMember) {      for (int iMember = 0; iMember < parentObject.members().size(); ++iMember) {
209          const Serialization::Member& member = parentObject.members()[iMember];          const Serialization::Member& member = parentObject.members()[iMember];
# Line 205  void MacroEditor::buildTreeView(const Gt Line 213  void MacroEditor::buildTreeView(const Gt
213          row[m_treeModelMacro.m_col_name] = gig_to_utf8(member.name());          row[m_treeModelMacro.m_col_name] = gig_to_utf8(member.name());
214          row[m_treeModelMacro.m_col_type] = gig_to_utf8(member.type().asLongDescr());          row[m_treeModelMacro.m_col_type] = gig_to_utf8(member.type().asLongDescr());
215          row[m_treeModelMacro.m_col_uid]  = object.uid();          row[m_treeModelMacro.m_col_uid]  = object.uid();
216          row[m_treeModelMacro.m_col_allowTextEntry] = false;          row[m_treeModelMacro.m_col_allowTextEntry] = true;
217    
218          if (object.type().isClass()) {          if (object.type().isClass()) {
219              row[m_treeModelMacro.m_col_value] = "(class)";              row[m_treeModelMacro.m_col_value] = "(class)";
# Line 222  void MacroEditor::buildTreeView(const Gt Line 230  void MacroEditor::buildTreeView(const Gt
230                  Glib::RefPtr<Gtk::ListStore> refOptions = createComboOptions(allKeys);                  Glib::RefPtr<Gtk::ListStore> refOptions = createComboOptions(allKeys);
231                  row[m_treeModelMacro.m_col_options] = refOptions;                  row[m_treeModelMacro.m_col_options] = refOptions;
232              }              }
233            } else if (object.type().isBool()) {
234                row[m_treeModelMacro.m_col_value] =  _boolToStr( m_macro.valueAsBool(object) );
235                row[m_treeModelMacro.m_col_editable] = true;
236                Glib::RefPtr<Gtk::ListStore> refOptions = createComboOptions(_boolOptions);
237                row[m_treeModelMacro.m_col_options] = refOptions;
238                row[m_treeModelMacro.m_col_allowTextEntry] = false;
239          } else {          } else {
240              row[m_treeModelMacro.m_col_value] = m_macro.valueAsString(object);              row[m_treeModelMacro.m_col_value] = m_macro.valueAsString(object);
241              row[m_treeModelMacro.m_col_editable] = true;              row[m_treeModelMacro.m_col_editable] = true;
# Line 338  void MacroEditor::onMacroTreeViewRowValu Line 352  void MacroEditor::onMacroTreeViewRowValu
352              // no auto correct here yet (due to numeric vs. textual values)              // no auto correct here yet (due to numeric vs. textual values)
353              if (row[m_treeModelMacro.m_col_value] != value)              if (row[m_treeModelMacro.m_col_value] != value)
354                  row[m_treeModelMacro.m_col_value] = value;                  row[m_treeModelMacro.m_col_value] = value;
355            } else if (object.type().isBool()) {
356                m_macro.setAutoValue(object, gigvalue);
357                Serialization::String sBoolean = _boolToStr( m_macro.valueAsBool(object) );
358                // potentially auto correct (i.e. when type is bool, user entered '5' -> yields 'Yes')
359                if (row[m_treeModelMacro.m_col_value] != sBoolean)
360                    row[m_treeModelMacro.m_col_value] = sBoolean;
361          } else {          } else {
362              m_macro.setAutoValue(object, gigvalue);              m_macro.setAutoValue(object, gigvalue);
363              // potentially auto correct (i.e. when type is bool, user entered 5 -> yields 1)              // potentially auto correct (i.e. when type is bool, user entered 5 -> yields 1)

Legend:
Removed from v.3186  
changed lines
  Added in v.3187

  ViewVC Help
Powered by ViewVC