##// END OF EJS Templates
Add animations to pie. Works but has some visual issues when adding slices.
Add animations to pie. Works but has some visual issues when adding slices.

File last commit:

r613:36ecec1e9bf9
r618:249071e508d1
Show More
customtablemodel.cpp
151 lines | 3.6 KiB | text/x-c | CppLexer
Marek Rosa
Table model data example
r519 #include "customtablemodel.h"
CustomTableModel::CustomTableModel(QObject *parent) :
QAbstractTableModel(parent)
{
m_points.append(QPointF(10, 50));
m_labels.append("Apples");
m_points.append(QPointF(60, 70));
m_labels.append("Oranges");
m_points.append(QPointF(110, 50));
m_labels.append("Bananas");
m_points.append(QPointF(140, 40));
m_labels.append("Lemons");
m_points.append(QPointF(200, 150));
m_labels.append("Plums");
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 m_points.append(QPointF(225, 75));
m_labels.append("Pearls");
Marek Rosa
Table model data example
r519 }
int CustomTableModel::rowCount(const QModelIndex & parent) const
{
Tero Ahola
A few more warnings removed from examples
r613 Q_UNUSED(parent)
Marek Rosa
Table model data example
r519 return m_points.count();
}
int CustomTableModel::columnCount(const QModelIndex & parent) const
{
Tero Ahola
A few more warnings removed from examples
r613 Q_UNUSED(parent)
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 return 3;
Marek Rosa
Table model data example
r519 }
QVariant CustomTableModel::headerData (int section, Qt::Orientation orientation, int role ) const
{
if (role != Qt::DisplayRole)
return QVariant();
if (orientation == Qt::Horizontal)
{
switch(section)
{
case 0:
return "x";
case 1:
return "y";
case 2:
return "Fruit";
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 default:
return "What?";
Marek Rosa
Table model data example
r519 }
}
else
return QString("%1").arg(section + 1);
}
QVariant CustomTableModel::data(const QModelIndex & index, int role) const
{
if (role == Qt::DisplayRole)
{
switch(index.column())
{
case 0:
return m_points[index.row()].x();
case 1:
return m_points[index.row()].y();
case 2:
return m_labels[index.row()];
default:
Tero Ahola
A few more warnings removed from examples
r613 break;
Marek Rosa
Table model data example
r519 }
}
else if (role == Qt::EditRole)
{
switch(index.column())
{
case 0:
return m_points[index.row()].x();
case 1:
return m_points[index.row()].y();
case 2:
return m_labels[index.row()];
default:
Tero Ahola
A few more warnings removed from examples
r613 break;
Marek Rosa
Table model data example
r519 }
}
Tero Ahola
A few more warnings removed from examples
r613 return QVariant();
Marek Rosa
Table model data example
r519 }
bool CustomTableModel::setData ( const QModelIndex & index, const QVariant & value, int role)
{
if (index.isValid() && role == Qt::EditRole)
{
switch(index.column())
{
case 0:
m_points[index.row()].setX(value.toDouble());
break;
case 1:
m_points[index.row()].setY(value.toDouble());
break;
case 2:
m_labels.replace(index.row(), value.toString());
break;
default:
return false;
}
emit dataChanged(index, index);
return true;
}
return false;
}
Qt::ItemFlags CustomTableModel::flags ( const QModelIndex & index ) const
{
Marek Rosa
QXYSeries: model data orientation added. QBarSeries: some model data function placeholders
r527 // if (!index.isValid())
// return Qt::ItemIsEnabled;
Marek Rosa
Table model data example
r519 return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
}
bool CustomTableModel::insertRows ( int row, int count, const QModelIndex & parent)
{
Tero Ahola
A few more warnings removed from examples
r613 Q_UNUSED(parent)
Marek Rosa
Model data example updated
r546 if (row < 0)
row = 0;
Marek Rosa
Table model data example
r519 beginInsertRows(QModelIndex(), row /*dataTable.count()*/, row + count - 1);
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 for (int i = row; i < row + count; i++)
Marek Rosa
Table model data example
r519 {
Marek Rosa
Added insert pie slice function to QPieSeries
r604 m_points.insert(row, QPointF(10,20));
m_labels.insert(row,("a"));
Marek Rosa
Table model data example
r519 }
endInsertRows();
return true;
}
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545
bool CustomTableModel::removeRows ( int row, int count, const QModelIndex & parent)
{
if (row > this->rowCount() - 1)
return false;
if (row < 0)
row = 0;
if (row + count > rowCount())
return false;
beginRemoveRows(parent, row, row + count - 1);
for (int i = row; i < row + count; i++)
{
m_points.removeAt(row);
m_labels.removeAt(row);
}
endRemoveRows();
return true;
}