Subversion Repositories svn1-original

Rev

Rev 306 | Rev 308 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "qmdialogchangeteamnumber.h"
#include "ui_qmdialogchangeteamnumber.h"
#include "mainwindow.h"
#include <QPushButton>>


QmDialogChangeTeamNumber::QmDialogChangeTeamNumber(const QString &title, QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QmDialogChangeTeamNumber)
{
    ui->setupUi(this);
    this->setWindowTitle(title);

    ui->sourceTeam->setMinimum(config.min_team);
    ui->sourceTeam->setMaximum(config.max_team);
    ui->sourceTeam->setValue(0);
    sourceTeam = 0;

    ui->targetTeam->setMinimum(config.min_team);
    ui->targetTeam->setMaximum(config.max_team);
    ui->targetTeam->setValue(0);
    targetTeam = 0;

    checkValidOpr();

    // Connect up the signals
    connect(ui->sourceTeam, SIGNAL(valueChanged(int)), this, SLOT(updateSourceName(int)) );
    connect(ui->targetTeam, SIGNAL(valueChanged(int)), this, SLOT(updateTargetName(int)) );

}

QmDialogChangeTeamNumber::~QmDialogChangeTeamNumber()
{
    delete ui;
}

bool QmDialogChangeTeamNumber::checkValidOpr(void)
{
    bool valid = true;

    //  Ensure that the user has entered something
    //
    if ( sourceTeam == 0 || targetTeam == 0 )
    {
        valid = false;
    }

    //  Can't move or copy to myself
    //
    if ( ui->sourceTeam->value() == ui->targetTeam->value() )
    {
        valid = false;
    }

    ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid);
    return (valid);
}

void QmDialogChangeTeamNumber::updateSourceName(int team)
{
    sourceTeam = team;
    g_record( team, &team_buf_source );
    ui->sourceName->setText( team_buf_source.name );
    checkValidOpr();
}

void QmDialogChangeTeamNumber::updateTargetName(int team)
{
    targetTeam = team;
    g_record( team, &team_buf_target );
    ui->targetName->setText( team_buf_target.name );
    checkValidOpr();
}

void QmDialogChangeTeamNumber::accept ()
{
    //qDebug("QmDialogChangeTeamNumber::accept");

    //
    //  Should  not get here, but just in case
    //
    if (!checkValidOpr())
    {
        return;
    }

    //
    //  Get team records
    //
    g_record( ui->sourceTeam->value(), &team_buf_source );

    //  Swap Records
    if (ui->swapMode->isChecked())
    {
        g_record( ui->targetTeam->value(), &team_buf_target );

        put_team_record(ui->targetTeam->value(), &team_buf_source );
        put_team_record(ui->sourceTeam->value(), &team_buf_target );
        //qDebug("QmDialogChangeTeamNumber:: Swap Team:%d <-> %d", ui->sourceTeam->value(), ui->targetTeam->value());
        MainWindow::showMessage(QString("Swap teams %1 <-> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));

    }
    else
    {
        put_team_record(ui->targetTeam->value(), &team_buf_source );
        //qDebug("QmDialogChangeTeamNumber:: Copy Team:%d -> %d", ui->sourceTeam->value(), ui->targetTeam->value());
        if (ui->eraseSource->isChecked())
        {
            clr_team( ui->sourceTeam->value(), &team_buf_target );
            put_team_record(ui->sourceTeam->value(), &team_buf_target );
            //qDebug("QmDialogChangeTeamNumber:: Erase Team:%d", ui->sourceTeam->value());
            MainWindow::showMessage(QString("Move team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
        }
        else
        {
            MainWindow::showMessage(QString("Duplicate team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
        }
    }


    //  All the work has been done
    //  Back to the user - calling the parents function will close the dialog
    //
    QDialog::accept();
}