| 179 | } |
| 180 | |
| 181 | QVariant VarTableModel::data(const QModelIndex &index, int role) const { |
| 182 | if (!index.isValid()) { |
| 183 | return QVariant(); |
| 184 | } |
| 185 | VarData &var = vars[index.row()]; |
| 186 | if (index.column() == VAR_PREVIEW_COL && var.previewState == PreviewState::Outdated) { |
| 187 | var.updatePreview(); |
| 188 | } |
| 189 | switch (role) { |
| 190 | case Qt::DisplayRole: |
| 191 | switch (index.column()) { |
| 192 | case VAR_NAME_COL: |
| 193 | return QString::fromUtf8(calc_var_name_to_utf8(var.info.name, var.info.namelen, var.info.named)); |
| 194 | case VAR_LOCATION_COL: |
| 195 | return var.info.archived ? tr("Archive") : QStringLiteral("RAM"); |
| 196 | case VAR_TYPE_COL: |
| 197 | { |
| 198 | // Do not translate - things rely on those names. |
| 199 | QString var_type_str = calc_var_type_names[var.info.type]; |
| 200 | if (calc_var_is_asmprog(&var.info)) { |
| 201 | var_type_str += QStringLiteral(" (ASM)"); |
| 202 | } else if (calc_var_is_python_appvar(&var.info)) { |
| 203 | var_type_str += QStringLiteral(" (Python)"); |
| 204 | } |
| 205 | return var_type_str; |
| 206 | } |
| 207 | case VAR_SIZE_COL: |
| 208 | return var.info.size; |
| 209 | case VAR_PREVIEW_COL: |
| 210 | return var.preview; |
| 211 | default: |
| 212 | return QVariant(); |
| 213 | }; |
| 214 | case Qt::FontRole: |
| 215 | if (index.column() == VAR_PREVIEW_COL) { |
| 216 | return var.previewState == PreviewState::Invalid ? varPreviewItalicFont : varPreviewCEFont; |
| 217 | } |
| 218 | return QVariant(); |
| 219 | case Qt::ForegroundRole: |
| 220 | if (index.column() == VAR_PREVIEW_COL && var.previewState == PreviewState::Invalid) { |
| 221 | return QBrush(Qt::gray); |
| 222 | } |
| 223 | return QVariant(); |
| 224 | case Qt::CheckStateRole: |
| 225 | if (index.column() == VAR_NAME_COL) { |
| 226 | return var.checked ? Qt::Checked : Qt::Unchecked; |
| 227 | } |
| 228 | return QVariant(); |
| 229 | case Qt::UserRole: |
| 230 | return QVariant::fromValue(var.info); |
| 231 | default: |
| 232 | return QVariant(); |
| 233 | }; |
| 234 | } |
| 235 | |
| 236 | bool VarTableModel::setData(const QModelIndex &index, const QVariant &value, int role) { |
| 237 | if (index.isValid() && index.column() == VAR_NAME_COL && role == Qt::CheckStateRole) { |
no test coverage detected