Rev 134 | Rev 189 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "qmdisqualified.h"#include "ui_qmdisqualified.h"#include "consts.h"#include "structs.h"#include "proto.h"qmDisqualified::qmDisqualified(QWidget *parent) :QWidget(parent),ui(new Ui::qmDisqualified){inPopulate = FALSE;ui->setupUi(this);connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );connect(ui->loadButton, SIGNAL(released()), this, SLOT(populate()) );connect(ui->tableWidget, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(tableItemChanged(QTableWidgetItem *)));}qmDisqualified::~qmDisqualified(){delete ui;}void qmDisqualified::save(void){team_type team_buf;for ( int ii = 0; ii < ui->tableWidget->rowCount(); ii++){QTableWidgetItem *item;item = ui->tableWidget->item(ii, 0);if ( item ){if ( item->data(Qt::UserRole + 1).toBool() ){int team = item->data(Qt::EditRole).toInt();if ( team ){qDebug("Detected change:%d", team);g_record( team, &team_buf );item = ui->tableWidget->item(ii,2);team_buf.flags.disqualified = ( item->checkState () == Qt::Checked);item = ui->tableWidget->item(ii,3);team_buf.flags.non_equestrian = ( item->checkState () == Qt::Checked);//TODO: If nonEquestrian, then also disqualified ?? Original is.item = ui->tableWidget->item(ii,4);team_buf.flags.valid = ( item->checkState () == Qt::Checked);put_team_record( team, &team_buf );}}}}populate();}void qmDisqualified::cancel(void){populate();}void qmDisqualified::populate(void){team_type team_buf;inPopulate = TRUE;/*** Delete existing entries in the table*/ui->tableWidget->clearContents();ui->tableWidget->setRowCount(config.max_team);ui->tableWidget->setColumnCount(5);ui->tableWidget->setSortingEnabled(FALSE);/*** Scan all the team data*/for ( int team = config.min_team; team <= config.max_team; team++){ui->tableWidget->hideRow ( team );if( valid_field( team ) ){g_record( team, &team_buf );if( team_buf.flags.valid || true ){QTableWidgetItem *item;ui->tableWidget->showRow( team );item = new QTableWidgetItem(QString::number(team));item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);ui->tableWidget->setItem(team, 0, item );item = new QTableWidgetItem(team_buf.name);item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);ui->tableWidget->setItem(team, 1, item );item = new QTableWidgetItem("Disq");item->setCheckState(team_buf.flags.disqualified ? Qt::Checked : Qt::Unchecked);ui->tableWidget->setItem(team, 2, item );item = new QTableWidgetItem("Non Equest");item->setCheckState(team_buf.flags.non_equestrian ? Qt::Checked : Qt::Unchecked);ui->tableWidget->setItem(team, 3, item );item = new QTableWidgetItem("Enable");item->setCheckState(team_buf.flags.valid ? Qt::Checked : Qt::Unchecked);ui->tableWidget->setItem(team, 4, item );}}}ui->tableWidget->setSortingEnabled(TRUE);ui->tableWidget->resizeColumnsToContents();inPopulate = FALSE;}void qmDisqualified::tableItemChanged(QTableWidgetItem *item){if ( !inPopulate ){if ( item->column() ){qDebug ("DataChanged");item->setData(Qt::BackgroundRole, QBrush(QColor(255,0,0,50)));// Mark first item in row to help detect changesint row = item->row();item->tableWidget()->item(row,0)->setData(Qt::UserRole + 1, true );}}}