forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user