diff --git a/examples/tablemodelchart/customtablemodel.cpp b/examples/tablemodelchart/customtablemodel.cpp index e4d5c71..df8788f 100644 --- a/examples/tablemodelchart/customtablemodel.cpp +++ b/examples/tablemodelchart/customtablemodel.cpp @@ -115,6 +115,8 @@ Qt::ItemFlags CustomTableModel::flags ( const QModelIndex & index ) const bool CustomTableModel::insertRows ( int row, int count, const QModelIndex & parent) { + if (row < 0) + row = 0; beginInsertRows(QModelIndex(), row /*dataTable.count()*/, row + count - 1); for (int i = row; i < row + count; i++) { diff --git a/examples/tablemodelchart/tablewidget.cpp b/examples/tablemodelchart/tablewidget.cpp index 2964f45..44ec38a 100644 --- a/examples/tablemodelchart/tablewidget.cpp +++ b/examples/tablemodelchart/tablewidget.cpp @@ -13,6 +13,7 @@ TableWidget::TableWidget(QWidget *parent) : QWidget(parent) { + setGeometry(100, 100, 1000, 600); // create simple model for storing data // user's table data model m_model = new CustomTableModel; @@ -20,7 +21,7 @@ TableWidget::TableWidget(QWidget *parent) tableView->setModel(m_model); tableView->setMinimumSize(340, 480); // tableView->setItemDelegate(new QStyledItemDelegate); - chartView = new QChartView; + chartView = new QChartView(this); chartView->setMinimumSize(640, 480); // create @@ -37,15 +38,19 @@ TableWidget::TableWidget(QWidget *parent) // chartView->addSeries(series); // add, remove data buttons - QPushButton* addRowButton = new QPushButton("Add row"); - connect(addRowButton, SIGNAL(clicked()), this, SLOT(addRow())); + QPushButton* addRowAboveButton = new QPushButton("Add row above"); + connect(addRowAboveButton, SIGNAL(clicked()), this, SLOT(addRowAbove())); + + QPushButton* addRowBelowButton = new QPushButton("Add row below"); + connect(addRowBelowButton, SIGNAL(clicked()), this, SLOT(addRowBelow())); QPushButton* removeRowButton = new QPushButton("Remove row"); connect(removeRowButton, SIGNAL(clicked()), this, SLOT(removeRow())); // buttons layout QVBoxLayout* buttonsLayout = new QVBoxLayout; - buttonsLayout->addWidget(addRowButton); + buttonsLayout->addWidget(addRowAboveButton); + buttonsLayout->addWidget(addRowBelowButton); buttonsLayout->addWidget(removeRowButton); buttonsLayout->addStretch(); @@ -74,7 +79,14 @@ TableWidget::TableWidget(QWidget *parent) setLayout(mainLayout); } -void TableWidget::addRow() +void TableWidget::addRowAbove() +{ +// m_model->insertRow(m_model->rowCount()); + m_model->insertRow(tableView->currentIndex().row()); + +} + +void TableWidget::addRowBelow() { // m_model->insertRow(m_model->rowCount()); m_model->insertRow(tableView->currentIndex().row() + 1); diff --git a/examples/tablemodelchart/tablewidget.h b/examples/tablemodelchart/tablewidget.h index bb8515d..48ce2c9 100644 --- a/examples/tablemodelchart/tablewidget.h +++ b/examples/tablemodelchart/tablewidget.h @@ -22,7 +22,8 @@ public: public slots: - void addRow(); + void addRowAbove(); + void addRowBelow(); void removeRow(); void updateChartType();