Switching to linux for development of pglab.
Switched from qmake to cmake. Code changes to make it compile.
This commit is contained in:
parent
dd9906dbd8
commit
04723a289b
142 changed files with 124 additions and 83 deletions
100
pglab/ParamTypeDelegate.cpp
Normal file
100
pglab/ParamTypeDelegate.cpp
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
#include "ParamTypeDelegate.h"
|
||||
|
||||
#include <QComboBox>
|
||||
#include "TypeSelectionItemModel.h"
|
||||
|
||||
ParamTypeDelegate::ParamTypeDelegate()
|
||||
{}
|
||||
|
||||
ParamTypeDelegate::~ParamTypeDelegate()
|
||||
{}
|
||||
|
||||
void ParamTypeDelegate::setTypeSelectionModel(TypeSelectionItemModel* model)
|
||||
{
|
||||
m_typeSelectionModel = model;
|
||||
}
|
||||
|
||||
QWidget *ParamTypeDelegate::createEditor(QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
|
||||
{
|
||||
QWidget *w = nullptr;
|
||||
|
||||
QComboBox *cmbbx = new QComboBox(parent);
|
||||
cmbbx->setMaxVisibleItems(32);
|
||||
cmbbx->setModel(m_typeSelectionModel);
|
||||
w = cmbbx;
|
||||
|
||||
// ...
|
||||
// m_ComboBox->setView(m_ColumnView);
|
||||
// m_ComboBox->view()->setCornerWidget(new QSizeGrip(m_ColumnView));
|
||||
// m_ComboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||
// ...
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
void ParamTypeDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
|
||||
{
|
||||
// if (index.data().canConvert<StarRating>()) {
|
||||
// StarRating starRating = qvariant_cast<StarRating>(index.data());
|
||||
// StarEditor *starEditor = qobject_cast<StarEditor *>(editor);
|
||||
// starEditor->setStarRating(starRating);
|
||||
// } else {
|
||||
// QStyledItemDelegate::setEditorData(editor, index);
|
||||
// }
|
||||
if (index.column() == 1) {
|
||||
QComboBox *cmbbx = dynamic_cast<QComboBox*>(editor);
|
||||
if (cmbbx) {
|
||||
auto data = index.data();
|
||||
if (data.canConvert<QString>()) {
|
||||
QModelIndexList indexes = m_typeSelectionModel->match(
|
||||
m_typeSelectionModel->index(0, 1), Qt::DisplayRole, data, 1, Qt::MatchFlags( Qt::MatchExactly ));
|
||||
if (!indexes.empty()) {
|
||||
cmbbx->setCurrentIndex(indexes.at(0).row());
|
||||
}
|
||||
else {
|
||||
cmbbx->setCurrentIndex(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
QStyledItemDelegate::setEditorData(editor, index);
|
||||
}
|
||||
}
|
||||
|
||||
void ParamTypeDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
// if (index.data().canConvert<StarRating>()) {
|
||||
// StarEditor *starEditor = qobject_cast<StarEditor *>(editor);
|
||||
// model->setData(index, QVariant::fromValue(starEditor->starRating()));
|
||||
// } else {
|
||||
// QStyledItemDelegate::setModelData(editor, model, index);
|
||||
// }
|
||||
if (index.column() == 1) {
|
||||
QComboBox *cmbbx = dynamic_cast<QComboBox*>(editor);
|
||||
if (cmbbx) {
|
||||
auto data = index.data();
|
||||
if (data.canConvert<QString>()) {
|
||||
QVariant d = m_typeSelectionModel->data(
|
||||
m_typeSelectionModel->index(cmbbx->currentIndex(), 0));
|
||||
model->setData(index, d);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
QStyledItemDelegate::setModelData(editor, model, index);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// triggered by editing finished from editor
|
||||
void ParamTypeDelegate::commitAndCloseEditor()
|
||||
{
|
||||
// StarEditor *editor = qobject_cast<StarEditor *>(sender());
|
||||
// emit commitData(editor);
|
||||
// emit closeEditor(editor);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue