Subversion Repositories svn1

Rev

Rev 176 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 176 Rev 181
Line 1... Line 1...
1
#include "qmconfwinners.h"
1
#include "qmconfwinners.h"
2
#include "qmconfig.h"
2
#include "qmconfig.h"
3
#include "ui_qmconfwinners.h"
3
#include "ui_qmconfwinners.h"
-
 
4
#include "mainwindow.h"
4
 
5
 
5
#include    "consts.h"
6
#include    "consts.h"
6
#include    "structs.h"
7
#include    "structs.h"
7
#include    "proto.h"
8
#include    "proto.h"
8
 
9
 
Line 11... Line 12...
11
QmConfWinners::QmConfWinners(QWidget *parent) :
12
QmConfWinners::QmConfWinners(QWidget *parent) :
12
    QWidget(parent),
13
    QWidget(parent),
13
    ui(new Ui::QmConfWinners)
14
    ui(new Ui::QmConfWinners)
14
{
15
{
15
    ui->setupUi(this);
16
    ui->setupUi(this);
16
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
-
 
17
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
-
 
18
 
17
 
19
    ui->tableWidget->setRowCount(MAX_FAME);
18
    ui->tableWidget->setRowCount(MAX_FAME);
-
 
19
    dirty = true;
-
 
20
    populating = false;
-
 
21
 
-
 
22
    connect(ui->pushButtonSave, SIGNAL(clicked()), this, SLOT(save()) );
-
 
23
    connect(ui->pushButtonRestore, SIGNAL(clicked()), this, SLOT(cancel()) );
-
 
24
    connect(ui->tableWidget, SIGNAL(cellChanged(int,int)), this, SLOT(changed()));
-
 
25
 
20
    populate();
26
    populate();
21
}
27
}
22
 
28
 
23
QmConfWinners::~QmConfWinners()
29
QmConfWinners::~QmConfWinners()
24
{
30
{
25
    delete ui;
31
    delete ui;
26
}
32
}
27
 
33
 
28
void QmConfWinners::populate(void)
34
void QmConfWinners::populate(void)
29
{
35
{
-
 
36
    populating = true;
30
    for ( int ii = 0; ii < MAX_FAME; ii++)
37
    for ( int ii = 0; ii < MAX_FAME; ii++)
31
    {
38
    {
32
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.hall_fame[ii] ));
39
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.hall_fame[ii] ));
33
    }
40
    }
-
 
41
    populating = false;
-
 
42
    updateChanged(false);
34
}
43
}
35
 
44
 
36
void QmConfWinners::save(void)
45
void QmConfWinners::save(void)
37
{
46
{
38
    int error = 0;
-
 
39
 
-
 
40
    /*
47
    /*
41
    **    Copy original data
48
    **    Copy original data
42
    */
49
    */
43
     QmConfig newcfg(config);
50
     QmConfig newcfg(config);
44
 
51
 
Line 57... Line 64...
57
    newcfg.num_fame = 0;
64
    newcfg.num_fame = 0;
58
    for( int i = 0; i < MAX_FAME; i++ )
65
    for( int i = 0; i < MAX_FAME; i++ )
59
        if( newcfg.hall_fame[i][0] )
66
        if( newcfg.hall_fame[i][0] )
60
            newcfg.num_fame++;
67
            newcfg.num_fame++;
61
 
68
 
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;
69
    // Sanity Check
68
        }
-
 
69
    
70
    try
70
    if ( error == 0 )
-
 
71
    {
71
    {
-
 
72
        MainWindow::showMessage( "Saving Config");
-
 
73
        for( int i = newcfg.num_fame; i < MAX_FAME; i++ )
-
 
74
            if( newcfg.hall_fame[i][0] )
-
 
75
            {
-
 
76
                throw ( "Configuration error: Missing Fame name. Gaps not allowed" );
-
 
77
            }
-
 
78
 
72
        config = newcfg;
79
        config = newcfg;
73
        config.write_config();
80
        config.write_config();
-
 
81
        updateChanged(false);
-
 
82
    }
-
 
83
    catch ( const char * str)
-
 
84
    {
-
 
85
        MainWindow::showMessage(str);
74
    }
86
    }
-
 
87
 
75
}
88
}
76
 
89
 
77
void QmConfWinners::cancel(void)
90
void QmConfWinners::cancel(void)
78
{
91
{
79
    populate();
92
    populate();
80
}
93
}
-
 
94
 
-
 
95
void QmConfWinners::changed(void)
-
 
96
{
-
 
97
    if ( populating )
-
 
98
        return;
-
 
99
    updateChanged(true);
-
 
100
}
-
 
101
 
-
 
102
void QmConfWinners::updateChanged(bool newDirty)
-
 
103
{
-
 
104
    if (newDirty != dirty)
-
 
105
    {
-
 
106
        dirty = newDirty;
-
 
107
        if (dirty)
-
 
108
        {
-
 
109
            ui->Changed->setVisible(true);
-
 
110
            ui->pushButtonSave->setEnabled(true);
-
 
111
        }
-
 
112
        else
-
 
113
        {
-
 
114
            ui->Changed->setVisible(false);
-
 
115
            ui->pushButtonSave->setEnabled(false);
-
 
116
        }
-
 
117
    }
-
 
118
}
-
 
119
 
81
void QmConfWinners::changeEvent(QEvent *e)
120
void QmConfWinners::changeEvent(QEvent *e)
82
{
121
{
83
    QWidget::changeEvent(e);
122
    QWidget::changeEvent(e);
84
    switch (e->type()) {
123
    switch (e->type()) {
85
    case QEvent::LanguageChange:
124
    case QEvent::LanguageChange: