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