VariableChooser: Remove one use of TreeItem::setFlags

One step towards the removal of the TreeItem::m_flags member
that's unused in most instances.

Instead of introducing another conversion, use a QByteArray
to store the variable name.

Change-Id: Icbe591988178faaf77db558d968843d8eb2b0160
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2016-07-27 17:24:34 +02:00
committed by hjk
parent 5211e32b82
commit 1acfaa81ab

View File

@@ -161,12 +161,19 @@ public:
MacroExpanderProvider m_provider; MacroExpanderProvider m_provider;
}; };
class VariableItem : public TreeItem class VariableItem : public TypedTreeItem<TreeItem, VariableGroupItem>
{ {
public: public:
VariableItem() {} VariableItem() {}
QVariant data(int column, int role) const Qt::ItemFlags flags(int) const override
{
if (m_variable == parent()->m_chooser->m_currentVariableName)
return Qt::ItemIsSelectable;
return Qt::ItemIsSelectable|Qt::ItemIsEnabled;
}
QVariant data(int column, int role) const override
{ {
if (role == Qt::DisplayRole || role == Qt::EditRole) { if (role == Qt::DisplayRole || role == Qt::EditRole) {
if (column == 0) if (column == 0)
@@ -174,28 +181,27 @@ public:
} }
if (role == Qt::ToolTipRole) { if (role == Qt::ToolTipRole) {
const QByteArray var = m_variable.toUtf8(); QString description = m_expander->variableDescription(m_variable);
QString description = m_expander->variableDescription(var);
QString value; QString value;
if (!m_expander->isPrefixVariable(var)) if (!m_expander->isPrefixVariable(m_variable))
value = m_expander->value(var).toHtmlEscaped(); value = m_expander->value(m_variable).toHtmlEscaped();
if (!value.isEmpty()) if (!value.isEmpty())
description += QLatin1String("<p>") + VariableChooser::tr("Current Value: %1").arg(value); description += QLatin1String("<p>") + VariableChooser::tr("Current Value: %1").arg(value);
return description; return description;
} }
if (role == UnexpandedTextRole) if (role == UnexpandedTextRole)
return QString(QLatin1String("%{") + m_variable + QLatin1Char('}')); return QString::fromUtf8("%{" + m_variable + '}');
if (role == ExpandedTextRole) if (role == ExpandedTextRole)
return m_expander->expand(QLatin1String("%{") + m_variable + QLatin1Char('}')); return m_expander->expand(QString::fromUtf8("%{" + m_variable + '}'));
return QVariant(); return QVariant();
} }
public: public:
MacroExpander *m_expander; MacroExpander *m_expander;
QString m_variable; QByteArray m_variable;
}; };
void VariableTreeView::contextMenuEvent(QContextMenuEvent *ev) void VariableTreeView::contextMenuEvent(QContextMenuEvent *ev)
@@ -279,10 +285,8 @@ void VariableGroupItem::populateGroup(MacroExpander *expander)
foreach (const QByteArray &variable, expander->visibleVariables()) { foreach (const QByteArray &variable, expander->visibleVariables()) {
auto item = new VariableItem; auto item = new VariableItem;
item->m_variable = QString::fromUtf8(variable); item->m_variable = variable;
item->m_expander = expander; item->m_expander = expander;
if (variable == m_chooser->m_currentVariableName)
item->setFlags(Qt::ItemIsSelectable); // not ItemIsEnabled
appendChild(item); appendChild(item);
} }