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;
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user