MCPcopy Create free account
hub / github.com/KDE/kdevelop / updateModelForGroup

Method updateModelForGroup

plugins/debuggercommon/registers/modelsmanager.cpp:92–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

90}
91
92void ModelsManager::updateModelForGroup(const RegistersGroup& group)
93{
94 QStandardItemModel* model = m_models->modelForName(group.groupName.name());
95
96 if (!model) {
97 return;
98 }
99
100 disconnect(model, &QStandardItemModel::itemChanged, this, &ModelsManager::itemChanged);
101
102 model->setRowCount(group.registers.count());
103 model->setColumnCount(group.registers.first().value.split(QLatin1Char(' ')).size() + 1);
104
105 //set names and values separately as names don't change so often.
106 if (!model->item(0, 0)) {
107 for (int row = 0; row < group.registers.count(); row++) {
108 const Register& r = group.registers[row];
109 auto* n = new QStandardItem(r.name);
110 n->setFlags(Qt::ItemIsEnabled);
111 model->setItem(row, 0, n);
112 }
113 }
114
115 for (int row = 0; row < group.registers.count(); row++) {
116 const Register& r = group.registers[row];
117
118 const QStringList& values = r.value.split(QLatin1Char(' '));
119
120 //binary format workaround.
121 Format currentFormat = formats(group.groupName.name()).first();
122 Mode currentMode = modes(group.groupName.name()).first();
123 QString prefix;
124 if (currentFormat == Binary && ((currentMode < v4_float || currentMode > v2_double) &&
125 (currentMode < f32 || currentMode > f64) && group.groupName.type() != floatPoint)) {
126 prefix = QStringLiteral("0b");
127 }
128
129 for (int column = 0; column < values.count(); column ++) {
130 auto* v = new QStandardItem(prefix + values[column]);
131 if (group.groupName.type() == flag) {
132 v->setFlags(Qt::ItemIsEnabled);
133 }
134 model->setItem(row, column + 1, v);
135 }
136 }
137
138 connect(model, &QStandardItemModel::itemChanged, this, &ModelsManager::itemChanged);
139}
140
141void ModelsManager::flagChanged(const QModelIndex& idx)
142{

Callers

nothing calls this directly

Calls 10

modelForNameMethod · 0.80
setFlagsMethod · 0.80
setItemMethod · 0.80
nameMethod · 0.45
countMethod · 0.45
sizeMethod · 0.45
splitMethod · 0.45
firstMethod · 0.45
itemMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected