Skip to content

Commit

Permalink
Use italic font for parameter textbox in Variables Browser
Browse files Browse the repository at this point in the history
  • Loading branch information
adeas31 committed Oct 10, 2018
1 parent 3f512db commit a83744b
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 28 deletions.
35 changes: 24 additions & 11 deletions OMEdit/OMEditGUI/Modeling/ItemDelegate.cpp
Expand Up @@ -292,20 +292,33 @@ bool ItemDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, const Q
*/
QWidget* ItemDelegate::createEditor(QWidget *pParent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
if (parent() && qobject_cast<VariablesTreeView*>(parent()) && index.column() == 3) {
if (parent() && qobject_cast<VariablesTreeView*>(parent())) {
VariablesTreeView *pVariablesTreeView = qobject_cast<VariablesTreeView*>(parent());
VariableTreeProxyModel *pVariableTreeProxyModel = pVariablesTreeView->getVariablesWidget()->getVariableTreeProxyModel();
QModelIndex sourceIndex = pVariableTreeProxyModel->mapToSource(index);
VariablesTreeItem *pVariablesTreeItem = static_cast<VariablesTreeItem*>(sourceIndex.internalPointer());
// create the display units combobox
QComboBox *pComboBox = new QComboBox(pParent);
pComboBox->setEnabled(!pVariablesTreeItem->getDisplayUnits().isEmpty());
pComboBox->addItems(pVariablesTreeItem->getDisplayUnits());
connect(pComboBox, SIGNAL(currentIndexChanged(QString)), SLOT(unitComboBoxChanged(QString)));
return pComboBox;
} else {
return QItemDelegate::createEditor(pParent, option, index);

if (index.column() == 1) { // value column
QLineEdit *pValueTextBox = new QLineEdit(pParent);
pValueTextBox->setText(index.data(Qt::DisplayRole).toString());
QFont font = option.font;
if (pVariablesTreeItem->isParameter()) {
font.setItalic(true);
}
pValueTextBox->setFont(font);
pValueTextBox->selectAll();
pValueTextBox->setFocusPolicy(Qt::WheelFocus);
return pValueTextBox;
} else if (index.column() == 3) { // unit column
// create the display units combobox
QComboBox *pComboBox = new QComboBox(pParent);
pComboBox->setEnabled(!pVariablesTreeItem->getDisplayUnits().isEmpty());
pComboBox->addItems(pVariablesTreeItem->getDisplayUnits());
connect(pComboBox, SIGNAL(currentIndexChanged(QString)), SLOT(unitComboBoxChanged(QString)));
return pComboBox;
}
}
return QItemDelegate::createEditor(pParent, option, index);
}

/*!
Expand Down Expand Up @@ -336,7 +349,7 @@ void ItemDelegate::unitComboBoxChanged(QString text)
Q_UNUSED(text);
QComboBox *pComboBox = qobject_cast<QComboBox*>(sender());
if (pComboBox) {
commitData(pComboBox);
closeEditor(pComboBox);
emit commitData(pComboBox);
emit closeEditor(pComboBox);
}
}
36 changes: 24 additions & 12 deletions OMEdit/OMEditGUI/Plotting/VariablesWidget.cpp
Expand Up @@ -85,6 +85,7 @@ VariablesTreeItem::VariablesTreeItem(const QVector<QVariant> &variableItemData,
mToolTip = variableItemData[9].toString();
mChecked = false;
mEditable = false;
mVariability = "";
mIsMainArray = variableItemData[10].toBool();
}

Expand Down Expand Up @@ -196,6 +197,14 @@ QVariant VariablesTreeItem::data(int column, int role) const
case Qt::ToolTipRole:
case Qt::EditRole:
return mValue;
case Qt::FontRole:
if (isParameter()) {
QFont font;
font.setItalic(true);
return font;
} else {
return QVariant();
}
default:
return QVariant();
}
Expand Down Expand Up @@ -480,6 +489,7 @@ QHash<QString, QString> VariablesTreeModel::parseScalarVariable(QXmlStreamReader
scalarVariable["name"] = attributes.value("name").toString();
scalarVariable["description"] = attributes.value("description").toString();
scalarVariable["isValueChangeable"] = attributes.value("isValueChangeable").toString();
scalarVariable["variability"] = attributes.value("variability").toString();
/* Read the next element i.e Real, Integer, Boolean etc. */
xmlReader.readNext();
while(!(xmlReader.tokenType() == QXmlStreamReader::EndElement && xmlReader.name() == "ScalarVariable"))
Expand Down Expand Up @@ -655,9 +665,9 @@ void VariablesTreeModel::insertVariablesItems(QString fileName, QString filePath
QString variableToFind = variableData[2].toString();
variableToFind.remove(QRegExp(pTopVariablesTreeItem->getVariableName() + "."));
/* get the variable information i.e value, unit, displayunit, description */
QString value, unit, displayUnit, description;
QString value, variability, unit, displayUnit, description;
bool changeAble = false;
getVariableInformation(&matReader, variableToFind, &value, &changeAble, &unit, &displayUnit, &description);
getVariableInformation(&matReader, variableToFind, &value, &changeAble, &variability, &unit, &displayUnit, &description);
variableData << StringHandler::unparse(QString("\"").append(value).append("\""));
/* set the variable unit */
variableData << StringHandler::unparse(QString("\"").append(unit).append("\""));
Expand Down Expand Up @@ -690,20 +700,20 @@ void VariablesTreeModel::insertVariablesItems(QString fileName, QString filePath
/* set the variable description */
variableData << StringHandler::unparse(QString("\"").append(description).append("\""));
/* construct tooltip text */
variableData << tr("File: %1/%2\nVariable: %3").arg(filePath).arg(fileName).arg(variableToFind);
/*is main array*/
if (variables.size() == count+1 && QRegExp("\\[\\d+\\]").exactMatch(variables.last()))
variableData << true;
else
variableData << false;
if (simulationOptions.isInteractiveSimulation()) {
variableData << tr("Variable: %1").arg(variableToFind);
variableData << tr("Variable: %1\nVariability: %2").arg(variableToFind).arg(variability);
} else {
variableData << tr("File: %1/%2\nVariable: %3\nVariability: %4").arg(filePath).arg(fileName).arg(variableToFind).arg(variability);
}
/*is main array*/
if (variables.size() == count+1 && QRegExp("\\[\\d+\\]").exactMatch(variables.last())) {
variableData << true;
} else {
variableData << tr("File: %1/%2\nVariable: %3").arg(filePath).arg(fileName).arg(variableToFind);
variableData << false;
}
VariablesTreeItem *pVariablesTreeItem = new VariablesTreeItem(variableData, pParentVariablesTreeItem);
pVariablesTreeItem->setEditable(changeAble);
pVariablesTreeItem->setEnabled(changeAble);
pVariablesTreeItem->setVariability(variability);
int row = rowCount(index);
beginInsertRows(index, row, row);
pParentVariablesTreeItem->insertChild(row, pVariablesTreeItem);
Expand Down Expand Up @@ -812,16 +822,18 @@ void VariablesTreeModel::plotAllVariables(VariablesTreeItem *pVariablesTreeItem,
* \param variableToFind
* \param value
* \param changeAble
* \param variability
* \param unit
* \param displayUnit
* \param description
*/
void VariablesTreeModel::getVariableInformation(ModelicaMatReader *pMatReader, QString variableToFind, QString *value, bool *changeAble,
QString *unit, QString *displayUnit, QString *description)
QString *variability, QString *unit, QString *displayUnit, QString *description)
{
QHash<QString, QString> hash = mScalarVariablesList.value(variableToFind);
if (hash["name"].compare(variableToFind) == 0) {
*changeAble = (hash["isValueChangeable"].compare("true") == 0) ? true : false;
*variability = hash["variability"];
if (*changeAble) {
*value = hash["start"];
} else { /* if the variable is not a tunable parameter then read the final value of the variable. Only mat result files are supported. */
Expand Down
10 changes: 5 additions & 5 deletions OMEdit/OMEditGUI/Plotting/VariablesWidget.h
Expand Up @@ -64,9 +64,9 @@ class VariablesTreeItem
void setChecked(bool set) {mChecked = set;}
bool isEditable() const {return mEditable;}
void setEditable(bool set) {mEditable = set;}
void setVariability(QString variability) {mVariability = variability;}
bool isParameter() const {return mVariability.compare("parameter") == 0;}
bool isMainArray() const {return mIsMainArray;}
bool isEnabled() const {return mEnabled;}
void setEnabled(bool set) {mEnabled = set;}
SimulationOptions getSimulationOptions() {return mSimulationOptions;}
void setSimulationOptions(SimulationOptions simulationOptions) {mSimulationOptions = simulationOptions;}
QIcon getVariableTreeItemIcon(QString name) const;
Expand Down Expand Up @@ -100,8 +100,8 @@ class VariablesTreeItem
QString mToolTip;
bool mChecked;
bool mEditable;
QString mVariability;
bool mIsMainArray;
bool mEnabled;
SimulationOptions mSimulationOptions;
};

Expand Down Expand Up @@ -134,8 +134,8 @@ class VariablesTreeModel : public QAbstractItemModel
VariablesTreeView *mpVariablesTreeView;
VariablesTreeItem *mpRootVariablesTreeItem;
QHash<QString, QHash<QString,QString> > mScalarVariablesList;
void getVariableInformation(ModelicaMatReader *pMatReader, QString variableToFind, QString *value, bool *changeAble, QString *unit,
QString *displayUnit, QString *description);
void getVariableInformation(ModelicaMatReader *pMatReader, QString variableToFind, QString *value, bool *changeAble, QString *variability,
QString *unit, QString *displayUnit, QString *description);
signals:
void itemChecked(const QModelIndex &index, qreal curveThickness, int curveStyle);
void unitChanged(const QModelIndex &index);
Expand Down

0 comments on commit a83744b

Please sign in to comment.