//-------------------------------------------------------------------------------- void DbMySQLTableEditorIndexPage::cell_editing_done(GtkCellEditable *ce) { if (_editing_done_id != 0 && _editable_cell != 0) { g_signal_handler_disconnect(_editable_cell, _editing_done_id); _editing_done_id = 0; _editable_cell = 0; } // If it's Gtk::Entry, we try to find out if maybe user leave edit field empty, // if so we revert it to the last known value or to the default one. if (GTK_IS_ENTRY(ce)) { GtkEntry *entry_widget = GTK_ENTRY(ce); if (entry_widget) { Gtk::Entry *entry = Glib::wrap(entry_widget); if (entry && entry->get_text_length() == 0) { Gtk::TreeModel::Path path; Gtk::TreeView::Column *column(0); _indexes_tv->get_cursor(path, column); bec::NodeId node(path.to_string()); if (node.is_valid()) { std::string name = _user_index_name; if (name.empty()) name = strfmt("index%i", path[0] + 1); _be->get_indexes()->set_field(node, MySQLTableIndexListBE::Name, name); entry->set_text(name); } } } } }