Subversion Repositories svn1

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
103 - 1
#include "qmconfwinners.h"
174 - 2
#include "qmconfig.h"
103 - 3
#include "ui_qmconfwinners.h"
4
 
104 - 5
#include    "consts.h"
6
#include    "structs.h"
7
#include    "proto.h"
8
 
9
#include "QTableWidgetItem"
10
 
103 - 11
QmConfWinners::QmConfWinners(QWidget *parent) :
12
    QWidget(parent),
13
    ui(new Ui::QmConfWinners)
14
{
15
    ui->setupUi(this);
104 - 16
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
17
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
18
 
19
    ui->tableWidget->setRowCount(MAX_FAME);
20
    populate();
103 - 21
}
22
 
23
QmConfWinners::~QmConfWinners()
24
{
25
    delete ui;
26
}
27
 
104 - 28
void QmConfWinners::populate(void)
29
{
30
    for ( int ii = 0; ii < MAX_FAME; ii++)
31
    {
32
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.hall_fame[ii] ));
33
    }
34
}
35
 
36
void QmConfWinners::save(void)
37
{
38
    int error = 0;
39
 
40
    /*
41
    **    Copy original data
42
    */
176 - 43
     QmConfig newcfg(config);
104 - 44
 
45
    /*
46
    **  Extract the data from the Widgets
47
    */
48
    for ( int ii = 0; ii < MAX_FAME; ii++)
49
    {
50
        QTableWidgetItem *item = ui->tableWidget->item ( ii, 0 );
51
        if ( item )
52
        {
53
            strncpy(newcfg.hall_fame[ii], qPrintable(item->text()), sizeof(newcfg.hall_fame[ii])-1);
54
        }
55
    }
56
 
57
    newcfg.num_fame = 0;
58
    for( int i = 0; i < MAX_FAME; i++ )
59
        if( newcfg.hall_fame[i][0] )
60
            newcfg.num_fame++;
61
 
62
    for( int i = newcfg.num_fame; i < MAX_FAME; i++ )
63
        if( newcfg.hall_fame[i][0] )
64
        {
65
            printf( "Configuration error: Missing Fame name. Gaps not allowed\n" );
66
            error++;
67
            break;
68
        }
69
 
70
    if ( error == 0 )
71
    {
72
        config = newcfg;
176 - 73
        config.write_config();
104 - 74
    }
75
}
76
 
77
void QmConfWinners::cancel(void)
78
{
79
    populate();
80
}
103 - 81
void QmConfWinners::changeEvent(QEvent *e)
82
{
83
    QWidget::changeEvent(e);
84
    switch (e->type()) {
85
    case QEvent::LanguageChange:
86
        ui->retranslateUi(this);
87
        break;
88
    default:
89
        break;
90
    }
91
}